本文共 3933 字,大约阅读时间需要 13 分钟。
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
free(选项)
-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况; -m:以MB为单位显示内存使用情况; -o:不显示缓冲区调节列; -s<间隔秒数>:持续观察内存使用状况; -t:显示内存总和列; -V:显示版本信息。free -m
total used free shared buffers cached Mem: 2016 1973 42 0 163 1497 -/+ buffers/cache: 312 1703 Swap: 4094 0 4094 第一部分Mem行解释: total:内存总数; used:已经使用的内存数; free:空闲的内存数; shared:当前已经废弃不用; buffers Buffer:缓存内存数; cached Page:缓存内存数。 关系:total = used + free 第二部分(-/+ buffers/cache)解释: (-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached (+buffers/cache) free内存数: 第一部分Mem行中的 free + buffers + cached 可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。第三部分是指交换分区。
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
ps(选项)
选项贼多 不过常用的 都是 ps aux 或者搭配 管道符使用 如果需要了解的话 你可以 在系统上 ps --help即可
PID :进程的id,这个id很有用,在linux中内核管理进程就得靠pid来识别和管理某一个程,比如我想终止某一个进程,则用kill 进程的pid有时并不能杀掉,则需要加一个-9选项了kill -9 进程pid,这样做有点暴力,严重的时候回丢失数据,所以尽量不用。
STAT :表示进程的状态,进程状态分为以下几种(不要求记住,但要大致了解)
D:不能中断的进程(通常为IO) R:正在运行中的进程 S:已经中断的进程,通常情况下,系统中大部分进程都是这个状态 T:已经停止或者暂停的进程,如果我们正在运行一个命令,比如说 sleep 10 如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态 W:这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配 X:已经死掉的进程(这个好像从来不会出现) Z:僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。 <:高优先级进程 N:低优先级进程 L:在内存中被锁了内存分页 s:主进程 l:多线程进程 +:代表在前台运行的进程netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
netstat(选项)
-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"参数相同。列出所有端口 (包括监听和未监听的)
netstat -a #列出所有端口 netstat -at #列出所有tcp端口 netstat -au #列出所有udp端口 列出所有处于监听状态的 Sockets netstat -l #只显示监听端口 netstat -lt #只列出所有监听 tcp 端口 netstat -lu #只列出所有监听 udp 端口 netstat -lx #只列出所有监听 UNIX 端口 显示每个协议的统计信息 netstat -s 显示所有端口的统计信息 netstat -st 显示TCP端口的统计信息 netstat -su 显示UDP端口的统计信息在netstat输出中显示 PID 和进程名称
netstat -pttcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。
tcpdump(选项)
-a:尝试将网络和广播地址转换成名称;
-c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作; -d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出; -dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出; -ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出; -e:在每列倾倒资料上显示连接层级的文件头; -f:用数字显示网际网络地址; -F<表达文件>:指定内含表达方式的文件; -i<网络界面>:使用指定的网络截面送出数据包; -l:使用标准输出列的缓冲区; -n:不把主机的网络地址转换成名字; -N:不列出域名; -O:不将数据包编码最佳化; -p:不让网络界面进入混杂模式; -q :快速输出,仅列出少数的传输协议信息; -r<数据包文件>:从指定的文件读取数据包数据; -s<数据包大小>:设置每个数据包的大小; -S:用绝对而非相对数值列出TCP关联数; -t:在每列倾倒资料上不显示时间戳记; -tt: 在每列倾倒资料上显示未经格式化的时间戳记; -T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型; -v:详细显示指令执行过程; -vv:更详细显示指令执行过程; -x:用十六进制字码列出数据包资料; -w<数据包文件>:把数据包数据写入指定的文件。如果没有tcpdump 这个命令,需要用yum install -y tcpdump命令去安装一下。上例中第三列和第四列显示的信息为哪一个IP+port在连接哪一个IP+port,后面的信息是该数据包的相关信息,-nn参数是为了直接显示ip+端口号,需要关注的只是第三列以及第四列。-i 选项后面跟设备名称,如果你想抓ens33网卡的包,后面则要跟eens33。
如果不加-nn则显示的是主机名+服务名称。 -c选项,指定抓包数量。# tcpdump -nn -i ens33 port 22 //只抓22端口的包# tcpdump host 192.168.x.x //抓取指定ip的包# tcpdump -nn -i ens33 tcp and not port 22 //指定抓tcp的包,但是不要22端口的# tcpdump -nn -i ens33 port 22 and port 53 //只抓22和53端口的包# tcpdump -nn -i ens33 -c 10 -i ens33 -w /tmp/tset.cap //保存10次抓包到/tmp/test.cap# tcpdump -r /tmp/test.cap //读取抓包文件
安装方式:yum install -y wireshark实例:
tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"
本文转自 闪电王 51CTO博客,原文链接:
http://blog.51cto.com/sdwaqw/2068772
转载地址:http://itagx.baihongyu.com/