Linux 学习笔记(2)—— 关于文件和目录

news2024/10/7 8:25:31

目录

1、切换目录

2、查看系统信息

3、文本的创建和编辑

3-1)创建文件

 3-2)查看文件

3-3)输出重定向和追加重定向

3-4)使用 vi 编辑器编辑文件

4、文件和文件夹的处理

4-1)对文件的处理 

4-2)查看目录信息

4-3)对目录的操作

5、文件查找

6、查找文件中的内容

7、用户与用户组权限

8、文件和文件夹权限

9、文件归档和压缩


1、切换目录

cd ../   或 cd ..

切换到上一层目录(相对)

cd 目录名

切换到指定目录(绝对)

pwd

查看当前所在的目录

cd ~
切换到当前用户的主目录中
        cd ~ 表示切换到当前用户的主目录中,如果当前的用户为 root 则相当于cd /root,如果当前用户为tom,则相当于 cd /home/tom

2、查看系统信息

fdisk -l

查看磁盘分区列表

free

查看内存使用情况

cat /proc/meminfo

查看内存信息

cat /proc/cpuinfo

查看CPU信息

top命令(类似于window中的资源管理器):

top            

      

默认进入到完整界面实时查看系统的消耗,进程的情况;

点击ctrl + C 或 q 键退出
top -n 1  查看当前的消耗,不用进入到界面实时观看

3、文本的创建和编辑

3-1)创建文件

vi  /opt/learn.txt

在指定目录下创建learn.txt文件,并进入 vi 编辑界面

touch /opt/learn

在指定目录下创建learn文件。touch 仅单纯创建一个空白文件

cat > /opt/learn.txt << EOF

在指定目录下创建文件,并在屏幕上输入内容,最后输入EOF表示输入结束。

如果不使用 << EOF 来结束,也可以在输入结束时直接按Ctrl+D来结束。

每次重复执行会将原有的内容覆盖掉。

echo "Hello World" > test.txt        将指定内容输出重定向到文件中,如果文件不存在,则创建一个文件,如果存在,则会把原来的内容覆盖。

 3-2)查看文件

vi /opt/test.txt

在vi编辑器中输出文本内容(如果没有就会创建一个)

cat /opt/test.txt

在屏幕上输出文本内容

more /opt/test.txt

分屏输出文本内容(在无法滚动的情况下比较适用,预先加载完全部内容,按回车键显示下一行

less /opt/test.txt

分屏输出文本内容(与more的区别是,看到哪一行,就加载到哪一行,查看大文件适用

strings /opt/test.txt

打印文件中可打印的字符

head -n 11 /opt/test.txt

查看指定文件的前11行

head /opt/test.txt

查看指定文件的前10行(默认10行)

tail -n 20 /opt/test.txt

查看指定文件的后20行

tail /opt/test.txt

查看指定文件的后10行(默认是10行)

tail -f /opt/test.txt

通过流的方式实时查看最新的文件内容(实时监控日志)

3-3)输出重定向和追加重定向

        > 为输出重定向(将前面执行的结果输出到指定文本中,会覆盖文本中原有的内容);

        >> 为追加重定向,将前面执行的内容追加到指定文本的末尾;

3-4)使用 vi 编辑器编辑文件

# 进入vi编辑器。如果没有这个文本文件,就会自动新建并进入vi编辑器
vi file.txt

         进入vi编辑器后,首先会处于命令模式,即当前情况下所输入的都是命令;可以点击i、a、o等进入编辑模式;在编辑模式下,在按ESC键可以重新进入到命令模式

        以下为在 vi 编辑器命令模式中的一些命令。 

i 或 a

从命令模式进入到编辑模式;i为插入文本,a为追加文本;都在光标的位置输入

ESC

从编辑模式进入命令模式

:w

保存文本但不退出

:q!

强制退出,不保存文本

:wq

保存文本并退出

o

在当前行的后面新增一行

O

在当前行的前一行后新增一行

dd

删除一行内容

D

删除当前光标到行尾的内容

x

删除当前光标所在处的一个字符

s

删除一个字符并切换回编辑模式

S

删除一行并切换回编辑模式

:n

移动光标到第n行

$

光标移动到当前行文本的行尾

A

光标移动到行尾并切换回编辑模式

^

光标移动到文本的行首

G

光标移动到文本的末尾

gg

光标移动到文本的行首

ZZ

存盘退出

/字符串

查找某个字符串

n

继续查找

:u

撤销(相当于Ctrl+Z)

:redo

重做(相当于Ctrl+Y)

4、文件和文件夹的处理

4-1)对文件的处理 

cp —— 复制

