Linux(五)__系统管理

介绍

通常, Windows 中使用"任务管理器"主要有 3 个目的:

  1. 利用"应用程序"和"进程"标签来査看系统中到底运行了哪些程序和进程;
  2. 利用"性能"和"用户"标签来判断服务器的健康状态;
  3. 在"应用程序"和"进程"标签中强制中止任务和进程;

Linux 中虽然使用命令进行进程管理,但是进程管理的主要目的是一样的,即查看系统中运行的程序和进程、判断服务器的健康状态和强制中止不需要的进程。

进程优先级:

  • 在 Linux 系统中,表示进程优先级的有两个参数:Priority (PRI )和 Nice(NI)
  • PRI 数值越小代表该进程越优先被 CPU 处理。
  • 其中PRI值是由内核动态调整的,用户不能直接修改。只能通过修改 NI 值来影响 PRI 值,间接地调整进程优先级。
  • PRI 和 NI 的关系如下:PRI (最终值) = PRI (原始值) + NI

修改 NI 值时有几个注意事项:

  • NI 范围是 -20~19。
  • 普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。
  • 普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
  • 只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。
  • 默认情况下,进程的nice值为0。

进程启动

启动一个进程主要有 2 种途径,分别是通过手工启动和通过调度启动(事先进行设置,根据用户要求,进程可以自行启动)。

(1)手动启动

由用户输入命令直接启动一个进程,根据所启动的进程类型和性质的不同,其又可以细分为前台启动和后台启动 2 种方式。

1)前台启动方式

前台启动方式是手工启动进程最常用的方式,因为当用户输入一个命令并运行,就已经启动了一个进程,而且是一个前台的进程,此时系统其实已经处于一个多进程的状态(一个是 Shell 进程,另一个是新启动的进程)。

2)后台启动

进程直接从后台运行,用的相对较少,除非该进程非常耗时,且用户也不急着需要其运行结果的时候。

格式:在命令结尾处添加一个 " &" 符号(注意,& 前面有空格);

输入命令并运行之后,Shell 会提供给我们一个数字,此数字就是该进程的进程号。然后直接就会出现提示符,用户就可以继续完成其他工作,例如:

复制代码
[root@localhost ~]# find / -name install.log &
[1] 1920
#[1]是工作号,1920是进程号

说明:手工启动 2 种方式的共同特点,就是新进程都是由当前 Shell 这个进程产生的。

(2)Linux调度启动过程

在 Linux 系统中,任务可以被配置在指定的时间、日期或者系统平均负载量低于指定值时自动启动。通过 crontab、at 等命令实现。


进程_常用命令

ps命令

作用:查看系统中所有运行进程的详细信息。

基本格式:

[root@localhost ~]# ps aux

#查看系统中所有的进程,使用 BS 操作系统格式

[root@localhost ~]# ps -le

#查看系统中所有的进程,使用 Linux 标准命令格式

选项说明:

  • a:显示一个终端的所有进程,除会话引线外;
  • u:显示进程的归属用户及内存的使用情况;
  • x:显示没有控制终端的进程;
  • -l:长格式显示更加详细的信息;
  • -e:显示所有进程;

实例1:

说明:

  • PID :进程的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 多线程进程
      • 代表在前台运行的进程

top命令

作用:可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

基本格式:top [选项]

选项说明:

  • -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
  • -b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
  • -n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
  • -p 进程PID:仅查看指定 ID 的进程;
  • -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
  • -u 用户名:只监听某个用户的进程;

top命令:默认看到的只是 CPU 占比靠前的进程;

若想看到所有的进程,则可以把 top 命令的执行结果重定向到文件中。具体命令如下:

[root@localhost ~]# top -b -n 1 > /root/top.log

#让top命令只执行一次,然后把执行结果保存到top.log文件中,这样就能看到所有的进程。

