文章目录
1. 什么是程序(process)
Linux中,触发任何一个事件时,系统都会将它定义为一个程序,并且给这个程序一个ID,称为PID,同时依据启动这个程序的使用者与相关属性关系,给予这个PID一组有效的权限设定。
执行一个程序或指令就可以触发一个事件而获得一个PID。
- 子程序与父程序:
用户登入系统后,会获得一个bash的shell,然后,通过这个bash提供的接口去执行另一个指令。例如执行touch命令,会触发生成PID,这个PID就是子程序,bash环境就是父程序。(命令pstree可以看到)
2. 工作管理:&,[ctrl]-z,jobs,fg,bg,kill
2.1 将指令丢到后台中执行&
在bash中,工作环境分为前景和背景。
- 前景:可以控制的这个工作称为前景的工作
- 背景:在内存内可以自行运作的工作,无法直接控制它,除非以 bg/fg 等指令将该工作呼叫出
来。
2.2 将工作暂停:ctrl+z
2.3 观察目前工作状态:jobs
用法:
[root@linux ~]# jobs [-lrs]
参数:
-l :除了列出 job number 之外,同时列出 PID
-r :仅列出正在背景 run 的工作
-s :仅列出正在背景当中暂停 (stop) 的工作
2.4 将背景工作拿到前景来处理:fg
用法:
[root@linux ~]# fg %jobnumber
参数:
%jobnumber :工作的号码。注意,那个 % 是可有可无的,先通过jobs命令查看jobnumber
2.5 让工作在背景下进行:bg
用法:
[root@linux ~]# bg %jobnumber
%jobnumber :工作的号码。注意,那个 % 是可有可无的,先通过jobs命令查看jobnumber
2.6 kill:杀掉进程
[root@linux ~]# kill -signal %jobnumber
[root@linux ~]# kill -l
参数:
-l :列出目前 kill 能够使用的讯号 (signal) 有哪些
signal :-1 :重新读取一次参数的设定档 (类似 reload); -2 :代表与由键盘输入 [ctrl]-c 同样的动作; -9 :立刻强制删除一个工作; -15:以正常的程序方式终止一项工作。与 -9 是不一样的。
3.程序管理
3.1 程序查看:ps,top
-### ps
用法:
[root@linux ~]# ps aux
[root@linux ~]# ps -lA
[root@linux ~]# ps axjf
参数:
-A :所有的 process 均显示出来,与 -e 具有同样的效用;
-a :不与 terminal 有关的所有 process ;
-u :有效使用者 (effective user) 相关的 process ;
x :通常与 a 这个参数一起使用,可列出较完整信息。
输出格式规划:
l :较长、较详细的将该 PID 的的信息列出;
j :工作的格式 (jobs format)
-f :做一个更为完整的输出
top
用法:
[root@linux ~]# top [-d] | top [-bnp]
参数:
-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;
通常会搭配数据流重导向来将批次的结果输出成为文件。
-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p :指定某些个 PID 。
pstree
用法:
[root@linux ~]# pstree [-Aup]
参数:
-A :各程序树之间的连接以 ASCII 字符来连接;
-p :并同时列出每个 process 的 PID;
-u :并同时列出每个 process 的所属账号名称。
3.2 系统资源的查看
free
查看系统硬件剩余容量。
用法:
[root@linux ~]# free [-b|-k|-m|-g] [-t]
参数:
-b :直接输入 free 时,显示的单位是 Kbytes
-t :在输出的最终结果,显示物理内存与 swap 的总量。
uname
列出目前系统的核心版本,主要硬件等信息。
用法:
[root@linux ~]# uname [-asrmpi]
参数:
-a :所有系统相关的信息;
-s :系统核心名称
-r :核心的版本
-m :本系统的硬件名称
-p :CPU 的类型
-i :硬件的平台 (ix86)
netstat
可用于网络监控,对于程序可以查看端口情况。
用法:
[root@linux ~]# netstat -[atunlp]
参数:
-a :将目前系统上所有的联机、监听、Socket 数据都列出来
-t :列出 tcp 网络封包的数据
-u :列出 udp 网络封包的数据
-n :不以程序的服务名称,以端口号 (port number) 来显示;
-l :列出目前正在网络监听 (listen) 的服务;
-p :列出该网络服务的程序 PID