Linux文件属性

命令: ls -al 代表显示该目录下所有文件及其属性

  1. liguanghua@Lighs-MacBook-Pro ~ % ls -al
  2. total 424
  3. drwxr-xr-x+ 45 liguanghua staff 1440 6 8 23:14 .
  4. drwxr-xr-x 6 root admin 192 1 1 2020 ..
  5. -rw-r--r-- 1 liguanghua staff 12288 9 7 2019 .1.txt.swp
  6. -r-------- 1 liguanghua staff 9 12 1 2020 .CFUserTextEncoding
  7. -rw-r--r-- 1 liguanghua staff 24580 6 8 22:54 .DS_Store
  8. drwxr-xr-x 8 liguanghua staff 256 7 10 2019 .ShadowsocksX-NG
  9. drwx------ 20 liguanghua staff 640 6 8 22:52 .Trash
  10. [ 1 ] [2] [3] [ 4 ] [5] [6] [7]
  11. [ 权限 ] [连接][所有者] [用户组][文件容量][修改日期][文件名]

从上面可以知道每一列代表的意思。

第一列代表这个文件的类型与权限
  1. 第一个字符代表这个文件是“目录、文件或者链接文件等”
  • 若是[d] 则是目录,例如上面文件名为.Trash
  • 若是[-]则是文件
  • 若是[l]则表示为连接文件
  • 若是[b]则表示设备文件里面的可供存储的接口设备
  • 若是[c]则表示设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)

接下来的字符,以3个为一组,且均为“rwx”的3个参数的组合。其中[r]代表可读,[w]代表可写,[x]代表可执行。要注意的是这3个权限的位置不会改变,如果没有权限就会出现减号[-]而已。

  • 第一组为“文件所有者的权限”

  • 第二组为“同用户组的权限”

  • 第三组为“其他非本用户组的权限”
    例子:

  1. [-] [rwx] [r-x] [r--]
  2. 1 234 567 890
  3. 1:代表这是一个文件
  4. 234:拥有者的权限为可读可写可执行
  5. 567:同用户组权限为可读可执行
  6. 890:其他用户权限为可读

第二列表示有多少文件名连接到此结点(i-node)

第三列代表这个文件(或目录)的“所有者账号”

第四列代表这个文件的所属用户组

第五列为这个文件的容量大小,默认为B

第六列为这个文件的创建日期或者最近修改的日期
  1. ls -l --full-time 可以显示完整的时间格式
  2. 修改“/etc/sysconfig/i18n”可以改变系统默认语言

第七列为文件名

假设test1,test2,test3同属于testgroup这个用户组,如果有以下两个文件,请说明两个文件的所有者与其相关的权限

-rw-r—r— 1 root root 238 Jun 18 17:22 test.txt

-rwxr-xr— 1 test1 testgroup 5238. Jun 19 20:25 ping_tsai

  • 文件text.txt的所有者为root,所属用户组为root。至于权限方面则只有root这个账户可以访问此文件,其他人只则仅能读

  • 另一个文件ping_tsai的所有者为test1,所属用户组为testgroup。其中:

    • test1可以针对此文件具有可读可写可执行的权限;
    • 而同用户组的test2,test3两个人与test1同样是testgroup的用户组账号,则仅可读可执行,不能写
    • 至于非testgroup这一个用户组的人仅仅可以读,不能写也不能执行

如何改变文件属性与权限

  • chgrp: 改变文件所属用户组

    chgrp [-R] 组名 文件/路径 -R:代表进行递归修改,即改变其子目录的所有文件或者目录

chgrp users install.log


注意:有一个前提是被改变的组名必须要在 /etc/group文件里面存在才行

  • chown:改变文件所有者

    chown [-R] 账号名称 文件或目录

chown bin install log


注意:用户必须在 /etc/password这个文件存在

  • chmod:改变文件的权限
    设置权限的方法有两种,分别是使用数字或者符号来进行更改。

    数字类型改变权限:

Linux文件的基本权限有9个,分别是:owner、group、others三种身份,而每种身份对应rwx三种权限

每个权限都对应一个分数. r:4 w:2 x:1 - :0

例如: owner=rwx= 4+2+1 =7 group=rwx= 4+2+1 =7 others= —- = 0

命令:chmod [-R] xyz 文件或目录

如:

符号类型改变权限:

