Linux Shell 脚本攻略 --- 第六章 B计划

6.1 用tar归档

    1 tar命令可以用来归档文件,可以用tar将多个文件和文件夹保存为单个文件,同时还能保留所有文件属性,如所有者,权限等,由该命令创建的文件通常称为tarball

    2 按照下面的方法,用tar对文件进行归档: tar -cf output.tar sources

       例如tar -cf output.tar file1 file2 file3....

       命令中的-c代表的是创建文件,-f代表的是指定文件名

    3 向归档中添加文件可以使用下面命令: tar -rvf output.tar new_file

    4 用下面的方法列出归档文件的内容: tar -tf output.tar

    5 如果需要在归档或列出归档内容的过程中获知更多细节,可以使用-v或-vv选项,它们允许在终端中输出更详细的信息

    6 下面的命令可以将归档文件的内容提取到当前目录中: tar -xf output.tar

       -x表示把当前归档文件中的内容提取到当前目录,我们可以使用-C选项指定需要提取到的目录

      tar -xf output.tar -C path

    7 连接两个归档文件: tar -Af file1.tar file2.tar  // -A选项用来把两个归档文件进行合并

    8 从归档文件中删除文件: tar -f output.tar --delete file1 file2  // 命令把归档文件中的file1和file2删除

    9 从归档中排除部分文件

       例如,排除所有的.txt文件: tar -cf output.tar * --exclude "*.txt"

       也可以将需要排除的文件列表放入到文件中: tar -cf output.tar * -X file

    

6.2 用cpio归档

    1 cpio是类似于tar的另一种归档格式,它用来将多个文件和文件夹存储为单个文件,同时保留所有文件属性,如权限,文件所有权等

    2 cpio通过stdin获取输入文件名,并将归档文件写入stdout,我们必须将stdout重定向到一个文件,以接收cpio的输出

       创建测试文件: touch file1 file2 file3

       将测试文件按照下面的方法进行归档: echo file1 file2 file3 | cpio -ov > output.tar

    3 要列出cpio归档文件中的内容,使用下面命令: cpio -it < output.tar // 这个命令列出给定的cpio归档文件中的所有内容

       -i用于指定输入   -t 表示列出归档文件中的内容

    

6.3 用gunzip或gzip压缩

    1 gzip是GNU/Linux平台下常用的压缩格式,gzip只能够压缩单个文件,而无法对目录和多个文件进行归档,因此我们一般把这个任务交给tar,然后再用gzip压缩

    2 要使用gzip压缩文件,可以使用下面的命令: gzip filename

    3 将gzip文件解压缩的方法如下: gunzip filename.gz

    4 要列出压缩文件的属性信息: gzip -l filename.gz

    5 zcat命令无需解压缩,直接读取gzip格式文件

       zcat filename.gz  // 这个命令可以直接读取压缩文件的内容

    6 压缩率,我们可以指定压缩率,压缩率有9级,其中:

       1级的压缩率最低,但是压缩速度最快; 9级的压缩率最高,但是压缩速度最慢

 

6.4 用bunzip和bzip压缩

    1 bunzip是另一种以gzip类似的压缩技术

    2 用bzip2进行压缩: bzip2 filename // bzip2会删除源文件并生成名为filename.bz2文件

    3 解压缩bzip2格式文件: bunzip2 filename.bz2

    4 使用bzip2或bunzip2时,它会删除输入文件并生成压缩过的输出文件,我们可以使用选项-k来避免删除输入文件

       bunzip2 filename.bz2 -k

    

6.5 用lzma压缩

    1 使用lzma进行压缩: lzma filename  // lzma会删除原文件并生成名为filename.lzma

    2 保留输入文件: 使用lzma或unlzma时,它们会删除输入文件并生成压缩过的输出文件,不过我们可以指定选项-k来避免删除原文件

 

