Linux常用的基本命令13

uname
作用:查看系统相关信息
常用选项:
    -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称 
    -m或–machine 显示主机的硬件(CPU)名 
    -n或-nodename 显示主机在网络节点上的名称或主机名称 
    -r或–release 显示linux操作系统内核版本号 
    -s或–sysname 显示linux内核名称 
    -v 显示显示操作系统是第几个 version 版本 
    -p 显示处理器类型或unknown 
    -i 显示硬件平台类型或unknown 
    -o 显示操作系统名 
实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@jacken ~]# uname -a
Linux jacken 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@jacken ~]# uname -m
x86_64
[root@jacken ~]# uname -n
jacken
[root@jacken ~]# uname -r
2.6.32-504.el6.x86_64
[root@jacken ~]# uname -s
Linux
[root@jacken ~]# uname -v
#1 SMP Wed Oct 15 04:27:16 UTC 2014
[root@jacken ~]# uname -p
x86_64
[root@jacken ~]# uname -i
x86_64
[root@jacken ~]# uname -o
GNU/Linux
[root@jacken ~]#

ps
作用:ps(Process Status)查看进程状态
注释:
linux上进程有5种状态: 
1. 运行(正在运行或在运行队列中等待) 
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行) 
ps工具标识进程的5种状态码: 
D 不可中断 uninterruptible sleep (usually IO) 
R 运行 runnable (on run queue) 
S 中断 sleeping 
T 停止 traced or stopped 
Z 僵死 a defunct (”zombie”) process 
常用选项:
    a  显示所有进程
    -a 显示同一终端下的所有程序
    -A 显示所有进程
    c  显示进程的真实名称
    -N 反向选择
    -e 等于“-A”
    e  显示环境变量
    f  显示程序间的关系
    -H 显示树状结构
    r  显示当前终端的进程
    T  显示当前终端的所有程序
    u  启动这个进程的用户和它的启动时间
    -au 显示较详细的资讯
    -aux 显示所有包含其他使用者的行程 
实例:

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
[root@jacken ~]# ps 
  PID TTY          TIME CMD
 2654 pts/1    00:00:00 bash
 4557 pts/1    00:00:00 ps
[root@jacken ~]# ps a
  PID TTY      STAT   TIME COMMAND
 1862 tty1     Ss+    0:00 /sbin/mingetty /dev/tty1
 1864 tty2     Ss+    0:00 /sbin/mingetty /dev/tty2
 1866 tty3     Ss+    0:00 /sbin/mingetty /dev/tty3
 1870 tty4     Ss+    0:00 /sbin/mingetty /dev/tty4
 1872 tty5     Ss+    0:00 /sbin/mingetty /dev/tty5
 1874 tty6     Ss+    0:00 /sbin/mingetty /dev/tty6
 1882 pts/0    Ss+    0:00 -bash
 2654 pts/1    Ss     0:00 -bash
 3926 pts/2    Ss+    0:00 -bash
 4492 pts/2    R      9:14 cat /dev/zero
 4558 pts/1    R+     0:00 ps a
[root@jacken ~]# ps -a
  PID TTY          TIME CMD
 4492 pts/2    00:09:16 cat
 4559 pts/1    00:00:00 ps
 [root@jacken ~]# ps -A
  PID TTY          TIME CMD
    1 ?        00:00:01 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0
    ......
    ......
    3909 ?        00:00:00 sshd
    3926 pts/2    00:00:00 bash
    4393 ?        00:00:00 dhclient
    4492 pts/2    00:09:30 cat
    4561 pts/1    00:00:00 ps
[root@jacken ~]# ps -ef  
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 21:19 ?        00:00:01 /sbin/init
root         2     0  0 21:19 ?        00:00:00 [kthreadd]
root         3     2  0 21:19 ?        00:00:00 [migration/0]
.........
root      4393     1  0 22:24 ?        00:00:00 /sbin/dhclient -1 -q -lf /var/lib/dhclient/dhclient-eth1.leases -pf /var/run/dhclient-eth1.pid eth1
root      4492  3926 99 22:36 pts/2    00:17:00 cat /dev/zero
root      4618  2654  0 22:53 pts/1    00:00:00 ps -ef
root      4619  2654  0 22:53 pts/1    00:00:00 tail -4
[root@jacken ~]# ps -aux | head -4
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19364  1536 ?        Ss   21:19   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    21:19   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    21:19   0:00 [migration/0]
........
root      4393  0.0  0.0   9120  1008 ?        Ss   22:24   0:00 /sbin/dhclient -1 -q -lf /var/lib/dhclient/dhclient-eth1.leases -pf /var/run/dhclient-eth1.pid eth1
root      4492 99.1  0.0 100936   584 pts/2    R    22:36  18:00 cat /dev/zero
root      4625  0.0  0.1 110240  1136 pts/1    R+   22:54   0:00 ps -aux
root      4626  0.0  0.0 100944   664 pts/1    S+   22:54   0:00 tail -4
[root@jacken ~]#

kill
作用:杀掉系统某一进程
常用选项:
    -l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
    -a  当处理当前进程时,不限制命令名和进程号的对应关系
    -p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
    -s  指定发送信号
    -u  指定用户 
实例:

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
[root@jacken ~]# kill -l
 1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
 6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX    
