本文共 3327 字,大约阅读时间需要 11 分钟。
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
用法:free [选项]
选项:
-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;-m:以MB为单位显示内存使用情况;-o:不显示缓冲区调节列;-s<间隔秒数>:持续观察内存使用状况;-t:显示内存总和列;-V:显示版本信息。
实例:
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
用法:# ps [选项]
选项(参考):
由于ps命令能够支持的系统类型相当的多,所以选项多的离谱!
实例:
ps -elf
大同小异,显示的信息基本上是一样的。ps命令还有更多的用法,这里不多做介绍,因为你只要会用这个命令就足够了,如果需要其他用法,man一下或者网上搜索。下面说几个参数的意义。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:多线程进程+:代表在前台运行的进程在日常工作中,ps命令经常配合管道符使用:![]()
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
用法:# netsta [参数]
参数:
-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 -lnp
(打印当前系统启动哪些端口)以及netstat -an
(打印网络连接状况)这两个命令非常有用,请一定要记住。ss -an
与netstat -an
作用类似。 # netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' //查看tcp各网络连接状态的数量
有时候,也许你会有这样的需求,想看一下某个网卡上都有哪些数据包,尤其是当你初步判定你的服务器上有流量***。这时,使用抓包工具来抓一下数据包,就可以知道有哪些IP在***你了。
# tcpdump -nn -c 10 -i ens33 //抓取10次包指定ens33网卡,并显示ip和端口,不显示主机名和服务名称
yum install -y tcpdump
命令去安装一下。上例中第三列和第四列显示的信息为哪一个IP+port在连接哪一个IP+port,后面的信息是该数据包的相关信息,-nn参数是为了直接显示ip+端口号,需要关注的只是第三列以及第四列。-i 选项后面跟设备名称,如果你想抓ens33网卡的包,后面则要跟eens33。-nn选项的作用是让第三列和第四列显示成IP+端口号的形式,如果不加-nn则显示的是主机名+服务名称。-c选项,指定抓包数量。参考:一些常用的tcpdump实例: # 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 //读取抓包文件
参考:
实例:# 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"
转载于:https://blog.51cto.com/3069201/2064330