系统状态与管理:进程状态与管理、其他状态

文章目录

  • 一.进程状态
    • 1.ps命令
    • 2.top命令
    • 3.htop命令
  • 二.进程的管理
  • 三.其他状态
    • 1.内存状态(free)
    • 2.硬盘
    • 3.网络状态
    • 4.时间和日期
    • 5.下载

一.进程状态

Linux是一个多任务操作系统,同一时刻允许多个任务同时工作,运行中的每一个任务就是一个进程。
查找进程信息常用的命令有ps和top.

1.ps命令

ps即process status的意思,用来查看进程状态。它显示的是敲下命令后一瞬间的进程状态。
ps不带参数时能看到的信息很少:
系统状态与管理:进程状态与管理、其他状态_第1张图片
ps命令支持3种不同类型的命令行参数:

  1. Unix风格的参数,前面加-,如ps -ef
  2. BSD风格的参数,前面不加-,如ps aux
  3. GNU风格的长参数,前面加–,如ps --pid 123

ps命令非常强大,参数也异常丰富,没有必要记住全部,牢记一些常用的参数组合即可
ps -ef
系统状态与管理:进程状态与管理、其他状态_第2张图片
参数详解:
  -e:参数指定显示所有运行在系统上的进程
  -f:参数则扩展了输出
每列详解:
  UID:启动这些进程的用户。
  PID:进程的进程ID。
  PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
  C:进程生命周期中的CPU利用率。
  STIME:进程启动时的系统时间。
  TTY:进程启动时的终端设备。
  TIME:程序累计占用CPU的时间
  CMD:进程运行的命令
ps aux
系统状态与管理:进程状态与管理、其他状态_第3张图片
参数详解:
  a:显示跟任意终端关联的所有进程
  u:采用基于用户的格式显示
  x:显示所有的进程,甚至包括未分配任何终端的进程
每列信息:
  USER:执行这个进程的用户
  PID:进程ID
  &CPU:当前进程的CPU占用
  &MEM:当前进程的内存占用
  VSZ:进程占用的虚拟内存大小,以千字节(KB)为单位。
  RSS:进程占用的物理内存大小
  TTY:进程启动时的终端设备。
  STAT:进程状态
  START:进程启动时刻
  TIME:程序累计占用CPU的时间
  COMMAND:启动进程的命令
关于STAT:
代表当前进程状态的双字符状态码。
第一个字符表明进程状态:
  O:代表正在运行
  S:代表在休眠
  R:代表可运行,正等待CPU
  Z:代表僵化,进程已结束但父进程已不存在
  T:代表停止
第二个参数进一步说明进程的状态细节:
  <:该进程运行在高优先级上。
  N:该进程运行在低优先级上。
  L:该进程有页面锁定在内存中。
  s:该进程是控制进程。
  1:该进程是多线程的。
  +:该进程运行在前台。

2.top命令

ps命令只能查看一瞬间的进程状态,如果想要持续查看某些进程的状态可以使用top
系统状态与管理:进程状态与管理、其他状态_第4张图片
头信息逐行详解:
1.系统运行的整体状态:开机时长,登陆用户数,系统负载
  系统负载:load average: 0.00, 0.02, 0.05
  分别代表: 一分钟负载,五分钟负载,十五分钟负载
  负载值越高代表服务器压力越大
  负载值不要超过CPU的核心数。如果超过核心数意味着有很多进程在等待使用CPU
  与uptime命令的结果一样(查看系统状态)
2.任务情况:任务总数,运行中的数量,休眠数量,停止数量,僵尸进程数量
3. CPU使用情况:
  us:(user)用户态占用
  sy:(system)内核态占用
  id:(idle)空闲的CPU
4.内存占用情况:内存总量,空闲内存,使用的内存,缓冲区占用的内存
5.交换分区的占用
  交换分区是一种将内存数据保存到硬盘的技术,一般在内存不足的时候使用
进程区详情:
  PID:进程的ID。
  USER:进程属主的名字。
  PR:进程的优先级。
  NI:进程的谦让度值。
  VIRT:进程占用的虚拟内存总量。
  RES:进程占用的物理内存总量。
  SHR:进程和其他进程共享的内存总量。
  S:进程的状态(与ps基本相同)。
  %CPU:进程使用的CPU时间比例。
  %MEM:进程使用的内存占可用内存的比例。
  TIME+:自进程启动到目前为止的CPU时间总量。
  COMMAND:进程所对应的命令行名称,也就是启动的程序名。
