linux常用的简单命令(三)tar、scp、df/du、ps、free、top、netstat、tcpdump、kill、reboot/halt/poweroff、shutdown

时间:2021-05-27 05:28:27

 

1.1     打包解包命令(tar)

常用打包命令:tar,一般搭配如下参数使用:

-c:建立压缩文件的参数命令(create)

-x:解压缩文件的参数命令

-z:是否同时具有gzip属性?是否需要用gzip压缩?

-j:是否同时具有bzip2熟悉?是否需要用bzip2压缩?

-v:压缩的过程中显示文件。

-f:使用文件名,注意,在f之后要立即接文件名。不要再增加新的参数。

1.1.1    打包命令

例如:

将以sms_mt开头的所有文件打包成名为sms_mt.tar包。

root@[/mas/log/sms/bak]$ tar -cvf sms_mt.tar sms_mt*

将以sms_mt开头的所有文件打包成为sms_mt.tar.gz包。

root@[/mas/log/sms/bak]$ tar -zcvf sms_mt.tar.gz sms_mt*

将以sms_mt开头的所有文件打包成为sms_mt.tar.bz2包。

root@[/mas/log/sms/bak]$ tar -jcvf sms_mt.tar.bz2 sms_mt*

1.1.2    解包命令

sms_mt.tar包解包。

root@[/mas/log/sms/bak]$ tar -xvf sms_mt.tar

sms_mt.tar.gz包解包。

root@[/mas/log/sms/bak]$ tar -zxvf sms_mt.tar.gz

sms_mt.tar.bz2包解包。

root@[/mas/log/sms/bak]$ tar -jxvf sms_mt.tar.bz2

 

1.2     远程登录命令(ssh)

远程登录命令:ssh 登录用户@IP -p端口

例如:从某服务器上登录至172.16.9.28服务器,ssh端口为8015

root@[/root]$ ssh mas@172.16.9.28 -p8015

mas@172.16.9.28's password: (此处填写172.16.9.28服务器的mas用户密码)

Last login: Wed Aug  5 09:04:11 2009 from 172.18.25.203

mas@[/mas]$

 

1.3     远程传输命令(scp)

远程登录命令:scp -P端口 传输文件 用户@IP:目的路径

例如:从某服务器上传输DbBackUpFileDelete.pid文件至172.16.9.48

mas@[/mas]$ scp -P8015 DbBackUpFileDelete.pid mas@172.16.9.48:/mas

mas@172.16.9.28's password: (172.16.9.28服务器的mas用户密码)

 

1.4     查看磁盘文件空间(df/du)

1.4.1    查看系统各个磁盘使用情况

查看各磁盘空间文件系统和使用情况:df,常用参数如下:

-a--all   包含全部的文件系统;

-h--human-readable   以可读性较高的方式来显示信息;

       -H--si   -h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes

       -i--inodes   显示inode的信息;

  -k--kilobytes  指定区块大小为1024字节;

  -l--local   仅显示本地端的文件系统;

  -m--megabytes   指定区块大小为1048576字节;

例如:使用df –h查看当前系统的容量和已用空间、可用空间等详细信息。

mas@[/mas/libsrc]$ df -h

文件系统              容量  已用 可用 已用% 挂载点

/dev/mapper/rootvg-lvroot  16G  386M   15G   3% /

/dev/mapper/rootvg-lvhome 992M   34M  908M   4% /home

/dev/mapper/rootvg-lvvar   20G  293M   19G   2% /var

/dev/mapper/appvg-lvmysql  21G  249M   20G   2% /var/lib/mysql

/dev/mapper/rootvg-lvusr    18G  3.5G   13G  21% /usr

/dev/mapper/appvg-lvapp    9.7G  435M  8.8G   5% /app

/dev/mapper/appvg-lvbak    9.7G  905M  8.4G  10% /bak

/dev/mapper/appvg-lvmas    48G  3.6G   42G   8% /mas

/dev/sda1              99M   12M   83M  13% /boot

tmpfs                 506M     0  506M   0% /dev/shm

 

1.4.2    查看目录或者文件使用情况

查看各文件或者目录大小使用命令:du,常用参数如下:

-a-all   显示目录中个别文件的大小;

-b-bytes   显示目录或文件大小时,以byte为单位;

-c--total   除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和;

-D--dereference-args   显示指定符号连接的源文件大小;

-h--human-readable   KMG为单位,提高信息的可读性;

-H--si   -h参数相同,但是KMG是以1000为换算单位;

-k--kilobytes   1024 bytes为单位;

-l--count-links   重复计算硬件连接的文件;