在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作:

  • ? 或 h:显示交互模式的帮助;

  • P:按照 CPU 的使用率排序,默认就是此选项;

  • M:按照内存的使用率排序;

  • N:按照 PID 排序;

  • T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;

  • k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;

  • r:按照 PID 给某个进程重设优先级(Nice)值;

  • q:退出 top 命令;

    [root@localhost ~]# top
    top - 12:26:46 up 1 day, 13:32, 2 users, load average: 0.00, 0.00, 0.00
    Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
    Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
    Mem: 625344k total, 571504k used, 53840k free, 65800k buffers
    Swap: 524280k total, 0k used, 524280k free, 409280k cached
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    19002 root 20 0 2656 1068 856 R 0.3 0.2 0:01.87 top
    1 root 20 0 2872 1416 1200 S 0.0 0.2 0:02.55 init
    2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
    3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
    4 root 20 0 0 0 0 S 0.0 0.0 0:00.15 ksoftirqd/0
    5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
    6 root RT 0 0 0 0 S 0.0 0.0 0:10.01 watchdog/0
    7 root 20 0 0 0 0 S 0.0 0.0 0:05.01 events/0
    8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup
    9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper
    10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns
    11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr
    12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm
    13 root 20 0 0 0 0 S 0.0 0.0 0:01.70 sync_supers
    14 root 20 0 0 0 0 S 0.0 0.0 0:00.63 bdi-default
    15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0
    16 root 20 0 0 0 0 S 0.0 0.0 0:02.52 kblockd/0
    17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpid
    18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify

    说明:
    top 命令的输出内容是动态的,默认每隔 3 秒刷新一次。命令的输出主要分为两部分:
    第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的;
    第二部分从第六行开始,显示的是系统中进程的信息;

第一部分:

  • 第一行为任务队列信息;
  • 第二行为进程信息;
  • 第三行为 CPU 信息;
  • 第四行为物理内存信息;
  • 第五行为交换分区(swap)信息;

第二部分:主要是系统进程信息,各个字段的含义如下:

  • PID:进程的 ID。
  • USER:该进程所属的用户。
  • PR:优先级,数值越小优先级越高。
  • NI:优先级,数值越小、优先级越高。
  • VIRT:该进程使用的虚拟内存的大小,单位为 KB。
  • RES:该进程使用的物理内存的大小,单位为 KB。
  • SHR:共享内存大小,单位为 KB。
  • S:进程状态。
  • %CPU:该进程占用 CPU 的百分比。
  • %MEM:该进程占用内存的百分比。
  • TIME+:该进程共占用的 CPU 时间。
  • COMMAND:进程的命令名。

pstree命令

作用:以树形结构显示程序和进程之间的关系。

基本格式:pstree [选项] [PID或用户名]

选项说明:

选项 含义
-a 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。
-c 不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。
-n 根据进程 PID 号来排序输出,默认是以程序名排序输出的。
-p 显示进程的 PID。
-u 显示进程对应的用户名称。

说明:

在使用 pstree 命令时,如果不指定进程的 PID 号,也不指定用户名称,则会以 init 进程为根进程,显示系统中所有程序和进程的信息;反之,若指定 PID 号或用户名,则将以 PID 或指定命令为根进程,显示 PID 或用户对应的所有程序和进程。

init 进程是系统启动的第一个进程,进程的 PID 是 1,也是系统中所有进程的父进程。

