Shell 命令进阶(一)

前端之家收集整理的这篇文章主要介绍了Shell 命令进阶(一)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

文件处理和归档

  1. paste:合并文件,合并一个文件或多个文件中的行。

    paste [option]... [file]...

    -d:指定分隔符

    paste -d'|' file1 file2

    合并两个以上文件时,可以指定多个分隔符

    paste -d':,' file1 file2 file3

    -s :paste 命令可以顺序地合并文件。即它顺序地将每个文件中的所有行的内容合并为一行,由此每个文件内容被合并为单一的一行。

    -d'|' -s 合并时可以指定分隔符。

    paste - - <file1 将文件内容由一列转换为两列。

    paste -d: - - <file1 转为两列并指定分隔符

    paste - - - < file1 将一列转为3列

  2. dd:备份和拷贝文件

    dd命令有如下两个基本参数:

    if=<inputfile> 指定输入文件的路径,默认为标准输入。

    of=<outputfile> 指定输出文件的路径,默认为标准输出


    例:直接复制一个磁盘/dev/sda的数据到另一个磁盘/dev/sdb

    dd if=/dev/sda of=/dev/sdb

    例:复制一个dvd光盘的数据到一个iso文件

    dd if=/dev/dvd of=dev.iso

    例:擦除一个分区的数据

    dd if=/dev/zero of=/dev/sda2



/dev/zero 是linux系统中的一个特殊文件。从文件/dev/zero读出的内容均为空字符。它的一个典型用途就是提供用于初始化数据存储器的字符流。

dd 另外两个比较重要的参数:

bs=<n> 指定输入和输出的块大小。默认单位为字节

count=<n> 从输入读取的块数量

例如:创建一个1MB大小的文件,并且块大小为1024bytes

dd if=/dev/zero of=/tmp/outfile bs=1024 count=1024

备份磁盘的主引导分区:

dd if=/dev/sda of=/home/dong/MBR.image bs=512 count=1

下面命令的组合可以用于设备的标准测试,并分析其在块大小1024字节时的顺序的读写性能

dd if=/dev/zero bs=1024 count=1000000 of=/home/dong/1GB.file

dd if=/home/dong/1GB.file of=/dev/null bs=64k

/dev/null也是linux系统中的一个特殊文件。就像一个黑洞,它可以接受所有向它写入的数据,而从这个文件中读不出任何数据。所有想过滤掉的输出数据都可以重定向到这个文件


3. gzip、bzip2:压缩和归档文件

gzip file 直接生成一个.gz结尾的文件

-c:gizp命令会将压缩内容输出到标准输出,所有可以使用重定向输出内容写入到指定的文件,从而保留原始文件

-d:gzip命令将解压缩指定的文件

-r:gzip命令将递归的压缩指定目录下的文件

-#:压缩级别 1-9 1压缩速度最快,9压缩率最高

bzip2 file 生成一个.bz2的文件

-k:可以压缩文件并保留原文件

-d:解压文件

-f:覆盖已存在文件

压缩级别-1~-9 但-9是bzip2命令采用的默认级别。

4.gunzip、bunzip2:解压缩文件

gunzip image1.jpb.gz

-c:将解压后的内容重定向到一个文件,以保留原始压缩文件

gunzip -c image.jpb.gz>image.jpg

bunzip2命令与bizp2命令相应,用于解压缩由bzip2命令的压缩文件。其作用与bzip2命令的-d选项相同。

bunzip2 image1.jpg.bz2 解压缩一个文件

-k:解压文件并保留原始文件

bunzip2 -k image1.jpg.bz2


5.tar:打包和解包文件

tar命令是Linux系统中主要的归档工具。

tar命令的语法如下所示:

tar [option]... [file]...

使用-cvf选项,创建一个未经压缩的tar包。

tar -cvf don.tar /home/dong

-c:创建一个新的归档。

-v:冗长地列出被处理的文件

-f:指定归档文件名称


-z:使用gzip压缩

-j:使用bzip2压缩

tar -xvf 对一个归档文件解包

tar -xvf don.tar

tar -xvf don.tar --wildcards '*.jpg'

结合-z使用,可以对一个使用gzip压缩的tar包进行解包

结合-j使用,可以对一个使用bizp2压缩的tar包进行解包。


-tvf:可以在不解包的情况下列出tar包文件中的内容

结合-z:可以在不解包的情况下列出使用gzip压缩的tar包文件中的内容

结合-j:可以在不解包的情况下列出使用bzip2压缩的tar包文件中的内容

-rvf:可以添加文件或目录到一个已经存在的tar包

-r不能与-j -z联合使用

-W:核实tar包的内容

tar -cWvf don.tar /home/don

也可以用于核实现存的tar包文件中的内容文件系统中的内容是否存在差异。

-W不能核实压缩过的文件

-d也可以比较tar包中的内容文件系统中的内容的差异,但不具有核实的功能

tar -dvf don.tar

tar -dvf dong.tar.gz

猜你在找的Bash相关文章