Linux pstree(英文全称:display a tree of processes)) 命令将所有进程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本进程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的进程。
使用权限:所有使用者。
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
或
pstree -V
参数说明:
显示进程的关系
pstree init-+-amd |-apmd |-atd |-httpd---10*[httpd] %pstree -p init(1)-+-amd(447) |-apmd(105) |-atd(339) %pstree -c init-+-amd |-apmd |-atd |-httpd-+-httpd | |-httpd | |-httpd | |-httpd ....
特别表明在运行的进程
# pstree -apnh //显示进程间的关系
同时显示用户名称
# pstree -u //显示用户名称
Linux top命令用于实时显示 process 的动态。
使用权限:所有使用者。
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
参数说明:
显示进程信息
# top
显示完整命令
# top -c
以批处理模式显示程序信息
# top -b
以累积模式显示程序信息
# top -S
设置信息更新次数
top -n 2 //表示更新两次后终止更新显示
设置信息更新时间
# top -d 3 //表示更新周期为3秒
显示指定的进程信息
# top -p 139 //显示进程号为139的进程信息,CPU、内存占用率等
显示更新十次后退出
top -n 10
使用者将不能利用交谈式指令来对行程下命令
top -s
Linux procinfo命令用于显示系统状态。
procinfo(process information)指令从/proc目录里读取相关数据,将数据妥善整理过后输出到标准输出设备。
procinfo [-abdDfhimsSv][-F <输出文件>][-n <间隔秒数>]
参数说明:
显示系统状态
# procinfo
Linux nice命令以更改过的优先序来执行程序,如果未指定程序,则会印出目前的排程优先序,内定的 adjustment 为 10,范围为 -20(最高优先序)到 19(最低优先序)。
使用权限:所有使用者。
nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]
参数说明:
设置程序运行时的优先级
# vi & //后台运行 [1] 15297 # nice vi & //设置默认优先级 [2] 15298 [1]+ Stopped vi # nice -n 19 vi & //设置优先级为19 [3] 15299 [2]+ Stopped nice vi # nice -n -20 vi & //设置优先级为 -20 [4] 15300 [3]+ Stopped nice -n 19 vi # ps -l //显示进程 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 15278 15212 0 80 0 - 1208 wait pts/2 00:00:00 bash 0 T 0 15297 15278 0 80 0 - 2687 signal pts/2 00:00:00 vi 0 T 0 15298 15278 0 90 10 - 2687 signal pts/2 00:00:00 vi 0 T 0 15299 15278 1 99 19 - 2687 signal pts/2 00:00:00 vi 4 T 0 15300 15278 3 60 -20 - 2687 signal pts/2 00:00:00 vi 4 R 0 15301 15278 0 80 0 - 625 - pts/2 00:00:00 ps [4]+ Stopped nice -n -20 vi
将 ls 的优先序加 1 并执行
nice -n 1 ls
将 ls 的优先序加 10 并执行
nice ls
注意:优先序 (priority) 为操作系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
ps [options] [--help]
参数:
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
STAT: 该行程的状态:
查找指定进程格式:
ps -ef | grep 进程关键字
例如显示 php 的进程:
# ps -ef | grep php root 794 1 0 2020 ? 00:00:52 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf) www-data 951 794 0 2020 ? 00:24:15 php-fpm: pool www www-data 953 794 0 2020 ? 00:24:14 php-fpm: pool www www-data 954 794 0 2020 ? 00:24:29 php-fpm: pool www ...
显示进程信息:
# ps -A PID TTY TIME CMD 1 ? 00:00:02 init 2 ? 00:00:00 kthreadd 3 ? 00:00:00 migration/0 4 ? 00:00:00 ksoftirqd/0 5 ? 00:00:00 watchdog/0 6 ? 00:00:00 events/0 7 ? 00:00:00 cpuset 8 ? 00:00:00 khelper 9 ? 00:00:00 netns 10 ? 00:00:00 async/mgr 11 ? 00:00:00 pm 12 ? 00:00:00 sync_supers 13 ? 00:00:00 bdi-default 14 ? 00:00:00 kintegrityd/0 15 ? 00:00:02 kblockd/0 16 ? 00:00:00 kacpid 17 ? 00:00:00 kacpi_notify 18 ? 00:00:00 kacpi_hotplug 19 ? 00:00:27 ata/0 ……省略部分结果 30749 pts/0 00:00:15 gedit 30886 ? 00:01:10 qtcreator.bin 30894 ? 00:00:00 qtcreator.bin 31160 ? 00:00:00 dhclient 31211 ? 00:00:00 aptd 31302 ? 00:00:00 sshd 31374 pts/2 00:00:00 bash 31396 pts/2 00:00:00 ps
显示指定用户信息
# ps -u root //显示root进程用户信息 PID TTY TIME CMD 1 ? 00:00:02 init 2 ? 00:00:00 kthreadd 3 ? 00:00:00 migration/0 4 ? 00:00:00 ksoftirqd/0 5 ? 00:00:00 watchdog/0 6 ? 00:00:00 events/0 7 ? 00:00:00 cpuset 8 ? 00:00:00 khelper 9 ? 00:00:00 netns 10 ? 00:00:00 async/mgr 11 ? 00:00:00 pm 12 ? 00:00:00 sync_supers 13 ? 00:00:00 bdi-default 14 ? 00:00:00 kintegrityd/0 15 ? 00:00:02 kblockd/0 16 ? 00:00:00 kacpid ……省略部分结果 30487 ? 00:00:06 gnome-terminal 30488 ? 00:00:00 gnome-pty-helpe 30489 pts/0 00:00:00 bash 30670 ? 00:00:00 debconf-communi 30749 pts/0 00:00:15 gedit 30886 ? 00:01:10 qtcreator.bin 30894 ? 00:00:00 qtcreator.bin 31160 ? 00:00:00 dhclient 31211 ? 00:00:00 aptd 31302 ? 00:00:00 sshd 31374 pts/2 00:00:00 bash 31397 pts/2 00:00:00 ps
显示所有进程信息,连同命令行
# ps -ef //显示所有命令,连带命令行 UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:22 ? 00:00:02 /sbin/init root 2 0 0 10:22 ? 00:00:00 [kthreadd] root 3 2 0 10:22 ? 00:00:00 [migration/0] root 4 2 0 10:22 ? 00:00:00 [ksoftirqd/0] root 5 2 0 10:22 ? 00:00:00 [watchdog/0] root 6 2 0 10:22 ? /usr/lib/NetworkManager ……省略部分结果 root 31302 2095 0 17:42 ? 00:00:00 sshd: root@pts/2 root 31374 31302 0 17:42 pts/2 00:00:00 -bash root 31400 1 0 17:46 ? 00:00:00 /usr/bin/python /usr/sbin/aptd root 31407 31374 0 17:48 pts/2 00:00:00 ps -ef
Linux logout命令用于退出系统。
logout指令让用户退出系统,其功能和login指令相互对应。
logout
退出系统:
[root@runoob.com ~]# logout
Linux logname命令用于显示用户名称。
执行logname指令,它会显示目前用户的名称。
logname [--help][--version]
参数:
显示登录账号的信息:
# logname root
Linux login命令用于登入系统。
login指令让用户登入系统,您亦可通过它的功能随时更换登入身份。在Slackware发行版中 ,您可在指令后面附加欲登入的用户名称,它会直接询问密码,等待用户输入。当/etc目录里含名称为nologin的文件时,系统只root帐号登入系统,其他用户一律不准登入。
login
使用新的身份登录系统
# login
Linux lastb 命令用于列出登入系统失败的用户相关信息。
单独执行 lastb 指令,它会读取位于 /var/log 目录下,名称为 btmp 的文件,并把该文件记录登入失败的用户名,全部显示出来。
lastb [-adRx][-f <记录文件>][-n <显示行数>][帐号名称...][终端机编号...]
参数说明:
options:
username:
tty:
显示属于登录失败的用户信息:
# lastb ... zgg ssh:notty 143.198.176.57 Thu Apr 7 11:27 - 11:27 (00:00) zgg ssh:notty 143.198.176.57 Thu Apr 7 11:27 - 11:27 (00:00) zf ssh:notty 143.198.176.57 Thu Apr 7 11:27 - 11:27 (00:00) za ssh:notty 143.198.176.57 Thu Apr 7 11:27 - 11:27 (00:00) zeng ssh:notty 143.198.176.57 Thu Apr 7 11:27 - 11:27 (00:00) zf ssh:notty 143.198.176.57 Thu Apr 7 11:27 - 11:27 (00:00) zette ssh:notty 143.198.176.57 Thu Apr 7 11:27 - 11:27 (00:00) z310 ssh:notty 143.198.176.57 Thu Apr 7 11:27 - 11:27 (00:00) btmp begins Fri Apr 1 07:38:45 2022
显示 5 行登录失败的用户信息:
# lastb -n 5 mos ssh:notty 194.31.98.204 Thu Apr 28 16:52 - 16:52 (00:00) user ssh:notty 194.31.98.204 Thu Apr 28 16:52 - 16:52 (00:00) user ssh:notty 194.31.98.204 Thu Apr 28 16:52 - 16:52 (00:00) user ssh:notty 194.31.98.204 Thu Apr 28 16:52 - 16:52 (00:00) user ssh:notty 194.31.98.204 Thu Apr 28 16:52 - 16:52 (00:00) btmp begins Fri Apr 1 07:38:45 2022
Linux last 命令用于显示用户最近登录信息。
单独执行 last 指令,它会读取位于 /var/log/目录下,名称为 wtmp 的文件,并把该文件记录登录的用户名,全部显示出来。
last [options] [username...] [tty...]
参数说明:
options:
username:
tty:
显示两行:
# last -R -2 root pts/0 Thu Apr 28 18:06 still logged in root pts/0 Tue Apr 26 09:06 - 19:36 (10:30) wtmp begins Sun Apr 3 13:11:25 2022
显示两行,并省略主机列:
~# last -R -2 root pts/0 Thu Apr 28 18:06 still logged in root pts/0 Tue Apr 26 09:06 - 19:36 (10:30) wtmp begins Sun Apr 3 13:11:25 2022
一般显示方法:
# last ... root pts/4 Thu May 13 17:25 still logged in root pts/2 Thu May 13 17:23 - 17:25 (00:02) root pts/1 Thu May 13 16:46 still logged in ...
简略显示,并指定显示的个数:
# last -n 5 -R root pts/4 Thu May 13 17:25 still logged in root pts/2 Thu May 13 17:23 - 17:25 (00:02) root pts/1 Thu May 13 16:46 still logged in root pts/7 Thu May 13 15:36 still logged in root pts/9 Thu May 13 15:35 still logged in wtmp begins Thu May 13 18:55:40 2014
显示最后一列显示主机 IP 地址:
# last -n 5 -a -i root pts/4 Thu May 13 17:25 still logged in 192.168.1.10 root pts/2 Thu May 13 17:23 - 17:25 (00:02) 192.168.1.10 root pts/1 Thu May 13 16:46 still logged in 192.168.1.10 root pts/7 Thu May 13 15:36 still logged in 192.168.1.10 root pts/9 Thu May 13 15:35 still logged in 192.168.1.10 wtmp begins Thu May 13 18:55:40 2014