-L<符号连接>--dereference<符号连接>   显示选项中所指定符号连接的源文件大小;

-m--megabytes   1MB为单位;

-s--summarize   仅显示总计;

-S--separate-dirs   显示个别目录的大小时,并不含其子目录的大小;

-x--one-file-xystem   以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

例如:使用du –h查看当前目录下文件大小。

mas@[/mas/libsrc]$ du -h

88K     ./svr_common

2.1M    ./isdn_head

60K     ./sms_moden

2.5M    ./mas2

13M     .

 

1.5     查看系统进程(ps)

查看系统各进程执行状况的命令:ps,常用参数如下:

-a  显示所有终端机下执行的程序,除了阶段作业领导者之外; 

 显示现行终端机下的所有程序,包括其他用户的程序;

-A  显示所有程序; 

-c  显示CLSPRI栏位;

 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示;

-e  此参数的效果和指定"A"参数相同;

  列出程序时,显示每个程序所使用的环境变量;

-f  显示UID,PPIP,CSTIME栏位;

-H  显示树状结构,表示程序间的相互关系;

-j 采用工作控制的格式显示程序状况;

-l 采用详细的格式来显示程序状况;

 列出栏位的相关信息;

 以数字来表示USERWCHAN栏位;

-u<用户识别码 此参数的效果和指定"-U"参数相同;

 以用户为主的格式来显示程序状况; 

 显示所有程序,不以终端机来区分;

  采用旧式的Linux i386登陆格式显示程序状况。 

例如:使用ps aux|grep gwinit_db查看gwiinit_db进程相关的信息。

mas@[/mas/libsrc]$ ps aux|grep gwiinit_db

mas       7944  0.0  0.0   5180   692 pts/7    S+   20:24   0:00 grep gwiinit_db

 

1.6     显示内存状态(free)

显示内存状态的命令:free,一般显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。常用参数如下:

-b  以Byte为单位显示内存使用情况;

-k  以KB为单位显示内存使用情况;

-m  以MB为单位显示内存使用情况;

-o  不显示缓冲区调节列;

-s<间隔秒数 持续观察内存使用状况;

-t  显示内存总和列;

-V  显示版本信息。

       例如:使用free -m查看当前系统内存使用情况:

mas@[/mas/libsrc]$ free -m

             total       used       free     shared    buffers     cached

Mem:        1010       985        24      0         56        112

-/+ buffers/cache: 816      194

Swap:         4095      673       3422

 

1.7     显示系统资源(top)

    显示系统资源命令:top。它是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。

root@[/root]$ top

top - 01:06:48 up  1:22,  1 user,  load average: 0.06, 0.60, 0.48

Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.3% us,  1.0% sy,  0.0% ni, 98.7% id,  0.0% wa,  0.0% hi,  0.0% si

Mem:    191272k total,   173656k used,    17616k free,    22052k buffers

Swap:   192772k total,        0k used,   192772k free,   123988k cached

 

PID USER     PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

1379 root      16   0  7976 2456 1980 S  0.7  1.3   0:11.03 sshd

1470 root      16   0  2128  980  796 R  0.7  0.5   0:02.72 top

1471 root      16   0  1992  632  544 S  0.0  0.3   0:00.90 init

1472 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0

1473 root      13  0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0

 

各列的含义如下

序号                     列名                            含义

a                          PID               进程id

b                          PPID             父进程id

c                          RUSER          Real user name

d                          UID              进程所有者的用户id

e                          USER             进程所有者的用户名

f                          GROUP          进程所有者的组名

g                          TTY              启动进程的终端名。不是从终端启动的进程则显示为

h                          PR                 优先级

i                           NI                 nice负值表示高优先级正值表示低优先级

j                           P                   最后使用的CPU仅在多CPU环境下有意义

k                          %CPU            上次更新到现在的CPU时间占用百分比

l                           TIME            进程使用的CPU时间总计,单位秒

m                         TIME+          进程使用的CPU时间总计,单位1/100

n                          %MEM         进程使用的物理内存百分比

o                          VIRT            进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES

p                          SWAP            进程使用的虚拟内存中,被换出的大小,单位kb

q                          RES              进程使用的、未被换出的物理内存大小,单位kb

r                           CODE            可执行代码占用的物理内存大小,单位kb

s                           DATA           可执行代码以外的部分占用的物理内存大小,单位kb

t                           SHR              共享内存大小,单位kb

u                          nFLT             页面错误次数

v                          nDRT            最后一次写入到现在,被修改过的页面数。

