Linux入门学习指南(二)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


别来几春未还家,玉窗五见樱桃花。——《久别离》


文章目录


Linux入门专栏
Linux入门学习指南
Linux入门学习指南(二)


一、文件常用的压缩与解压

Linux系统中常用的压缩与解压文件

1. 常见压缩与解压

Linux中一般将文件压缩为tar.gz结尾文件
tar.gz文件命名

其中tar是把文件打成一个包,并不压缩
gz是用gzip把打成包的.tar文件压缩,所以最后的结果是.tar.gz

1.1 压缩文件

压缩

1.1.1 语法

压缩文件的语法

tar -cvfz 文件名.tar.gz 需要压缩的文件或目录
1.1.2 举例

将当前位置的test文件夹压缩为backup.tar.gz

tar -cvfz backup.tar.gz ./test/

当然,如果不想压缩,只想打包为tar,则可以执行如下

tar -cvf backup.tar ./test/
1.1.3 参数

可用参数及其描述如下

参数描述
-c--create 创建一个压缩文件
-v--verbose 处理后
-f--file 指定文件名
-z--gzip,--ungzip 过滤

1.2 解压缩

1.2.1 语法

语法如下

tar xvfz 文件名.tar.gz 压缩文件存储目录
1.2.2 举例

举例如下

tar xvfz backup.tar.gz ./test/
1.2.3 参数

参数与描述如下

参数描述
-x--extract,--get 解压一个文件
-v--verbose 处理后
-f--file 指定文件名
-z--gzip,--ungzip 过滤

2. 查看压缩文件中的内容

查看压缩文件中的文件列表

tar -tvzf *.tar.gz

参数

参数描述
-t--list 列举压缩文件中的文件
-r--append 添加文件到压缩文件中

3. 使用tar和gzip压缩与解压文件

关于tar和gzip的使用方法

3.1 压缩为tar.gz文件

将文件夹压缩为tar.gz后缀的压缩文件

3.1.1 语法

先执行打包

tar cvf 压缩后的文件名.tar 压缩前的文件夹

然后执行压缩

gzip -q 压缩后的文件名.tar
3.1.2 举例

如将文件夹/test压缩为test.tar文件

tar cvf test.tar /test
gzip -q test.tar
3.1.3 语法2

除了上面的语法还可以使用以下命令

tar cvfz 压缩后的文件名.tar.gz 压缩前的文件夹目录

3.2 解压tar.gz文件

解压一个后缀为tar.gz的文件

3.2.1 语法
gunzip 压缩文件名.tar.gz
tar xvf 压缩文件名.tar
3.2.2 语法2
tar xvfz 压缩文件名.tar.gz

3.3 一个命令完成压缩为tar.gz文件

tar cvf - 待压缩的文件夹 | gzip -qc > 压缩后的文件名.tar.gz

3.4 一个命令完成解压tar.gz文件

gunzip -c 压缩文件名.tar.gz | tar xvf -

3.5 解开tar.Z的文件

tar xvfz 压缩文件名.tar.Z

uncompress 压缩文件名.tar.Z
tar xvf 压缩文件名.tar

3.6 解开.tgz文件

gunzip 压缩文件名.tgz

4. 压缩和解压缩.bz2的包

4.1 压缩

bzip2 待压缩文件

4.2 解压

bunzip2 待解压文件

注意 bz2压缩格式不常用

4.3 解压tar.bz2的包

tar jxf 待解压文件

二、Linux常见的压缩文件种类与对应的压缩解压方法

Linux下常见压缩文件有以下几种:

压缩文件种类
.tar
.tar.gz
.tgz
.gz
.Z
.bz2

除了以上还有其他的(如tar之后的压缩文件后缀都是.tar.xxx),不一一列举

关于每种压缩文件对应的打包或压缩、解压的命令如下

1. .tar

注:.tar结尾的文件并非压缩文件,而是打包文件,所以对应的只有打包和解包
打包语法