cp  hello.txt  /opt/test

把 hello.txt 文件复制一份到 /opt/test 目录下

cp  hello.txt  /opt/test/he.txt

把 hello.txt 文件复制一份到 /opt/test 目录下,并重命名为he.txt

cp  /opt/hello.txt  ./

将指定的文件复制到当前文件夹下

rm —— 删除

rm hello.txt

删除指定文件

rm -f hello.txt

强制删除,不重复确认

rm *.txt删除当前目录下的所有 .txt 文件
mv —— 移动(剪切)

mv hello.txt  he.txt

重命名hello.txt 文件为 he.txt

mv hello.txt  /opt/test

将文件剪切到指定目录下

mv hello.txt  /opt/test/he.txt

将文件剪切到指定目录下并重命名为he.txt

du  -h hello.txt

查看 hello.txt 文件的大小

true > test.txt清空文件内容
echo "" > test.txt清空文件内容

4-2)查看目录信息

ls 或 ls /opt

查看当前目录(或指定目录)下没有被隐藏的所有文件(列出文件名称)

ls -l 或 ll

以列表的形式查看当前目录下各文件的信息

ls -a

显示当前目录下的所有文件,包括隐藏文件

ls *.txt

显示当前目录下所有以txt为后缀名的文件

ls /opt/test

显示指定目录下的内容

ls -R /opt

显示指定目录及其子目录的内容

         在linux系统下如果要创建一个隐藏文件,只需要在文件名的最前面加一个点 "." 即可

        ls 直接查询不会查询到隐藏文件。ls -a 查询可以查询到。

4-3)对目录的操作

mkdir folder

创建指定名称的目录

mkdir  folder1 folder2 folder3

连续创建若干个目录

mkdir -p /opt/folder1/folder2/folder3

连续创建层次目录(folder1/folder2/folder3)

rmdir /opt/mydir

删除空的目录(不能删除非空的目录)

rm -r ./test

删除目录

rm -rf /opt/folder

强制删除文件夹

cp -r /opt/test1 /opt/test2

拷贝文件夹(加上参数-r是深度拷贝)

mv /opt/test  /opt/test2

重命名文件夹

5、文件查找

find ./ -name "hello.txt"

查找当前目录下名为hello.txt的文件或文件夹

find /home -name "hello"

查找/home目录下名字为hello的文件或文件夹

find ./ -name "*"

查找当前目录下的所有文件或文件夹

find ./ -name "[h|f]*"

查找当前目录下所有以h或f开头的文件或文件夹

find ./ -name "[a-fA-F]*"

查找当前目录下所有以小写字母a~f或大写字母A~F开头的文件或文件夹

find ./ -name "[^a-fA-F]"

查找当前目录下所有不以a、b、c、d、e、f、A、B、C、D、E、F开头的文件

find ./ -name "h?llo"

查找当前目录下满足h?llo条件的文件,其中?的位置代表一位任意字符

find ./ -perm 741

查找当前目录下所有权限为741的文件或文件夹

find ./ -user mary

查找所有者为mary的文件或文件夹

find ./ -group dev

查找所属组为dev的文件或文件夹

find ./ -mtime -3

查找3天内更新过的文件或文件夹

find ./ -mtime +3

查找3天前更新过的文件或文件夹

find ./ -newer hello.txt

查找比hello.txt更新的文件或文件夹

find ./ ! -newer hello.txt

查找比hello.txt更旧的文件或文件夹

find ./ -type d

查找当前目录下的所有文件夹

f:普通文件

d:目录(文件夹)

l:软链接文件

c:字符设备,如终端、磁带机等

b:块设备,如光盘、硬盘

find ./ -size 602c

查找当前目录下文件大小为602字节的文件

c:byte

k:kilobytes

M:megabytes

G:gigabytes

find ./ -size +600c

查找当前目录下文件大小大于602字节的文件

find ./ -name "hello*" -exec ls -l {} \;

查找当前目录下所有以hello开头的文件,并将其细节显示出来(目录也会)

find ./ -name "hello*" -exec rm {} \;

查找当前目录下所有以hello开头的文件并将其删除

find ./ -name "hello*" | xargs ls -l

查找当前目录下所有以hello开头的文件并将其细节显示出来

        “|” 是管道符,管道符主要用于多重命令处理,前面命令的打印结果作为后面命令的输入。 

        xargs 的作用是 把前面管道符的输入作为后面指令的参数。 

6、查找文件中的内容

grep "root" /etc/passwd

查找/etc/passwd文件中包含root的行

grep -n "root" /etc/passwd

查找/etc/passwd文件中包含root的行,并在每行的前方标注在原文中的行号

