Linux必备命令

 

目录                                                             

概述

常用系统工作命令

系统状态检测命令

工作目录切换命令

文本文件编辑命令

文件目录管理命令

打包压缩与收缩命令

参考资料

概述                                                                  

1.shell

Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。

                                                                                            

图3-1  用户与Linux系统的交互

 现在主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器。主流Linux系统选择Bash解释器作为命令行终端主要有以下4项优势:

  1.通过上下方向键来调取过往执行过的Linux命令;

  2.命令或参数仅需输入前几位就可以用Tab键补全;

  3.具有强大的批处理脚本;

  4.具有实用的环境变量功能。

用途:用于实现某一类功能的指令或程序;命令的执行依赖于解释器程序(例如:/bin/bash)

分类

内部命令:属于Shell 解释器的一部分

外部命令:独立于Shell 解释器之外的程序文件

 

2.Linux命令的格式

  语法:命令字[选项]  [参数]

  选项:用于调节命令的具体功能

   以“-”引导短格式选项(单个字符),例如“-l”

   以“--”引导长格式选项(多个字符),例如“--color”

   多个短格式选项可以写在一起,只用一个“-”引导,例如“-al”

  参数:命令操作的对象,如文件、目录名等

  注意:选项和参数可有可无,应该根据实际情况去调整。

 

3.命令帮助

 Help命令用于查看linux内置命令的帮助

Man命令,命令字典

按键

用途

空格键

向下翻一页

PaGe down

向下翻一页

PaGe up

向上翻一页

home

直接前往首页

end

直接前往尾页

/

从上至下搜索某个关键词,如“/linux”

?

从下至上搜索某个关键词,如“?linux”

n

定位到下一个搜索到的关键词

N

定位到上一个搜索到的关键词

q

退出帮助文档

表2-1 man命令中常用按键以及用途

结构名称

代表意义

NAME

命令的名称

SYNOPSIS

参数的大致使用方法

DESCRIPTION

介绍说明

EXAMPLES

演示(附带简单说明)

OVERVIEW

概述

DEFAULTS

默认的功能

OPTIONS

具体的可用选项(带介绍)

ENVIRONMENT

环境变量

FILES

用到的文件

SEE ALSO

相关的资料

HISTORY

维护历史与联系方式

表2-2 man命令帮助信息的结构以及意义

常用系统工作命令                                                 

1.echo命令

    功能:显示指定的字符串或变量的内容,不指定任何参数时将显下一个空行。

    格式:echo  [字符串或$变量名]...

    示例:

  [admin@redhat7 桌面]$ echo 'I Love linux'

  I Love linux

  [admin@redhat7 桌面]$ echo $HOSTNAME

  redhat7.0

2.date命令

    功能:显示及设置系统的时间或日期

    格式:date [选项] [+指定的格式]

    选项:%t     跳格[Tab键]

             %H      小时(00~23)

              %I     小时(00~12)

            %M     分钟(00~59)

            %S       秒(00~59)

             %j     今年中的第几天

 示例:

   [admin@redhat7 桌面]$ date   <==查看当前系统时间

   2019年 03月 23日 星期六 14:55:32 CST

   [admin@redhat7 桌面]$ date "+%Y-%m-%d %H:%M:%S"  <==按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间

   2019-03-23 14:57:16

   [admin@redhat7 桌面]$ date -s "20170323 14:59:00"  <==将系统的当前时间设置为XXX  (发现普通用户无权限)

    date: 无法设置日期: 不允许的操作

   2017年 03月 23日 星期四 14:59:00 CST

   [admin@redhat7 桌面]$ su root

   密码:

   [root@redhat7 桌面]# date -s "20170323 15:00:00"

    2017年 03月 23日 星期四 15:00:00 CST

   [root@redhat7 桌面]# date

   2017年 03月 23日 星期四 15:00:17 CST

   [root@redhat7 桌面]# date "+%j"  <==查看今天是当年中的第几天

082

3.reboot/poweroff  默认只能使用root才有权限(后面会设置权限控制)