命令 身份 权限 操作 文件或目录
chmod u(user) g(group) o(others) a(all) r w x +(加入) -(除去) =(设置) 文件或者目录

如果要给文件设置的权限为 “ -rwxr-xr-x”时的命令如下:

chmod u=rwx,go=rx .bashrc

user(u):具有可读可写可执行的权限

group与others(g/o):具有可读与执行的权限

当不知道原先文件属性的情况下并给每个人增加(减少)权限可以使用以下命令:

chmod a+w .bashrc

chmod a-x. .bashrc


Linux文件种类与扩展名

需要知道的一点是:任何设备在Linux下面都是文件,不仅如此,连数据通信的接口也有专门的文件负责。所以你会了解到,Linux的文件种类真的很多,除了前面提到的一般文件(-)与目录文件(d)之外,还有哪些种类的文件呢?

  • 文件种类
    ls -l 可以看到,第一个字符为文件的类型

    • 普通文件
      就是一般我们进行访问类型的文件,在由ls -al所显示出来的属性方面,第一个字符为[-],它又分为:

      • 纯文本文件(ASCII)
        这是Linux系统中最多的一种文件类型,称为纯文本文件是因为内容为我们可以直接读到的数据

      • 二进制文件(binary)
        系统其实仅仅认识且可以执行二进制文件

      • 数据格式文件(data)
        有些程序在运行的过程中会读取某些特定格式的文件,哪些特定格式的文件就被称为数据文件

  • 连接文件(link)

就是类似window下面的快捷方式,第一个属性为 [l].

  • 设备与设备文件(device)
    与系统外设及存储等相关的一些文件,通常都集中在/dev这个目录,通常又分为两种:

    • 块(block)设备文件:就是提供一些存储数据,以提供系统随机访问的接口设备,例如硬盘、软盘等
    • 字符(character)设备文件:也即是一些串行端口的设备文件,例如键盘、鼠标等
  • 套接字(sockets)
    既然被称为数据接口文件,这种类型的文件通常被用在网络上的数据连接。我们可以启动一个程序来监听客户端的请求,而客户端就可以通过这个socket来进行数据的通信了。其第一个属性为「s」,通常在/var/run这个目录中可看到这种文件类型。

  • 管道(FIFO,pipe)
    FIFO也是一种特殊的文件类型,它主要的目的在解决多个程序同时访问一个文件所造成的错误问题


Linux目录配置

  • Linux目录配置标准:FHS
    因为利用Linux来开发产品或distributions的公司/团队与个人实在太多了,如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰。所以就有了FHS,下面是其根目录下的一些常见目录 | 目 录 | 应放置文件内容 | | —- | —- | | /bin | 系统有很多放置执行文件的目录,但/bin比较特殊。因为/bin放置的是单用户维护模式下还能够被操作的命令。在/bin下面的命令可以被root与一般账号所使用,主要有cat,chmod,chown,date,mv,mkdir,cp,bash等常用命令 | | /boot | 这个目录主要放开机会使用到的文件,包括Linux内核文件已经开机菜单与开机所需配置文件等。Linux kernel常用的文件名为vmlinux,如果使用的是grub这个引导装载程序,则还会存在/boot/grub这个目录 | | /dev | 在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录当中的。你只要通过访问这个目录下的某个文件,就等于访问某个设备。比较重要的文件有/dev/null,/dev/zreo,/dev/tty,/dev/lp,/dev/sd 等 | | /etc | 系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的起始文件等。一般来说,这个目录下的各文件属性是可以让一般用户查阅的,但是只有root有权利修改。*FHS建议不要放置可执行文件在这个目录中。比较重要的文件有/etc/inittab,/etc/init.d/,/etc/X11/ 等 | | /home | 这是系统默认的用户主文件夹。在你创建一个一般用户账号时,默认的用户主文件夹都会规范到这里来 | | /lib | 放置的是在开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库而已 | | /media | 顾名思义这个/media下面放置的是可删除的设备。包括软盘、光盘、DVD等设备都暂时挂载于此 | | /mnt | 如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录 | | /opt | 这是给第三方软件放置的目录 | | /root | 系统管理员的主文件夹。之所以放这里是因为如果进入单用户维护模式而仅挂载根目录时,该目录就能够拥有root的主文件夹,所以我们会希望root的主文件夹于主目录放置在一个分区中 | | /sbin | Linux有非常多的命令是用来设置系统环境的,这些命令只有root才能够利用来“设置”系统,其他用户最多只能“查询”。放在/bin下面的为开机过程中所需要的,里面包含了开机、修复、还原系统所需要的命令 | | /srv | 可以视为“service”的缩写,是一些网络服务启动后,这些服务需要取用的数据目录 | | /tmp | 一般是用来存放临时文件的,任何人都能访问 | | /usr | usr其实是UNIX Software Resource的缩写,也就是“UNIX操作系统软件资源”所放置的目录,而不是用户的数据。这点要注意。FHS建议所有的软件开发者应该将它们的数据合理的放置在这个目录的子目录下,而不是自行新建该软件自己的独立目录。这个目录其实就类似于win下的“C:\WIndows”和”C:\Program files”综合体 | | /var | 一般是用来存放日志的 | | | |