小技巧:
  进程太多时,可以通过-p参数指定需要查看的进程ID,让进程信息更精简:

top -p PID1,PID2,PID3, ...

3.htop命令

如果感觉top还不够直观,可以使用htop
htop不是系统默认的命令,需要额外安装
安装:sudo apt install install htop
详情:
系统状态与管理:进程状态与管理、其他状态_第5张图片

二.进程的管理

kill:杀死进程或者给进程发送信号
  -1:(HUP) 平滑重启
  -9:(KILL) 强制杀死进程
  -15:(TERM) 正常终止进程(kill的默认信号)
  pkill [ProcessName ] 按名字处理进程
  killall [ MatchedProcessName ] 处理名字匹配的进程

三.其他状态

1.内存状态(free)

系统状态与管理:进程状态与管理、其他状态_第6张图片
可以通过-m或-g参数调整free命令显示数值的单位。

2.硬盘

iostat:查看硬盘写入和读取的状态
df -1h:查看硬盘分区,及每个分区的剩余空间
du -hs ./:查看当前目录占用的硬盘大小

3.网络状态

ifconfig:查看网卡状态,常用来检查自身IP地址
netstat -natp:查看网络连接状态
  -a:显示所有选项
  -t:显示所有与TCP相关的选项.
  -u:显示所有与UDP相关的选项.
  -x:显示所有与Unix域相关的套接字选项
  -n:拒绝显示别名,能显示数字的全部转换为数字显示
  -p:显示建立相关连接的程序名。
  -l:显示所有状态为Listen的连接
  -e:显示扩展信息,如当前链接所对应的用户
  -c:间隔一段时间执行- -次netstat命令。
  -s:显示统计信息。对每种类型进行汇总
ping -i 0.5 -c 100 xx.xx.xx.xx
  -i:间隔
  -c:数量
  -q:安静模式,只打印结果
lsof
  lsof -i:[PORT] 查看占用端口的程序
  lsof -i tcp:查看所有TCP连接
  lsof -u abc:查看用户abc打开的所有文件
  lsof -p 123:查看pid为123的进程打开的所有文件
路由追踪:traceroute [ HOST ]
DNS查询
  dig [ DOMAIN ]
  host [ DOMAIN]
  nslookup [ DOMAIN]

4.时间和日期

date:查看日期与时间
 可以通过+指定显示的格式:date +%Y- %m-%d (加号后面紧跟格式,不要有空格)
 支持的时间格式字段:
   %H:小时,24小时制(00~23)
   %I:小时,12小时制(01~12)
   %k:小时,24小时制(0~23)
   %1:小时,12小时制(1~12)
   %M:分钟(00~59)
   %p:显示出AM或PM
   %r:显示时间,12小时制(hh:mm:ss %p)
   %s:从1970年1月1日00:00:00到目前经历的秒数
   %S:显示秒(00~59)
   %T:显示时间,24小时制(hh:mm:ss)
   %X:显示时间的格式(%H:%M:%S)
   %Z::显示时区,日期域(CST)
   %a:星期的简称(Sun~Sat)
   %A:星期的全称(Sunday~Saturday)
   %h,%b:月的简称Jan~Dec)
   %B:月的全称(anuary~December)
   %c:日期和时间(Tue Nov 20 14:12:58 2012)
   %d:一个月的第几天(01~31)
   %x,%D:日期(mm/ddyy)
   %j:一年的第几天(001~366)
   %m:月份(01~12)
   %w:一个星期的第几天(0代表 星期天)
   %W:一年的第几个星期(00~53, 星期一为第一天)
   %y:年的最后两个数字(1999则是99)
cal:查看日历.
  -1:查看本月的日历
  -3:查看最近三个月的日历
  -y:查看全年的日历

5.下载

curl
  仅执行HTTP访问:curl http:/ /example. com/
  下载:http:/ /example. com/ foo/bar/xxx.zip > ./xxx.zip
wget:下载:wget http: //example . com/ foo/bar/xxx.zip
scp
  从服务器下载到本地:scp [email protected]:/root/abc ./abc
  从本地上传到服务器:scp ./abc [email protected]:/ root/ abc

你可能感兴趣的:(Linux基础知识,linux,系统状态与管理)