4.wget命令

    功能:在终端中下载网络文件

    格式:wget [选项] 下载地址

    选项:-b      后台下载模式

              -P       下载到指定目录

               -t       最大尝试次数

               -c       断点续传

               -p     下载页面内所有资源,包括图片、视频等

               -r      递归下载

 示例:

    [root@linuxprobe ~]# wget http://www.linuxprobe.com/docs/LinuxProbe.pdf

     --2017-08-24 19:30:12 -- http://www.linuxprobe.com/docs/LinuxProbe.pdf

    Resolving www.linuxprobe.com (www.linuxprobe.com)... 220.181.105.185

    Connecting to www.linuxprobe.com (www.linuxprobe.com)|220.181.105.185|:80...

    connected.

    …

5.ps命令

    功能:查看系统中的进程状态

    格式:ps [选项]

    选项:-a       显示所有进程(包括其他用户的进程)

               -u       用户以及其他详细信息

               -x     显示没有控制终端的进程

    应用: 1.ps aux 最常用,可以用 | 管道和 more 连接起来分页查看;ps -aux |more

                2.和grep 结合,提取指定程序的进程;ps aux |grep httpd

               3.父进和子进程的关系友好判断,运用到f参数,父与子关系一目了然;ps auxf  |grep httpd

 

5.1.进程状态

   Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。

  R(运行):进程正在运行或在运行队列中等待。

  S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。

  D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。

  Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放

   T(停止):进程收到停止信号后停止运行。

 示例:[admin@redhat7 桌面]$ ps aux

USER

PID

%CPU

%MEM

VSZ

RES

TTY

S

START

TIME

COMMAND

进程的所有者

进程ID号

运算器占用率

内存占用率

虚拟内存使用量(单位是KB)

占用的固定内存量(单位是KB)

所在终端

进程

状态

被启动

的时间

实际使用
CPU的时间

命令名称与参数

root

1

0.0

0.4

53684

7628

?

Ss

07 :22

0:02

/usr/lib/systemd/systemd

root

2

0.0

0.0

0

0

?

S

07:22

0:00

[kthreadd]

root

3

0.0

0.0

0

0

?

S

07:22

0:00

[ksoftirqd/0]

root

5

0.0

0.0

0

0

?

S<

07:22

0:00

[kworker/0:0H]

root

7

0.0

0.0

0

0

?

S

07:22

0:00

[migration/0]

………………省略部分输出信息………………

 

表2-3  进程状态

6.top命令

  功能:动态地监视进程活动与系统负载等信息(类似于Windows任务管理器)

  格式:top

  示例:top

图3-2  top命令的运行界面

参数含义:

    第1行:系统时间、运行时间、登录终端数、(CPU)系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低,最好不要超过5;判断负载情况—从右往左看)。

    第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

    第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。  (注:例如“96.1 id”意味着有96.1%的CPU处理器资源处于空闲。)

    第4行:物理内存总量(kb)、内存使用量、内存空闲量、作为内核缓存的内存量。

    第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。

 

7.pidof命令

   功能:查询某个指定服务进程的PID值

   格式:pidof [选项] [服务名称]

   示例:

      [root@linuxprobe ~]# pidof sshd

      2156

8.kill命令

   功能:终止某个指定PID的服务进程

   格式:kill [选项] [进程PID]

   示例:

      [root@linuxprobe ~]# kill 2156

9.killall命令

   功能:终止某个指定名称的服务所对应的全部进程

   格式:kill all[选项] [服务名称]

   示例:

      [root@linuxprobe ~]# pidof httpd

       13581 13580 13579 13578 13577 13576

      [root@linuxprobe ~]# killall httpd

      [root@linuxprobe ~]# pidof httpd

      [root@linuxprobe ~]#

注:停止命令执行快捷键 Ctrl + C

系统状态检测命令                                                        

1. ifconfig命令

   功能:获取网卡配置与网络状态等信息

   格式:ifconfig [网络设备] [选项]

   示例:

       [root@linuxprobe ~]# ifconfig

       eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  <==网卡名称

        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255  <==IP地址,掩码

        inet6 fe80::20c:29ff:fec4:a409  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:c4:a4:09  txqueuelen 1000  (Ethernet)  <==网卡物理地址(MAC地址)

        RX packets 36  bytes 3176 (3.1 KiB)     <==接收数据包个数及累计流量

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 38  bytes 4757 (4.6 KiB)     <==发送数据包的个数及累计流量

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2. uname命令

   功能:查看系统内核与系统版本等信息

   格式:uname [-a]

   示例:

      [admin@redhat7 桌面]$ uname -a

       Linux redhat7.0 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux   <==系统、主机名称、内核版本、系统打包时间、系统位数、协议