Linux文件与目录管理

目录的相关操作
  • cd : 切换目录
    cd [相对路径或绝对路径]
    cd - 表示回到刚才的路径
    cd ~ 表示回到自己的主文件夹
    cd .. 表示去到当前的上层目录

  • pwd: 显示当前目录
    pwd -p 可以拿到连接所指向的目录

  • mkdir: 新建一个新的目录
    mkdir -p 不存在的目录会先创建

  • rmdir: 删除一个空的目录

环境变量:$Path

如下:可以查看当前环境变量设置

iguanghua@Lighs-MacBook-Pro ~ %

liguanghua@Lighs-MacBook-Pro ~ % echo $path

/usr/local/bin /usr/bin /bin /usr/sbin /sbin

liguanghua@Lighs-MacBook-Pro ~ %

需要注意的是:

  • 不同身份用户默认的PATH不同,默认能够随意执行的命令也不同
  • PATH是可以修改的,所以一般用户还是可以通过修改PATH来执行某些位于/sbin或/usr/bin下的命令来查询
  • 使用绝对路径或相对路径直接指定某个命令的文件名来执行,会比查询PATH来得正确

查看文件与目录:ls
  1. 常用的如:
  2. ls -al 列出所有文件;
  3. ls -al --full-time 完整呈现文件的修改时间

复制、删除与移动:cp,rm,mv
  • cp(复制文件或目录)

    cp [-adfilprsu] 源文件 目录文件

参数: -a 相当于 -pdr的意思

-d:若源文件为连接文件的属性,则复制连接文件属性而非文件本身

-f: 强制的意思,若目标文件已经存在且无法开启,则删除后再尝试一次

-i:若目标文件已经存在时,在覆盖时会先询问操作的进行(常用)

-r:递归持续复制,用于目录的复制行为

-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)

  • rm(移除文件或目录)

    rm [-fir] 文件或目录

-f : 就是force的意思,忽略不存在的文件,不会出现警告信息

-i : 互动模式,在删除前会询问用户是否操作

-r : 递归删除

  • mv(移动文件与目录或更名)

    mv [-fiu] source destination

-f: force强制的意思,如果目标文件已经存在,不会询问而是直接覆盖

-i :若目标文件已经存在时,就会询问是否覆盖

-u:若目标文件已经存在,且source比较新,才会更新

文件内容查阅
  • cat:由第一行开始显示文件内容

    cat [-AbEnTv]

-A:相当于-vET的整合参数,可列出一些特殊字符,而不是空白而已;

-b:列出行号,空白行不标行号

-E:将结尾的断行字符 $ 显示出来

-n:打印出行号,连同空白行也会有行号

-T:将 tab键以 ^I 显示出来

-v:列出一些看不出来的特殊字符

  • tac:从最后一行开始显示

    与上面的cat 完全相反

  • nl:显示的时候顺便输出行号

    nl [-bnw] 文件

-b : 指定行号指定的方式,主要有两种:

  1. -b a:表示不论是否为空行,也同样列出行号
  2. -b t:如果有空行,空的那一行不要列出行号

-n: 列出行号表示的方法,主要有三种:

  1. -n ln:行号在屏幕最左方显示;
  2. -n rn:行号在自己字段的最有房显示,且不加0
  3. -n rz 行号在自己字段的最右方显示,且加0
  • more:一页一页地显示文件内容

    主要是关注翻页相关

  • 空格【Space】代表向下翻页
  • Enter 代表向下滚动一页
  • /字符串:代表在这个显示的内容当中,向下查询“字符串”这个关键字
  • :f : 代表显示出文件名以及目前显示的行数
  • q :代表立刻离开more,不显示该文件内容
  • b或[ctrl]-b : 代表往回翻页,不过这操作只对文件管用,对管道无用
  • less:与more类似,但是比more更好的是,它可以往前翻页

    空格键: 向下翻动一页