tar cvf 打包后的文件名.tar 待打包的文件目录

解包语法

tar xvf 打包文件名.tar

2. .gz

压缩语法

gzip 待压缩文件

解压缩语法1

gunzip 待解压文件名.gz

解压语法2

gzip -d 待解压文件名.gz

3. .tar.gz

压缩命令

tar zcvf 压缩文件名.tar.gz 待压缩文件夹

解压命令

tar zxvf 待解压文件名.tar.gz

4. .tgz

压缩命令

不知

解压命令

tar zxvf 待解压文件名.tgz

5. .bz2

压缩命令

bzip2 -z 待压缩文件

解压命令1

bzip2 -d 待解压文件名.bz2

解压命令2

bunzip2 待解压文件名.bz2

6. .tar.bz2

压缩命令

tar jcvf 压缩文件名.tar.bz2 待压缩文件夹

解压命令

tar jxvf 待解压文件名.tar.bz2

7. .bz

压缩命令

不知道

解压命令1

bzip2 -d 待解压文件名.bz

解压命令2

bunzip2 待解压文件名.bz

8. .tar.bz

压缩命令

不知道

解压命令

tar jxvf 待解压文件名.tar.bz

9. .Z

压缩命令

compress 待压缩文件

解压命令

uncompress 待解压文件名.Z

10. .tar.Z

压缩命令

tar Zcvf 压缩文件名.tar.Z 待压缩文件夹

解压命令

tar Zxvf 待解压文件.tar.Z

11. .zip

压缩命令

zip 压缩文件名.zip 待压缩文件夹

解压命令

unzip 待解压文件名.zip

12. .rar

压缩命令

rar e 压缩文件名.rar

解压命令

rar a 待解压文件名.rar

13. .lha

压缩命令

lha -a 压缩文件名.lha 待压缩文件夹

解压命令

lha -e 待解压文件名.lha

14. .rpm

解包命令

rpm2cpio 包名.rpm | cpio -div

等等

三、Linux压缩解压语法大全及示例演示

1. tar命令详解

tar可以为文件和目录创建打包文件
tar可以在打包文件中变更文件或者想文件中加入新的文件

1.1 语法

tar打包文件的语法

tar [主选项+辅选项] 文件或者目录

使用该命令时,主选项必须有(告诉tar要做什么),辅选项是辅助使用,可以选用

1.2 参数与描述

主选项的参数和描述如下

参数描述
c创建新的档案文件,如果用户想备份一个目录或者一些文件,则需选择这个选项
r把存档的文件追加到档案文件的末尾
t列出档案文件的内容,查看已经备份的文件列表
u更新文件,新增的文件取代备份文件,若备份文件中找不到更新的文件,则把它追加到备份文件的最后
x从档案文件中释放文件

辅助选项的参数与描述如下

参数描述
b为磁带机设定的,其后跟一个数字,用于说明区块大小,系统预设值为20(20*512bytes)
f使用档案文件或者设备,这个选项通常是必须
k保存已经存在的文件,如我们把文件还原,在还原过程中,遇到相同的文件,不会进行覆盖
m在还原文件时,把所有文件的修改时间设定为现在
M创建多卷的档案文件,以便在几个磁盘中存放
v详细报告tar处理的文件信息,如无此选项,trar不报告文件信息
w每一步都要求确认
z用gzip来压缩或解压文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要用该选项进行解压

1.3 举例

把/test目录下包括其子目录的全部做备份,备份文件名为test.tar

tar cvf test.tar /test

把/test目录下包括其子目录的全部做备份,进行压缩,文件名为test.tar.gz

tar czvf test.tar.gz /test

把test.tar.gz文件还原并解压缩

tar xzvf test.tar.gz

查看usr.tar备份文件的内容,并以分屏方式显示在显示器上

tar tvf test.tar | more

用户在/dev/d0设备的软盘中创建一个备份文件,并将/test目录中的所有文件拷贝到备份文件中

tar cf /dev/d0 /test