[root@lhyEdu ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager─┬─dhclient
        │                └─2*[{NetworkManager}]
        ├─VGAuthService
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─alsactl
        ├─atd
        ├─auditd─┬─audispd─┬─sedispatch
        │        │         └─{audispd}
        │        └─{auditd}
        ├─avahi-daemon───avahi-daemon
        ├─chronyd
        ├─crond
        ├─cupsd
        ├─dbus-daemon───{dbus-daemon}
        ├─dnsmasq───dnsmasq
        ├─gdm───3*[{gdm}]
        ├─gssproxy───5*[{gssproxy}]
        ├─irqbalance
        ├─ksmtuned───sleep
        ├─libvirtd───16*[{libvirtd}]
        ├─lsmd
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───6*[{polkitd}]
        ├─rngd
        ├─rpcbind
        ├─rsyslogd───2*[{rsyslogd}]
        ├─rtkit-daemon───2*[{rtkit-daemon}]
        ├─smartd
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        ├─udisksd───4*[{udisksd}]
        ├─upowerd───2*[{upowerd}]
        └─vmtoolsd───{vmtoolsd}

lsof命令

作用:根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

基本格式: lsof [选项]

选项说明:

选项 功能
-c 字符串 只列出以字符串开头的进程打开的文件。
+d 目录名 列出某个目录中所有被进程调用的文件。
-u 用户名 只列出某个用户的进程打开的文件。
-p pid 列出某个 PID 进程打开的文件。

实例1:#查询系统中所有进程调用的文件

[root@lhyEdu ~]# lsof |more
COMMAND     PID   TID           USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1                 root  cwd       DIR              253,0      4096          2 /
systemd       1                 root  rtd       DIR              253,0      4096          2 /
systemd       1                 root  txt       REG              253,0   1616360     535827 /usr/lib/systemd/systemd
systemd       1                 root  mem       REG              253,0     20112     416222 /usr/lib64/libuuid.so.1.3.0
systemd       1                 root  mem       REG              253,0    265624     416420 /usr/lib64/libblkid.so.1.1.0
systemd       1                 root  mem       REG              253,0     90248     415700 /usr/lib64/libz.so.1.2.7
systemd       1                 root  mem       REG              253,0    157424     
...省略部分输出...

实例2:#查询某个文件被哪个进程调用

[root@localhost ~]# lsof /sbin/init

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

init 1 root txt REG 8,3 145180 130874 /sbin/init
实例3:#查看以httpd开头的进程调用了哪些文件

[root@localhost ~]# lsof -c httpd

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

httpd 4689 root cwd DIR 8,3 4096 2 /

httpd 4689 root rtd DIR 8,3 4096 2 /

httpd 4689 root txt REG 8,3 1797559 2855 /usr/local/apache2/bin/httpd

httpd 4689 root mem REG 8,3 302300 665303 /lib/libfreebl3.so

httpd 4689 root mem REG 8,3 58704 655087 /lib/libnss_files-2.12.s

httpd 4689 root mem REG 8,3 142472 665291 /lib/ld-2.12.so

httpd 4689 root mem REG 8,3 1889704 665292 /lib/libc-2.12.so

...省略部分输出...

使用"-c"选项可以查询以某个字符串开头的进程调用的所有文件,比如执行"lsof-c httpd"命令就会查询出以 httpd 开头的进程调用的所有文件。


nice命令

作用:给要启动的进程赋予 NI 值,进而调整进程的运行顺序。【但是不能修改已运行进程的 NI 值】

基本格式:nice [-n NI值] 命令

选项说明:-n NI值:给命令赋予 NI 值,该值的范围为 -20~19;

renice命令

作用:在进程运行时修改其 NI 值,从而调整优先级

基本格式: renice [优先级] PID

选项说明:此命令中使用的是进程的 PID 号,因此常与 ps 等命令配合使用


kill命令

作用:向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。

基本格式:kill [信号] PID

常用信号说明:

信号编号 信号名 含义
0 EXIT 程序退出时收到该信息。
1 HUP 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2 INT 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3 QUIT 退出。
9 KILL 杀死进程,即强制结束进程。
11 SEGV 段错误。
15 TERM 正常结束进程,是 kill 命令的默认信号。

killall命令

作用:通过程序的进程名来杀死一类进程;该命令常与 ps、pstree 等命令配合使用。

基本格式:killall [选项] [信号] 进程名

选项说明:

  • -i:交互式,询问是否要杀死某个进程;
  • -I:忽略进程名的大小写;

pkill命令

作用:和 killall 命令的用法相同,都是通过进程名杀死一类进程。还可以按照终端号来踢出用户登录。

基本格式一:pkill [信号] 进程名

基本格式二:pkill [-t 终端号] 进程名

选项说明:

  • [-t 终端号] 选项用于按照终端号踢出用户

jobs命令

作用:可以用来查看当前终端放入后台的工作;

基本格式:jobs [选项]

选项说明:

选项 含义
-l(L 的小写) 列出进程的 PID 号。
-n 只列出上次发出通知后改变了状态的进程。
-p 只列出进程的 PID 号。
-r 只列出运行中的进程。
-s 只列出已停止的进程。

例如:

[root@localhost ~]#jobs -l

[1]- 2023 Stopped top

[2]+ 2034 Stopped tar -zcf etc.tar.gz /etc

可以看到,当前终端有两个后台工作:一个是 top 命令,工作号为 1,状态是暂停,标志是"-";另一个是 tar 命令,工作号为 2,状态是暂停,标志是"+"。"+"号代表最近一个放入后台的工作,也是工作恢复时默认恢复的工作。"-"号代表倒数第二个放入后台的工作,而第三个以后的工作就没有"+-"标志了。

一旦当前的默认工作处理完成,则带减号的工作就会自动成为新的默认工作,换句话说,不管此时有多少正在运行的工作,任何时间都会有且仅有一个带加号的工作和一个带减号的工作。


fg命令

作用:用于把后台工作恢复到前台执行

基本格式:fg %工作号

注意:在使用此命令时,% 可以省略,但若将% 工作号全部省略,则此命令会将带有 + 号的工作恢复到前台。另外,使用此命令的过程中, % 可有可无。


bg命令

作用:把后台暂停的工作恢复到后台执行

基本格式:bg %工作号

选项说明:% 可以省略


nohup命令

作用:让后台工作在离开操作终端时,也能够正确地在后台执行

基本格式: nohup [命令] &

选项说明:'&'表示此命令会在终端后台工作;反之,如果没有'&',则表示此命令会在终端前台工作


任务计划_常用命令

at命令

作用:

  • 只要指定正确的时间,就可以输入需要在指定时间执行的命令。这个命令可以是系统命令,也可以是 Shell 脚本。【最好使用绝对路径来写命令,这样不容易报错】
  • at 任务一旦使用 Ctrl+D 快捷键保存,实际上写入了 /var/spool/at/ 这个目录,这个目录内的文件可以直接被 atd 服务调用和执行。

基本格式:at [选项] [时间]

选项说明:

选项 含义
-m 当 at 工作完成后,无论命令是否输出,都用 E-mail 通知执行 at 命令的用户。
-c 工作标识号 显示该 at 工作的实际内容。
-t 时间 在指定时间提交工作并执行,时间格式为 [[CC]YY]MMDDhhmm。
-d 删除某个工作,需要提供相应的工作标识号(ID),同 atrm 命令的作用相同。
-l 列出当前所有等待运行的工作,和 atq 命令具有相同的额作用。
-f 脚本文件 指定所要提交的脚本文件。
格式 用法
HH:MM 比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行。
Midnight(midnight) 代表 12:00 AM(也就是 00:00)。
Noon(noon) 代表 12:00 PM(相当于 12:00)。
Teatime(teatime) 代表 4:00 PM(相当于 16:00)。
英文月名 日期 年份 比如 January 15 2018 表示 2018 年 1 月 15 号,年份可有可无。
MMDDYY、MM/DD/YY、MM.DD.YY 比如 011518 表示 2018 年 1 月 15 号。
now+时间 以 minutes、hours、days 或 weeks 为单位,例如 now+5 days 表示命令在 5 天之后的此时此刻执行。
[at 命令时间参数说明:]

atq 命令和 atrm 命令。atq 命令用于查看当前等待运行的工作,atrm 命令后者用于删除指定的工作 。
说明:

使用at命令:需提前安装好 at 软件包,并开启 atd 服务。

at 命令的访问控制是依靠 /etc/at.allow(白名单)和 /etc/at.deny(黑名单)这两个文件来实现的,具体规则如下:

  • 如果系统中有 /etc/at.allow 文件,那么只有写入 /etc/at.allow 文件(白名单)中的用户可以使用 at 命令,其他用户不能使用 at 命令(注意,/etc/at.allow 文件的优先级更高,也就是说,如果同一个用户既写入 /etc/at.allow 文件,又写入 /etc/at.deny 文件,那么这个用户是可以使用 at 命令的)。
  • 如果系统中没有 /etc/at.allow 文件,只有 /etc/at.deny 文件,那么写入 /etc/at.deny 文件(黑名单)中的用户不能使用 at 命令,其他用户可以使用 at 命令。不过这个文件对 root 用户不生效。
  • 如果系统中这两个文件都不存在,那么只有 root 用户可以使用 at 命令。

系统中默认只有 /etc/at.deny 文件,而且这个文件是空的,因此,系统中所有的用户都可以使用 at 命令。不过,如果我们打算控制用户的 at 命令权限,那么只需把用户写入 /etc/at.deny 文件即可。

/etc/at.allow 文件的优先级更高,如果 /etc/at.allow 文件存在,则 /etc/at.deny 文件失效。


crontab命令

作用:执行循环定时任务。

基本格式:crontab [选项] [file]

选项说明:

选项 功能
-u user 用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行。
-e 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
-i 在删除用户的 crontab 文件时,给确认提示。
项目 含义 范围
第一个"*" 一小时当中的第几分钟(minute) 0~59
第二个"*" 一天当中的第几小时(hour) 0~23
第三个"*" 一个月当中的第几天(day) 1~31
第四个"*" 一年当中的第几个月(month) 1~12
第五个"*" 一周当中的星期几(week) 0~7(0和7都代表星期日)
[crontab 时间参数说明:]
特殊符号 含义
*(星号) 代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。
,(逗号) 代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
-(中杠) 代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。
/(正斜线) 代表每隔多久执行一次。比如"*/10****命令",代表每隔 10 分钟就执行一次命令。
[时间特殊符号:]

系统管理_常用命令

vmstat命令

作用:可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息

基本格式:

[root@localhost ~]# vmstat [-a] [刷新延时 刷新次数]
[root@localhost ~]# vmstat [选项]

选项说明:

选项 含义
-fs -f:显示从启动到目前为止,系统复制(fork)的程序数,此信息是从 /proc/stat 中的 processes 字段中取得的。 -s:将从启动到目前为止,由一些事件导致的内存变化情况列表说明。
-S 单位 令输出的数据显示单位,例如用 K/M 取代 bytes 的容量。
-d 列出硬盘有关读写总量的统计表。
-p 分区设备文件名 查看硬盘分区的读写情况。
[root@lhyEdu ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 3421772  27204 407716    0    0    49     4   34   42  0  0 99  0  0

1)procs 显示进程相关信息

  • r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
  • b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要你关注一下了;

2)memory 内存相关信息

  • swpd :表示切换到交换分区中的内存数量 ;
  • free :当前空闲的内存数量;
  • buff :缓冲大小,(即将写入磁盘的);
  • cache :缓存大小,(从磁盘中读取的);