【PageDown】:向下翻动一页

【PageUp】:向上翻动一页

/字符串:向下查询“字符串”

?字符串: 向上查询“字符串”

n:重复前一个查询(与/或?有关)

N:反向重复前一个查询(与/或?有关)

q: 退出less

  • head:只看头几行

    head [-n number] 文件

-n:后面接数字,代表显示几行的意思(默认10行)

  • tail:只看结尾几行

    tail [-n number] 文件

-n:后面接数字,代表显示几行的意思

-f:表示持续检测后面所接的文件名,要等到按下ctrl-c 才会结束tail的检测

  • od:以二进制的方式读取文件内容

    od [-t type] 文件

-t 后面可以接各种“类型”的输出 比如:

a : 利用默认的字符来输出

c : 使用ascii 字符来输出

d[size]: 利用十进制来输出数据,每个整数占用 size bytes

修改文件时间或者创建新文件:touch

touch [-acdmt] 文件

-a:仅修改访问时间

-c:仅修改文件的时间,若该文件不存在则不创建新文件

-d:后面可以接欲修改的日期而不用目前的日期,也可以使用 —date “日期或时间”

-m:仅修改mtime

-t:后面可以接欲修改的时间而不用目前的时间,格式为【YYMMDDhhmm】

文件不存在会新建一个文件

查看文件类型:file

file 文件名

data:代表数据文件

ascii:代表纯文本文件

脚本文件的查询

which 【-a】command

which默认查找PATH规范的目录

文件名查找
  • whiereis(查找特定文件)

whereis 【-bmsu】 文件或目录名

-b:只找二进制格式的文件

-m:只找在说明文件manual路径下的文件

-s:只找source源文件

-u:查找不再上述三个选项当中的其他特殊文件

  • locate

locate 【-ir】 keyword

-i :忽略大小写的差异

-r:后面可接正则表达式的显示方式

【root ~】# locate passwd — 找出系统中所有与passwd相关的文件名

/etc/passwd

/etc/passwd-

/etc/news/passwd.nntp

…….省略………

  • find

find 【path】【option】【action】

如:find / -mtime 0 代表将过去系统上面24小时内有改动的文件列出

find /home -user admin 代表查找/home下面属于admin的文件

find / -name passwd 代表找出文件名为passwd的这个文件

find /var -type s 代表找出/var目录下文件类型为socket的文件名

find / -size +1000k 代表找出系统中大于1M的文件

权限与命令间的关系
  • 让用户能进入某目录称为“可工作目录”的基本权限是什么

    • 可使用的命令:如cd等切换工作目录的命令
    • 目录所需权限:用户对这个目录至少有x的权限
    • 额外需求:如果用户想要在这个目录内利用ls查阅文件名,则用户对此目录还需要有r的权限
  • 用户某个目录内读取一个文件的基本权限是什么

    • 可使用的命令:例如上面的cat,more,less等
    • 目录所需权限:用户对这个目录至少有x的权限
    • 文件所需权限:用户对文件至少需要有r的权限才行
  • 让用户可以修改一个文件的基本权限是什么

    • 可使用的命令:例如nano或未来需要介绍的vi编辑器等
    • 目录所需权限:用户对这个目录至少有x的权限
    • 文件所需权限:用户对这个文件至少要有x,r权限
  • 让一个用户可以创建一个文件的基本权限是什么

    • 目录所需权限:用户在该目录要具有w,x的权限,重点在w
  • 让用户进入某目录并执行该目录下的某个命令的基本权限是什么

    • 目录所需权限:用户至少对这个目录要有x的权限
    • 文件所需权限:用户在该文件至少要有x的权限

Linux磁盘与文件系统管理

  1. 一些理论知识这里就不详细介绍了,自己看书。

文件系统的简单操作
  • 磁盘与目录的容量:df,du

df 【-ahikHTm】 【目录或文件名】

-a :列出所有的文件系统,包括系统特有的/proc等文件系统

-k :以KB的容量显示各文件系统

-m :以MB的容量显示各文件系统

-h :以人们较易阅读的GB,MB,KB等格式自行显示

-H :以M=1000K替代M=1024K的进位方式