grep "^ma" /etc/passwd

查找以ma开头的行

grep "bash$" /etc/passwd

查找以bash结尾的行

grep "^[r|d]" /etc/passwd

查找以r或d开头的行

grep -v "root"

排除掉包含root在内的行

ls | grep test

从ls的输出中过滤出包含test的行

grep -r games /etc

在/etc目录下查找包含games的文件

find ./ name "*" | xargs grep word

输出当前目录下文件名或目录名包含word的文件或目录

wc -l

统计文件行数或输出的个数。

-c、--bytes、--chars只显示bytes数。

-l、--lines显示行数。

-w、--words只显示字数。

如不指定参数,则显示所有的统计信息

7、用户与用户组权限

        在 linux 中,root 拥有最高的权限,所有文件或文件夹的权限设定对 root 都是无效的。

        在正式的生产和服务器环境中,尽量使用普通的账号+人工权限设定的方式,避免出现漏洞后被人以root权限利用系统。

        在 window 中,administrator 和 Linux 中的 root 等同。

cat /etc/group

查看当前系统存在的用户组,<1000的是系统使用的,>1000的是用户创建的

groupadd test

创建一个用户组名为test

groupmod -n test testing

将用户组test更名为testing

groupdel test

删除用户组test

groups root

查看用户root所在的所有组

cat etc/passwd

查看所有账户

该文件每行代表一个用户账号,记录了账号的所有信息,包括用户名、密码、用户ID(UID)、组ID(GID)、连接、主目录和默认的shell等。

useradd -g test jack

创建一个用户jack,主组归属于test

useradd -g test jam -G dev

创建一个用户jam,主组归属于test,附属组dev

useradd ben

创建一个用户ben,因为没有设定其归属的主组,默认将新增一个对应名为ben的组

usermod -g dev ben

将用户ben换到dev组中

usermod -G 505 ben

将用户ben附加到gid为505的组中

usermod -d /home/test ben

将用户ben的登入目录改为/home/test (在修改前需要保证该目录存在)

userdel ben

删除用户ben

userdel -f ben

强制删除用户ben(即使该用户已经登录)

userdel -r ben

删除用户ben并删除其主目录

8、文件和文件夹权限

在任意的一个文件夹中,可以用ls -l或ll命令来显示其基本的信息和权限信息:

每一行中依次代表的内容如下:

1、文件权限:表示文件的访问权限,如读取、写入和执行权限。

2、链接数量:表示文件在文件系统中的硬链接数量。

3、文件所有者:表示文件的所有者用户及用户所属的组。

4、文件大小:表示文件的大小,以字节为单位。

5、修改时间:表示文件的最后修改时间。

6、文件名:表示文件的名称。

每一个文件都占一行来展示其信息,每一行的前10个字符所表示的意义如下:

如:drwxr-xr-x

第1个字母:‘-’代表普通文件,‘d’代表目录,‘l’为链接文件,相当于快捷方式

第2、3、4个字母代表当前文件或文件夹所属用户(owner)的权限,用u表示

第5、6、7个字母代表当前文件或文件夹所属的用户组(group)的权限,用g表示

地8、9、10个字母代表其他用户组和其他用户(other)的权限,用o表示

权限的表示方式:

r 读:也可以用数字 来表示

w 写:也可以用数字 来表示

x 执行:也可以用数字 来表示

su jame

切换到jame用户

whoami

查看当前的用户

chmod u+x test.txt

为test.txt文件的所有者添加可执行权限

chmod u-w test.txt

为文件的所有者去除写权限

chmod g-r test.txt

为文件的所在组去除可读权限

chmod o+w test.txt

为文件所在组之外的组添加可写权限

chmod a+w test.txt

为所有角色添加可写权限

chmod a+wx test.txt

为所有角色添加可写和可执行权限

chmod a-rwx test.txt

去除所有用户对文件的读写和执行权限,此时只有root用户可以操作

chmod 777 test.txt

将文件的权限设置为rwxrwxrwx,等同于chmod a-rwx test.txt   (7就是4+2+1)

chmod 643 test.txt

将文件的权限设置为rw-r---wx

chmod -R 755 /opt/temp

将/opt/temp即其所有的子文件、子目录的权限改为755(连带)

chown mary test.txt

将test.txt文件的所有者改为mary

chown mary /opt/temp

将目录的所有者改为mary

chown -R mary /opt/temp

将目录及其子目录、子文件的所有者改为mary

chgrp test hello.txt

将hello.txt 所在的组该为test组

chgrp test /opt/temp

将指定目录的所有组改为test组

chgrp -R mary /opt/temp