6.6 用zip归档和压缩

   1 zip做为一种流行的压缩格式,在很多的平台中都可以看到它的身影

   2 对归档文件采用zip格式进行压缩: zip output.zip source  //该命令会生成output.zip文件

   3 对目录和文件进行递归操作: zip -r output.zip directory

   4 要从zip文件中提取内容,可以使用: unzip output.zip   //unzip这个命令并不会删除output.zip文件

   5 从压缩归档文件中删除内容,则使用-d: zip -d output.zip file //这个命令删除压缩文件中的file

   6 列出归档文件中的内容: unzip -l output.zip

 

6.7 加密工具与散列

   crypt

   1 crypt是一个简单的加密工具,它从stdin接受一个文件以及口令,做为输入,然后将加密数据输出到output

   2 crypt < input_file > output_file

      Enter passphrase:

   gpg 

   1 gpg是一种应用广泛的加密方案,它采用密钥签名技术保护文件内容,只有经过认证的用户才能访问数据

   2 用gpg加密文件: gpg -c filename  //这条命令采用交互式读取口令,并生成filename.gpg

   3 解密gpg文件: gpg filename.gpg // 这条命令读取口令,然后对文件进行解密

   md5sum与sha1sum

   1 md5sum与sha1sum都是单向散列算法,均无法拟推出原始数据,它们通常用于验证数据完整性或为特定数据生成唯一的密钥

   2 它们可以为每个文件生成一个唯一的密钥: md5sum file 或 sha1sum file

   

6.8 用rsync备份系统快照

   1 rsync可以对位于不同位置的文件和目录进行备份,它可以借助差异计算以及压缩技术来最小化数据传输量

   2 将源目录复制到目的端: rsnyc -av source_path destination_path

      其中-a表示要进行归档,-v表示在标准输出上打印出细节信息或进度

   3 要将数据备份到远程服务器或主机,可以使用: rsnyc -av source_dir username@host:path

      用下面的方法可以将远程主机上的数据恢复到本地主机: rsnyc -av username@host:path destination

      rsnyc命令用ssh连接到远程主机,用user@host这种形式设定远程主机的地址,其中user代表的是用户名,host代表的是远程主机的ip地址或域名

   

6.9 用dd克隆磁盘

   1 dd命令原意是data definition,由于不正确的使用会导致数据丢失,因此它获得了data destrory这一虐称

   2 dd的语法如下: dd if=source of=target bs=block_size count=count

      if代表输入文件或输入设备路径

      of代表目标文件或目标设备路径

      bs代表块大小,count则是需要复制的块数,bs和count都是可选的

   3 要将一个分区复制到文件中,可以使用:dd if=/dev/sda1 of=sda1_partition.img  //该命令中的/dev/sda1是该分区的设备路径

      用备份恢复分区: dd if=sda1_partition.img of=/dev/sda1

   4 如果要永久性删除一个分区中的所有数据,我们可以使用dd向该分区中写入0值

      dd if=/dev/zero of=/dev/sda1  // /dev/zero是一个字符设备,它总是返回字符'\0'

   5 在容量相同的硬盘间进行克隆: dd if=/dev/sda of=/dev/sdb

   

时间: 2024-10-30 14:44:36

Linux Shell 脚本攻略 --- 第六章 B计划的相关文章

Linux Shell 脚本攻略 - 第三章 以文件之名

3.1 生成任意大小文件     1 创建特定大小的文件最简单的方法是使用dd命令,dd命令会克隆给定的输入内容,然后将一份一模一样的副本写道输出     2 stdin,设备文件,普通文件等都可以作为输入,stdout,设备文件,普通文件等也可以作为输出     3 例子: dd if=/dev/zero of=data bs=1M count=1        该命令会在当面目录创建一个1MB大小的文件data,来看一下参数,if代表输入文件,of代表输出文件,bs代表以字节为单位的块大小,

Linux Shell 脚本攻略 ---- 第四章 让文本飞

4.1 正则表达式入门    1 正则表达式是基于样式匹配的文本处理技术的关键所在    2 正则表达式是用于绝大多数文本处理工具的一种语言    3 正则表达式的基本组成部分       正则表达式                 描述                             ^                      行起始标记                      $                      行尾标记                 .      

