Linux 常用命令

系统

# uname -a # 查看系统名称/内核
#uname -r  查看内核版本
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
#cd /lib/modules/$(uname -r)   进行到lib\modules下的内核模块
# env # 查看环境变量
#ulimit -a #查看系统资源限制;查看的是:vi  /etc/security/limits.conf文件,
 可以修改文件里面的参数,重启生效
#stat awk.txt  查看文件修改时间戳和详细信息





#cat /proc/acpi/thermal_zone/THRM/temperature 查看CPU温度
#locale 查看系统语言环境
# vi /etc/sysconfig/i18n 修LANG=zh_CN.GBK 或 LANG=zh_CN 或 LANG=zh_CN.GB2312 或 LANG=zh_CN.GB18030都会把语言环境改为中文。 不用重启服务,只需退出当前登陆,再次登陆环境就会改变。
 

资源

# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
vmstat 全面的性能分析工具,可以观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的IO、中断、上下文切换、CPU使用等

磁盘和分区

# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
#mount 盘符 /mnt #挂接U盘,光驱等
#badblocks 检查坏道位置的工具 ,http://blog.chinaunix.net/u/10723/showart_1332661.html

网络

# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
# dmesg|grep eth #查看网卡信息(kernel会将开机信息存储在ring buffer中。
 您若是开机时来不及查看信息,可利用dmesg来查看。
 开机信息亦保存在/var/log目录中,名称为dmesg的文件里
)
#kudzu --probe --class=network #查看网卡信息,kudzu硬件查看命令
#nslookup www.usousou.com
 查看域名的DNS解释服务器。
#netstat -r 查看默认网关
#watch more /proc/net/dev  查看网卡
流量的统计信息

进程

# ps -ef # 查看所有进程
# top # 实时显示进程状态

用户

# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务

服务

# chkconfig --list # 列出所有系统服务
# chkconfig --list | grep on # 列出所有启动的系统服务

程序

# rpm -qa # 查看所有安装的软件包
文件


清空test.txt文件的三种方式:1、 echo "" >test.txt  ;2、 >test.txt ;3、cat /dev/null >test.txt
Linux服务定制指南:http://doc.chinahtml.com/Manual/rhl-cg-zh_CN-9/ch-services.html
PS命令:
UID - 用户ID;
PID - 进程ID;
PPID - 进程父ID;
C - CPU利用率,以整数表示;
SZ - 进程用到的swap的量,这是一个粗略计算;
RSS - 驻留内存大小;
PSR - 进程使用的处理器,在多处理器上可以体现出来,如下面的两个进程使用的不同的处理器(超线程的也算);
STIME - 进程的启动时间;
TTY - 与进程关联的终端;
TIME - 进程使用CPU累计时间;
CMD - 执行文件的名称
LWP - light weight process ID 可以称其为线程ID。
NLWP - 进程中的线程数number of lwps (threads) in the process。
SID - 即session ID
下面对命令选项进行说明:
  -a  显示所有终端机下执行的程序,除了阶段作业领导者之外。
  a  显示现行终端机下的所有程序,包括其他用户的程序。
  -A  显示所有程序。
  -c  显示CLS和PRI栏位。
  c  列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
  -C<指令名称>  指定执行指令的名称,并列出该指令的程序的状况。
  -d  显示所有程序,但不包括阶段作业领导者的程序。
  -e  此参数的效果和指定"A"参数相同。
  e  列出程序时,显示每个程序所使用的环境变量。
  -f  显示UID,PPIP,C与STIME栏位。
  f  用ASCII字符显示树状结构,表达程序间的相互关系。
  -g<群组名称>  此参数的效果和指定"-G"参数相同,当亦能使用阶段作业领导者的名称来指定。
  g  显示现行终端机下的所有程序,包括群组领导者的程序。
  -G<群组识别码>  列出属于该群组的程序的状况,也可使用群组名称来指定。
  h  不显示标题列。
  -H  显示树状结构,表示程序间的相互关系。
  -j或j  采用工作控制的格式显示程序状况。
  -l或l  采用详细的格式来显示程序状况。
  L  列出栏位的相关信息。
  -m或m  显示所有的执行绪。
  n  以数字来表示USER和WCHAN栏位。
  -N  显示所有的程序,除了执行ps指令终端机下的程序之外。
  -p<程序识别码>  指定程序识别码,并列出该程序的状况。
  p<程序识别码>  此参数的效果和指定"-p"参数相同,只在列表格式方面稍有差异。
  r  只列出现行终端机正在执行中的程序。
  -s<阶段作业>  指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
  s  采用程序信号的格式显示程序状况。
  S  列出程序时,包括已中断的子程序资料。
  -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
  t<终端机编号>  此参数的效果和指定"-t"参数相同,只在列表格式方面稍有差异。
  -T  显示现行终端机下的所有程序。
  -u<用户识别码>  此参数的效果和指定"-U"参数相同。
  u  以用户为主的格式来显示程序状况。
  -U<用户识别码>  列出属于该用户的程序的状况,也可使用用户名称来指定。
  U<用户名称>  列出属于该用户的程序的状况。
  v  采用虚拟内存的格式显示程序状况。
  -V或V  显示版本信息。
  -w或w  采用宽阔的格式来显示程序状况。 
  x  显示所有程序,不以终端机来区分。
  X  采用旧式的Linux i386登陆格式显示程序状况。
  -y  配合参数"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
  -<程序识别码>  此参数的效果和指定"p"参数相同。
  --cols<每列字符数>  设置每列的最大字符数。
  --columns<每列字符数>  此参数的效果和指定"--cols"参数相同。
  --cumulative  此参数的效果和指定"S"参数相同。
  --deselect  此参数的效果和指定"-N"参数相同。
  --forest  此参数的效果和指定"f"参数相同。
  --headers  重复显示标题列。
  --help  在线帮助。
  --info  显示排错信息。
  --lines<显示列数>  设置显示画面的列数。
  --no-headers  此参数的效果和指定"h"参数相同,只在列表格式方面稍有差异。
  --group<群组名称>  此参数的效果和指定"-G"参数相同。
  --Group<群组识别码>  此参数的效果和指定"-G"参数相同。
  --pid<程序识别码>  此参数的效果和指定"-p"参数相同。
  --rows<显示列数>  此参数的效果和指定"--lines"参数相同。
  --sid<阶段作业>  此参数的效果和指定"-s"参数相同。
  --tty<终端机编号>  此参数的效果和指定"-t"参数相同。
  --user<用户名称>  此参数的效果和指定"-U"参数相同。
  --User<用户识别码>  此参数的效果和指定"-U"参数相同。
  --version  此参数的效果和指定"-V"参数相同。
  --widty<每列字符数>  此参数的效果和指定"-cols"参数相同。
