• 新手必须掌握的Linux命令


    1. 常用系统命令

    1.echo命令

    echo命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”。

    [hadoop@hadoopmaster ~]$ echo $JAVA_HOME
    /usr/local/jdk
    [hadoop@hadoopmaster ~]$ echo 'aaaa'
    aaaa
    

    2.date命令

    date命令用于显示及设置系统的时间或日期,格式为 "date [选项 ][ +指定的格式 ] "。注意:有“+”不能省。

    date命令中的参数以及作用:

    参数 作用
    %t 跳格[Tab键]
    %H 小时(00~23)
    %I 小时(00~12)
    %M 分钟(00~59)
    %S 秒(00~59)
    %j 今年中的第几天

    获取日期:

    [hadoop@hadoopmaster ~]$ date
    2019年 01月 25日 星期五 16:59:34 CST
    

    格式化日期:

    [hadoop@hadoopmaster ~]$ date "+%Y-%m-%d %H:%M:%S"
    2019-01-25 16:59:51
    

    重置系统日期:

    [root@hadoopmaster hadoop]# date -s "2019-05-19 00:00:00"
    2019年 05月 19日 星期日 00:00:00 CST
    

    今天是今年中的第几天:

    [root@hadoopmaster hadoop]# date "+%j"
    139
    

    3. ps命令

    ps命令用于查看系统中的进程状态 。

    ps命令的参数以及作用

    参数 作用
    -a 显示所有进程(包括其他用户的进程)
    -u 用户以及其他详细信息
    -x 显示没有控制终端的进程
    [hadoop@hadoopmaster ~]$ ps aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0  19360   548 ?        Ss   May18   0:01 /sbin/init
    root         2  0.0  0.0      0     0 ?        S    May18   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        S    May18   0:00 [migration/0]
    root         4  0.0  0.0      0     0 ?        S    May18   0:00 [ksoftirqd/0]
    root         5  0.0  0.0      0     0 ?        S    May18   0:00 [stopper/0]
    root         6  0.0  0.0      0     0 ?        S    May18   0:00 [watchdog/0]
    root         7  0.0  0.0      0     0 ?        R    May18   0:26 [events/0]
    

    上述输出信息每一列含义分别为:

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    进程的所有者 进程ID号 运算器占用率 内存占用率 虚拟内存使用量(单位是KB) 占用的固定内存量(单位是KB) 所在终端 进程状态 被启动的时间 实际使用CPU的时间 命令名称与参数

    一般使用该命令都会在其后使用管道,比如查找所有tomcat进程:

    ps aux|grep tomcat
    

    4. top命令

    top命令用于动态地监视进程活动与系统负载等信息,其格式为top。

    [hadoop@hadoopmaster ~]$ top
    top - 00:22:20 up  8:04,  2 users,  load average: 0.16, 0.17, 0.15
    Tasks: 101 total,   1 running, 100 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:   1012080k total,   896340k used,   115740k free,    11144k buffers
    Swap:  2031612k total,  1442712k used,   588900k free,   144732k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                   
     2417 hadoop    20   0 3201m 408m 6936 S  0.7 41.4   5:31.06 java                                                       
     4617 hadoop    20   0 99.7m 1836  860 S  0.3  0.2   0:00.04 sshd                                                       
        1 root      20   0 19360  568  352 S  0.0  0.1   0:01.36 init                                                       
        2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                   
        3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                
        4 root      20   0     0    0    0 S  0.0  0.0   0:00.74 ksoftirqd/0                                                
        5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0                                                  
        6 root      RT   0     0    0    0 S  0.0  0.0   0:00.09 watchdog/0                                                 
        7 root      20   0     0    0    0 S  0.0  0.0   0:27.28 events/0                                                   
        8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 events/0                                                   
        9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 events_long/0                                              
       10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 events_power_ef                                            
       11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup               
    

    top命令相当于windows中的任务管理器。

    第一行显示了系统运行时间,登录用户数,系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低 );

    第二行中显示了在运行的总任务数,运行状态;

    第三行显示了CPU的负载情况;

    第四行显示了当前内存使用情况;

    第五行显示了虚拟内存使用情况。

    5. ifconfig 命令

    ifconfig命令用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备][参数]”。

    [hadoop@hadoopmaster ~]$ ifconfig
    docker0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
             inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
             inet6 addr: fe80::24:5ff:fee7:7513/64 Scope:Link
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
             RX packets:3 errors:0 dropped:0 overruns:0 frame:0
             TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:0 
             RX bytes:216 (216.0 b)  TX bytes:468 (468.0 b)
    
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:27:60:F6  
             inet addr:192.168.238.128  Bcast:192.168.238.255  Mask:255.255.255.0
             inet6 addr: fe80::20c:29ff:fe27:60f6/64 Scope:Link
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
             RX packets:454233 errors:0 dropped:0 overruns:0 frame:0
             TX packets:118207 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1000 
             RX bytes:587460812 (560.2 MiB)  TX bytes:46314002 (44.1 MiB)
    
    lo        Link encap:Local Loopback  
             inet addr:127.0.0.1  Mask:255.0.0.0
             inet6 addr: ::1/128 Scope:Host
             UP LOOPBACK RUNNING  MTU:65536  Metric:1
             RX packets:544555 errors:0 dropped:0 overruns:0 frame:0
             TX packets:544555 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:0 
             RX bytes:134915880 (128.6 MiB)  TX bytes:134915880 (128.6 MiB)
    
    

    6. free 命令

    free用于显示当前系统中内存的使用量信息,格式为“free [-h]”。

    [hadoop@hadoopmaster ~]$ free -h
                total       used       free     shared    buffers     cached
    Mem:          988M       867M       120M        28K        11M       141M
    -/+ buffers/cache:       714M       274M
    Swap:         1.9G       1.4G       575M
    

    7. history 查看当前用户最近的操作命令

    执行history命令能显示出当前用户在本地计算机中执行过的最近1000条命令记录。如果觉得1000不够用,还可以自定义/etc/profile文件中的HISTSIZE变量值。在使用history命令时,如果使用-c参数则会清空所有的命令历史记录。还可以使用“!编码数字”的方式来重复执行某一次的命令 。

    [hadoop@hadoopmaster ~]$ history|more
       15  les mapred-site.xml
       16  less mapred-site.xml
       17  less hdfs-site.xml 
       18  cd ..
       19  cd .
       20  cd ..
       21  cd zookeeper
       22  cd bin
       23  zkServer.sh stop
       24  zkServer.sh status
       25  zkServer.sh start
       26  zkServer.sh status
       27  jps
       28  ls
    

    2. 常用工作目录切换命令

    1. cd 命令

    cd ~ 切换到当前用户家目录

    cd / 切换到根目录

    cd … 切换到上一级目录

    cd 目录名 切换到某个目录中

    2. pwd 命令

    显示当前所处的操作路径。

    [hadoop@hadoopmaster ~]$ pwd
    /home/hadoop
    

    3. ls

    ls命令用于显示目录中的文件。

    ls -a 可以查看当前目录中全部文件,包括隐藏的。

    ls -la 可以查看所有文件的属性,大小信息。

    3. 文本编辑查看相关命令

    1. vim 命令

    vim命令十分强大,不是几句话能概括完的,这里仅介绍基本使用方式。

    编辑文件:vim fileName。当文件存在的时候,进入编辑模式,文件不存在会新建一个空文件。

    进入文件之后,使用i进入编辑模式,然后就可以编辑文件了。

    编辑完成之后,保存,退出,先按:,然后输入wq表示保存并退出。

    2. cat 命令

    cat命令用于查看纯文本文件(内容较少的),格式为“cat [选项][文件]”。

    cat -n fileName ,-n 可用于显示行号。

    [hadoop@hadoopmaster doc]$ cat -n  LICENSE.md 
         1  Scala is licensed under the [BSD 3-Clause License](http://opensource.org/licenses/BSD-3-Clause).
         2
         3  ## Scala License
         4
         5  Copyright (c) 2002-2018 EPFL
         6
         7  Copyright (c) 2011-2018 Lightbend, Inc.
         8
         9  All rights reserved.
        10
        11  Redistribution and use in source and binary forms, with or without modification,
        12  are permitted provided that the following conditions are met:
    

    more 命令

    more命令用于查看纯文本文件(内容较多的),格式为“more [选项]文件”。

    tail 命令

    tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为“tail [选项][文件]”。

    tail -f 文件名 可以持续刷新最新的文件;

    tail -n 行数 文件名 可以只看最后的n行;

    wc命令

    wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。

    wc的参数以及作用

    参数 作用
    -l 只显示行数
    -w 只显示单词数
    -c 只显示字节数

    cut 命令

    cut命令用于按“列”提取文本字符,格式为“cut [参数] 文本”。

    -f 用来设置需要查看的列,f1 表示第一列,f2第二列。

    -d 设置间隔符号,即用什么符号来拆分列。

    比如说,有如下文本:

    [hadoop@hadoopmaster doc]$ less /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
    saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    hadoop:x:500:500::/home/hadoop:/bin/bash
    mysql:x:501:502::/home/mysql:/bin/bash
    ntp:x:38:38::/etc/ntp:/sbin/nologin
    

    我们想提取第一列的用户名:

    [hadoop@hadoopmaster doc]$ cut -d: -f1 /etc/passwd
    root
    bin
    daemon
    adm
    lp
    sync
    shutdown
    halt
    mail
    uucp
    operator
    games
    gopher
    ftp
    nobody
    dbus
    vcsa
    saslauth
    postfix
    sshd
    hadoop
    mysql
    ntp
    

    4. 文件目录管理

    cp 复制

    cp命令用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。

    cp命令的参数及其作用:

    参数 作用
    -p 保留原始文件的属性
    -d 若对象为“链接文件”,则保留该“链接文件”的属性
    -r 递归持续复制(用于目录)
    -i 若目标文件存在则询问是否覆盖
    -a 相当于-pdr(p、d、r为上述参数)

    mkdir 创建目录

    mkdir命令用于创建空白的目录,格式为“mkdir [选项] 目录”。

    除了能创建单个空白目录外,mkdir命令还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录。

    [hadoop@hadoopmaster doc]$ mkdir folder
    [hadoop@hadoopmaster doc]$ mkdir -p foler/1/2
    

    touch

    touch命令用于创建空白文件或设置文件的时间,格式为“touch [选项][文件]”。

    对touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。

    touch命令的参数及其作用

    参数 作用
    -a 仅修改“读取时间”(atime)
    -m 仅修改“修改时间”(mtime)
    -d 同时修改atime与mtime
    [hadoop@hadoopmaster ~]$ touch -d '2019-05-22 8:23:12' file.txt 
    [hadoop@hadoopmaster ~]$ ls -l file.txt
    -rw-rw-r--. 1 hadoop hadoop 0 5月  22 2019 file.txt
    

    mv 命令

    mv命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”。

    剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。如果在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名 。

    [hadoop@hadoopmaster ~]$ ls
    anaconda-ks.cfg  calllog  derby.log  file.txt
    [hadoop@hadoopmaster ~]$ rm anaconda-ks.cfg 
    [hadoop@hadoopmaster ~]$ ls
    calllog  derby.log  file.txt
    [hadoop@hadoopmaster ~]$ mv file.txt file.bak
    [hadoop@hadoopmaster ~]$ ls
    calllog  derby.log  file.bak
    

    file命令

    file命令用于查看文件的类型,格式为“file 文件名”。

    在Linux系统中,由于文本、目录、设备等所有这些一切都统称为文件,而我们又不能单凭后缀就知道具体的文件类型,这时就需要使用file命令来查看文件类型了。

    [hadoop@hadoopmaster local]$ file sbin
    sbin: directory
    [hadoop@hadoopmaster local]$ file user.txt 
    user.txt: UTF-8 Unicode text
    

    5. 搜索相关命令

    find

    find命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。

    这是一个很重要的命令哈,Linux中一切皆文件,当你想找任何文件而不知道他在哪里的时候,find都可以派上用场。

    因为find的用法非常多,这里只介绍常用的用法,具体的请参看man。

    1.根据文件名模糊匹配:

    [hadoop@hadoopmaster local]$ find user.txt -ls
    797522    4 -rw-rw-r--   1 hadoop   hadoop        599 1月  9 22:24 user.txt
    

    find不指定查找路径的时候,默认是在当前路径下查找文件的。

    指定查找路径:

    [hadoop@hadoopmaster /]$ find /usr/local/ -name 'scala-library.jar'
    /usr/local/scala/lib/scala-library.jar
    

    2.根据属主,属组查找

     -user username:查找属主是xx的文件
     -group group:查找属组的xx文件
     -uid useruid:查找uid号的文件
     -gid groupid:查找gid号的文件
     -nouser:查找没有属主的文件,即文件存在但是 user已被删除
     -nogroup:查找没有属组的文件
    
    [hadoop@hadoopmaster local]$ find -user root -ls
    784923    4 drwxrwxr-x  26 root     root         4096 1月 25 10:19 .
    784955    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./src
    784931    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./sbin
    784928    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./lib
    784929    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./lib64
    784925    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./etc
    784927    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./include
    784926    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./games
    784930    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./libexec
    784924    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./bin
    784932    4 drwxrwxr-x   5 root     root         4096 9月  2  2018 ./share
    784934    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/info
    784935    4 drwxrwxr-x  21 root     root         4096 9月  2  2018 ./share/man
    784953    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/man/man9x
    784941    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/man/man3x
    784944    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/man/man5
    784937    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/man/man1x
    784936    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/man/man1
    784938    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/man/man2
    784947    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/man/man6x
    784940    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/man/man3
    784954    4 drwxrwxr-x   2 root     root         4096 9月 23  2011 ./share/man/mann
    

    3.根据文件类型查找

    -type f:普通文件
    -type d:目录文件
    -type l:符号链接文件
    -type s:套接字文件
    -type b:块设备文件
    -type c:字符设备文件
    -type p:管道文件
    
    [hadoop@hadoopmaster local]$ find -type d -ls|more
    784923    4 drwxrwxr-x  26 root     root         4096 1月 25 10:19 .
    796766    4 drwxrwxr-x   7 hadoop   hadoop       4096 10月  8  2018 ./flume
    796874    4 drwxr-xr-x   2 hadoop   hadoop       4096 10月  9  2018 ./flume/conf
    796889    4 drwxr-xr-x  10 hadoop   hadoop       4096 9月 15  2017 ./flume/docs
    796905    4 drwxr-xr-x   2 hadoop   hadoop       4096 10月  8  2018 ./flume/docs/js
    796903    4 drwxr-xr-x   3 hadoop   hadoop       4096 10月  8  2018 ./flume/docs/images
    796904    4 drwxr-xr-x   2 hadoop   hadoop       4096 10月  8  2018 ./flume/docs/images/logos
    796891    4 drwxr-xr-x   2 hadoop   hadoop       4096 10月  8  2018 ./flume/docs/_images
    796894    4 drwxr-xr-x   4 hadoop   hadoop       4096 10月  8  2018 ./flume/docs/apidocs
    796895    4 drwxr-xr-x   3 hadoop   hadoop       4096 9月 15  2017 ./flume/docs/apidocs/com
    796896    4 drwxr-xr-x   3 hadoop   hadoop       4096 9月 15  2017 ./flume/docs/apidocs/com/cloudera
    796897    4 drwxr-xr-x   3 hadoop   hadoop       4096 9月 15  2017 ./flume/docs/apidocs/com/cloudera/flume
    796898    4 drwxr-xr-x   3 hadoop   hadoop       4096 9月 15  2017 ./flume/docs/apidocs/com/cloudera/flume/handlers
    796899    4 drwxr-xr-x   3 hadoop   hadoop       4096 10月  8  2018 ./flume/docs/apidocs/com/cloudera/flume/handlers/thr
    ift
    

    处理动作:

    -print:打印到屏幕
    -ls:查找到的文件 进行 ls
    -delete:删除查找到的文件
    -ok command {}; 对查找的文件执行由command指定的命令,交互式
    -exec command {};同上,非交互式
    {}:代表前面find找到的 文件名称本身
    例如:
    find ./ -type f -exec cp {} {}.bak ; 将查找到的文件都复制出一个.bak文件
    

    grep

    grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项][文件]”。grep命令的参数及其作用如表2-15所示。

    grep命令的参数及其作用:

    参数 作用
    -b 将可执行文件(binary)当作文本文件(text)来搜索
    -c 仅显示找到的行数
    -i 忽略大小写
    -n 显示行号
    -v 反向选择——仅列出没有“关键词”的行。

    grep命令最直接的用法就是:grep 关键字 文件名。日常开发中使用频率比较高。

    6. 打包与压缩命令

    Linux 上的压缩包文件格式,除了 Windows 最常见的*.zip、*.rar、*.7z 后缀的压缩文件,还有* .gz、.xz、.bz2、.tar、.tar.gz、*.tar.xz、*tar.bz2。

    文件后缀名 说明
    *.zip zip 程序打包压缩的文件
    *.rar rar 程序压缩的文件
    *.7z 7zip 程序压缩的文件
    *.tar tar 程序打包,未压缩的文件
    *.gz gzip 程序 (GNU zip) 压缩的文件
    *.xz xz 程序压缩的文件
    *.bz2 tar 打包,gzip 程序压缩的文件
    *.tar.gz tar打包,gzip程序压缩的文件
    *.tar.xz tar打包,xz程序压缩的文件
    *.tar.bz2 tar打包,bzip2程序压缩的文件
    *.tar.7z tar打包,7z程序压缩的文件

    归结起来可以用三个命令来操作:zip,rar,tar。

    6.1 使用zip命令

    1.使用zip打包:

    将 zookeeper目录打包成一个文件,-r 表示递归打包包含子目录的全部内容,-q 表示安静模式,-o 表示输出文件,其后紧跟打包输出文件名:

    # 使用 du 命令查看打包后文件的大小
    # 使用 file 命令查看文件大小和类型
    [hadoop@hadoopmaster local]$ zip -r -q -o zook.zip zookeeper
    [hadoop@hadoopmaster local]$ du -h zook.zip 
    39M     zook.zip
    [hadoop@hadoopmaster local]$ file zook.zip 
    zook.zip: Zip archive data, at least v1.0 to extract
    

    2.设置压缩级别为9和1(9最大,1最小),重新打包:

    [hadoop@hadoopmaster local]$ zip -r -9 -q -o zook.zip zookeeper
    

    3.创建加密zip包

    使用-e参数可以创建加密压缩包。

    [hadoop@hadoopmaster local]$ zip -r -q -o -e zook.zip zookeeper
    Enter password: 
    Verify password: 
    

    注意: 关于 zip 命令,因为 Windows 系统与 Linux/Unix 在文本文件格式上的一些兼容问题,比如换行符(为不可见字符),在 Windows 为 CR+LF(Carriage-Return+Line-Feed:回车加换行),而在 Linux/Unix 上为 LF(换行),所以如果在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。如果你想让你在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题,那么你还需要对命令做一些修改 shell 中的变量有不同类型,可参与运算,有作用域限定 。

    使用 -l 参数将 LF 转换为 CR+LF:

    [hadoop@hadoopmaster local]$ zip -r -l -o zook.zip zookeeper
    

    4.使用 unzip 命令解压缩 zip 文件

    使用安静模式将文件解压到当前目录
    [root@hadoopmaster local]# unzip -q zook.zip 
    使用安静模式将文件解压到指定目录
    [root@hadoopmaster local]# unzip -q zook.zip -d ss
    不想解压,只想查看压缩包内容
    unzip -l zook.zip
    
    6.2 使用rar命令

    打rar包:

    #使用a参数添加一个目录~到一个归档文件中,如果该文件不存在就会自动创建
    [hadoop@hadoopmaster local]$ rar a zook.rar zookeeper
    
    #从指定rar包中删除某个文件
    [hadoop@hadoopmaster local]$ rar d zook.rar a.txt
    

    解压rar包:

    #全路径解压
    [hadoop@hadoopmaster local]$ unrar x zook.rar
    
    #指定路径解压
    [hadoop@hadoopmaster local]$ unrar e zook.rar tmp/
    
    6.3 tar打包命令

    在 Linux 上面更常用的是 tar 工具,tar 原本只是一个打包工具,只是同时还是实现了对 7z,gzip,xz,bzip2 等工具的支持,这些压缩工具本身只能实现对文件或目录(单独压缩目录中的文件)的压缩,没有实现对文件的打包压缩,所以我们也无需再单独去学习其他几个工具,tar 的解压和压缩都是同一个命令,只需参数不同,使用比较方便。

    tar 常用命令参数:

    -c: 建立压缩档案
    -x:解压
    -t:查看内容
    -r:向压缩归档文件末尾追加文件
    -u:更新原压缩包中的文件
    

    这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

    -z:有gzip属性的
    -j:有bz2属性的
    -Z:有compress属性的
    -v:显示所有过程
    -O:将文件解开到标准输出
    
    -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
    

    1.创建一个tar包,将目录打包成.gz 格式

    #将tmp目录打包成.gz文件
    #参数的含义是:创建一个压缩包,格式为gzip,显示创建过程,使用自定义的文件名
    [hadoop@hadoopmaster local]$ tar -czvf mytmp.tar.gz tmp
    tmp/
    tmp/user.txt
    

    2.解压

    [hadoop@hadoopmaster local]$ tar -zxvf mytmp.tar.gz
    

    3.解压到指定目录

    [hadoop@hadoopmaster local]$ tar -zxvf mytmp.tar.gz -C mytmp1
    

    初学总会对不同的格式要使用哪种命令搞混,这里有一个总结:

    1. *.tar 用 tar -xvf 解压
    2. *.gz 用 gzip -d或者gunzip 解压
    3. .tar.gz和.tgz 用 tar -xzf 解压
    4. *.bz2 用 bzip2 -d或者用bunzip2 解压
    5. *.tar.bz2用tar -xjf 解压
    6. *.Z 用 uncompress 解压
    7. *.tar.Z 用tar -xZf 解压
    8. *.rar 用 unrar e解压
    9. *.zip 用 unzip 解压
  • 相关阅读:
    final finally finalize区别
    final 有什么用
    Java基础(一) 八大基本数据类型
    22
    21
    20
    18
    17
    16
    15
  • 原文地址:https://www.cnblogs.com/rickiyang/p/11074166.html
Copyright © 2020-2023  润新知