w                         S                  进程状态。(其中: D=不可中断的睡眠状态;R=运行;

S=睡眠;T=跟踪/停止; Z=僵尸进程)

 x                         COMMAND 命令名/命令行

 y                       WCHAN        若该进程在睡眠,则显示睡眠中的系统函数名

 z                         Flags             任务标志

默认情况下仅显示比较重要的 PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND列。

 

1.8     显示系统网络状况(netstat)

显示系统网络状况常用命令:netstat,该命令可以查看整个Linux系统的网络情况(一般只有root用户拥有执行该命令的权限)。常用参数如下:

  -a--all   显示所有连线中的Socket

  -A<网络类型>--<网络类型>   列出该网络类型连线中的相关地址;

  -c--continuous   持续列出网络状态;

  -C--cache   显示路由器配置的快取信息;

  -e--extend   显示网络其他相关信息;

  -F--fib   显示FIB

  -g--groups   显示多重广播功能群组组员名单;

  -h--help   在线帮助;

  -i--interfaces   显示网络界面信息表单;

  -l--listening   显示监控中的服务器的Socket

  -M--masquerade   显示伪装的网络连线;

  -n--numeric   直接使用IP地址,而不通过域名服务器;

  -N--netlink--symbolic   显示网络硬件外围设备的符号连接名称;

  -o--timers   显示计时器;

  -p--programs   显示正在使用Socket的程序识别码和程序名称;

  -r--route   显示Routing Table

  -s--statistice   显示网络工作信息统计表;

  -t--tcp   显示TCP传输协议的连线状况;

  -u--udp   显示UDP传输协议的连线状况;

  -v--verbose   显示指令执行过程;

  -V--version   显示版本信息;

  -w--raw   显示RAW传输协议的连线状况;

  -x--unix   此参数的效果和指定"-A unix"参数相同;

  --ip--inet   此参数的效果和指定"-A inet"参数相同。

例如:查看端口7890是否已被某进程占用。

root@[/root]$ netstat -anp |grep 7890

tcp  0 0 0.0.0.0:7890       0.0.0.0:*            LISTEN      24536/mscp

tcp  0 0 172.16.9.48:45221  221.130.33.92:7890   ESTABLISHED 24464/mscp

 

 

 

 

1.9     网络数据包抓取命令(tcpdump)

网络数据包抓取使用命令:tcpdump,该命令通常只有root拥有执行权限。常用参数如下:

-i <网卡端口>   使用指定的网卡端口送出数据包;

-s <数据包大小>   设置每个数据包的大小;

-w <数据包文件>   把数据包数据写入指定的文件

 

例如:抓取发送给目的地址221.130.33.91,端口为tcp 8080

root@[/root]$ tcpdump -i eth0 tcp port 8080  and host 221.130.33.91 -s 0 -w mas_mms.cap

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

(使用”ctrl”+”c”组合键终止抓包命令,只是获取的数据包被写入mas_mms.cap文件中)

13 packets captured

13 packets received by filter

0 packets dropped by kernel

 

获取的网络数据包通常可以使用Ethereal工具分析。

1.10            进程的删除(kill)

进程的删除使用命令:kill,一般和-9搭配使用。

例如:可以先通过ps命令查找tomcatpid,在通过kill命令强制结束该进程。

root@[/mas/guoleia/mysrc/gb2uni]$ ps -ef|grep gwiinit_db

mas       1446     1  0 22:04 ?        00:00:00 mscp gwiinit_db

root       2094  20812  0 22:08 pts/26   00:00:00 grep gwiinit_db

root@[/mas/guoleia/mysrc/gb2uni]$ kill -9 1446

 

1.11            重启命令(reboothaltpoweroff)

重启命令:reboothaltpoweroff都差不多,和shutdown -r now几乎相同。

 

1.12            关机命令(shutdown)

关机命令:shutdown,可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。常用参数如下:

-c  当执行"shutdown -h 11:50"指令时,只要按+键就可以中断关机的指令;

-f  重新启动时不执行fsck

-F  重新启动时执行fsck

 -h  将系统关机;

 -k  只是送出信息给所有用户,但不会实际关机;

 -n  不调用init程序进行关机,而由shutdown自己进行;

 -r  shutdown之后重新启动;

 -t<秒数 送出警告信息和删除信息之间要延迟多少秒。 

例如:

立即关机:

root@[/root]$ shutdown -h now

在当天2025分定时关机:

root@[/root]$ shutdown -h 2025

系统再过十分钟自动关机:

root@[/root]$ shutdown -h +10

系统马上重启:

root@[/root]$ shutdown –r now