-T : 连同该分区的文件系统名称(例如ext3)也列出

-i :不用硬盘容量,而以inode的数量来显示

du 【-ahskm】 文件或目录名称

-a :列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已

-h :以人们较易读的容量格式(G/M)显示

-s :列出总量而已,而不列出每个各别的目录占有容量

-S :不包括子目录下的总计,与-s有点差别

-k : 以KB容量显示

-m :以MB容量显示

  • 连接文件:ln

ln 【-sf】源文件 目标文件

-s :如果不加任何参数就进行连接,那就是hard link,至于-s就是symbolic link

-f :如果目标文件存在时,就主动将目标文件直接删除后再创建

磁盘的分区、格式化、检验与挂载

1.对磁盘进行分区,以新建可用的分区

2.对该分区进行格式化,以创建可用的文件系统

3.若想要仔细点,则对刚才新建好的文件系统进行检验

4.在Linux系统上,需要创建挂载点(也即是目录),并将它挂载上来

  • 磁盘分区:fdisk

fdisk 【-l】磁盘名称

-l :输出后面接的设备所有的分区内容。若仅有fdisk -l时,则系统将会把整个系统内能找到的设备的分区均列出来

  • 格式化:mkfs

mkfs [-t 文件系统格式] 设备文件名

-t :可以接文件系统格式,例如ext3,ext2,vfat等

  • 磁盘检验:fsck,badlocks

fsck 【-t 文件系统】【-ACay】设备名称

-t :如同mkfs一样,fsck也是个综合软件而已,因此我们同样需要指定文件系统。不过如今Linux太聪明,它会自动通过super block去分辨文件系统,因此通常可以不加这个参数

-A :依据/etc/fstab的内容,将需要的设备扫描一次。/etc/fstab在下一小节说明,通常开机过程中会执行此命令

-a :自动修复检查到的有问题的扇区,所以你不用一直按y

-y : 与-a类似

-C :可以在检查的过程当中使用直方图显示目前的进度

badblocks -[svw] 设备名称

-s :在屏幕中列出进度

-v :可以在屏幕中看到进度

-w :使用写入的方式来测试,建议不要使用此参数,尤其是带检查的设备已有文件时

  • 磁盘挂载与卸载
    需要明白的是挂载点其实就是目录,而这个目录是进入磁盘分区(其实是文件系统)的入口就是咯。不过在挂载前,你最好先确定几件事情:
    单一文件系统不应该被重复挂载在不同的挂载点(目录)中
    单一目录不应该重复挂载多个文件系统
    作为挂载点的目录理论上应该都是空目录

    mount -a

mount 【-l】

mount 【-t 文件系统】【-L Label名】【-o 额外选项】【-n】设备文件名 挂载点

-a :依照配置文件/etc/fstab 的数据将所有未挂载的磁盘都挂载上来

-l :单纯输入mount会显示目前挂载的信息,加上-l 可增列Label名称

-t :与mkfs的参数非常类似,可以加上文件系统种类来指定欲挂载的类型。常见的Linux支持类型有:ext2,ext3,iso9660,nfs,smbfs等等

-n :在默认情况下,系统会将实际挂载的情况实时写入/etc/mtab中,以利于其他程序的运行。但是在某些情况下(例如单用户维护模式)为了避免问题,会刻意不写入,这个时候就要用-n了

-L :系统除了利用设备文件名(如/etc/hdc6)之外,还以利用文件系统的卷标名称(Label)来进行挂载。最好为你的文件系统取一个独一无二的名称