恢复设备磁盘中的文件,使用xf选项

tar xf /deb/d0

若备份文件的大小超过了设备可用的存储空间,如果是软盘,可创建一个多卷的tar备份文件,M选项指示tar命令提示你使用新的存储设备
当使用M选项向一个软驱进行存档时,tar命令在一张软盘已满的时候会提醒再放入一张新的磁盘,此时即可把tar档案存入几张磁盘中

tar cMf /dev/d0 /test

要恢复几张磁盘中的档案,只要将第一张放入软驱,然后输入有x和M选项的tar命令,必要时提醒放入另一张软盘

tar xMf /dev/d0

2. gzip命令

2.1 语法

语法如下

gzip [选项] 压缩或解压的文件名

2.2 选项和含义

参数与描述如下

参数描述
-c将输出写到标准输出上,保留原有文件
-d将压缩文件解压
-l对每个压缩文件显示下列字段:压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字
-r递归式查找指定目录并压缩其中的所有文件或者解压
-t测试,检查压缩文件是否完整
-v对每个压缩和解压的文件显示文件名和压缩比
-num用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6。

2.3 举例

目录/test下有文件t.txt,y.txt,z.py

把/test目录下的每个文件压缩成.gz文件
首先进入/test目录下

cd /test

压缩当前目录的所有文件

gzip *

查看当前目录的文件内容

ls

可以看到所有文件均被压缩

把上面例子中压缩的文件解压,并列出详细的信息

gzip -dv *

然后查看解压后的文件

ls

详细显示压缩后的文件信息,不解压

gzip -l *

压缩一个tar备份文件,压缩后的扩展名为.tar.gz

gzip test.tar

压缩后查看文件

ls

文件名变为test.tar.gz

3. unzip命令

3.1 语法

语法如下

unzip [选项] 压缩文件名.zip

3.2 参数与含义

参数与描述如下

参数描述
-x文件列表 解压缩文件,不包括指定的file.文件
-v查看压缩文件目录,不解压
-t测试文件有无损坏,不解压
-d目录 把压缩文件解压到指定目录下
-z只显示压缩文件的注解
-n不覆盖已经村在的文件
-o覆盖已存在的文件且不要求用户确认
-j不重建文档的目录结构,把所有文件解压到同一个目录下

3.3 举例

将压缩文件在当前目录下解压

unzip 压缩文件名.zip

将压缩文件在指定目录下解压,如果已有相同的文件存在,则不覆盖原先的文件

unzip -n 压缩文件名.zip -d 指定的目录

查看压缩文件目录,不解压

unzip -v 压缩文件名.zip

4. zgrep命令

与grep命令用法相似
在压缩文件中寻找匹配的正则表达式
如果想查看某个压缩文件中有没有哪些内容,可以用zgrep命令

5. tar命令2

5.1 语法

语法如下

tar [-cxtzjvfpPN] 文件与目录 ...

5.2 参数与描述

参数与描述如下

参数描述
-c建立一个压缩文件的参数指令(create)
-x解开一个压缩文件的参数指令
-t查看tarfile里面的文件。注:命令中c/x/t三个参数只能使用其一,不可同时使用,原因是不可能同时压缩与解压
-z是否同时具有gzip的属性,即是否需要用gzip压缩
-j是否同时具有bzip2的属性,即是否需要用bzip2压缩
-v压缩的过程中显示文件,该参数常用,但不建议用在背景执行过程
-f使用档名,注意,在f之后要立即接档名,不要再加参数。如,使用命令tar -zcvfP tfile sfile该写法错误,正确写法为tar -zcvPf tfile sfile
-p使用源文件的原来属性,属性不会依据使用者而变
-P可以使用绝对路径来压缩
-N比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中
--excludeFILE 在压缩的过程中,不要讲FILE打包

5.3 举例

将整个目录下的文件全部打包

tar -cvf 打包文件名.tar 待打包目录
tar -zcvf 打包文件名.tar 待打包目录
tar -jcvf 打包文件名.tar.bz2 待打包目录

