Linux基础三:打包 归档 去重 基础命令

本文详细介绍Linux下zip与tar的使用方法,包括文件压缩、解压、归档及查看等操作,同时涵盖sort、uniq、cut、awk、sed、grep等文本处理命令的高级应用,帮助读者掌握Linux系统文本数据的高效管理和分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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:根据文件类型进行查找
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值