一、zip可以打包文件和文件夹
打包文件
[root@ymm-afrr A]# zip 123.zip 1
adding: 1 (stored 0%)
[root@ymm-afrr A]# ls
, ! 1 123.zip 2 3 4 456 5 678 A B C d e
打包文件夹
[root@ymm-afrr A]# zip 456.zip 456/*
adding: 456/1 (stored 0%)
adding: 456/123/ (stored 0%)
adding: 456/2 (stored 0%)
unzip解压缩,解压zip压缩包专属,需要先将文件删除,因为一个文件夹中不能有一样的
[root@ymm-afrr A]# rm -rf 456
[root@ymm-afrr A]# unzip 456.zip
Archive: 456.zip
extracting: 456/1
creating: 456/123/
extracting: 456/2
extracting: 456/3
extracting: 456/4
[root@ymm-afrr A]# ls
, ! 123.zip 4 456 456.zip 5 678 A B C d e
二、归档工具tar。(最常用)
常用的OPTION:
-c:创建归档文件
-f file.tar:指定要操作的归档文件
-x:还原归档
-v:显示归档过程
-p:归档时保留权限信息。只有管理员才有权限用此选项
-C:指定还原归档或解压时的目标目录
-tf:不展开归档,直接查看归档了哪些文件
-zcf 调用gzip的格式进行压缩
[root@ymm-afrr A]# tar -zcf 678.tar.gz 678
[root@ymm-afrr A]# ls
, ! 123.zip 4 456 456.zip 5 678 678.tar.gz A B C d e
-jcf调用bzip2的方式
[root@ymm-afrr A]# tar -jcf 678.tar.bz2 678
[root@ymm-afrr A]# ls
, 123.zip 456 5 678.tar.bz2 A C e
! 4 456.zip 678 678.tar.gz B d
-
Jcf调用xz的方式
[root@ymm-afrr A]# tar -Jcf 678.tar.xz 678
[root@ymm-afrr A]# ls
, 123.zip 456 5 678.tar.bz2 678.tar.xz B d
! 4 456.zip 678 678.tar.gz A C e
xf还原归档并自动根据压缩方式解压
[root@ymm-afrr A]# tar -xf 678.tar.gz
[root@ymm-afrr A]# ls
, 123.zip 456 5 678.tar.bz2 678.tar.xz B d
! 4 456.zip 678 678.tar.gz A C e
-
C指定解压缩的位置
[root@ymm-afrr A]# tar -xf 456.tar.bz2 -C /
[root@ymm-afrr A]# cd /
[root@ymm-afrr /]# ll
总用量 24
drwxr-xr-x. 3 root root 53 2月 20 09:40 456
三、文本排序命令sort
-n以数值的大小进行排序
[root@ymm-afrr ~]# sort -n 1.txt
123
234
345
456
567
678
-r逆序排列(前面需要接上-n不然他不知道以那种方式的逆序排列)
[root@ymm-afrr ~]# sort -n -r 1.txt
678
567
456
345
234
123
-t:字段分隔符
[root@ymm-afrr ~]# sort -nr -t : /etc/passwd
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
root:x:0:0:root:/root:/bin/bash
-k:以哪个字段为关键字进行排序
[root@ymm-afrr ~]# sort -nr -t : -k 3 /etc/passwd
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
chrony:x:998:995::/var/lib/chrony:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
-u:去重,排序后相同的行只显示一次
[root@ymm-afrr A]# sort -u 4566
145
2
343
346
5
78
-f:排序时忽略字符大小写
[root@ymm-afrr A]# sort -f 4566
145
2
2
2
343
346
5
5
四、文本去重命令uniq
-c:显示文件中行重复的次数
[root@ymm-afrr A]# uniq -c 4566
1 145
1 343
1 346
3 2
3 5
1 78
1 5
-d:只显示重复的行
[root@ymm-afrr A]# uniq -d 4566
2
5
-u:只显示未重复的行
[root@ymm-afrr A]# uniq -u 4566
145
343
346
78
5
五、基础命令之cut(cut文本截取命令)
d:指定字段分隔符,默认是空格
-f:指定要显示的字段
-f 1,3:显示1和3字段
-f 1-3:显示1到3字段
[root@ymm-afrr ~]# cut -d : -f 1,3 /etc/passwd
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
六、awk文本截取字段
以冒号为分隔符截取第一字段和第三字段
[root@ymm-afrr ~]# awk -F ':' '{print$1,$3}' /etc/passwd
root 0
bin 1
daemon 2
adm 3
lp 4
grep -E -v 用的多
七、sed修改命令
将4566文件中的3改为4,g代表全局改动,如果是2则代表在第二个重复的位置改动
[root@ymm-afrr A]# sed -i 's/3/4/g' 4566
[root@ymm-afrr A]# cat 4566
145
444
446
2
2
2
5
5
5
78
5
八、文本过滤命令grep
-i:忽略大小写
[root@ymm-afrr A]# grep -i '2' 4566
2
2
2
–color:匹配到的内容高亮显示
-v:显示除了这个以外的内容
[root@ymm-afrr A]# grep -v '2' 4566
145
444
446
5
5
5
78
5
-o:只显示单独的内容(如456仅显示4)
[root@ymm-afrr A]# grep -o '4' 4566
4
4
4
4
-E:使用扩展正则表达式(中间用|隔开可同时匹配多个 egrep=grep -E)
[root@ymm-afrr A]# grep -E '4|6' 4566
145
444
446
-q:静默模式,不输出任何信息
-A #:此处的#必须是数字。被正则匹配到的内容以及其后面#行的内容都显示出来
[root@ymm-afrr A]# grep -A 2 '1' 4566
145
444
446
-B #:此处的#必须是数字。被正则匹配到的内容以及其前面#行的内容都显示出来
[root@ymm-afrr A]# grep -B 2 '4' 4566
145
444
446
-C #:此处的#必须是数字。被正则匹配到的内容及其前后各#行的内容都显示出来
[root@ymm-afrr A]# grep -C 2 '4' 4566
145
444
446
2
2
九、文件查找命令find
-name filename:对文件名精确匹配,支持通配符
[root@ymm-afrr ~]# find -name 1.txt
./1.txt
-iname filename:文件名匹配时不区分大小写
[root@ymm-afrr ~]# find -iname a
./A
./A/A
-regex pattern:基于正则表达式进行文件名匹配
-user:查找某用户的所有文件
[root@ymm-afrr ~]# find -user root
.
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
./ifcfg-etho
./.bash_history
./man.sh
-group:查找某组的所有文件
[root@ymm-afrr ~]# find -group 123
-uid:根据UID进行查找
-gid:根据GID进行查找
-nouser:查找没有拥有者的文件
-nogroup:查找没有属组的文件
-type:根据文件类型进行查找