目录
一、阅览文件
1、cat
2、head
3、tail
4、more
5、less
二、过滤命令——grep
1、格式
2、选项
3、匹配模式
三、cut切割命令
1、格式
2、选项
四、sort排序命令
1、格式
2、选项
五、uniq去重命令
六、替换文件中的字符显示tr
1、格式
2、选项
七、复制、移动文件
1、复制
2、移动
八、查找文件
1、whereis
2、which
3、locate
4、find
九、压缩与解压
1、zip
2、gzip
3、bzip2
4、xz
十、tar归档命令
1、格式:
2、选项
——用于查看短文本文件的内容
-n:显示行号
-b:显示非空行号
-num:指定文件显示多少行内容,如果不带选项默认是10行
——从尾部去阅读文件
-n num 指定一次显示多少内容
-f 选项可以保持与日志文件同步,达到实时更新
tail命令更多的用于查看系统日志文件,按【CTRL+C】键终止显示和跟踪
——首先会显示阅读的进度,其次阅读到最后时会自动退出,空格向下翻页,b按键向上翻页,enter向下按行滚动
-c 先清空命令之上的内容,后开始显示文件
——没有进度显示,并且阅读完毕后也不会自动退出。空格向下翻页,b按键向上翻页,enter向下按行滚动,按 按键"q" 退出文件
-c 先清空命令之上的内容,后开始显示文件
-N 在每行前添加输出行号
grep [选项] 关键字 文件
command | grep 关键字
-n 显示行号
-i 不区分大小写
-v 反向选择——列出没有关键字的行
-A n /-B n /-C n 向下多显示n行/向上多显示n行/上下多显示n行
-c 显示找到了多少行
搭配cat命令过滤使用
单独使用grep
grep a 文件名 查找文件中包含a的行
grep ^a 文件名 查找文件中a开头的行
grep ^[abc] 文件名 查找文件中a|b|c开头的行。(也开始【0-9】【a-z】表示范围)
grep ^[^a] 文件名 查找文件中非a的行
grep a$ 文件名 显示a结尾的行
grep ^$ 文件名 匹配空行,过滤空白行
grep -r h ./* 如果要明确搜索当前目录中的子目录由h的行
grep -d skip h./* 忽略当前目录下的子目录下的普通文件
查找以a-z开头的:
查找以n结尾的:
查找不是以a开头的:
cut [选项] 文件
-d 指定用于划分列的分隔符
-f n 指定划分后提取第n列
-c n 提取文件每一行的第n字符
sort [选项] 文件
-r 降序
-n 以数值类型进行排序
-u 去重
-t 分隔符
-k 以某一列进行排序
-f 忽略大小写
-b 忽略缩进与空格
# 以:为分割符然后用第三列进行数值排序并只显示前三行
[root@localhost ~]# sort -t : -k 3 -n /etc/passwd | head -3
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
1、定义
用于去除文本中连续的重复行
2、格式
uniq [选项] 文件
3、选项
-c count,统计字符出现的次数
command | tr [选项] [old] [new]
-c 反选设定字符
-d 删除指定的字符
-s 缩进连续重复字符成单个字符
将file中的所有小写字母替换成大写字母
cp copy复制文件
格式:cp [选项] 源文件 目标文件
选项:
-a 通常在拷贝目录时使用。保留链接、文件属性,并递归地拷贝目录
-d 拷贝时保留链接
-f 在覆盖已经存在的目标文件时不提示(强制覆盖不做提醒)
-i 在覆盖目标文件前将给出提示要求用户确认,回答y时目标文件将被覆盖,是交互式拷贝
-p 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名
mv move移动文件(剪切或重命名)
格式:mv [选项] 源文件名称 目标文件名称
——剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其本质就是对文件进行了重命名操作
原本的date.txt
[root@localhost ~]# mv date.txt new_date.txt
移动操作后:
移动多个文件时,最后一个参数必须是一个路径,也就是容纳多个文件的位置
搭配通配符
——查看命令的保存位置,以及相关的说明文档
[root@localhost new_dir]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
——查看命令的保存位置(命令的可执行文件路径)
[root@localhost new_dir]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
——本质是一个查询本地数据库的命令,在数据库中查找文件的位置
——优:速度最快,效率最高,消耗资源小
——缺:需要更新数据库,更新命令(update、updatedb)
——可按照文件名、文件大小、文件权限、类型、所属者、所属组、时间等待来进行的检索
格式:find 范围 [选项] [关键字]
选项:
-name 根据文件名进行搜索
-iname 文件名不区分大小写
-inum 根据硬盘索引号搜索
-path 可对文件的dirname + basename 进行查找
-size +/- n(k/m/g/t) 通过文件的大于/小于 n(kb/mb/gb)进行匹配
-atime +/- n 根据访问时间搜索——n天以内/以外访问过的文件,如不带符号表示 n~n+1
-mtime 根据修改时间搜索 根据访问时间搜索——n天以内/以外访问过的文件
-ctime 根据元数据修改时间搜索 根据访问时间搜索——n天以内/以外访问过的文件
-newer file1 -newer !f2
-perm 根据权限去搜索(r:read、w:write、x:excute)
-type 根据文本类型去搜索
-a and 逻辑与(优先级:与>或>非)
-o or 逻辑或
-not not 逻辑非
实例操作:
[root@localhost ~]# find . -name file # . 代表当前路径
./file
[root@localhost ~]# find $(pwd) -name file
/root/file
——可压缩文件和目录
格式:zip file (压缩)
unzip file (解压)
压缩率最高,使用-9 (指定压缩率压缩文件)
多文件压缩
[root@localhost ~]# zip files.zip file file1 file2 file3
adding: file (deflated 45%)
adding: file1 (stored 0%)
adding: file2 (stored 0%)
adding: file3 (stored 0%)
展示压缩包里的内容:(不解压)
解压缩到指定目录:
压缩文件夹:
# 向压缩文件中的files.zip中添加file4.txt文件
zip -m files.zip file4.txt
# 删除压缩文件中的文件
zip -d files.zip file4.txt
# 压缩文件时排除某个文件
zip files.zip *.txt -x file4.txt
格式:gzip 文件名 (压缩)
gunzip 压缩包名称 (解压) = gzip -d 命令
——不需要指定压缩包的名字,回车即可对文件进行压缩
——对文件夹进行压缩,其实是对文件夹下子文件都进行压缩
查看压缩过的文本文件内容:
——zcat 文件名.gz
——zless 文件名.gz (退出——“:q”)
使用gzip压缩文件(压缩之后原始文件丢失)
使用gzip压缩目录下文件(压缩之后原始文件丢失)
压缩且保留原始文件
压缩:bzip2 文件名
压缩且保留源文件:bzip2 文件名 -k
指定压缩率:bzip2 -9 文件名
解压:bzip2 -d 文件名.bz2
bunzip 文件名.bz2
查看压缩过的文件内容:
bzcat 文件名.bz2
bzless 文件名.bz2
压缩:
xz 文件名 (不保留原文件)
xz 文件名 -k (保留原文件)
xz 目录名/* (压缩目录下的所有文件)
xzcat 文件名.xz (查看压缩文件内容 也可用xzless)
解压:
xz -d 压缩包名.xz
unxz -压缩包名.xz
tar [选项] [args]......
(任选其一):
-c 创建.tar格式的包文件
-x 释放.tar格式的包文件
-t 查看包中文件列表
(必选):
-f 用于指定打包文件名,当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名;当与-x选项一起使用时,则释放该选项指定的tar包文件
(辅助选项):
-v 表示在命令执行时显示详细的提示详细
-p 打包时保留文件及目录的权限
-z 调用gzip程序,以gzip格式压缩或解压缩文件(.tar.gz)
-j 调用bzip2程序,以bzip2格式压缩或解压缩文件(.tar.bz2)
-J 使用xz压缩或解压缩文件(.tar.xz),xz的压缩率通常比bzip2更高
-C 和-x选项一起使用,表示释放包时指定释放的目标路径
# 打包czf/cjf/cJf
[root@localhost ~]# tar czf files.gz file1 file2 file3
# 查看包内文件 tf
[root@localhost ~]# tar tf files.gz
file1
file2
file3
# 查看包内文件详情
[root@localhost ~]# tar tvf files.gz
-rw-r--r-- root/root 11 2023-09-19 12:10 file1
-rw-r--r-- root/root 8 2023-09-17 18:26 file2
-rw-r--r-- root/root 8 2023-09-17 18:26 file3
# 解压 xf/xzf/xjf/xJf
[root@localhost ~]# tar -xf files.gz