linux 命令行一些要点(二)

1、压缩文件 (压缩,解压,查看压缩文件)

bzip2 是一个无损压缩,采用的Burrow Wheller块状有序文本压缩算法和Huffman编码,bzip2能将文件压缩到原来的10%~12%。因此得到广泛运用。

bzip2可以对任何普通文件进行压缩,也可以对其他压缩工具压缩的文件进行二次压缩,但是不能对xxx.bz2的压缩文件进行二次压缩(你可以修改一下后缀,这样就可以继续压缩,也就是说bzip2压缩要检查后缀,若不是bz2就行),也不能对目录文件进行压缩。

想要不解压文件直接看压缩文件内容,可以用bzip2 -dc file.bz2  或者 bunzip2 -c file.bz2 或者 bzcat file.bz2

具体用法,使用到的时候用man查看。

bzip2压缩的文件可以用bunzip2 来进行解压。也可以是bzip2 -d 解压。

bzcat---解压缩文件到屏幕(也就是只是查看文件)


gzip属于GNU软件,总体性能不错,是Linux首选的压缩工具。tar归档命令的-z参数也是利用gzip/gunzip来压缩解压文件。(当文件较小的时候,压缩文件可能更大)

gunzip 和 gzip -d 都是解压.gz文件的好手。

gzip可以对一个目录进行操作。gzip -r dir。递归将dir目录里面的文件压缩。但是我们通常的做法是将dir先tar归档,然后使用gzip压缩

如果只是想查看压缩文件而不解压的,gzip -l file.gz(也就是只是查看文件)

gzexe --压缩解压可执行文件

这个压缩可以大大减少磁盘控件,同时压缩文件可以执行

建议这个不要用在普通文件上,对目录也不可以


bzip2recover-----压缩文件的修复

存储介质出现了问题,Linux提供了对bzip2压缩文件的恢复,修复原理是根据bzip2压缩文件在介质上的存储格式,忽略介质的内容,显然该工具并不好死恢复受损介质的内容。

bzip2recover file.bz2  在执行命令过程中,首先该命令试图搜索每一个块的边界,然后将损坏的块删除。


zip----归档压缩工具

zip命令集压缩和归档,一般用作文件的发布。

zip压缩的时候,需要在命令行指出压缩文件的名称,以.zip结尾。zip压缩,会保持源文件的存在,其他可没有这个保证,必须输入指令才能。可以查看zip文件的内容,用zcat,但是若有多个文件,只是显示第一个文件的内容。

unzip 解压

unzip file.zip 1.txt 只是解压file.zip中的1.txt这个文件。

zipinfo 显示zip压缩文件的信息。这个功能与unzip -Z一样(只是查看压缩文件)


2、文件查找定位

find---查找文件

这个功能太强大了。只是看看之后的参数就知道了。

找某一个文件,find . -name 1.txt 在当前目录查找1.txt。注意如果需要查找多个文件,需要用单引号,不然会出错paths must precede expression。

例如查找.txt为后缀的所有文件。find . -name '*.txt' (注意了)

可以根据大小来查找文件,find . -size 100c 当前目录查找大小为100字节的文件

具体查看man,都有很多页


whereis---专门用来查找可执行的程序,原始程序和使用使用手册,whereis不需要指定查找目录,在系统的默认的位置查找,大大缩小了查找范围。

所以这个也是缺点,只能查找系统的一些文件,如果要在指定目录下面找也行,用-B。这个具体看man。


locate---介于whereis和find之间。


which---在环境变量中查找指定的文件

which一般用于在安装新的软件时,检查路径是否成功设置。若成功,会显示该执行的文件的全部路径,否则将显示$PATH的内容


which是全匹配的,located不是。比如。which abc,表示查找环境变量中的文件abc,locate abc表示查找多有包含字符串abc的文件。


3、文件内容的查找

grep------搜索文件中的字符串

这个可以过滤文件名,还可以在文件中查找具体文件。grep -n "hello" file 在file文件中查找有hello的行,输出行号。

egrep ---搜索文件中的字符串。

fgrep(速度最快,功能有限)


4、如果想输入的信息保存到多个文件中,tee.

5、文件排序

sort file

将file文件中,每一行作为比较关键字,依次比较关键字的首字符的大小,然后进行排序。例如file文件内容如下:

123

124

156

678

09

89

sort file之后文件内容:

09

123

124

156

678

89

可以重定向将排序后的文件输出到另外的文件中。

也可以指定比较的关键字。sort +1 -2 file(用法,man) 表示file文件中每一行的第二个字段作为比较的关键字。

file:

this is s

z hiss me

执行之后:

z hiss me

this is s

它是以第二个单词作为比较的。若第二个一样,就比较第一个,以此类推。

还可以合并多个文件,然后排序,将结果放在一个文件中

例如:cat file1 file2 |sort -o result


6、文件分割

split ---作用是将文件分割成多块,当文件特别大的时候,压缩不能取得很好的效果,这可非常有用。

例如,split -l 2 file 将file文件以2行一个文件分割。生成的文件命名为xaa,xab。。。。

split只能对一个文件切割,类型为文本文件和二进制文件。


7、文本处理----sed

sed是一个流式编辑器。sed就是将一个文件的内容经过处理后显示在屏幕上,但是源文件是不改变的。改变的是展现给我们看的屏幕上的内容。

所以我们可以重新定位,将改变的保存下来。

首先,删除操作。

sed 1d file 将file第一行删除显示在屏幕上。如果删除多行,需要单引号。sed ‘1,3d’ file 将file1行到3行删除。sed '3,$d' file 将file文件第三行到最后一行删除。$表示最后一行。

sed ‘/^[Ll]inux/d’ file 将file中以Linux 和linux 开头的删除。(注意/的使用)

替换操作

sed 's/file/myfile/g' file 将文件中file替换成myfile

命令中s以行为单位进行替换,g表示一行内全部替换。g若变成具体数字,例如3,表示第3处出现的file替换成myfile。

替换y

sed ‘y/abc/ABC’ file 将file中abc替换成ABC。但是在虚拟机上运行,出错,sed: -e expression #1, char 7: unterminated `y' command。不知道是什么原因。?


插入和追加

sed '$a\end of file' file 在file文件最后一行之后追加

sed ‘/this/i\new line’ file 在file文件中有this一行的前面添加一行。内容是 new line。

sed ‘2i\insert new linebefore 2’ file 在file第二行前插入一行。

还有很多。


8、文件内容唯一化

uniq,就是将文件中相同的行全部去掉,剩下的行都是没有重复的。

注意,uniq所认为的重复行是指连续出现的重复行,所以要删除文件中所有的重复行,必须先sort排序。


9、tmpwatch--自动删除临时文件

也就是我们可以新建一个文件夹tmp,然后使用tempwatch 7*24 tmp设置tmp为临时目录。然后将一些文件可以放入这个目录,然后7天之后,会自动删除。

所以它只能为目录设置,不能为单独的文件设置。


10、规范C程序,inden。

你可能感兴趣的:(linux)