-o :后面可以接一些挂载时额外加上的参数,比方说账号、密码、读写权限等

  1. rorw:挂载文件系统称为只读(ro)或可读写(rw
  2. asyncsync:此文件系统是否使用同步或异步方式写入,默认异步
  3. usernouser:是否允许次分区让任何用户执行mount?一般来说,mount仅有root用户可以进行,但下达user参数,则可 让一般user也能够对此分区进行mount
  4. remount:重新挂载,这在系统出错或重新更新参数时很有用

umount 【-fn】设备文件名或挂载点

-f :强制卸载

-n:不更新/etc/mtab的情况下挂载

  • 磁盘参数修改

    • mknod
    • e2label
    • tune2fs
    • hdparm
  • 设置开机挂载
    在/etc/fstab里面直接修改即可设置开机挂载,但是它有一些限制:

    • 根目录/是必须挂载的,而且一定要先于其他mount point被挂载进来
    • 其他挂载点必须为已新建的目录,可任意指定但必须遵守必需的系统目录架构原则
    • 所有挂载点在统一时间内,只能挂载一次
    • 所有分区在同一时间内,只能挂载一次
    • 如若尽心卸载,你必需先将工作目录移到挂载点之外

内存交换空间(swap)的创建
  • 使用物理分区构建swap

  • 使用文件构建swap

  • swap使用上的限制
    说实话,swap在目前的桌面计算机来讲,存在的意义已经不大,这是因为目前的x86主机所含的内存都是在太大来(一把入门级至少512MB),所以我们的Linux系统大概都用不到swap。不过,如果是针对服务器或者工作站这些常年上线的系统来说的话,那么无论如何swap还是需要创建的。
    因为swap的主要功能是当物理内存不够时,将某些在内存当中所占的程序暂时移动到swap当中,让物理内存可以被需要的程序来使用。另外如果你的主机支持电源管理模式,也就是说你的Linux主机系统可以进入“休眠”模式的话,那么,运行当中的程序状态则会被记录到swap取,以作为唤醒主机的状态依据。不过,在创建swap时,是有限制的:

    • 在内核2.4.10版本以后,单一swap已经没有2GB的限制了
    • 但是,最多还是仅能创建32个swap
    • 而且目前X86_64(64位)最大内存寻址到64GB,因此swap总量最大也是仅能达到64GB

文件与文件系统的压缩与打包

Linux常见的压缩命令
  1. Linux的环境中,压缩文件按的扩展名大多为_.tar, _.tar.gz, _.tgz, _.gz, _.Z, _.bz2,为什么会有这样的扩展名呢?不是说Linux的扩展名没有什么作用吗?
  2. 这是因为Linux支持的压缩命令非常多,且不同的命令所用的压缩技术并不相同,当然彼此之间可能就无法相互压缩/解压缩文件。所以但你下载某个压缩文件时,自然就需要知道该文件是由哪种压缩命令制作出来的,好用来解压缩。所以其实就是方便我们人类记忆的。常见的压缩文件扩展名有:

*.Z compress程序压缩的文件

*.gz gzip程序压缩的文件

*.bz2 bzip2程序压缩的文件

*.tar tar程序打包的数据,并没有压缩

*.tar.gz tar程序打包的文件,其中经过gzip的压缩

*.tar.bz2 tar程序打包的文件,其中经过bz2的压缩

  • Compress
    该命令已经非常老了,这里就不介绍了。

  • gzip,zcat
    gzip可以说是应用最广的压缩命令了。目前gzip可以解开compress、zip与gzip等软件所压缩的文件

    gzip 【-cdtv#】文件名

-c :将压缩的数据输出到屏幕上,可通过数据流重定向来处理

-d :解压缩的参数

-t :可以用来检验一个压缩文件的一致性,看看文件有无错误

-v :可以显示原文件/压缩文件的压缩比等信息

-# :压缩等级,-1最快但压缩比最差,-9最慢但压缩比最好。默认是-6

zcat 文件名.gz 可以读取纯文本被压缩后的压缩文件

  • Bzip2,bzat
    若说gzip是替代compress并提供更好的压缩比而成立的,那么bzip2则是为了替代gzip并提供更好的压缩比而来的。bzip2的用法几乎与gzip相同

    bzip2 【-cdkzv#】 文件名

-c :将压缩过程中产生的文件输出到屏幕上

-d :解压缩的参数

-k :保留原文件,而不会删除原始的文件

-z :压缩的参数

-v :可以显示原文件/压缩文件的压缩比等信息

-# :与gzip型痛,都是计算压缩比的参数,-9最佳,-1最快

bzcat 文件名.bz2

打包命令:tar

完整备份工具:dump
  • dump
    其实dump的功能很强,它除了可以备份整个文件系统之外,还可以指定等级

    • 当备份的数据是单一文件系统
    • 待备份的数据只是目录,并非单一文件
    • 用dump备份完成的文件系统
    • 用dump备份非文件系统,即单一目录的方法
  • restore

    • 用restore查看dump后的备份数据内容
    • 比较差异并且还原整个系统
    • 仅还原部分文件的restore互动模式

光盘写入工具
  • mkisofs:新建镜像文件
  • cdrecord:光盘刻录工具

其他常见的压缩与备份工具
  • dd
  • cpio