将指定目录及其下属的目录和文件的所有组改为mary

9、文件归档和压缩

        在Linux中,文件归档的作用是将多个文件组合成一个单一的文件,这个过程称为归档。

        它通常用于系统备份、将旧数据移至长期存储设备以及方便文件传输等场景。

        tar 命令是用于创建归档文件的常用命令。

        归档文件不是文件夹,虽然它们看起来像是文件夹,但实际上它们是单一的文件。可以在这个“文件夹”中放入任何类型的文件,包括文本文件、图片、视频等。归档文件的好处之一是,它们可以轻松地复制和移动到其他位置,而不需要单独管理每个文件。

        文件归档后并不会被压缩大小;一般是多个文件一起归档后再进行压缩。

        归档后的文件后缀为.tar;归档文件压缩后一般后缀为.tar.gz;

tar -cvf hello.tar ./*

将当前目录下的所有文件归档为hello.tar;

修饰符c:创建一个新归档

v:详细列出被处理的文件

f:指定要创建的归档文件的文件名或要解压的归档文件的名字。它必须是tar命令的最后一个参数,后面直接接文件名

tar -cvf hello.tar /opt/test

将指定目录下的所有文件归档为hello.tar;

tar -cf all.tar test1 test2 test3

选择当前目录下的三个文件进行归档,归档文件命名为all.tar

tar -tf test.tar

将归档文件test.tar中的文件显示出来

tar -xvf test.tar

将归档文件解压缩到当前目录下,恢复其中的文件和目录结构。

tar -zcvf hello.tar.gz hello.tar

将归档文件hello.tar压缩成hello.tar.gz

tar -zxvf hello.tar.gz

将压缩文件解压成hello.tar归档文件

gzip hello.tar

将归档文件hello.tar压缩成hello.tar.gz

gzip -d hello.tar.gz

将压缩文件解压成hello.tar归档文件

zip hello.zip hello.txt

将hello.txt压缩并命名为hello.zip

zip -r test.zip /opt/test

将指定的目录进行压缩并命名为test.zip

unzip -v hello.zip

查看压缩文件hello.zip中的文件信息

unzip hello.zip

解压缩hello.zip

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/971233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

avue实现用户本地保存自定义配置字段属性及注意事项(基于tj-vue2-tools)

avue实现用户本地保存自定义配置字段属性及注意事项&#xff08;基于tj-vue2-tools&#xff09; tj-vue2-tools项目地址&#xff1a;https://www.npmjs.com/package/tj-vue2-tools 文档请看项目官方 依赖js-base64 安装依赖 npm install js-base64安装 npm install tj-vue2-t…

Linux代码初试__进度条

前言 在我们的日常生活中&#xff0c;进度条是十分常见的&#xff0c;比如在软件下载中&#xff0c;应用加载中等等~~~那么进度条有什么特点&#xff1f;他又如何实现。 下面我们将结合下面的图展开讲解 一、前置理论知识 1.1回车和换行的区别 在我们的日常生活中&#x…

qt连接tcp通信和连接数据库

通过数据库实现学生管理系统 widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//判断数据库对象是否包含了自己使用的数据库 Studemt.dbif(!db.co…

国产集成开发环境工具 CEC-IDE

本周&#xff0c;国内首款适配国产操作系统、自主可控的集成开发环境工具 CEC-IDE 终于开放下载了。公开报道显示&#xff0c;这款集成开发环境工具由数字广东公司联合麒麟软件打造&#xff0c;于今年 6 月份首次亮相。本周&#xff0c;软件上线仅几天内就在知乎和 GitHub 上引…

《存储IO路径》专题:块设备层多队列blk-mq架构

我们想象一下&#xff0c;你是一个餐厅的厨师&#xff0c;你要准备很多不同的菜肴&#xff0c;而每种菜肴需要不同的食材和烹饪时间。如果每道菜都按照需要的顺序来准备&#xff0c;那么你的工作效率一定会非常低。为了提高效率&#xff0c;你会怎么做呢&#xff1f; 在linux架…

分布式 - 服务器Nginx:基础系列之Nginx静态资源优化配置指令sendfile | tcp_nopush | tcp_nodelay

文章目录 1. sendfile 指令2. tcp_nopush 指令3. tcp_nodelay 指令 1. sendfile 指令 请求静态资源的过程&#xff1a;客户端通过网络接口向服务端发送请求&#xff0c;操作系统将这些客户端的请求传递给服务器端应用程序&#xff0c;服务器端应用程序会处理这些请求&#xff…

qt day5 数据库,tcp

数据库 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QSqlDatabase>//数据库管理类 #include <QSqlRecord>//记录类 #include <QSqlQuery>//执行sql语句对应的类 #include <QMessageBox> #include<QDebug> …

Linux命令200例:man用于显示和阅读关于Linux内置命令的使用说明

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0…

玻璃工艺品可以走墨西哥专线吗?

玻璃工艺品作为一种精美独特的艺术品&#xff0c;经常被人们用来装饰家居或作为礼品赠送。然而&#xff0c;对于想要将这些玻璃工艺品运往墨西哥的商家或个人来说&#xff0c;如何选择最便捷的运输方式成为一个重要的问题。那么&#xff0c;玻璃工艺品可以走墨西哥专线吗? 墨西…

VSCode配置Python以及扩展

无论您是经验丰富的开发人员还是刚刚开始编码冒险&#xff0c;正确设置 VS Code 都可能是将您的技能提升到新水平的秘诀。因此&#xff0c;让我们深入探索在 Visual Studio Code 的虚拟墙内打造崇高编码天堂的艺术&#xff01; 为什么选择 VS 代码&#xff1f; VS Code 已成为 …

探索iVX:颠覆传统低代码平台的新潮流

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

判断对象是否发生变化,常用于监听页面表单是否修改并给出保存提示

本文主要封装方法&#xff0c;实现用户离开表单编辑页面时弹出提示框&#xff0c;若表单数据发生变化&#xff0c;则提示用户是否保存当前页面的信息&#xff0c;如图&#xff1a; 封装方法&#xff1a; /*** 比较俩个对象之间的差异&#xff0c;项目中多处用到监听表单数据是…

一文入门Web网站安全测试

文章目录 Web网页安全风险评估1. 数据泄漏2. 恶意软件传播3. 身份伪装和欺诈 测试Web网页的安全性常见方法和工具漏洞扫描器手动漏洞测试漏洞利用工具Web应用程序防火墙&#xff08;WAF&#xff09;测试渗透测试代码审查社会工程学测试 推荐阅读 Web网页安全风险评估 越来越多…

L1-058 6翻了(Python实现) 测试点全过

前言&#xff1a; {\color{Blue}前言&#xff1a;} 前言&#xff1a; 本系列题使用的是&#xff0c;“PTA中的团体程序设计天梯赛——练习集”的题库&#xff0c;难度有L1、L2、L3三个等级&#xff0c;分别对应团体程序设计天梯赛的三个难度。更新取决于题目的难度&#xff0c;…

ROS通信机制之动作(Action)服务的实践

1、动作概述 讲完了 服务 之后&#xff0c;接下来就是通信的第三种机制&#xff0c;动作。在上节我们知道服务的应用场景是需要在有限时间内完成&#xff0c;而对于一些比较复杂的任务&#xff0c;需要耗时比较长&#xff0c;甚至是不确定时间的时候&#xff0c;就需要用到动作…

20.添加HTTP模块

添加一个简单的静态HTTP。 这里默认读者是熟悉http协议的。 来看看http请求Request的例子 客户端发送一个HTTP请求到服务器的请求消息&#xff0c;其包括&#xff1a;请求行、请求头部、空行、请求数据。 HTTP之响应消息Response 服务器接收并处理客户端发过来的请求后会返…

尚硅谷SpringMVC (9-13)

九、HttpMessageConverter HttpMessageConverter &#xff0c;报文信息转换器&#xff0c;将请求报文转换为 Java 对象&#xff0c;或将 Java 对象转换为响应报文 HttpMessageConverter提供了两个注解和两个类型&#xff1a; RequestBody &#xff0c; ResponseBody &#xff…

如何创建美观的邮件模板并通过qq邮箱的SMTP服务向用户发送

最近在写注册功能的自动发送邮箱告知验证码的功能&#xff0c;无奈根本没有学过前端&#xff0c;只有写Qt的qss基础&#xff0c;只好借助网页设计自己想要的邮箱格式&#xff0c;最终效果如下: 也推销一下自己的项目ShaderLab&#xff0c;可运行ShaderToy上的大部分着色器代码&…

Weblogic漏洞(二)之 Weblogic漏洞环境安装

Weblogic漏洞环境安装 这里我们使用Kali虚拟机安装docker并搭建vulhub靶场来进行Weblogic漏洞环境的安装 安装 docker #更新软件 apt-get update #安装CA证书 apt-get install -y apt-transport-https ca-certificates #安装docker apt install docker.io #查看docker是否安…

【商业案例应用】C端产品设计流程——团购产品案例

文章目录 1、项目背景介绍2、产品前期分析3、产品规划4、总结 1、项目背景介绍 2、产品前期分析 3、产品规划 4、总结