Linux【第二章】linux文件相关命令

Linux【第二章】linux文件相关命令,第1张

Linux【第二章】linux文件相关命令

文件相关

磁盘与目录查看目录下所有文件文件编辑

vi编辑器查看文件内容查看日志内容 文件权限

了解chmod查询文件

grepfind 解压缩文件

tar解压文件zip解压文件unzip解压包 总结

我们知道 Linux 下有非常多的命令,我们可以通过这些命令在 Shell 环境下与机器进行交互,那么 Linux 下有多少资源可以供我们调度呢?其实是非常多的,但所有资源都可以分为三大类型。

文件:Everything is file;

进程:文件的运行形态;

网络:特殊的文件。

文件相关

首先,我们来看文件,文件也可以理解为数据,在 Linux 环境下有一个很基本的设计原则,即 Everything is file,所有的内容都是以文件的形式来进行抽象的,比如:进程、网络、硬件等,都可以抽象成文件,可以对其进行打开、读取、写入等 *** 作,所以文件便是我们入门的第一个知识点,文件又可以分为这样几类常见的命令。

磁盘与目录
# 打印设备上挂载了多少个磁盘设备,以及磁盘里还有多少可用空间
df  

df -h

图示
查看目录下所有文件

ls 可以打印当前目录下的所有文件和目录,你可以通过 ls 命令,把当前所有的目录和文件都打印出来了。

[root@VM-4-11-centos /]# ls

图示

ls 有一个常用的参数叫 -l,-l 可以打印出每个文件的基本信息

[root@VM-4-11-centos /]# ll

这里打印出了它的文件权限、文件归属 root、文件大小,以及何时被创建等信息。

图示
进入tmp文件查看文件下的所有文件

[root@VM-4-11-centos /]# cd tmp/
[root@VM-4-11-centos tmp]# ls

使用 ls、cd 命令可以让我们在不同目录之间进行切换,切换之后还可以通过 pwd 命令获取当前目录所在的路径。

[root@VM-4-11-centos tmp]# pwd

文件编辑

以上就是磁盘与目录进行切换、读取、获取信息的一些常用命令,接下来,我们进入一个文件并对文件进行编辑。

vi编辑器

i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令

输入模式

在命令模式下按下【i】就进入了输入模式。在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符 方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式

退出vi编辑器

:w 将编辑的数据写入硬盘档案中(常用)
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入,还是跟档案权限有关
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~ :wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ 这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出) ZQ 不保存,强制退出。效果等同于 :q!。
:w> [filename] 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将『filename』 这个档案内容加到游标所在行后面 :n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!

先创建一个file_demo.txt

[root@VM-4-11-centos tmp]# vi ./file_demo.txt

打开之后

键盘敲击i,进入编辑状态
在文件中输入内容

然后用wq退出文件

查看文件内容

我们可以使用三种方法阅读文件:

cat,它可以阅读文件并查找文件内容,但缺点就是一页的内容非常长;

more,可以实现翻页阅读,缺点就是不够灵活;

less,它既可以实现上下滑动,还可以实现左右移动,可以实现交互式阅读,是三种阅读方法中最强大的。

cat

[root@VM-4-11-centos tmp]# cat file_demo.txt

more

[root@VM-4-11-centos tmp]# more file_demo.txt 

回车查看更多
less

可以通过键盘上下左右来控制阅读,方便

[root@VM-4-11-centos tmp]# less file_demo.txt 

查看日志内容

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容

Linux tail命令语法 (1. Linux tail Command Syntax)
The syntax of tail command is:

tail命令的语法为:

tail [参数] [文件]  

参数:

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

要显示 config.log 文件的最后 10 行,请输入以下命令:

[root@yaoweilai-test1 nacos]# tail config.log  # 默认显示十行

要跟踪名为 config.log 的文件的增长情况,请输入以下命令:

[root@yaoweilai-test1 nacos]# tail -f config.log

显示文件 config.log 的最后 500 个字符:

[root@yaoweilai-test1 nacos]# tail -c 500 config.log

文件权限

虽然我们掌握了如何编辑一个文件,但在编辑文件之前仍然需要管理文件的权限。那么如何对一个文件的权限进行管理呢?

了解chmod

Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

权限修改人只能是文件所有者或者root

只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。

八进制语法

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。

#权限rwx二进制7读 + 写 + 执行rwx1116读 + 写rw-1105读 + 执行r-x1014只读r–1003写 + 执行-wx0112只写-w-0101只执行–x0010无—000

例如, 765 将这样解释:

所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。

r=4,w=2,x=1
若要 rwx 属性则 4+2+1=7;
若要 rw- 属性则 4+2=6;
若要 r-x 属性则 4+1=5。

举例:

赋值file_demo.txt 全权限

[root@VM-4-11-centos tmp]# chmod 777 file_demo.txt 
[root@VM-4-11-centos tmp]# ll file_demo.txt 

去除用户组所有权限

[root@VM-4-11-centos tmp]# chmod 707 file_demo.txt 
[root@VM-4-11-centos tmp]# ll file_demo.txt 

查询文件 grep

grep 命令用于查找文件里符合条件的字符串

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

-o 表示只打印匹配的数据
-E 表示支持使用扩展正则表达式
-i 表示不区分大小写

查找文件中是否有符合的字符串

[root@VM-4-11-centos /]# grep 测试一下 /tmp/file_demo.txt 

在当前文件夹下查找是否有符合字符串的文件

[root@VM-4-11-centos tmp]# grep 测试 *

查找文件夹中文件是否包含某个字符串

