Linux基础命令(二)进程管理、管道和重定向

目录

一、进程管理

1.进程管理

2.作业管理

3.虚拟文件系统

二、重定向

三、管道


一、进程管理

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值