目录
一、进程管理
1.进程管理
(1)静态查看进程 ps
ps aux | head -2 #查看进程的前两行
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
运行进程的用户 | 进程ID | CPU占用率 | 内存占用率 | 占用虚拟内存 | 占用实际内存 | 进程运行的终端 | 进程状态 man ps (/STARE) | 进程的启动时间 | 进程上用CPU的总时间 |
[root@localhost ~]# ps aux | head -2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 128024 6612 ? Ss 01:57 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
ps a 显示现行终端机下的所有程序
[root@localhost ~]# ps a
PID TTY STAT TIME COMMAND
1527 tty1 Ss+ 0:00 -bash
1549 pts/0 Ss 0:00 -bash
1904 pts/0 R+ 0:00 ps a
ps u 以用户为主的格式来显示程序状态
[root@localhost ~]# ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1527 0.0 0.1 115540 1976 tty1 Ss+ 01:58 0:00 -bash
root 1549 0.0 0.1 115544 2064 pts/0 Ss 01:58 0:00 -bash
root 1905 0.0 0.0 155448 1840 pts/0 R+ 07:31 0:00 ps u
ps x 不以终端机来区分
[root@localhost ~]# ps x
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 /usr/lib/systemd/systemd --switched-root --system --deser
2 ? S 0:00 [kthreadd]
ps aux --sort %cpu #查看进程占cpu情况
ps aux --sort -%cpu 带-是降序的意思,不带就是升序
ps -ef #查看进程父子关系
ps axo user,pid,ppid,%mem,command | head -3 #自定义显示字段
[root@localhost ~]# ps axo user,pid,ppid,%mem,command | head -3
USER PID PPID %MEM COMMAND
root 1 0 0.3 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0.0 [kthreadd]
(2)动态查看进程 top
top 显示动态进程
top -d 1 #每1秒刷新
(3)进程优先级 nice
nice值越大,优先级越小;nice值越小,优先级越大
ps axo pid,command,nice --sort=-nice #查看进程的nice值
[root@localhost ~]# ps axo pid,command,nice --sort=-nice
PID COMMAND NI
32 [khugepaged] 19
31 [ksmd] 5
1 /usr/lib/systemd/systemd -- 0
2 [kthreadd] 0
5 [kworker/u256:0] 0
6 [ksoftirqd/0] 0
7 [migration/0] -
8 [rcu_bh] 0
9 [rcu_sched] 0
启动有不同nice级别的进程
sleep 6000 & #让进程进入后台
nice -n -5 sleep 7000 & #启动一个名叫7000的程序
ps axo pid,command,nice | grep sleep #查看优先级
[root@localhost ~]# sleep 6000 &
[1] 1944
[root@localhost ~]# nice -n -5 sleep 7000 &
[2] 1945
[root@localhost ~]# ps axo pid,command,nice | grep sleep
1944 sleep 6000 0
1945 sleep 7000 -5
1969 grep --color=auto sleep 0
更改现有进程的nice级别 renice -20/优先级 文件的ID 例:renice -20 8808
top -d 1 -p 8808,ID,ID #查看优先级
2.作业管理
(1)作业控制jobs
例:sleep 2000 运行一个程序,当前终端无法输入。观察占领前台的现象。大部分命令输入已经无效。
ctrl+c 终止进程
sleep 3000 & #进行后台程序
ps查询所有进程 ps aux | grep sleep
jobs 查看后台进程
[root@localhost ~]# ps aux | grep sleep
root 1944 0.0 0.0 108052 356 pts/0 S 07:53 0:00 sleep 6000
root 1945 0.0 0.0 108052 356 pts/0 S< 07:54 0:00 sleep 7000
root 1975 0.0 0.0 112808 968 pts/0 R+ 07:57 0:00 grep --color=auto sleep
[root@localhost ~]# jobs
[1]- Running sleep 6000 &
[2]+ Running nice -n -5 sleep 7000 &
前台进程fg (foreground) 后台进程序号 语法:fg %1 #把后台进程转到前台
后台进程bg(background) 进程序号 语法:bg %2 #当后台进程停止时可用bg把他改成正在运行
消灭后台进程 kill %2(进程的序号) #终止进程
3.虚拟文件系统
虚拟文件系统proc
cat /proc/cpuinfo #查看cpu信息
[root@localhost ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 142
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
stepping : 10
microcode : 0xe0
cpu MHz : 1800.002
cache size : 6144 KB
physical id : 0
内存:cat /proc/meminfo
[root@localhost ~]# cat /proc/meminfo
MemTotal: 1863004 kB
MemFree: 1504332 kB
MemAvailable: 1493784 kB
内核:cat /proc/cmdline
[root@localhost ~]# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
二、重定向
(1)date > time.txt(文件名) #重定向,将date要输出的时间写入time.txt文件中,这样做可以保存时间信息
date >> time.txt
(2)发邮件:mail -s ''ssss(邮件的标题,自己定义)" alice(用户名)
. #点代表邮件编辑结束
(3)输出重定向>:进程产生的信息,存放到文件中
(4)标准正确输出:ls /home > 1.txt
(5)标准混合: ls /home &> 3.txt
(6)输入重定向<:以文本内容,作为进程的标准输入,通常会在编程中用到
三、管道
"|" 管道命令可以将多条命令组合起来,一次性完成复杂的处理任务
语法: command1|command2|command3|...
tee管道 把输出保留副本
参数传递Xargs连接一些特殊的命令比如rm