Linux shell 脚本攻略 第一章 小试牛刀

 1.1 简介      1 打开终端后,就会出现一个提示符,形式通常如下         username@hostname$ 或者root@hostname#      2 $表示的是普通用户,#表示的是超级用户.超级用户是Linux中权限最高的用户      3 有两种运行脚本的方式         sh script.sh 或者是 path script (path是脚本所在的目录)      4 在bash中每个命令是通过分号";"来分开的  1.2 终端打印      1

Linux Shell 脚本攻略 ---- 第九章 管理重任p

9.1 收集进程信息     1 进程是程序的运行实例,运行在一台计算机中的多个进程各自分配了一个称为进程ID的唯一标识数字     2 同一个程序的多个实例可以同时运行,但是他们的进程ID却互不相同     3 一个进程包括多种属性,例如拥有该进程的用户,进程使用的内存数量,进程占用的CPU等     4 ps是收集进程信息的重要工具,它提供了信息包括:拥有进程的用户,进程的起始时间,进程所对应的命令行路径,进程ID,进程所属的终端,进程使用的内存,进程占用的CPU     5 top对应系统

Linux shell 脚本攻略 第二章 命令之乐

2.1 用cat进行拼接     1 cat命令是一个日常会使用到的简单命令,cat本身表示concatenate(拼接)     2 用cat读取文件的一般格式是        cat file1 file2 file3....  // 这个命令将命令行参数的文件内容拼接在一起输出     3 cat命令不仅可以读取文件并拼接数据,它还能够从标准输入中进行读取.要从标准输入中读取,就要使用管道        stand_ouput | cat     4 cat命令可以用来压缩多个空行,使得被

Linux Shell 脚本攻略 ---- 第八章 当个好管家

8.1 统计磁盘的使用情况      1 磁盘空间是一种有限资源      2 df和du是Linux中用于统计磁盘使用情况的重要命令,df是disk free的缩写,du是disk usage的缩写      3 找出某个文件(或多个文件)占用的磁盘空间: du file1 file2 ...      // 统计结果默认是以字节作为计算单位      4 要获得某个目录中所有文件的磁盘使用情况,并在每一行中显示各个文件的磁盘占用详情,可以使用         du -a DIRECTORY

Linux Shell脚本系列教程(六):数组和关联数组

  这篇文章主要介绍了Linux Shell脚本系列教程(六):数组和关联数组,本文讲解了什么是数组和关联数组.定义打印普通数组.定义打印关联数组等内容,需要的朋友可以参考下 一.数组和关联数组 数组是Shell脚本非常重要的组成部分,它借助索引将多个独立的独立的数据存储为一个集合.普通数组只能使用整数作为数组索引,关联数组不仅可以使用整数作为索引,也可以使用字符串作为索引.通常情况下,使用字符串做索引更容易被人们理解.Bash从4.0之后开始引入关联数组. 二.定义打印普通数组 数组的方法有如

Linux Shell脚本系列教程(六):数组和关联数组_linux shell

一.数组和关联数组 数组是Shell脚本非常重要的组成部分,它借助索引将多个独立的独立的数据存储为一个集合.普通数组只能使用整数作为数组索引,关联数组不仅可以使用整数作为索引,也可以使用字符串作为索引.通常情况下,使用字符串做索引更容易被人们理解.Bash从4.0之后开始引入关联数组. 二.定义打印普通数组 数组的方法有如下几种: 复制代码 代码如下: #在一行上列出所有元素 array_var=(1 2 3 4 5 6) #以"索引-值"的形式一一列出 array_var[0]=&q

Linux Shell脚本查看NUMA信息_linux shell

Nova在NFV场景下会提供NUMA相关高级特性,这里提供一个脚本查看计算节点的NUMA相关信息. #!/bin/bash function get_nr_processor() { grep '^processor' /proc/cpuinfo | wc -l } function get_nr_socket() { grep 'physical id' /proc/cpuinfo | awk -F: '{ print $2 | "sort -un"}' | wc -l } func