• Linux_2022/7/19_Day1


    网络常用的单位为Mbit/s,是每秒多少Mbit,光纤传播速度为20M,即每秒2.5MB

    CPU频率就是CPU每秒钟可以进行的工作次数
    不同的CPU之间不能单纯的以频率来判断运算效能喔!这是因为每颗CPU的微指令集不相同,架构也不见得一样,可使用的二级缓存及其运算机制可能也不同, 每次频率能够进行的工作指令数也不同,所以,频率目前仅能用来比较同款CPU的速度!

    所谓的外频指的是CPU与外部组件进行数据传输时的速度,倍频则是 CPU 内部用来加速工作效能的一个倍数, 两者相乘才是CPU的频率速度。

    所谓的超频指的是: 将CPU的倍频或者是外频通过主机板的设定功能更改成较高频率的一种方式。但因为CPU的倍频通常在出厂时已经被锁定而无法修改, 因此较常被超频的为外频。
    举例来说,像上述3.0GHz的CPU如果想要超频, 可以将他的外频333MHz调整成为400MHz,但如此一来整个主机板的各个组件的运作频率可能都会被增加成原本的1.333倍(4/3), 虽然CPU可能可以到达3.6GHz,但却因为频率并非正常速度,故可能会造成宕机等问题。
    CPU运算的数据都是由主内存提供的,,主内存与CPU的沟通速度靠的是外部频率。

    北桥的系统总线称为系统系统总线,因为是内存传输的主要通道,所以速度较快。 南桥就是所谓的输入输出(I/O)系统总线,主要在联系硬盘、USB、网络卡等周边设备。
    北桥所支持的频率我们称为前端系统总线速度(Front Side Bus, FSB), 而每次传送的位数则是系统总线宽度。那所谓的系统总线频宽则是:『FSBx系统总线宽度』亦即每秒钟可传送的最大数据量。 目前常见的系统总线宽度有32/64位(bits)。

    [vbird@www ~]$ command [-options] parameter1 parameter2 ... 
                      命令     选项      参数(1)    参数(2) 
    
    • 1
    • 2

    说明:

    1. 一行命令中第一个输入的部分绝对是『命令(command)』或『可运行文件案』
    2. command 为命令的名称,例如变换路径的命令为 cd 等等;
    3. 中刮号[]并不存在于实际的命令中,而加入选项配置时,通常选项前会带 - 号,
      例如 -h;有时候会使用选项的完整全名,则选项前带有 – 符号,例如 --help
    4. parameter1 parameter2… 为依附在选项后面的参数,或者是 command 的参数;
    5. 命令, 选项, 参数等这几个咚咚中间以空格来区分,不论空几格 shell 都视为一格;
    6. 按下[Enter]按键后,该命令就立即运行。[Enter]按键代表着一行命令的开始启动。
    7. 命令太长的时候,可以使用反斜杠 (\) 来跳脱[Enter]符号,使命令连续到下一行。
      注意!反斜杠后就立刻接特殊字符,才能跳脱!
      其他:
      a. 在 Linux 系统中,英文大小写字母是不一样的。举例来说, cd 与 CD 并不同。
      b. 更多的介绍等到第十一章 bash 时,再来详述。
    [vbird@www ~]$ ls -al ~/.bash[tab][tab] 
    .bash_history  .bash_logout   .bash_profile  .bashrc 
    
    • 1
    • 2
    [Tab] 接在一串命令的第一个字的后面,则为命令补全;
    [Tab] 接在一串命令的第二个字以后时,则为『文件补齐』
    
    • 1
    • 2

    [Ctrl]-c 按键:让当前的程序『停掉』
    [Ctrl]-d 按键:相当于exit

    [syt@localhost ~]$ history 
        1  mkdir dir1
        2  ls -a
        3  touch dir1/file1
        4  ls -a dir1
        5  su
        6  ls
        7  ls -a
        8  pwd
        9  ls -l
       10  ls -s
       11  ls -l -a -s
       12  clear
       13  ls --help
       14  ls -las
       15  ls -a
       16  ls -al
       17  data
       18  date
       19  # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
       20  date
       21  # mv /etc/localtime /etc/localtime.bak  
       22  # ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime 
       23  date
       24  cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
       25  date
       26  echo $LANG
       27  cal
       28  ls -al ~/.bash
       29  man date
       30  bc
       31  history 
    [syt@localhost ~]$ !9
    ls -l
    总用量 0
    drwxr-xr-x. 2 syt syt  6 719 23:27 Desktop
    drwxrwxr-x. 2 syt syt 19 719 18:19 dir1
    drwxr-xr-x. 2 syt syt  6 719 18:12 Documents
    drwxr-xr-x. 2 syt syt  6 719 18:12 Downloads
    drwxr-xr-x. 2 syt syt  6 719 18:12 Music
    drwxr-xr-x. 2 syt syt  6 719 18:12 Pictures
    drwxr-xr-x. 2 syt syt  6 719 18:12 Public
    drwxr-xr-x. 2 syt syt  6 719 18:12 Templates
    drwxr-xr-x. 2 syt syt  6 719 18:12 Videos
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    Ctrl+a:跳到头
    Ctrl+a:跳到尾
    Ctrl+←,Ctrl+→:一个单词一个单词的跳
    Ctrl+u:从当前位置删,删到开头
    Ctrl+k:从当前位置删,删到结尾

    选中想要引用的参数,按Esc后再按.,可以实现快速引用。

    选中需要复制粘贴的命令行,然后点鼠标的转轴,直接粘贴

    [syt@localhost ~]$ whatis ls
    ls (1)               - list directory contents
    ls (1p)              - list directory contents
    
    • 1
    • 2
    • 3
    su - :到root下
    
    • 1

    sync:数据同步写入磁盘

    -:普通文件,eg:initial-setup-ks.cfg
    d:目录,eg:.config
    b:设备文件里面可供存储的周边设备(可按块随机读写的设备)
    c:设备文件(字符文件,不能用来存储文件,但是也是设备文件,如鼠标、键盘)
    l:软连接(快捷方式),链接文件,link file

    read:读
    write:写
    execute:执行
    chmod:修改文件的权限
    chown:修改文件拥有者

    [root@www ~]# chown [-R] 账号名称 文件或目录
    [root@www ~]# chown [-R] 账号名称:用户组名称 文件或目录
    选项与参数:
    -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更
    
    范例:将install.log的拥有者改为bin这个账号:
    [root@www ~]# chown bin install.log
    [root@www ~]# ls -l
    -rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
    
    范例:将install.log的拥有者与群组改回为root:
    [root@www ~]# chown root:root install.log
    [root@www ~]# ls -l
    -rw-r--r--  1 root root 68495 Jun 25 08:53 install.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    chgrp:修改文件所属用户组

    要被改变的组名必须要在/etc/group文件内存在才行,否则就会显示错误!
    假设你是以root的身份登入Linux系统的,那么在你的家目录内有一个install.log的文件, 如何将该文件的群组改变一下呢?假设你已经知道在/etc/group里面已经存在一个名为users的群组, 但是testing这个群组名字就不存在/etc/group当中了,此时改变群组成为users与testing分别会有什么现象发生呢?

    [root@www ~]# chgrp [-R] dirname/filename ...
    -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
         都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
    范例:
    [root@www ~]# chgrp users install.log
    [root@www ~]# ls -l
    -rw-r--r--  1 root users 68495 Jun 25 08:53 install.log
    [root@www ~]# chgrp testing install.log
    chgrp: invalid group name `testing' <== 发生错误讯息啰~找不到这个群组名~
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在我们Linux系统当中,默认的情况下,所有的系统上的账号与一般身份使用者,还有那个root的相关信息, 都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。 此外,Linux所有的组名都纪录在/etc/group内!这三个文件可以说是Linux系统里面账号、密码、群组信息的集中地啰! 不要随便删除这三个文件啊!

    使用su - 进入root,离开root则使用exit
    ls -al :表示列出所有的文件详细的权限与属性(包含隐藏文件,就是文件名第一个字符为.的文件)

    要被改变的组名必须要在/etc/group文件内存在才行,否则就会显示错误!
    假设你是以root的身份登入Linux系统的,那么在你的家目录内有一个install.log的文件, 如何将该文件的群组改变一下呢?假设你已经知道在/etc/group里面已经存在一个名为users的群组, 但是testing这个群组名字就不存在/etc/group当中了,此时改变群组成为users与testing分别会有什么现象发生呢?

    [root@www ~]# chgrp [-R] dirname/filename ...
    -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
         都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
    范例:
    [root@www ~]# chgrp users install.log
    [root@www ~]# ls -l
    -rw-r--r--  1 root users 68495 Jun 25 08:53 install.log
    [root@www ~]# chgrp testing install.log
    chgrp: invalid group name `testing' <== 发生错误讯息啰~找不到这个群组名~
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    因为vbird具有r的权限,因为是r乍看之下好像就具有可以进入此目录的权限,其实那是错的。 能不能进入某一个目录,只与该目录的x权限有关啦!此外, 工作目录对于指令的执行是非常重要的,如果你在某目录下不具有x的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r的权限。

    cd:直接跳回到根目录,等同于cd ~
    cd ~ tom/:切换到tom的家目录
    cd ~/tom:切换到当前目录的家目录root下面的tom文件夹里去
    cd - :切换回上次目录

    mkdir -p
    rmdir -p
    echo $PATH
    ls -ld --time=atime /boot/ 最近一次访问时间
    ls -ld --time=ctime /boot/ 创建时间
    ls /:显示根目录里的东西

    cp /etc/services /mnt:将services复制到mnt文件夹下
    cp /etc/passwd /mnt/xx:将passwd复制到mnt文件夹下,并命名为xx
    cp /etc/services /mnt/yy/:将services复制到yy文件夹下

    [root@localhost /]# cp /etc/services /mnt/
    [root@localhost /]# ls -l /mnt/services
    -rw-r--r--. 1 root root 670293 Jul 25 16:06 /mnt/services
    [root@localhost /]# rm -rf /mnt/services
    [root@localhost /]# cp /etc/services /mnt
    [root@localhost /]# ls -l /mnt/services
    -rw-r--r--. 1 root root 670293 Jul 25 16:08 /mnt/services   #没有将属性信息复制过来
    [root@localhost /]# rm -rf /mnt/services
    [root@localhost /]# cp /etc/services /mnt -p
    [root@localhost /]# ls -l /mnt/services
    -rw-r--r--. 1 root root 670293 Jun  7  2013 /mnt/services   #将属性信息复制过来了
    
    [root@localhost /]# cp -a /etc/ /mnt #也可以将目录和属性复制过来
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    -rf:r是递归的意思,f是强制
    cp -u /etc/services /mnt/services :加-u后,如果前比后新就覆盖,如果前没后新就不复制
    cp /etc/services /mnt/services :不加-u的话就直接覆盖。
    mv /path1/xx /path2/yy 如果yy是文件夹的话,将xx裁剪到path2下的yy文件里去,并重命名为yy,如果yy不是文件夹或者不存在的情况下,将xx裁剪到path2下,并重命名为yy
    mv xx yy 把xx重命名为yy

    cat  由第一行开始显示文件内容,加一个-n,可以显示行号,会给空白行加上行号,适用于查看小文件,
    如果不想要编排空白行的行号,可以使用cat -b
    tac  从最后一行开始显示,可以看出 taccat 的倒著写!
    nl   显示的时候,顺道输出行号!
    nl -b a 文件:给空白行加上行号,跟cat -n功能差不多 
    more 一页一页的显示文件内容,按回车一行一行显示,按空格是一屏一屏显示。
    空白键 (space):代表向下翻一页;
    Enter         :代表向下翻『一行』;
    /字串         :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
    :f            :立刻显示出档名以及目前显示的行数;
    q             :代表立刻离开 more ,不再显示该文件内容。
    b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
    man more 查找more的参数
    lessmore 类似,但是比 more 更好的是,他可以往前翻页!
    空白键    :向下翻动一页;
    [pagedown]:向下翻动一页;
    [pageup]  :向上翻动一页;
    /字串     :向下搜寻『字串』的功能;
    ?字串     :向上搜寻『字串』的功能;
    n         :重复前一个搜寻 (与 / 或 ? 有关!)
    N         :反向的重复前一个搜寻 (与 / 或 ? 有关!)
    q         :离开 less 这个程序;
    按q退出less命令
    end键是Fn+end
    head 只看头几行 head -n 数字 文件,查看前“数字”行,或者head -数字 文件
    tail 只看尾巴几行
    持续侦测/var/log/messages的内容
    [root@www ~]# tail -f /var/log/messages
      <==要等到输入[crtl]-c之后才会离开tail这个命令的侦测!
    od   以二进位的方式读取文件内容!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    touch xx:如果文件本身存在,意味着将xx文件的创建时间或修改时间改为当前,若果不存在,则创建一个新文件叫xx
    ll等同于ls -l

    观察文件类型:file

    [root@www ~]# file ~/.bashrc
    /root/.bashrc: ASCII text  <==告诉我们是 ASCII 的纯文字档啊!
    [root@www ~]# file /usr/bin/passwd
    /usr/bin/passwd: setuid ELF 32-bit LSB executable, Intel 80386, version 1 
    (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for 
    GNU/Linux 2.6.9, stripped
    # 运行档的数据可就多的不得了!包括这个文件的 suid 权限、兼容於 Intel 386
    # 等级的硬件平台、使用的是 Linux 核心 2.6.9 的动态函式库连结等等。
    [root@www ~]# file /var/lib/mlocate/mlocate.db
    /var/lib/mlocate/mlocate.db: data  <== 这是 data 文件!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    通过这个命令,我们可以简单的先判断这个文件的格式为何喔!

    x权限对于目录是非常重要的

    which (查找『执行文件』)

    [root@www ~]# which [-a] command
    选项或参数:
    -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称
    
    范例一:分别用root与一般帐号搜寻 ifconfig 这个命令的完整档名
    [root@www ~]# which ifconfig
    /sbin/ifconfig            <==用 root 可以找到正确的运行档名喔!
    [root@www ~]# su - vbird <==切换身份成为 vbird 去!
    [vbird@www ~]$ which ifconfig
    /usr/bin/which: no ifconfig in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
    :/home/vbird/bin)         <==见鬼了!竟然一般身份帐号找不到!
    # 因为 which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,
    # 不同的 PATH 配置内容所找到的命令当然不一样啦!因为 /sbin 不在 vbird 的 
    # PATH 中,找不到也是理所当然的啊!了乎?
    [vbird@www ~]$ exit      <==记得将身份切换回原本的 root
    
    范例二:用 which 去找出 which 的档名为何?
    [root@www ~]# which which
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot '
            /usr/bin/which
    # 竟然会有两个 which ,其中一个是 alias 这玩意儿呢!那是啥?
    # 那就是所谓的『命令别名』,意思是输入 which 会等於后面接的那串命令啦!
    # 更多的数据我们会在 bash 章节中再来谈的!
    
    范例三:请找出 cd 这个命令的完整档名
    [root@www ~]# which cd
    /usr/bin/which: no cd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin
    :/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
    # 瞎密?怎么可能没有 cd ,我明明就能够用 root 运行 cd 的啊!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    locate
    [root@www ~]# locate [-ir] keyword
    选项与参数:
    -i  :忽略大小写的差异;
    -r  :后面可接正规表示法的显示方式
    
    范例一:找出系统中所有与 passwd 相关的档名
    [root@www ~]# locate passwd
    /etc/passwd
    /etc/passwd-
    /etc/news/passwd.nntp
    /etc/pam.d/passwd
    ....(底下省略)....
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    find
    [root@www ~]# find [PATH] [option] [action]
    选项与参数:
    1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
       -mtime  n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件;
       -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件档名;
       -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件档名。
       -newer file :file 为一个存在的文件,列出比 file 还要新的文件档名
    
    范例一:将过去系统上面 24 小时内有更动过内容 (mtime) 的文件列出
    [root@www ~]# find / -mtime 0
    # 那个 0 是重点!0 代表目前的时间,所以,从现在开始到 24 小时前,
    # 有变动过内容的文件都会被列出来!那如果是三天前的 24 小时内?
    # find / -mtime 3 有变动过的文件都被列出的意思!
    
    范例二:寻找 /etc 底下的文件,如果文件日期比 /etc/passwd 新就列出
    [root@www ~]# find /etc -newer /etc/passwd
    # -newer 用在分辨两个文件之间的新旧关系是很有用的!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    [root@localhost mnt]# touch aa
    [root@localhost mnt]# ls
    aa  xx
    [root@localhost mnt]# ln -s aa aa1
    [root@localhost mnt]# ls
    aa  aa1  xx
    [root@localhost mnt]# ll
    total 4
    -rw-r--r--. 1 root root  0 Jul 27 15:12 aa
    lrwxrwxrwx. 1 root root  2 Jul 27 15:12 aa1 -> aa
    -rw-r--r--. 1 root root 12 Jul 26 10:57 xx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    分区:
    q离开,不保存
    w保存并退出

    root@localhost ~]# mount /dev/cdrom /mnt
    [root@www ~]# compress [-rcv] 文件或目录  <==这里是压缩
    [root@www ~]# uncompress 文件.Z           <==这里是解压缩
    选项与参数:
    -r  :可以连同目录下的文件也同时给予压缩呢!
    -c  :将压缩数据输出成为 standard output (输出到萤幕)
    -v  :可以秀出压缩后的文件资讯以及压缩过程中的一些档名变化。
    
    范例一:将 /etc/man.config 复制到 /tmp ,并加以压缩
    [root@www ~]# cd /tmp
    [root@www tmp]# cp /etc/man.config .
    [root@www tmp]# compress -v man.config
    man.config:  -- replaced with man.config.Z Compression: 41.86%
    [root@www tmp]# ls -l /etc/man.config /tmp/man*
    -rw-r--r-- 1 root root 4617 Jan  6  2007 /etc/man.config   <==原有文件
    -rw-r--r-- 1 root root 2684 Nov 10 17:14 /tmp/man.config.Z <==经过压缩的文件
    范例二:将刚刚的压缩档解开
    [root@www tmp]# uncompress man.config.Z
    [root@www tmp]# ll man*
    -rw-r--r-- 1 root root 4617 Nov 10 17:14 man.config
    范例三:将 man.config 压缩成另外一个文件来备份
    [root@www tmp]# compress -c man.config > man.config.back.Z
    [root@www tmp]# ll man*
    -rw-r--r-- 1 root root 4617 Nov 10 17:14 man.config
    -rw-r--r-- 1 root root 2684 Nov 10 17:24 man.config.back.Z
    # 这个 -c 的选项比较有趣!他会将压缩过程的数据输出到萤幕上,而不是写入成为 
    # *.Z 的压缩档。所以,我们可以透过数据流重导向的方法将数据输出成为另一个档名。
    # 关於数据流重导向,我们会在第十一章 bash 详细谈论的啦!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    root@www ~]# gzip [-cdtv#] 档名
    [root@www ~]# zcat 档名.gz
    选项与参数:
    -c  :将压缩的数据输出到萤幕上,可透过数据流重导向来处理;
    -d  :解压缩的参数;
    -t  :可以用来检验一个压缩档的一致性~看看文件有无错误;
    -v  :可以显示出原文件/压缩文件的压缩比等资讯;
    -#  :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6
    
    范例一:将 /etc/man.config 复制到 /tmp ,并且以 gzip 压缩
    [root@www ~]# cd /tmp 
    [root@www tmp]# cp /etc/man.config .
    [root@www tmp]# gzip -v man.config
    man.config:      56.1% -- replaced with man.config.gz
    [root@www tmp]# ll /etc/man.config /tmp/man*
    -rw-r--r-- 1 root root 4617 Jan  6  2007 /etc/man.config
    -rw-r--r-- 1 root root 2684 Nov 10 17:24 /tmp/man.config.back.Z
    -rw-r--r-- 1 root root 2057 Nov 10 17:14 /tmp/man.config.gz  <==gzi
    范例二:由於 man.config 是文字档,请将范例一的压缩档的内容读出来!
    [root@www tmp]# zcat man.config.gz
    # 由於 man.config 这个原本的文件是是文字档,因此我们可以尝试使用 zcat  去读取!
    # 此时萤幕上会显示 man.config.gz 解压缩之后的文件内容!
    
    范例三:将范例一的文件解压缩
    [root@www tmp]# gzip -d man.config.gz
    # 不要使用 gunzip 这个命令,不好背!使用 gzip -d 来进行解压缩!
    # 与 gzip 相反, gzip -d 会将原本的 .gz 删除,产生原本的 man.config 文件。
    
    范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件
    [root@www tmp]# gzip -9 -c man.config > man.config.gz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    [root@www ~]# bzip2 [-cdkzv#] 档名
    [root@www ~]# bzcat 档名.bz2
    选项与参数:
    -c  :将压缩的过程产生的数据输出到萤幕上!
    -d  :解压缩的参数
    -k  :保留原始文件,而不会删除原始的文件喔!
    -z  :压缩的参数
    -v  :可以显示出原文件/压缩文件的压缩比等资讯;
    -#  :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!
    
    范例一:将刚刚的 /tmp/man.config 以 bzip2 压缩
    [root@www tmp]# bzip2 -z man.config 
    # 此时 man.config 会变成 man.config.bz2 !
    
    范例二:将范例一的文件内容读出来!
    [root@www tmp]# bzcat man.config.bz2
    # 此时萤幕上会显示 man.config.bz2 解压缩之后的文件内容!!
    
    范例三:将范例一的文件解压缩
    [root@www tmp]# bzip2 -d man.config.bz2
    
    范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件
    [root@www tmp]# bzip2 -9 -c man.config > man.config.bz2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    [root@www ~]# tar [-j|-z] [cv] [-f 创建的档名] filename... <==打包与压缩
    [root@www ~]# tar [-j|-z] [tv] [-f 创建的档名]             <==察看档名
    [root@www ~]# tar [-j|-z] [xv] [-f 创建的档名] [-C 目录]   <==解压缩
    选项与参数:
    -c  :创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename)
    -t  :察看打包文件的内容含有哪些档名,重点在察看『档名』就是了;
    -x  :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
          特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
    -j  :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
    -z  :透过 gzip  的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
    -v  :在压缩/解压缩的过程中,将正在处理的档名显示出来!
    -f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项罗!
    -C 目录    :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
    
    其他后续练习会使用到的选项介绍:
    -p  :保留备份数据的原本权限与属性,常用於备份(-c)重要的配置档
    -P  :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
    --exclude=FILE:在压缩的过程中,不要将 FILE 打包! 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    [root@localhost ~]# mount /dev/cdrom /mnt
    mount: /dev/sr0 is write-protected, mounting read-only
    [root@localhost ~]# ls mnt
    ls: cannot access mnt: No such file or directory
    [root@localhost ~]# ls /mnt
    CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL
    [root@localhost ~]# gedit /etc/yum.repos.d/aa.repo
    
    [root@localhost ~]# yum list ncompress
    
    [root@localhost ~]# gedit /etc/yum.repos.d/aa.repo
    [root@localhost ~]# yum list ncompress
    [root@localhost ~]# yum install ncompress -y
    [root@localhost ~]# cd /opt
    [root@localhost opt]# ls
    rh
    [root@localhost opt]# cp /etc/services .
    [root@localhost opt]# ls
    rh  services
    [root@localhost opt]# compress -v services
    services:  -- replaced with services.Z Compression: 68.12%
    [root@localhost opt]# ls
    rh  services.Z
    [root@localhost opt]# ucompress services.Z
    bash: ucompress: command not found...
    Similar command is: 'compress'
    [root@localhost opt]# uncompress services.Z
    [root@localhost opt]# ls
    rh  services
    [root@localhost opt]# compress -c -v services > services.Z
    [root@localhost opt]# ls
    rh  services  services.Z
    [root@localhost opt]# man compress
    [root@localhost opt]# compress --help
    
    [root@localhost opt]# gzip -d hosts.gz
    [root@localhost opt]# ls
    hosts
    [root@localhost opt]# gzip -c hosts > hosts.gz
    [root@localhost opt]# ls
    hosts  hosts.gz
    [root@localhost opt]# zcat hosts,gz
    gzip: hosts,gz.gz: No such file or directory
    [root@localhost opt]# zcat hosts.gz
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    [root@localhost opt]# 
    [root@localhost opt]# ll -lh
    total 8.0K
    -rw-r--r--. 1 root root 158 Jul 28 10:47 hosts
    -rw-r--r--. 1 root root  80 Jul 28 10:53 hosts.gz
    [root@localhost opt]# ll
    total 8
    -rw-r--r--. 1 root root 158 Jul 28 10:47 hosts
    -rw-r--r--. 1 root root  80 Jul 28 10:53 hosts.gz
    
    [root@localhost opt]# rm -rf hosts.gz
    [root@localhost opt]# ls
    hosts
    [root@localhost opt]# bzip2 hosts
    [root@localhost opt]# ls
    hosts.bz2
    [root@localhost opt]# bzip2 -d hosts.bz2
    [root@localhost opt]# ls
    hosts
    [root@localhost opt]# bzip2 -c hosts > hosts.bz2
    [root@localhost opt]# ls
    hosts  hosts.bz2
    [root@localhost opt]# bzcat hosts.bz2
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    [root@localhost opt]# ls
    hosts  hosts.bz2
    [root@localhost opt]# rm -rf hosts.bz2
    [root@localhost opt]# ls
    hosts
    [root@localhost opt]# zip hosts.zip hosts
      adding: hosts (deflated 65%)
    [root@localhost opt]# ls
    hosts  hosts.zip
    [root@localhost opt]# ll
    total 8
    -rw-r--r--. 1 root root 158 Jul 28 10:47 hosts
    -rw-r--r--. 1 root root 216 Jul 28 11:14 hosts.zip
    
    [root@localhost opt]# ls
    hosts  hosts.zip
    [root@localhost opt]# tar -cvf hosts.tar
    tar: Cowardly refusing to create an empty archive
    Try `tar --help' or `tar --usage' for more information.
    [root@localhost opt]# ls
    hosts  hosts.zip
    [root@localhost opt]# tar cvf hosts.tar
    tar: Cowardly refusing to create an empty archive
    Try `tar --help' or `tar --usage' for more information.
    [root@localhost opt]# tar cvf hosts.tar hosts
    hosts
    [root@localhost opt]# ls
    hosts  hosts.tar  hosts.zip
    [root@localhost opt]# ll -h
    total 20K
    -rw-r--r--. 1 root root 158 Jul 28 10:47 hosts
    -rw-r--r--. 1 root root 10K Jul 28 13:54 hosts.tar
    -rw-r--r--. 1 root root 216 Jul 28 11:14 hosts.zip
    [root@localhost opt]# ls
    hosts  hosts.tar  hosts.zip
    [root@localhost opt]# rm -rf hosts.tar
    [root@localhost opt]# ls
    hosts  hosts.zip
    [root@localhost opt]# rm -rf hosts.zip
    [root@localhost opt]# ls
    hosts
    [root@localhost opt]# tar cvf hosts.tar hosts --remove-files
    hosts
    [root@localhost opt]# ls
    hosts.tar
    [root@localhost opt]# tar xvf hosts.tar
    hosts
    [root@localhost opt]# ls
    hosts  hosts.tar
    [root@localhost opt]# rm -rf hosts
    [root@localhost opt]# ls
    hosts.tar
    [root@localhost opt]# mkdir aa
    [root@localhost opt]# ls
    aa  hosts.tar
    [root@localhost opt]# tar xvf hosts.tar -C /aa
    tar: /aa: Cannot open: No such file or directory
    tar: Error is not recoverable: exiting now
    [root@localhost opt]# tar xvf hosts.tar -C aa/
    hosts
    [root@localhost opt]# ls
    aa  hosts.tar
    [root@localhost opt]# 
    [root@localhost opt]# cd aa
    [root@localhost aa]# ls
    hosts
    [root@localhost aa]# rm -rf *
    [root@localhost aa]# ls
    [root@localhost aa]# cd ..
    [root@localhost opt]# ls
    aa  hosts.tar
    [root@localhost opt]# rm -rf *
    [root@localhost opt]# ls
    [root@localhost opt]# cp /etc/services /etc/passwd /etc/hosts .
    [root@localhost opt]# ls
    hosts  passwd  services
    [root@localhost opt]# tar cvf xx.tar --remove-files
    tar: Cowardly refusing to create an empty archive
    Try `tar --help' or `tar --usage' for more information.
    [root@localhost opt]# tar cvf xx.tar * --remove-files
    hosts
    passwd
    services
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# tar tvf xx.tar
    -rw-r--r-- root/root       158 2022-07-28 15:51 hosts
    -rw-r--r-- root/root      2307 2022-07-28 15:51 passwd
    -rw-r--r-- root/root    670293 2022-07-28 15:51 services
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# tar xvf xx.tar
    hosts
    passwd
    services
    [root@localhost opt]# ls
    hosts  passwd  services  xx.tar
    [root@localhost opt]# rm -rf hosts passwd services
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# tar tvf xx.tar
    -rw-r--r-- root/root       158 2022-07-28 15:51 hosts
    -rw-r--r-- root/root      2307 2022-07-28 15:51 passwd
    -rw-r--r-- root/root    670293 2022-07-28 15:51 services
    [root@localhost opt]# tar xvf xx.tar hosts
    hosts
    [root@localhost opt]# ls
    hosts  xx.tar
    [root@localhost opt]# rm -rf hosts
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# tar xvf xx.tar
    hosts
    passwd
    services
    [root@localhost opt]# ls
    hosts  passwd  services  xx.tar
    [root@localhost opt]# rm -rf xx.tar
    [root@localhost opt]# ls
    hosts  passwd  services
    [root@localhost opt]# tar cvf xx.tar 
    tar: Cowardly refusing to create an empty archive
    Try `tar --help' or `tar --usage' for more information.
    [root@localhost opt]# tar cvf xx.tar *
    hosts
    passwd
    services
    [root@localhost opt]# ls
    hosts  passwd  services  xx.tar
    [root@localhost opt]# rm -rf hosts passwd services
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# tar cvf xx.tar
    tar: Cowardly refusing to create an empty archive
    Try `tar --help' or `tar --usage' for more information.
    [root@localhost opt]# tar cvf xx.tar *
    tar: xx.tar: file is the archive; not dumped
    [root@localhost opt]# tar xvf xx.tar *
    tar: xx.tar: Not found in archive
    tar: Exiting with failure status due to previous errors
    [root@localhost opt]# tar xvf xx.tar 
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# tar zcvf xx.tar.gz * --remove -files
    tar: Multiple archive files require `-M' option
    Try `tar --help' or `tar --usage' for more information.
    [root@localhost opt]# tar xcf xx.tar *
    tar: You may not specify more than one `-Acdtrux' or `--test-label' option
    Try `tar --help' or `tar --usage' for more information.
    [root@localhost opt]# tar xcf xx.tar 
    tar: You may not specify more than one `-Acdtrux' or `--test-label' option
    Try `tar --help' or `tar --usage' for more information.
    [root@localhost opt]# tar xvf xx.tar 
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# tar xvf xx.tar *
    tar: xx.tar: Not found in archive
    tar: Exiting with failure status due to previous errors
    [root@localhost opt]# tar xvf xx.tar
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# tar xvf xx.tar
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# cd ..
    [root@localhost /]# cd opt
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# tar xvf xx.tar
    [root@localhost opt]# ls
    xx.tar
    [root@localhost opt]# ll
    total 12
    -rw-r--r--. 1 root root 10240 Jul 28 16:06 xx.tar
    [root@localhost opt]# rm -rf xx.tar
    [root@localhost opt]# ls
    
    [root@localhost opt]# cp /etc/services /etc/hosts /etc/passwd .
    cp: overwrite ‘./services’? q
    [root@localhost opt]# ls
    hosts  passwd  services
    
    [root@localhost opt]# tar zcvf xx.tar.gz * --remove-files
    hosts
    passwd
    services
    [root@localhost opt]# ls
    xx.tar.gz
    [root@localhost opt]# tar zxvf xx.tar.gz
    hosts
    passwd
    services
    [root@localhost opt]# ls
    hosts  passwd  services  xx.tar.gz
    [root@localhost opt]# rm -rf xx.tar.gz
    [root@localhost opt]# ls
    hosts  passwd  services
    [root@localhost opt]# tar jcvf xx.tar.bz2 * --remove-files
    hosts
    passwd
    services
    [root@localhost opt]# ls
    xx.tar.bz2
    [root@localhost opt]# tar jxvf xx.tar.bz2
    hosts
    passwd
    services
    [root@localhost opt]# ls
    hosts  passwd  services  xx.tar.bz2
    [root@localhost opt]# ll -h
    total 788K
    -rw-r--r--. 1 root root  158 Jul 28 16:22 hosts
    -rw-r--r--. 1 root root 2.3K Jul 28 16:22 passwd
    -rw-r--r--. 1 root root 655K Jul 28 16:21 services
    -rw-r--r--. 1 root root 123K Jul 28 16:29 xx.tar.bz2
    [root@localhost opt]# ls
    hosts  passwd  services  xx.tar.bz2
    [root@localhost opt]# rm -rf hosts passwd services
    [root@localhost opt]# ls
    xx.tar.bz2
    [root@localhost opt]# mkdir aa
    [root@localhost opt]# ls
    aa  xx.tar.bz2
    [root@localhost opt]# tar jxvf xx.tar.bz2 -C aa
    hosts
    passwd
    services
    [root@localhost opt]# ls
    aa  xx.tar.bz2
    [root@localhost opt]# ls aa/
    hosts  passwd  services
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
  • 相关阅读:
    小车测速并通过串口发送速度数据
    【MYSQL】表的综合查询
    Numpy+PyTorch基础《python深度学习----基于pytorch》
    Pikachu靶场之SSRF服务器端请求伪造
    Colmap 实用教程 —— Command-line Interface
    新来的员工,突然在我面前哭了
    qt QRadioButton 及QButtonGroup 使用
    leetcode 638. 大礼包-思路整理
    芯片生产封装过程简介及概念
    Go语言关于协程何时退出的问题
  • 原文地址:https://blog.csdn.net/weixin_43133798/article/details/125868306