内容简介
1、第四部份第一课:压缩文件,解压无压力
2、第四部份第二课:SSH联接,安全快捷
压缩文件,解压无压力
近来小编由于换工作,从南法搬去伦敦。折腾了好久。
网路仍然用的是公共的无线网,讯号不行。无线上网的box袋子早已说通网了,但我认为墙壁的线有问题。总之就是用不了自己的告诉WiFI袋子。
但是还要继续找楼房,刚下班第一周,众多事情,所以近来停更了好久。不好意思。
不过,如今又重新开始啦。木啊哈哈哈~
百足之虫,死而不僵。。。
第四部份我们会讲Linux网路方面的一些知识点。既然谈到网路方面,首先我们可以介绍一下怎样压缩和解压文件,由于我们在网路上传输文件的时侯,一般还会先将其压缩。
说到压缩文件,倘若是Windows用户,那应当对rar和zip两种格式不陌生。通常在Windows下,我们会使用Winrar,7zip等压缩解压的软件。这种软件中有些是收费的,例如winrar。
在Linux下,我们有好多免费的压缩解压软件可供选择,例如gzip和bzip2。不过,gzip和bzip2,不能同时压缩多个文件,一次只能压缩一个文件。
不过,Linux这样的开源社群可厉害了,她们还有一个软件tar,算是Linux下用得挺多的程序了吧。tar可以同时压缩多个文件。
其实了,Linux下也有解压zip和rar格式的软件。
这一课没哪些技术难点,不过有些概念还是比较重要的。
就当茶余饭后,休闲洗脚吧...其实,然后千万不要用洗澡水冲茶...
tar命令:将多个文件归档
首先,我们须要弄清楚两个概念:打包和压缩。
打包linux gzip 压缩比,是将多个文件弄成一个总的文件,这个总的文件我们一般称为archive,英文是《存档linux gzip 压缩比,归档》的意思。
压缩,是将一个大文件通过个别压缩算法弄成一个小文件。
所以,虽然前言中所提及的tar命令,gzip和bzip2命令是这样使用的:
用tar将多个文件归档为一个总的文件,称为archive。
用gzip或bzip2命令将archive压缩为更小的文件。
可以用右图来描述此过程:
所以,我们会首先介绍tar命令,之后再学习gzip和bzip2命令。其实了,我们也会学习怎样在Linux下解压zip和rar格式的文件。
zip和rar格式是可以同时归档和压缩的。
将多个文件合并为一个文件
我们来实际操作一下。
假定我如今创建了一个目录,称作compression,是英文“压缩”的意思,之后在此文件夹中再创建一个目录,称作tutorial,是英文“教程”的意思。在tutorial目录中,我装入三个C语言的源文件。如右图所示:
我们就可以用tar命令对这三个文件进行归档。
-cvf:创建一个tar归档
我们可以这样来创建一个tar归档:
tar-cvftutorial.tartutorial/
tar命令的三个选项参数分别表示:
c:c是create的简写,表示“创建”。
v:v是verbose的简写,表示“冗余”。会显示操作的详尽。
f:f是file的简写,表示“文件”。指定归档文件。
执行以上的命令以后,可以从tutorial这个文件夹(上面包含ws.c,test.c,hanio.c三个文件)创建tutorial.tar这个归档。
由于加了v选项,所以列举了被归档的三个文件。
莫非我们一定要先把三个文件都放在tutorial这样的一个目录,能够用tar归档吗?
不是的,我们也可以直接对文件进行归档操作,不须要先把所有文件放在一个目录里,如下:
tar-cvfarchive.tarfile1.txtfile2.txtfile3.txt
都会把file.txt,file2.txt,file3.txt归档为archive.tar。
-tf:显示归档里的内容,并不解开归档
我们可以用tf选项参数来看一下我们刚生成的归档tutorial.tar中的内容。
tar-tftutorial.tar
可以看见,tutorial.tar这个文件里,首先包含的是tutorial这个目录,目录里有三个文件:ws.c,test.c,hanio.c
通常,构建归档之前,最好把所有文件都先放置到一个目录里。由于如果你领到的归档文件是不包含目录的(如前面tar-cvfarchive.tarfile1.txtfile2.txtfile3.txt这样),而且上面有好几百个文件,你将其解开到你的家目录,那会乱成一团的。
-rvf:追加文件到归档
比如:
tar-rvfarchive.tarfile_extra.txt
表示将file_extra.txt这个文件添加到archive.tar归档中。
-xvf:解开归档
算是-cvf的相反操作。将生成的归档解开。x是extract的简写linux培训班,表示《提取,取出》。
tar-xvftutorial.tar
gzip和bzip2命令:压缩归档
如今我们早已学会用tar命令来创建一个归档了,接出来,我们就学习怎么压缩这个归档吧。
Linux中常用的压缩命令是gzip和bzip2。功能类似。
gzip:比较常用。
bzip2:不是这么常用。bzip2的压缩率比gzip更大,而且更历时。
这两个命令的用法也很简单,只需传入要压缩的归档作为参数。经过压缩,归档的后缀名也会改变。
.tar.gz:这是用gzip命令压缩后的文件后缀名。
.tar.bz2:这是用bzip2命令压缩后的文件后缀名。
两个压缩命令的用法如下:
gziptutorial.tar
bzip2tutorial.tar
都会分别生成tutorial.tar.gz和tutorial.tar.bz2两个压缩文件。
假如要对这两个命令生成的压缩文件分别进行解压,可以使用gunzip和bunzip2两个命令:
gunziptutorial.tar.gz
bunzip2tutorial.tar.bz2
用tar命令同时归档和压缩
之前我们只介绍了tar命令的归档作用,虽然我们可以用tar命令同时完成归档和压缩的操作,一气呵成。
其实了,也就是给tar命令多加一个选项参数,使之完成归档操作后,还是调用gzip或bzip2命令来完成压缩操作。
-zcvf:归档,之后用gzip来压缩归档
tar-zcvftutorial.tar.gztutorial/
一步到位,从tutorial目录,归档、压缩,生成tutorial.tar.gz文件。
要解压,也可以一步到位:
tar-zxvftutorial.tar.gz
相信常用Linux系统的用户对这个命令应当很熟悉吧。
-jcvf:归档,之后用bzip2来压缩归档
tar-jcvftutorial.tar.bz2tutorial/
一步到位,从tutorial目录,归档、压缩,生成tutorial.tar.bz2文件。
要解压,也可以一步到位:
tar-jxvftutorial.tar.bz2
zcat,zmore,zless:直接显示用gzip压缩的文件的内容
cat,more和less三个命令我们早已很熟悉了,是用于显示文件内容。
若果是压缩文件,例如我们里面生成的tutorial.tar.gz,倘若直接用cat,more或less命令来显示,是会显示乱码的。
cattutorial.tar.gz
并且用zcat,zmore,zless命令就可以显示用gzip命令压缩的文件的内容了:
zcattutorial.tar.gz
unzip和unrar命令:解压zip和rar文件
虽然.tar.gz和.tar.bz2结尾的压缩文件在Linux世界很常见,而且假如某个Windows用户给您发送压缩文件,大部份情况可能是.zip或.rar结尾的压缩文件,这么在Linux下怎样解压这类来自Windows世界的外来物呢?
何必害怕,我们可以用unzip和unrar命令来分别解压.zip和.rar格式的压缩文件。
unzip:解压.zip格式的压缩文件
通常Linux发行版中默认没有安装这个程序,我们可以用以下命令来安装:
sudoapt-getinstallunzip
安装完以后,要解压.zip格式的压缩文件,可以这样:
unziparchive.zip
很简单吧。
若果不想解开.zip文件,只想看其中的内容的话,可以加上-l参数:
unzip-larchive.zip
在Linux中,即使不常见,而且有时侯我们也须要创建.zip格式的文件,我们可以安装zip这个程序:
sudoapt-getinstallzip
想要生成.zip格式的压缩文件,可以这样:
zip-rarchive.ziparchive/
注意这儿有一个-r参数,需要加上,假若不加,则只会压缩空文件夹而已。加上-r参数,则会递归压缩目录和子目录中的所有文件。
unrar:解压.rar格式的压缩文件
类似于unzip,安装unrar的命令如下:
sudoapt-getinstallunrar
安装完以后,要解压.rar格式的压缩文件,可以这样:
unrarearchive.rar
可以见到,有些意外,由于e这个选项参数后面没有-,人生总是有意外的不是吗?unrar这个命令的作者其实是不走寻常路。
若果不想解开.rar文件linux 虚拟主机,只想看其中的内容的话,可以加上l参数(是的,也不加-):
unrarlarchive.rar
那假如我想在Linux中创建.rar格式的压缩文件呢?
不好意思,.rar格式的压缩软件并没有公开,解压的软件是免费的。假如你要压缩rar文件,那只能去买收费软件。
Linux下也有rar这个软件,你也可以下载安装,但这是一个试用软件,到了一定天数后,才会收费。不过,zip软件是免费的。
第四部份第二课预告
明天的课就到这儿,一起加油吧!
下一课我们学习:SSH联接,安全快捷
*新同学请关注「程序员联盟」微信搜公众号ProgrammerLeague
程序员联盟官网:
coderunity点com/
程序员联盟峰会:
coderunity点com/bbs/