cp file1 file2 &
如果在命令执行的过程中有输出,则就不会显示提示符,也就无法完好的控制前台作业,所以我们需要有数据流重导向:例如
将当前作业放到后台暂停: 【Crtl+Z】
例如我在执行vim编辑,突然不知道一个文件在哪里,我没必要关掉VIM,可以先暂停然后在使用。
jobs [-lrs] :观察后台作业的状态。-l 除了列出作业号之外同时列出PID,-r仅列出正在后台运行(run)的作业,-s仅列出正在后台暂停(stop)的作业。
fg %jobnumber:将后台作业拿到前台处理,%可有可无。
bg %jobnunber:将作业放到后台运行。
kill:-l列出所有能够使用的信号。常用有-1重新读取,-2相当与crtl+c,-9立刻强制删除一个作业,-15以正常的方式终止一项作业。注:假如我在操作VIM,-9强制删除则会生成一个swf文件,而-15表示以正常方式结束,不会生成,这是这2个的区别。
kill -n [ %jobnumber | PID]
killall:一般来说,kill一般用来杀死某进程,通过PID或者启动该服务的命令名称。但是一般删掉某个服务最简单的办法就是使用killall
进程的观察:
ps -l :列出属于自己这次登录的PID与相关信息。
FS0 S
0 S
0 R
相关解释:F
ps aux:列出当前在内存中的进程。
ps -lA:以ps -l的形式列出所有的进程。
ps -ajxf :以类似进程树的形式显示。
USER
root
root
相关解释:USER
top:进程观察工具
-d :后接秒数,就是整个进程画面更新的秒数,默认5秒。
-b:以批处理文件执行top,还有更多的参数,通常会搭配数据流重导向,将批处理输出为文件。
-n:与-b搭配,意义是需要进行几次top的输出结果。
-p:指定某些个PID进行观察检测。
在top执行过程中可以使用的按键命令。
例:将top执行2次并输入到文件
pstree:进程树,-A 各进程树之间以ASCII字符来链接,-p 同时列出每个进程的PID ,-u同时列出每个进程的所属帐号名称。
系统资源观察:
free:显示系统内存容量
uname : -a 显示所有系统基本信息
uptime:显示系统开机时间及负载率
netstat:-a将当前系统上所有的联机,监听,套接字数据都列出来,-t列出tcp网络包数据,-u列出udp网络包数据,-n不以进程名以端口号来显示,-l列出当前正在网络监听的服务,-p列出网络服务的进程PID。
dmesg:输出所有核心开机时的信息。
进程的执行顺序:
Pri(new) = Pri(old)+Ni(nice)值越小优先级越高,一般Pri是系统给的,而NI是给用户的可调的(top命令中的r即可)。
一般用户的NICE值范围所0~19,而root的NICE值范围为-20~19
nice [-n] command:主要是用root用户工作,给一个 -19~20的值。
例如:用root给一个nice值为-5 的vim并观察其进程。
root@ubuntu:~# nice -n -5 vi & 然后用ps -l 查看。
renice [number] PID:将某个PID的nice值改为number
如 renice 10 18852 将PID为18852的nice值改为了10
特殊文件与进程
SUID,SGID的权限。可以用find / -perm +6000找到系统中的所有此类文件
/proc/*:因为进程都是在内存中,而内存中的数据又写值proc中,各个进程的PID以目录的形似存在/proc中。
查询已打开文件或已执行进程打开的文件:
fuser [-ki] [-signal]file/dir:-k表示找出使用该文件或目录PID并试图将SIGNKILL信号传给PID。-i与-k配合,在删除PID之前要求用户确认。-signal如-1~-15等,若不添加默认为Signkill(-9).
xiaozhe@ubuntu:~$ fuser.
xiaozhe@ubuntu:~$ ps aux | grep1491
fuser执行结果中:c代表在当前目录下,e代表可执行,f是一个打开的文件,r表示根目录
例如:找出/var下属于FIFO类型的文件,并找出访问该文件的进程。
步骤1:find /var -type p
步骤2:fuser /var/lib/urandom/random-seed加入使用该文件的进程PID为(1666和1667)
步骤3:ps aux | egrep '(1666 |1667)'
同上,如果要删除PID,则:
fuser -ki
fuser是通过文件查找使用它的进程,而lsof是通过进程查找使用的文件
pidof [-sx]programe_name:-s仅列出一个PID而不列出所有的PID。-x同时列出该程序名(programe_name)可能的PPID进程的PID。
例如:列出init和syslogd这两个进程的PID
pidof init syslogd
pidof -x bash 找出以bash为PPID的几个主要的PID