注意: 参数f之后的文件档名为自定义的,习惯用.tar作为后缀 如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tar file 如果加j参数,则以.tar.bz2来作为附档名
执行上述命令会提示信息如下

tar:Removing leading `/' from member names

这是关于绝对路径的特殊设定

查看上述压缩文件内容有那些文件

tar -ztvf 压缩文件名.tar.gz

由于使用gzip压缩,所以查看这个tar文件内的文件时,要加上z参数

将压缩文件解压在指定目录下
进入指定目录

cd 目录

解压压缩文件

tar -zxvf 压缩文件全路径名.tar.gz


我们可以将压缩文件在任何地方解压,首先进入任意目录位置,然后执行解压命令,压缩文件内容就会解压到当前目录中

在指定目录下,解压压缩文件中的某个文件
进入指定目录

cd 目录

解压压缩文件中的某个文件

tar -zxvf 待解压文件名.tar.gz 需要解压的文件名

如将压缩文件test.tar.gz中的test/name文件解压
则执行命令tar -zxvf /test.tar.gz test/name

可通过tar -ztvf查看压缩文件的内容文件名

将指定目录下的所有文件压缩,并保存其权限

tar -zxvpf 压缩文件名.tar.gz 目录

注,一定要加-p保留原本文件属性

在指定目录中,压缩比某日期新的文件

tar -N 'yyyy/mm/dd' -zxvf 压缩文件名.tar.gz 目录

如在/test目录中,比2024/06/17新的文件进行压缩

tar -N '2024/06/17' -zcvf test.tar.gz /test

压缩目录/test1,/test2,但不要/test1/test.txt

tar --exclude /test1/test.txt -zcvf test.tar.gz /test1/* /test2

将目录1打包后解压到另一个目录2中,不产生文件

cd 目录1
tar -cvf - 目录2 | tar -xvf -


用法与cp相似

cp -r 目录2 目录1

6. gzip,zcat命令

6.1 语法

语法如下

gzip [-cdt#] 待压缩文件名

zcat 压缩文件名.gz

6.2 参数与描述

参数与描述如下

参数描述
-c将压缩的资料输出到屏幕上,可透过资料流重导向来处理
-d解压缩的参数
-t可以用来检验一个压缩文件的一致性,看文件有无错误
-#压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,预设值是-6

6.3 举例

将文件复制到指定目录1并用gzip压缩
先进入目标目录下

cd 目录1

复制文件到当前目录

cp 文件全路径名 .

压缩文件

gzip 文件名

此时文件后缀变为.gz

将压缩后的文件内容读取出来

zcat 压缩文件名.gz

此时屏幕会显示压缩文件解压后的文件内容

将压缩文件解压

gzip -d 待解压文件名.gz

将解压的文件用最佳压缩比压缩,并保留原本的文件

gzip -9 -c 待压缩文件名 > 压缩文件名.gz

7. bzip,bzcat命令

7.1 语法

语法如下

bzip2 [-cdz] 文件名

bzcat 压缩文件名.bz2

7.2 参数和描述

参数描述如下

参数描述
-c将压缩过程产生的资料输出到屏幕
-d解压的参数
-z压缩的参数
-#与gzip相同,计算压缩比的参数,-9最佳,-1最快

7.3 举例

将文件用bzip压缩

bzip2 -z 待压缩文件名

将压缩文件内容读取

bzcat 压缩文件名.bz2

此时解压后的内容会显示在屏幕上

将文件解压

bzip2 -d 待解压文件名.bz2

将文件以最佳压缩比压缩,并保留源文件

bzip2 -9 -c 待压缩文件 > 压缩文件名.bz2

8. compress命令

8.1 语法

语法如下

compress [-dcr] 文件或目录

8.2 参数和描述

参数描述
-d用来接压缩的参数
-r可以连同目录下的文件也同时给予压缩
-c将压缩资料输出为标准输出

8.3 举例

将文件复制到指定目录1,并压缩
进入指定目录1

cd 目录1

复制文件当前目录

cp 文件全路径名

压缩文件

compress 待压缩文件名

查看压缩后的文件详细信息

ls -l

将压缩文件解压

compress -d 压缩文件名.Z

将文件压缩成另一个文件来备份

compress -c 待压缩文件 > 压缩文件名.back.Z

查看压缩后的列表

ll *

-c参数将压缩过程输出到屏幕

9. dd命令

9.1 语法

语法如下

dd if="input_file" 
of="outout_file" bs="block_size" count="number"

9.2 参数和描述

参数和描述如下

参数描述
if指input file
of指output file
bsblock的大小,没有设定时,预设为512bytes
count指多少个bs

9.3 举例

将文件/test/name备份到压缩文件/x/name.back中

dd if=/test/name
of=/x/name.back
3+1 records in
3+1 records out

查看文件

ll /test/name
/x/name.back

注意:由于未设定bs,预设的bs为512bytes,所以3+1表示的就是3个完整的512bytes和一个不满512bytes的block

备份/test/ddd的MBR

dd if=/test/ddd
of=/tmp/mbr.back bs=512 count=1
1+0 records in
1+0 records out

MBR为512bytes,放在硬盘第一个部分,这个方式可以将MBR的内容资料都记录下来

将整个/test/ddd partition备份

dd if=/test/ddd
of=/some/path/filename

这个指令将整个partition的内容备份下来 of后面接的内容必须不在/test/ddd目录中,否则读不完

10. cpio命令

10.1 语法

语法如下

cpio -covB > [file|device]
cpio -icduv

10.2 参数和描述

参数描述如下

参数描述
-o将资料copy输出到文件或者设备
-i将资料从文件或设备中拷贝出来到系统当中
-t查看cpio建立的文件或装置的内容
-c一种较新portable format方式储存
-v让储存的过程中文件名称可以在屏幕上显示
-B让预设的blocks可以增加到5120bytes,预设值是512bytes,这样的好处是可以让大文件的存储速度加快
-d自动建立目录,由于cpio的内容可能不是在同一个目录内,反备份的过程会有问题,这时加上-d参数可以自动将需要的目录创建
-u自动将较新的文件覆盖较旧的文件

10.3 举例演示

将所有系统上的资料写入磁带机内

find / -print | cpio -covB > /dev/st0

一般情况下,使用SCSI界面的磁带机,代号是/dev/st0

检查磁带机上有什么文件

cpio -icdvt
cpio -icdvt /test/content

第一个动作是将磁带机内的文件列出到屏幕,第二个动作将所有的文件记录到/test/content文件

将磁带上的资料还原回来

cpio -icduv

一般情况下,使用SCSI界面的磁带机,代号是/dev/st0

将/etc下的所有文件备份到/root/etc.cpio

find /etc -type
f | cpio -o > /root/etc.cpio

四、Linux关于不同类型压缩文件的解压详解

语法中的字段定义如下:
filename 文件名
dirname 目录名
name 可以是文件名也可以是目录名

1. 预览压缩包内容

vim命令预览压缩包里的内容
语法如下

vim filename.tar.xz

关于不同类型压缩文件的解压如下

2. .rar

对于rar的解压,需要先安装rar工具

sudo apt install rar

2.1 解压语法

解压到当前目录

rar e filename.rar

e表示extract
解压到指定目录

rar x filename.rar dirname/

x表示extract
dirname后需要加/表示目录

2.2 压缩语法

压缩文件

rar a filename.rar dirname

这里dirname可以加/也可以不加/

3. .zip

3.1 解压语法

解压到当前目录

unzip filename.zip

解压到指定目录

unzip filename.zip -d dirname

3.2 压缩语法

压缩文件

zip filename.zip -r dirname

4. .tar

4.1 解压语法

解压到当前目录

tar -xvf filename.tar
参数描述
x解压文件(x表示extract)
v打印详细信息v表示verbose
f指定文件名f表示file

解压到指定目录

tar -xvf filename.tar -C dirname

C 表示解压到指定目录
只要包含tar的文件解压都可以使用-C指定输出目录

4.2 压缩语法

压缩文件

tar -cvf filename.tar files

其中files可以是文件夹名也可以是文件的正则表达式如*.text,files不能使用绝对路径
c 表示压缩compress

5. .gz

5.1 解压语法

解压到当前目录

gzip -d filename.gz

d 表示decompress解压
自动将原来的filename.gz删除并生成解压后的文件
可加选项k保留原文件

gzip -dk filename.gz

k表示keep

5.2 压缩语法

压缩到当前目录

gzip filename

自动将源文件删除并创建filename.gz
gzip的选项
k表示keep表示保留源文件
v表示verbose表示打印详细信息

6. .tar.gz

对tar文件用gzip压缩得到的文件,可以先解压gz,再解压tar,反之先压缩为tar再压缩为gz
当然可以用一条命令完成

6.1 解压语法

解压到当前目录

tar -zxvf filename.tar.gz

z表示gz
解压到指定目录

tar -zxvf filename.tar.gz -C path

6.2 压缩语法

压缩文件

tar -zcvf filename.tar.gz files

其中fiels可以是文件夹也可以是正则表达式如*.txt

7. .xz

xz格式压缩率极高,但是压缩和解压极慢

7.1 单线程解压与压缩

7.1.1 单线程解压

解压到当前目录

xz -d filename.xz

会自动删除源文件生成一个filename文件
可用k参数保存源文件

xz -dk filename.xz

k参数表示keep
解压为指定文件名

xz -dc filename.xz > filenamne2

c表示压缩文件输出到stdout 不删除源文件

7.1.2 单线程压缩

压缩到当前目录

xz -z filename

会自动将源文件删除,生成filename.xz文件可用k出纳户保存源文件

xz -zk filename

7.2 多线程压缩

多线程压缩

xz -zkT0 filename

T表示使用多线程,后面跟线程数,如果是0则表示使用机器核心数的个数同等数量的线程进行压缩
该方法只能压缩文件,多线程压缩目录方法可参考.tar.xz

8. .tar.xz

把文件先打包后压缩为xz
解压时可以先解压为xz然后再解压tar
可一条命令完成压缩和解压

8.1 单线程解压与压缩

8.1.1 单线程解压

解压

tar xJf name.tar.xz

x表示extract
J表示xz

8.1.2 单线程压缩

压缩

tar cJf name.tar.xz name

c表示compress

8.2 多线程解压与压缩

8.2.1 多线程解压

解压

xz -dcT0 filename.tar.xz | tar -xC dirname

tar不带f选项表示从stdin中读取

8.2.2 多线程压缩

该方法可压缩文件,也可压缩目录

tar -cf - name | xz -T0 -c > filename.tar.xz


tar如果输出的文件名是短杠"-",则会输出到stdout
如果xz没有指定源文件则会从stdin中读取

9 .bzip2

压缩和解压过程都会把源文件删除,如需保留可加参数k

9.1 多线程

bpzip2是多线程的处理方式
用pbzip2进行压缩和解压,如不指定线程数,自动检测能用多少个线程

9.2 解压

解压语法

pbzip2 -db线程数 filename.bz2

生成文件filename,自动删除filename.bz2

9.3 压缩

压缩语法

pbzip2 -zp线程数 filename

生成文件filename.bz2
参数和描述
--fast 牺牲压缩率,提高压缩和解压速度
--best 默认参数,牺牲压缩速度,提高压缩率

10. .tar.bz2

10.1 单线程解压

解压语法

tar -cjf name.tar.bz2 name

10.2 多线程解压

解压语法

bpzip2 -cdp线程数 b.tar.bz2 | tar -xC dirname

感谢阅读,祝君暴富!

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒山李白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值