以递归的方式查找符合条件的文件。例如,查找指定目录/tmp 及其子目录(如果存在子目录的话)下所有文件中包含字符串"测试"的文件,并打印出该字符串所在行的内容,使用的命令为

grep -r 测试 /tmp/

不区分大小写查询

[root@VM-4-11-centos tmp]# grep -i CESHI *

只打印匹配到的数据

[root@VM-4-11-centos tmp]# grep -o -i CESHI *

grep 正则表达式匹配查询

正则表达式分为两类,第一类称为基本表达式,基本表达式包括了典型的正则标识符。

^表示开头;
$表示结尾;
[]表示任意匹配项;
*表示0个或多个;
.表示任意字符。

第二类是扩展表达式,它在基础表达式的基础上做了一些扩展,支持了更高级的语法和更复杂的条件。

?表示非贪婪匹配;
+表示一个或多个;
() 表示分组;
{} 表示一个范围的约束;
| 表示匹配多个表达式中的任何一个。

举例:

我要查询 csehi,以及ssss

[root@VM-4-11-centos tmp]# grep -E "(ceshi|ssss)" file_demo.txt

如果不带-E 则不会返回任何信息

如果不想带-e搜索, 使用转义然后查询,可以达到一样的效果

[root@VM-4-11-centos tmp]# grep  "(ceshi|ssss)" file_demo.txt 

任意匹配

[root@VM-4-11-centos tmp]# grep "[ceshi].." file_demo.txt

find

Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

查询当前文件夹下符合条件数据文件

[root@VM-4-11-centos tmp]# find . -name "*.log"

全局查询python3文件

[root@VM-4-11-centos tmp]# find / -name python3

忽略大小写查询

find / -iname PYTHON3

解压缩文件

Linux tar(英文全拼:tape archive )命令用于备份文件。

tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

tar解压文件

常用的参数

-v或–verbose 显示指令执行过程。
-f<备份文件>或–file=<备份文件> 指定备份文件。
-z或–gzip或–ungzip 通过gzip指令处理备份文件。
-x或–extract或–get 从备份文件中还原文件。
-g或–listed-incremental 处理GNU格式的大量备份。
-G或–incremental 处理旧的GNU格式的大量备份。
-h或–dereference 不建立符号连接,直接复制该连接所指向的原始文件。
-i或–ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。
-k或–keep-old-files 解开备份文件时,不覆盖已有的文件。
-K<文件>或–starting-file=<文件> 从指定的文件开始还原。
-l或–one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。
-L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。
-m或–modification-time 还原文件时,不变更文件的更改时间。
-M或–multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。
-N<日期格式>或–newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。
-o或–old-archive或–portability 将资料写入备份文件时使用V7格式。
-O或–stdout 把从备份文件里还原的文件输出到标准输出设备。
-p或–same-permissions 用原来的文件权限还原文件。
-P或–absolute-names 文件名使用绝对名称,不移除文件名称前的"/"号。
-r或–append 新增文件到已存在的备份文件的结尾部分。
-R或–block-number 列出每个信息在备份文件中的区块编号。
-s或–same-order 还原文件的顺序和备份文件内的存放顺序相同。

解压文件 比如解压python文件

[root@VM-4-11-centos tmp]# tar -zxvf Python-3.8.6.tgz 

压缩文件

我们先将刚才解压的文件cp一份,然后在进行压缩

[root@VM-4-11-centos tmp]# cp -r Python-3.8.6/ py3


然后压缩文件

[root@VM-4-11-centos tmp]# tar -zcvf py3.tgz py3/

zip解压文件

Linux zip 命令用于压缩文件。

zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。

常用参数:

-A 调整可执行的自动解压缩文件。
-b<工作目录> 指定暂时存放文件的目录。
-c 替每个被压缩的文件加上注释。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-f 更新现有的文件。
-F 尝试修复已损坏的压缩文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h 在线帮助。
-i<范本样式> 只压缩符合条件的文件。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-J 删除压缩文件前面不必要的数据。
-k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。
-ll 压缩文件时,把LF+CR字符置换成LF字符。
-L 显示版权信息。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串> 不压缩具有特定字尾字符串的文件。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-S 包含系统和隐藏文件。
-t<日期时间> 把压缩文件的日期设成指定的日期。
-T 检查备份文件内的每个文件是否正确无误。
-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 显示指令执行过程或显示版本信息。
-V 保存VMS *** 作系统的文件属性。
-w 在文件名称里假如版本编号,本参数仅在VMS *** 作系统下有效。
-x<范本样式> 压缩时排除符合条件的文件。
-X 不保存额外的文件属性。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z 替压缩文件加上注释。
-$ 保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率> 压缩效率是一个介于1-9的数值。

zip打包

[root@VM-4-11-centos tmp]# zip -q file_demo file_demo.txt

unzip解压包

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。 [.zip文件] 指定.zip压缩文件。 [文件] 指定要处理.zip压缩文件中的哪些文件。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令。

zip解压文件

[root@VM-4-11-centos file]# unzip file.zip 

查看压缩文件中包含的文件

[root@VM-4-11-centos file]# unzip -l file.zip

查看压缩文件目录信息,但是不解压该文件

[root@VM-4-11-centos file]# unzip -v file.zip

总结

本章主要是讲述了linux的常用命令.主要针对文件类型以及权限进行了详细描述,另外我们常用的查找文件,或者查找文件夹,是我们日常查看日志需要了解的命令,能够帮助我们更快的定位到问题,提交给开发并修改,解压缩文件是我们下载第三方插件时需要用到的,面试的时候也是经常问题的

部分资料来自菜鸟教程
https://www.runoob.com/linux/linux-command-manual.html

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5704127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存