3)swap 内存交换情况

  • si :由内存进入交换区的数量;
  • so :由交换区进入内存的数量;

4)io 磁盘使用情况

  • bi :从块设备读取数据的量(读磁盘);
  • bo: 从块设备写入数据的量(写磁盘);

5)system 显示采集间隔内发生的中断次数

  • in :表示在某一时间间隔中观测到的每秒设备中断数;
  • cs :表示每秒产生的上下文切换次数;

6)CPU 显示cpu的使用状态

  • us :显示了用户下所花费 cpu 时间的百分比;
  • sy :显示系统花费cpu时间百分比;
  • id :表示cpu处于空闲状态的时间百分比;
  • wa :表示I/O等待所占用cpu时间百分比;
  • st :表示被偷走的cpu所占百分比(一般都为0,不用关注);

说明:

如果磁盘io压力很大时,si, so两列的数值会比较高,若同时在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。


dmesg命令

作用:用于查看系统的硬件信息

基本格式:dmesg

选项说明:除此之外,开机信息也可以通过 /var/log/ 目录中的 dmesg 文件进行查看


free命令

作用:用来显示系统内存状态,包括系统物理内存、虚拟内存(swap 交换分区)、共享内存和系统缓存的使用情况,其输出和 top 命令的内存部分非常相似。

