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。