命令: ps -ef 
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 10:30 ?        00:00:00 init [3]                  
root         2     1  0 10:30 ?        00:00:00 [migration/0]
命令: ps -eF
 
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0  0   515   640   0 10:30 ?        00:00:00 init [3]                  
root         2     1  0     0     0   0 10:30 ?        00:00:00 [migration/0]
命令:ps -efL
UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
root         1     0     1  0    1 10:30 ?        00:00:00 init [3]                  
root         2     1     2  0    1 10:30 ?        00:00:00 [migration/0]
命令:ps -ejH
  PID  PGID   SID TTY          TIME CMD
    1     1     1 ?        00:00:00 init
    2     1     1 ?        00:00:00   migration/0
 

vmstat 全面的性能分析工具,可以观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的IO、中断、上下文切换、CPU使用等。

在系统中使用root身份,执行vmstat 1 命令,观察性能状况。各参数值含义见下方:

vmstat

procs

r:

运行的和等待(CPU时间片)运行的进程数,这个值也可以判断是否需要增加CPU(长期大于1)

b:

处于不可中断状态的进程数,常见的情况是由IO引起的

memory

swpd: 切换到交换内存上的内存(默认以KB为单位)

如果 swpd 的值不为0,或者还比较大,比如超过100M了,但是 si, so 的值长期为 0,这种情况我们可以不用担心,不会影响系统性能。

free: 空闲的物理内存

buff: 作为buffer cache的内存,对块设备的读写进行缓冲

cache: 作为page cache的内存, 文件系统的cache

如果 cache 的值大的时候,说明cache住的文件数多,如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。

Swap

si: 交换内存使用,由磁盘调入内存

so: 交换内存使用,由内存调入磁盘

内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响。磁盘IO和CPU资源都会被消耗。

常有人看到空闲内存(free)很少或接近于0时,就认为内存不够用了,实际上不能光看这一点的,还要结合si,so,如果free很少,但是 si,so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

io

bi: 从块设备读入的数据总量(读磁盘) (KB/s),

bo: 写入到块设备的数据总理(写磁盘) (KB/s)

随机磁盘读写的时候,这2个 值越大(如超出1M),能看到CPU在IO等待的值也会越大

system

in: 每秒产生的中断次数

cs: 每秒产生的上下文切换次数

上面这2个值越大,会看到由内核消耗的CPU时间会越多

cpu

us: 用户进程消耗的CPU时间百分比

us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了

sy: 内核进程消耗的CPU时间百分比

sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。

wa: IO等待消耗的CPU时间百分比

wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。

id: CPU处在空闲状态时间百分比

Linux 常用命令

这个 vmstat 的输出那些信息值得关注?

procs r: 运行的进程比较多,系统很繁忙

io bo: 磁盘写的数据量稍大,如果是大文件的写,10M以内基本不用担心,如果是小文件写2M以内基本正常

cpu us: 持续大于50,服务高峰期可以接受

cpu wa: 稍微有些高

cpu id:持续小于50,服务高峰期可以接受

相关推荐