基本格式:free [选项]

选项说明:

|---------|--------------------------------------|
| 选项 | 含义 |
| -b | 以 Byte(字节)为单位,显示内存使用情况。 |
| -k | 以 KB 为单位,显示内存使用情况,此选项是 free 命令的默认选项。 |
| -m | 以 MB 为单位,显示内存使用情况。 |
| -g | 以 GB 为单位,显示内存使用情况。 |
| -t | 在输出的最终结果中,输出内存和 swap 分区的总量。 |
| -o | 不显示系统缓冲区这一列。 |
| -s 间隔秒数 | 根据指定的间隔时间,持续显示内存使用情况。 |

[root@lhyEdu ~]# free
              total        used        free      shared  buff/cache   available
Mem:        4026376      174656     3416752       12244      434968     3564104
Swap:       2097148           0     2097148

说明:
当前系统内存总大小为4026376(单位是k)已经使用174656,剩余3416752。其实真正剩余并不是这个3416752,而是第二行的2097148,真正使用的也是第二行的2097148。

因为系统初始化时,就已经分配出很大一部分内存给缓存,这部分缓存用来随时提供给程序使用,如果程序不用,那这部分内存就空闲。所以,查看内存使用多少,剩余多少请看第二行的数据。

另外你还可以加-m 或者-g选项分别以M或G为单位打印内存使用状况。

