1、vmstat  报告虚拟内存统计信息

      vmstat [-V] [-n] [delay [count]]         delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。         例如:  vmstat -n 3       (每个3秒刷新一次) 

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---

r b       swpd   free   buff cache        si  so         bi   bo        in  cs      us sy id wa

1 0    144 186164 105252 2386848    0    0    18   166   83     2     48 21 31 0 

2 0    144 189620 105252 2386848    0    0     0   177  1039 1210   34 10 56 0 

0 0    144 214324 105252 2386848    0    0     0    10   1071   670    32 5 63 0 

Procs 

r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间 

Memory 

 swpd: 虚拟内存使用情况,单位:KB

 free: 空闲的内存,单位KB

buff: 被用来做为缓存的内存数,单位:KB  

Swap 

si: 从磁盘交换到内存的交换页数量,单位:KB/秒

so: 从内存交换到磁盘的交换页数量,单位:KB/秒

IO 

bi: 发送到块设备的块数,单位:块/秒

bo: 从块设备接收到的块数,单位:块/秒

System 

in: 每秒的中断数,包括时钟中断

cs: 每秒的环境(上下文)切换次数

CPU 

按 CPU 的总使用百分比来显示 

us: CPU 使用时间

sy: CPU 系统使用时间

id: 闲置时间

如果在多用户环境中us+sys》80,进程就会在运行队列中花费等待时间,响应时间和吞吐量就会下降。wa>40表明磁盘io没有也许存在不合理的平衡,或者对磁盘操作比较频繁

 

2、lsmod  查看linux系统中已经加载的模块数

比如说我们可以查看系统中是否已经加载ip_vs的模块 ipvsadm  :lsmod | grep ip_vs

 

3、lsof(list open files)是一个列出当前系统打开文件的工具

lsof 常见的用法是查找应用程序打开的文件的名称和数目。可用于查找出某个特定应用程序将日志数据记录到何处,或者正在跟踪某个问题。

lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件

lsof -u username 显示所属user进程打开的文件 

lsof -g gid 显示归属gid的进程情况 

lsof +d /DIR/ 显示目录下被进程打开的文件 

lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长 

lsof -d FD 显示指定文件描述符的进程 

lsof -n 不将IP转换为hostname,缺省是不加上-n参数 

lsof -i 用以显示符合条件的进程情况

例如:查看22端口现在运行的情况

# lsof -i :22

查看所属root用户进程所打开的文件类型为txt的文件:

# lsof -a -u root -d txt

在卸载文件系统时,如果该文件系统中有任何打开的文件,操作通常将会失败。那么通过lsof可以找出那些进程在使用当前要卸载的文件系统,如下:

# lsof /GTES11/

当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容。 假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:

首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

# lsof |grep /var/log/messages 

syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)

从上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为 2。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:

# head -n 10 /proc/1283/fd/2 

从上面的信息可以看出,查看 /proc/8663/fd/15 就可以得到所要恢复的数据。如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如:

cat /proc/1283/fd/2 > /var/log/messages

4、dmidecode  帮助收集电脑系统信息的管理系统

    dmidecode -s system-serial-number   //显示系统序列号   -s, --string KEYWORD Only display the value of the given DMI string   只显示指定DMI字符串的信息

    dmidecode -t memory      //显示内存信息  -t, --type TYPE       Only display the entries of given type  #只显示指定条目的信息

    dmidecode -t 11       #显示OEM信息

5、mii-tool 这是Linux下专门设置网卡工作模式的命令

    (1) 查看网卡的工作模式,输入命令:#mii-tool -v        “100BaseTx-FD”意为100M Full Duplex。

    (2) 更改网卡的工作模式,输入命令:#mii-tool -F media [interface]    

例如,设置网卡工作在10M半双工模式下,输入命令:#mii-tool -F 10baseT-HD eth0

    (3)恢复网卡的自适应工作模式,输入命令:#mii-tool -r eth0

6、sort ~/.bash_history | uniq -c | sort -nr | head      //可以查看系统用户最常使用的几个命令,其中uniq -c 即打印每一重复行出现的次数。sort -n是按数值排序 -r是指逆序显示。

7、uptime 查看系统负载值  1,5,15分钟

     /proc/loadavg  也显示了系统的负载值

8、显示消耗内存/CPU最多的10个进程

ps aux | sort -nk +4 | tail

ps aux | sort -nk +3 | tail

9、查看apache的并发请求数及其TCP连接状态

netstat -n|awk '/^tcp/{++S[$NF]} END {for (a in S) print a,S[a]}'

10、把当前目录下*.sh文件改名为*.SH

find . -name "*.sh" | sed 's/(.*).sh/mv ? 1 .SH/ ' |sh

find . -name "*.sh" | sed 's/(.*).sh/mv & 1 .SH/ ' |sh

11、ssh执行远程的程序,并在本地显示

ssh -n -l root 10.48.30.197 "ls -l /root"

12、以http方式共享当前文件夹的文件

python -m SimpleHTTPServer

在浏览器中输入:http://IP:8000/ 即可下载当前目录下的文件。

13、locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。

locate -n 100 a.out : 寻找所有叫 a.out 的档案,但最多只显示 100 个

locate chdrv : 寻找所有叫 chdrv 的档案

find / -name "*chdrv*" -print   同上,区别:find只查找具体的文件和目录,显示数目要比上述命令小。

14、which  取得程序名列表。命令位置的具体路径。

root@svn-30-194:~# which top

/usr/bin/top

 15、Linux 禁ping和开启ping操作

 # echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

如果要恢复,只要:

# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all