[root@jacken ~]# kill -l QUIT
3
[root@jacken ~]# kill -l STOP
19
[root@jacken ~]# ps -ef | grep cat
root      4492  3926 99 22:36 pts/2    00:22:18 cat /dev/zero
root      4646  2654  0 22:59 pts/1    00:00:00 grep cat
[root@jacken ~]# kill 4492
[root@jacken ~]# kill 4492
-bashkill: (4492) - No such process
[root@jacken ~]# ps -ef | grep cat
jacken    4861  4699 99 23:37 pts/3    00:08:26 cat /dev/zero
root      4944  2654  0 23:46 pts/1    00:00:00 grep cat
[root@jacken ~]# kill -s 9 4861
[root@jacken ~]# ps -ef | grep cat
root      4946  2654  0 23:46 pts/1    00:00:00 grep cat
[root@jacken ~]#

top
作用:实时显示系统中各个进程的资源占用状况、
常用选项:
    -d 指定每两次屏幕信息刷新之间的时间间隔,当然用户可以使用s交互命令来改变之(单位秒“.2”为0.2秒)。
    -p 通过指定监控进程ID来仅仅监控某个进程的状态
    -i 使top不显示任何闲置或者僵死进程
    -c 显示整个命令行而不只是显示命令名
    -s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
[root@jacken ~]# top -d .5 //每隔0.5秒刷新一次
[root@jacken ~]# top -p 10 //只检测pid为10的状态视图
[root@jacken ~]# top -i    //不显示任何闲置或者僵死进程

top命令执行过程中可以使用的一些交互命令
    h或者? 显示帮助画面,给出一些简短的命令总结说明
    k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。
        一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
    i 忽略闲置和僵死进程。这是一个开关式命令。
    q 退出程序
    W 将当前设置写入~/.toprc文件中(隐藏文件)。这是写top配置文件的推荐方法。
    t 切换显示进程和CPU状态信息
    c 切换显示命令名称和完整命令行
    P 根据CPU使用百分比大小进行排序
    T 根据时间/累计时间进行排序
    Shift+M 可按内存占用情况进行排序
top - 23:54:18 up  2:35,  3 users,  load average: 1.18, 0.64, 0.42
Tasks:  96 total,   3 running,  93 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us, 18.5%sy,  0.0%ni,  0.0%id, 75.9%wa,  3.5%hi,  2.1%si,  0.0%st
Mem:   1012292k total,   951588k used,    60704k free,      116k buffers
Swap:  2097148k total,   235984k used,  1861164k free,     2332k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                       
 4965 root      20   0 1126m 824m  240 R 15.0 83.5   0:31.11 dd                                                                                                             
   16 root      20   0     0    0    0 R  3.3  0.0   0:04.40 kblockd/0                                                                                                      
   30 root      20   0     0    0    0 S  2.0  0.0   0:05.05 kswapd0                                                                                                        
    1 root      20   0 19364  408  408 S  0.0  0.0   0:01.23 init                                                                                                           
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 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.10 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.02 watchdog/0                                                                                                     
    7 root      20   0     0    0    0 S  0.0  0.0   0:11.78 events/0                                                                                                       
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup    
第一行是队列信息,同uptime命令的执行结果
    23:54:18 up        当前系统时间
    2:35            系统运行时间,时间格式为分
    3 users            当前登录用户数
    load average: 1.18, 0.64, 0.42     系统负载,队列的平均长度
第二行为行为进程
    96 total        进程总数
    3 running                正在运行的进程数
    93 sleeping                睡眠的进程数
    0 stopped                停止的进程数
    0 zombie                僵尸进程数
第三行为CPU信息
    0.0%us            用户空间占用CPU的百分比
    19.6%sy                    内核占用CPU的百分比
    0.0%ni                    用户进程空间内改变过优先级的进程占用CPU百分比
    0.0%id                    空闲CPU百分比
    71.6%wa                    等待输入输出的CPU百分比
    4.4%hi                    cpu处理硬件中断的时间
    4.4%si                    cpu处理软中断的时间
    0.0%st                    用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间
第四行为物理内存信息
    1012292k total            物理内存总量
    951588k used            使用的物理内存总量
    60704k free                空闲内存总量
    116k buffers            用作内核缓存的内存量
第五行为交换分区信息
    2097148k total            交换分区总大小
    235984k used            使用的交换分区大小
    1861164k free            空闲交换分区大小
    2332k cached            缓冲的交换分区总量
buffers和cached的区别需要说明一下,buffers指的是块设备的读写缓冲区,cached指的是文件系统本身的页面缓存。
它们都是linux操作系统底层的机制,目的就是为了加速对磁盘的访问。
第六行为内容视图
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND    
PID(进程号)、 USER(运行用户)、PR(优先级)、NI(任务nice值)、VIRT(虚拟内存用量)VIRT=SWAP+RES 、RES(物理内存用量)、SHR(共享内存用量)、
S(进程状态)、%CPU(CPU占用比)、%MEM(物理内存占用比)、TIME+(累计CPU占用时间)、 COMMAND 命令名/命令行

netstat
作用:显示各种网络相关信息
常用选项:
    -a (all)显示所有选项,默认不显示LISTEN相关
    -t (tcp)仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服务状态
    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该netstat命令
实例:

1
2
3
4
[root@jacken ~]# netstat -a //列出所有端口
[root@jacken ~]# netstat -at //列出所有TCP端口
[root@jacken ~]# netstat -au //列出所有UDP端口
[root@jacken ~]# netstat -s //显示所有端口的统计信息


本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1635826,如需转载请自行联系原作者
上一篇:Apache+PHP多端口多站点


下一篇:中国移动等9家企业筹建“中国健康医疗大数据股份有限公司”