w命令

作用:查看服务器上目前已登录的用户信息,还可以知道每个用户执行任务的情况。

基本格式:

w [选项] [用户名]

选项说明:

选项 含义
-h 不显示输出信息的标题
-l 用长格式输出
-s 用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
-V 显示版本信息
[root@lhyEdu ~]# w
 10:36:56 up 25 min,  1 user,  load average: 0.00, 0.01, 0.06
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.58.1     10:12    0.00s  0.14s  0.02s w

说明:

  • 第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。
  • 第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。
  • 第一行中的'load average:'后面的三个数值。第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过你服务器的cpu数量就没有关系。【/proc/cpuinfo文件记录cpu的详细信息】

查看服务器有几个cpu:cat /proc/cpuinfo


who命令

作用:查看服务器上目前已登录的用户信息

基本格式: who [选项] [file]

选项说明:

选项 含义
-a 列出所有信息,相当于所有选项。
-b 列出系统最近启动的时间日期。
-l 列出所有可登陆的终端信息。
-m 仅列出关于当前终端的信息,who -m 命令等同于 who am i
-q 列出在本地系统上的用户和用户数的清单。
-r 显示当前系统的运行级别。
-s 仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。
-u 显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。
-T 或 -w 显示 tty 终端的状态,"+"表示对任何人可写,"-"表示仅对 root 用户或所有者可写,"?"表示遇到线路故障。

last和lastlog命令

作用:last 命令可以查看当前和过去登陆系统用户的相关信息;lastlog 命令可以查看到每个系统用户最近一次登陆系统的时间。

基本格式:

last [选项]

lastlog

选项说明:

选项 含义
-a 把从何处登陆系统的主机名或 IP 地址显示在最后一行。
-R 不显示登陆系统的主机名或 IP 地址。
-x 显示系统关机、重新开机以及执行等级的改变等信息。
-n 显示列数 设置列出信息的显示列数。
-d 将显示的 IP 地址转换成主机名称。
[last 命令常用选项及含义]
相关推荐
南种北李3 分钟前
Linux自动化构建工具Make/Makefile
linux·运维·自动化
一直在进步的派大星4 分钟前
Docker 从安装到实战
java·运维·docker·微服务·容器
小飞猪Jay9 分钟前
面试速通宝典——10
linux·服务器·c++·面试
哲伦贼稳妥41 分钟前
一天认识一个硬件之电源
运维·其他·电脑·硬件工程
暗恋 懒羊羊1 小时前
Linux 生产者消费者模型
linux·开发语言·ubuntu
安红豆.2 小时前
Linux基础入门 --13 DAY(SHELL脚本编程基础)
linux·运维·操作系统
..空空的人2 小时前
linux基础指令的认识
linux·运维·服务器
penny_tcf2 小时前
Linux基础命令halt详解
linux·运维·服务器
鱼跃鹰飞2 小时前
Leecode热题100-295.数据流中的中位数
java·服务器·开发语言·前端·算法·leetcode·面试
N1cez2 小时前
vscode 连接服务器 不用输密码 免密登录
服务器·vscode