3. uptime用于查看系统的负载信息(显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息,(平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。

  示例:

      [admin@redhat7 桌面]$ uptime

      16:38:05 up  1:29,  2 users,  load average: 0.00, 0.01, 0.05

4.free用于显示当前系统中内存的使用量信息

 

 

内存总量

已用量

可用量

进程共享的内存量

磁盘缓存的内存量

缓存的
内存量

 

total

used

free

shared

buffers

cached

Mem

1.8GB

1.3GB

542MB

9.8MB

1.6MB

413MB

-/+ buffers/cache

 

869MB

957MB

 

 

 

Swap

2.0GB

0

2.0GB

 

 

 

表2-4 执行free -h命令后的输出信息

5.who用于查看当前登入主机的用户终端信息

6.last命令用于查看系统历史的登录记录(由于信息以日志保存,容易遭到篡改,只能用于参考,不能判断系统是否被黑)

7. history命令

功能:显示历史执行过的命令

示例:

    [admin@redhat7 桌面]$ history

    1  ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

    2  ln -sf /lib/systemd/system/multi-user.target /etc/systemd/

    3  su do ln -sf /lib/systemd/system/multi-user.target /etc/systemd/

    4  su root

    5  reboot

     …

    [admin@redhat7 桌面]$ !4   <== “!编码数字”的方式来重复执行某一次的命令

   su root

   密码:

   su: 鉴定故障

  [admin@redhat7 桌面]$ cat ~/.bash_history   <==查看历史文件目录 (Linux系统中以点(.)开头的文件均代表隐藏文件,这些文件大多数为系统服务文件,可以用cat命令查看其文件内容。)

   ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

   ln -sf /lib/systemd/system/multi-user.target /etc/systemd/

   su do ln -sf /lib/systemd/system/multi-user.target /etc/systemd/

   su root

  reboot

  [admin@redhat7 桌面]$ history -c  <==清空历史命令记录

  [admin@redhat7 桌面]$ history

    1  history

8.sosreport命令用于收集系统配置及架构信息并输出诊断文档(厂商远程售后分析诊断)

 示例:(将压缩包和校验码发送即可)

   [root@linuxprobe ~]# sosreport

   sosreport (version 3.0)

   ...

   No changes will be made to system configuration.

   Press ENTER to continue, or CTRL-C to quit.   <==此处敲击回车来确认收集信息

   Please enter your first initial and last name [linuxprobe.com]:   <==此处敲击回车来确认主机编号

  Please enter the case number that you are generating this report for:   <==此处敲击回车来确认主机编号

  ...

   /var/tmp/sosreport-linuxprobe.com-20170905230631.tar.xz   <==收集好的资料压缩文件

   The checksum is: 79436cdf791327040efde48c452c6322       <==校验码

   ...

工作目录切换命令                                              

1.pwd命令用于显示当前用户所在的工作目录

2.ls 命令

  功能:列表(List)查看目录及文件的属性信息。不带任何选项或参数时,默认显示当前目录的内容。

  格式:ls  [选项]  [文件或目录] ·  ·  ·

  选项:  -a   列出所有(All)文件和子目录,包括以点”.“开头的隐藏文件或目录。

              -A   列出所有文件和子目录(包括隐藏文件或目录),特殊目录”.“和”..“除外 。

               -l    以长格式(Long)显示文件或目录的详细信息。

               -d   只显示目录本身(Directory)的属性信息,而不显示其中的文件或子目录。

  示例:

    [admin@redhat7 桌面]$ ls -al

    总用量 4

     drwxr-xr-x.  2 admin admin    6 3月  22 16:13 .

     drwx------. 14 admin admin 4096 3月  23 15:26 ..

     [admin@redhat7 桌面]$ ls -ld /etc

     drwxr-xr-x. 133 root root 8192 3月  23 23:08 /etc

3.cd命令用于切换工作路径

  示例:

    [admin@redhat7 桌面]$ cd /etc    <==切换到/etc目录

    [admin@redhat7 etc]$ cd -        <==返回到上一次的目录

     /home/admin/桌面

    [admin@redhat7 桌面]$ cd ~      <==切换到用户的家目录

    [admin@redhat7 ~]$

    [admin@redhat7 ~]$ cd ..         <==切换到上一级目录

    [admin@redhat7 home]$ cd .      <==切换到当前目录(注:.和..可以理解为相对路径)

    [admin@redhat7 home]$

文本文件编辑命令                                                 

1.cat命令

  功能:通常用于查看纯文本文件(内容较少)

  格式:cat [参数] [文件]...

  参数:-n  显示文件内容时在每一行行首添加行号(Number) 。

2.more命令用于查看纯文本文件(内容较多,more大小都能看);分页显示文件内容。按Enter键可以逐行下翻,按空格键下翻一页,按b键向上翻一页;和管道符号”|“结合使用时一般只能向下翻页,按q键退出。

 

3.head命令用于查看纯文本文档的前N行,格式:head [选项(-n)]  [文件]

4.tail命令

  功能:查看文件末尾指定行数(默认为10行)的内容。

  格式:tail  [选项]  [文件] ·  ·  ·

  选项: -N   这里的N为用户指定的行数(若不指定,默认显示10行)。

              -f    跟踪文件中新增加(Follow)的内容,多用于观察日志文件变化等,按Ctrl+C键退出。

  示例:

  [root@sky ~]# tail -2 /etc/passwd

  sky:x:500:500:sky:/home/sky:/bin/bash

  lisi:x:501:501::/home/lisi:/bin/bash

  [root@sky ~]# tail -lf /var/log/messages

  May 26 13:58:34 sky tpvmlpd2[2621]: device type not supported

5.less 命令用于分页显示文件内容,与more命令的类似,但使用更加灵活。按上下箭头键前后逐行滚动查看,空格键或PageDown键向下翻页,按b键或Pageup键向上翻页,按q键退出。

6. wc命令

  功能:统计文件的行数、单词数和字节数等信息(Word Count)。默认选项为”-lwc”。

  格式:wc [选项]  [文件]  ·  ·  ·

  选项:-c    统计文件内容中的字节数。

             -l    统计文仲内容中的行数。

            -w   统计文件内容中的单词个数。

  示例:

    [root@sky ~]# ls -lh /etc/*.conf | wc -l

    45

    [root@sky ~]# wc /etc/fstab /etc/passwd

    16   84  851 /etc/fstab

    35   54 1653 /etc/passwd

      51  138 2504 总用量

 

7.tr命令用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”

 示例:

    [root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]

    #VERSION=RHEL7

    # SYSTEM AUTHORIZATION INFORMATION

    AUTH --ENABLESHADOW --PASSALGO=SHA512

   …

 

8.stat命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。

   stat命令可以用于查看文件的存储信息和时间等信息,命令stat anaconda-ks.cfg会显示出文件的三种时间状态:Access、Modify、Change。

 示例:

    [root@linuxprobe ~]# stat anaconda-ks.cfg

    File: ‘anaconda-ks.cfg’

     ...

    Access: 2017-07-14 01:46:18.721255659 -0400    <==查看时间,最后一次查看文件内容的时间

    Modify: 2017-05-04 15:44:36.916027026 -0400    <==修改时间,最后一次修改文件内容的时间

    Change: 2017-05-04 15:44:36.916027026 -0400   <==更改时间,最后一次变更文件属性的时间(文件的所有者和权限信息)

    Birth: -

 

9.cut命令用于按“列”提取文本字符,格式为“cut [选项] 文本”。

10.diff命令用于比较多个文本文件的差异,格式为“diff [选项] 文件”。

   在使用diff命令时,不仅可以使用--brief参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处

 示例:

    [root@linuxprobe ~]# cat diff_A.txt  <==使用cat命令分别查看diff_A.txt和diff_B.txt文件的内容,然后进行比较

    Welcome to linuxprobe.com

    Red Hat certified

   Free Linux Lessons

   …

    [root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt  <==diff --brief命令显示比较后的结果,判断文件是否相同

    Files diff_A.txt and diff_B.txt differ

    [root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt  <==最后使用带有-c参数的diff命令来描述文件内容具体的不同

    *** diff_A.txt 2017-08-30 18:07:45.230864626 +0800

    --- diff_B.txt 2017-08-30 18:08:52.203860389 +0800

   ***************

   *** 1,5 ****

    …

文件目录管理命令                                                

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

2.mkdir命令

  功能:创建新目录(Make Directories)

  格式:mkdir  [选项]   <目录> ·  ·  ·

  选项:-p  必要时连父目录(Parent)一起创建,如果目标目录存在也不报错。

3.cp 命令

   功能:复制(Copy)文件或目录,复制源是目录或多个文件时,目标必须是目录。

   格式:cp   [选项]  <源文件或源目录> ·  ·  · <目标文件或目录>

   选项:-f   覆盖目标同名文件或目录时不进行提醒,而直接强制(Force)复制。

             -i   覆盖目标同名文件或目录时提醒用户确认(lnteractive,交互式)。

            -p  复制时保持(Preserve)源文件的权限,属主及时间截等属性不变。

            -r   复制目录时使用递归(Recursive)复制所有文件及子目录。

   示例:

     [root@sky ~]# cp -rf /boot/grub/ ./

    [root@sky ~]# cp /etc/init.d/httpd ./myhttpd

在Linux系统中,复制操作具体分为3种情况:

   如果目标文件是目录,则会把源文件复制到该目录中;

   如果目标文件也是普通文件,则会询问是否要覆盖它;

   如果目标文件不存在,则执行正常的复制操作。

4.mv 命令

  功能:移动(Move)文件或目录,可以在移动时改名(相当于剪切)。移动多个文件或目录时目标必须是目录。

  格式:mv  [选项]  <源文件或源目录> ·  ·  · <目标文件或目录>

  选项:-f  覆盖目标同名文件或目录时不进行提醒,而直接强制(Force)移动。

             -i  覆盖目标同名文件或目录时提醒用户确认(interactive交互式)。

5.rm 命令

  功能:删除指定的文件或目录。

  格式:rm  [选项]   <文件或目录> ·  ·  ·

  选项:-f  在删除文件或目录时不进行提醒,而直接强制(Force)删除。

            -i  在删除文件或目录时提醒用户确认(lnteractive,交互式)。

           -r  删除目录时使用,递归(Recursive)删除所有文件及子目录。

6.ln 命令

  功能:为文件或目录建立链接(Link) ,硬链接不能用于目录也不能跨硬盘分区。

  格式:ln  [参数]   <源文件或源目录>...< 链接文件位置>

  参数:-s  建立软链接即符号链接(Symbolic)文件,默认为硬链接。

             -f  若链接文件已存在,则直接强制(Force)覆盖。

             -I  在覆盖目标链接文件时提醒用户确认。

  示例:

    [root@sky ~]# ln -s /usr/local/httpd/bin/apachectl /usr/sbin/

    [root@sky ~]# ln /etc/shadow /etc/shadow.bak

7.dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [选项]”。

    Linux系统中有一个名为/dev/zero的设备文件,这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此可以使用它作为dd命令的输入文件,来生成一个指定大小的文件。

 选项:-if(input file)        输入的文件名称

           -of(output file)     输出的文件名称

           -bs                           设置每个“块”的大小

           -count                      设置要复制“块”的个数

  示例:

    [root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M  <==用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件。(默认单位为字节)

    1+0 records in

    1+0 records out

    587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s

     [root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso   <==使用dd命令来压制出光盘镜像文件,将它变成一个可立即使用的iso镜像

     7311360+0 records in

     7311360+0 records out

     3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s

8.touch命令

  功能:用用于创建空白文件或设置文件的时间

  格式:touch [选项] [文件]

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

   选项:-a      仅修改“读取时间”(atime)

             -m      仅修改“修改时间”(mtime)

             -d       同时修改atime与mtime

  示例:

      先使用ls命令查看一个文件的修改时间,然后修改这个文件,最后再通过touch命令把修改后的文件时间设置成修改之前的时间(很多黑客就是这样做的呢)

      [root@linuxprobe ~]# ls -l anaconda-ks.cfg    

       -rw-------. 1 root root 1213 May  4 15:44 anaconda-ks.cfg

      [root@linuxprobe ~]# echo "Visit the LinuxProbe.com to learn linux skills" >>

      anaconda-ks.cfg

      [root@linuxprobe ~]# ls -l anaconda-ks.cfg

      -rw-------. 1 root root 1260 Aug  2 01:26 anaconda-ks.cfg

      [root@linuxprobe ~]# touch -d "2017-05-04 15:44" anaconda-ks.cfg

      [root@linuxprobe ~]# ls -l anaconda-ks.cfg

      -rw-------. 1 root root 1260 May  4 15:44 anaconda-ks.cfg

  注意:atime和mtime时间可以修改,ctime不能修改

打包压缩与收缩命令                                                      

1.tar命令

  功能:将文件或目录备份打包,并可通过选项调用gzip或bzip2程序将包文件进行压缩,解压。

  格式:tar    [选项]   <包文件名>   [文件或目录]...

  选项:-c   创建(Create).tar格式的包文件

          -C   指定到解压的目录

          -f    目标文件名

          -j    调用bzip2程序进行压缩或解压

          -p   打包时保存文件及目录的权限

          -P   打包时保存文件及目录的绝对路径

          -t   查看压缩包内的文件

          -v   输出详细信息。

         -x   解开.tar格式的包文件

         -z   调用gzip程序进行压缩或解压

  Tar czvf 压缩包名称.tar.gz 源文件

  Tar xzvf 压缩包名称.tar.gz 源文件

示例

    [root@sky ~]# tar -cf ab.tar a.file b.file          <==创建包文件ab.tar

    [root@sky ~]# tar -tf ab.tar                    <==查看包文件中的内容

    a.file b.file

    [root@sky ~]# tar -zcf ab.tar.gz a.file b.file       <==创建压缩包文件ab.tar.gz

    [root@sky ~]# tar -jcf ab.tar.bz2 a.file b.file      <==创建压缩包文件ab.tar.bz2

    [root@sky ~]# tar -jxf ab.tar.bz2 -C /to/som/where   <==解压释放文件至指定目录

2.gzip /bzip2 / zip 命令

  功能:创建.gz格式的压缩文件,使用-d选项可以进行解压缩(或使月gunzip/ bunzip2命令)。

  格式:gzip /bzip2 / zip  [选项]   <文件或目录> ·  ·  ·

  选项:-1  以最快速度优先的模式创建压缩文件。

            -9  以最大压缩比优先的模式创建压缩文件。

            -d  解压缩gz格式的压缩文件。

3.unzip 命令

  功能:解压缩.zip格式的压缩文件。

  格式:unzip  [ 选项]   <压缩文件名>

  选项:-d  解压到指定的文件夹。

4.grep 命令

  功能:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

  格式:grep  [选项]  <查找字串>  [文件]

  选项:-i   查找内容时忽略大小写(Ignore Case) 。

             -v  反转查找(Invert) 即输出与查找条件不相符的行。

5.find命令

  在Linux系统中,搜索工作一般都是通过find命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上

  功能:按照指定条件来查找文件

  格式:find  <查找路径>   <查找条件> ·  ·  ·

  选项:-name            按文件名称查找,可以使用通配符。

            -size               匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)

            -prune             忽略某个目录

            -perm              匹配权限(mode为完全匹配,-mode为包含即可)

            -user               匹配所有者

           -group              匹配所有组

           -mtime -n +n    匹配修改内容的时间(-n指n天以内,+n指n天以前)

           -atime -n +n     匹配访问文件的时间(-n指n天以内,+n指n天以前)

           -ctime -n +n     匹配修改文件权限的时间(-n指n天以内,+n指n天以前)

           -type                 按文件类型查找,类型f,d,l,b、c分别表示普通文件,目录,链接文件,块设备文件、字符设备文件。

   示例:

     [root@sky ~]# find /etc -name "passwd"

     /etc/pam.d/passwd

     /etc/passwd

    [root@sky ~]# find /boot/ -size +1024k     <==查找大于1M的文件

    /boot/vmlinuz-2.6.32-358.el6.x86_64

    /boot/System.map-2.6.32-358.el6.x86_64

参考资料                                                                                 

  刘瑞       Linux就该怎么学

原文地址:https://www.cnblogs.com/xq777/p/10592373.html