linux的进程命令,Linux基础进程命令详解
進(jìn)程有關(guān)基礎(chǔ)命令
一、進(jìn)程定義
1、進(jìn)程就是CPU未完成的工作,而且它是其中運(yùn)行著一個(gè)或多個(gè)線程的地址空間和這些線程所需要的系統(tǒng)資源。
二、Linux系統(tǒng)進(jìn)程和一些有關(guān)進(jìn)程的命令
1、ps命令ps ?[options]
1》ps - report a snapshot of the current processes.
解釋:報(bào)告當(dāng)前系統(tǒng)的進(jìn)程信息
2》基本參數(shù)
a? ? ? #關(guān)于當(dāng)前環(huán)境的所有進(jìn)程
-a????#顯示當(dāng)前環(huán)境下shell的進(jìn)程
x? ? ? #與當(dāng)前環(huán)境無(wú)關(guān)的所有進(jìn)程
f? ? ? #顯示進(jìn)程的從屬關(guān)系
-A|-e? ?#顯示進(jìn)程調(diào)用環(huán)境的詳細(xì)信息
l? ? ? #長(zhǎng)列表顯示進(jìn)程的所有信息
u? ? ? #進(jìn)程的用戶信息
-c????#顯示進(jìn)程的名稱
[root@loveyu loveyu]# ps
PID TTY ? ? ? ? ?TIME CMD
1586 pts/0 ? ?00:00:00 su
1589 pts/0 ? ?00:00:00 bash
1602 pts/0 ? ?00:00:00 ps
[root@loveyu loveyu]# ps -f
UID ? ? ? ?PID ?PPID ?C STIME TTY ? ? ? ? ?TIME CMD
root ? ? ?1586 ?1567 ?0 19:17 pts/0 ? ?00:00:00 su
root ? ? ?1589 ?1586 ?0 19:17 pts/0 ? ?00:00:00 bash
root ? ? ?1603 ?1589 ?0 19:18 pts/0 ? ?00:00:00 ps -f
[root@loveyu loveyu]# ps a
PID TTY ? ? ?STAT ? TIME COMMAND
1555 tty1 ? ? Ss+ ? ?0:00 /sbin/mingetty /dev/tty1
1557 tty2 ? ? Ss+ ? ?0:00 /sbin/mingetty /dev/tty2
1559 tty3 ? ? Ss+ ? ?0:00 /sbin/mingetty /dev/tty3
1561 tty4 ? ? Ss+ ? ?0:00 /sbin/mingetty /dev/tty4
1563 tty5 ? ? Ss+ ? ?0:00 /sbin/mingetty /dev/tty5
1565 tty6 ? ? Ss+ ? ?0:00 /sbin/mingetty /dev/tty6
1567 pts/0 ? ?Ss ? ? 0:00 -bash
1586 pts/0 ? ?S ? ? ?0:00 su
1589 pts/0 ? ?S ? ? ?0:00 bash
1604 pts/0 ? ?R+ ? ? 0:00 ps a
[root@loveyu loveyu]# ps ?-a
PID TTY ? ? ? ? ?TIME CMD
1586 pts/0 ? ?00:00:00 su
1589 pts/0 ? ?00:00:00 bash
1605 pts/0 ? ?00:00:00 ps
[root@loveyu loveyu]# ps au
USER ? ? ? PID %CPU %MEM ? ?VSZ ? RSS TTY ? ? ?STAT START ? TIME COMMAND
loveyu ? ?1567 ?0.0 ?0.3 108340 ?1844 pts/0 ? ?Ss ? 19:17 ? 0:00 -bash
root ? ? ?1586 ?0.0 ?0.5 161596 ?2684 pts/0 ? ?S ? ?19:17 ? 0:00 su
root ? ? ?1589 ?0.0 ?0.3 108468 ?1876 pts/0 ? ?S ? ?19:17 ? 0:00 bash
root ? ? ?1650 ?0.0 ?0.2 110236 ?1136 pts/0 ? ?R+ ? 20:27 ? 0:00 ps au
[root@loveyu loveyu]# ps auf
USER ? PID %CPU %MEM ? ?VSZ ? RSS TTY ? STAT START ? TIME COMMAND
loveyu ?1567 0.0 ?0.3 108340 ?1844 pts/0 ? Ss ? 19:17 ? 0:00 -bash
root ? 1586 0.0 ?0.5 161596 ?2684 pts/0 ? S ? ?19:17 ? 0:00 ?\_ su
root ? 1589 0.0 ?0.3 108468 ?1884 pts/0 ? S ? ?19:17 ? 0:00 ? \_ bash
root ? 1651 0.0 ?0.2 110204 ?1048 pts/0 ? ?R+ ? 20:27 ? 0:00 ? ? \_ ps auf
3》-o參數(shù)
ps -ax -o %cpu,%mem,user,group,comm,nice,pid? #指定顯示進(jìn)程的某些信息
%cpu????#顯示進(jìn)程的CPU負(fù)載
%mem????#顯示進(jìn)程內(nèi)存負(fù)載
user????#進(jìn)程所屬的用戶
group ? ? #進(jìn)程所屬的組
comm????#進(jìn)程名稱
nice????#進(jìn)程的優(yōu)先級(jí)
pid ? ? ?#進(jìn)程的ID
stat????#顯示進(jìn)程的信息
4》stat顯示的信息
R (TASK_RUNNING)
#可執(zhí)行狀態(tài)&運(yùn)行狀態(tài)(在run_queue隊(duì)列里的狀態(tài))
S(TASK_INTERRUPTIBLE)
#可中斷的睡眠狀態(tài), 可處理signal
D(TASK_UNINTERRUPTIBLE)
#不可中斷的睡眠狀態(tài), 可處理signal,有延遲
T(TASK_STOPPED or TASK_TRACED)
#暫停狀態(tài)或跟蹤狀態(tài),不可處理signal, 因?yàn)楦緵](méi)有時(shí)間片運(yùn)行代碼
Z (TASK_DEAD - EXIT_ZOMBIE)
#退出狀態(tài),進(jìn)程成為僵尸進(jìn)程。不可被kill, 即不響應(yīng)任務(wù)信號(hào),
#無(wú)法用SIGKILL殺死
l????? #內(nèi)存中鎖定空間,如果進(jìn)程在cpu中運(yùn)行,則此塊進(jìn)程所占的
#空間就被鎖定,不在分給其他進(jìn)程。
N???? ?#進(jìn)程優(yōu)先級(jí)較低,一般nice值大于0
+????? #進(jìn)程在前臺(tái)運(yùn)行
s???? ?#定及進(jìn)程,也就是父進(jìn)程
5》ps ax -o %cpu,comm --sort? #按照進(jìn)程信息排序
+????#正序排序
-????#倒敘排序
2、進(jìn)程的優(yōu)先級(jí)
1》進(jìn)程優(yōu)先級(jí)的范圍
-20-19
2》優(yōu)先級(jí)查看
ps -ax -o pid,nice,comm
3》指定某個(gè)優(yōu)先級(jí)開(kāi)啟進(jìn)程
nice -n 優(yōu)先級(jí)數(shù)字? 進(jìn)程名稱
nice -n -5? ? vim ?& ?#開(kāi)啟vim并且指定優(yōu)先級(jí)為-5
4》改變進(jìn)程的優(yōu)先級(jí)
renice -n 優(yōu)先級(jí)數(shù)字? 進(jìn)程pid
renice -n -5 1086 ? #改變進(jìn)程的優(yōu)先級(jí)為-5
3、環(huán)境中進(jìn)程的前后臺(tái)調(diào)用
jobs?#查看被打入后臺(tái)的進(jìn)程
Ctrl+z?#把占用終端的進(jìn)程打入后臺(tái)
fg? ? #把后臺(tái)進(jìn)程調(diào)回前臺(tái)
bg? ? #把暫停的進(jìn)程運(yùn)行
com &? #將com命令在后臺(tái)運(yùn)行
4、進(jìn)程信號(hào)
1》常用進(jìn)程信號(hào)等級(jí)
1????#進(jìn)程重新加載配置
2????#刪除進(jìn)程內(nèi)的數(shù)據(jù)
3????#刪除鼠標(biāo)內(nèi)的數(shù)據(jù)
9????#強(qiáng)行結(jié)束單個(gè)進(jìn)程(不能被阻塞)
15? ??#正常關(guān)閉進(jìn)程(可能被阻塞)
18 ? ??#運(yùn)行暫停的紫禁城
19????#暫停某個(gè)進(jìn)程(不能被阻塞)
20????#把進(jìn)程打入后臺(tái)(可能被阻塞)
mam 7 signal #查看進(jìn)程的詳細(xì)信息
kill -信號(hào) 進(jìn)程pid
killall -信號(hào) 進(jìn)程名字
pkill -u student -信號(hào)
1》 SIGHUP本信號(hào)在用戶終端連接(正常或非正常)結(jié)束時(shí)發(fā)出, 通常是在終端的控制進(jìn)程結(jié)束時(shí), 通知同一session內(nèi)的各個(gè)作業(yè), 這時(shí)它們與控制端不再關(guān)聯(lián).
2》SIGINT程序終止(interrupt)信號(hào), 在用戶鍵入INTR字符(通常是Ctrl-C)時(shí)發(fā)出
3》SIGQUIT 和SIGINT類(lèi)似, 但由QUIT字符(通常是Ctrl-)來(lái)控制. 進(jìn)程在因收到SIGQUIT退出時(shí)會(huì)產(chǎn)生core文件,在這個(gè)意義上類(lèi)似于一個(gè)程序錯(cuò)誤信號(hào).
4》SIGILL 執(zhí)行了非法指令. 通常是因?yàn)榭蓤?zhí)行文件本身出現(xiàn)錯(cuò)誤, 或者試圖執(zhí)行數(shù)據(jù)段. 堆棧溢出時(shí)也有可能產(chǎn)生這個(gè)信號(hào).
5》SIGTRAP 由斷點(diǎn)指令或其它trap指令產(chǎn)生. 由debugger使用.
6》SIGABRT 程序自己發(fā)現(xiàn)錯(cuò)誤并調(diào)用abort時(shí)產(chǎn)生.
7》SIGIOT 在PDP-11上由iot指令產(chǎn)生, 在其它機(jī)器上和SIGABRT一樣.
8》SIGBUS 非法地址, 包括內(nèi)存地址對(duì)齊(alignment)出錯(cuò). eg: 訪問(wèn)一個(gè)四個(gè)字長(zhǎng)的整數(shù), 但其地址不是4的倍數(shù).
9》SIGFPE 在發(fā)生致命的算術(shù)運(yùn)算錯(cuò)誤時(shí)發(fā)出. 不僅包括浮點(diǎn)運(yùn)算錯(cuò)誤, 還包括溢出及除數(shù)為0等其它所有的算術(shù)的錯(cuò)誤.
10》SIGKILL 用來(lái)立即結(jié)束程序的運(yùn)行. 本信號(hào)不能被阻塞, 處理和忽略.
11》SIGUSR1 留給用戶使用
12》SIGSEGV 試圖訪問(wèn)未分配給自己的內(nèi)存, 或試圖往沒(méi)有寫(xiě)權(quán)限的內(nèi)存地址寫(xiě)數(shù)據(jù).
13》SIGUSR2 留給用戶使用
14》SIGPIPE Broken pipe
15》SIGALRM 時(shí)鐘定時(shí)信號(hào), 計(jì)算的是實(shí)際的時(shí)間或時(shí)鐘時(shí)間. alarm函數(shù)使用該信號(hào).
16》SIGTERM 程序結(jié)束(terminate)信號(hào), 與SIGKILL不同的是該信號(hào)可以被阻塞和處理. 通常用來(lái)要求程序自己正常退出. shell命令kill缺省產(chǎn)生這
個(gè)信號(hào).
17》SIGCHLD 子進(jìn)程結(jié)束時(shí), 父進(jìn)程會(huì)收到這個(gè)信號(hào).
18》SIGCONT 讓一個(gè)停止(stopped)的進(jìn)程繼續(xù)執(zhí)行. 本信號(hào)不能被阻塞. 可以用一個(gè)handler來(lái)讓程序在由stopped狀態(tài)變?yōu)槔^續(xù)執(zhí)行時(shí)完成特定的工作. 例如, 重新顯示提示符
19》SIGSTOP 停止(stopped)進(jìn)程的執(zhí)行. 注意它和terminate以及interrupt的區(qū)別:該進(jìn)程還未結(jié)束, 只是暫停執(zhí)行. 本信號(hào)不能被阻塞, 處理或忽略.
20》SIGTSTP 停止進(jìn)程的運(yùn)行, 但該信號(hào)可以被處理和忽略. 用戶鍵入SUSP字符時(shí)(通常是Ctrl-Z)發(fā)出這個(gè)信號(hào)
21》SIGTTIN 當(dāng)后臺(tái)作業(yè)要從用戶終端讀數(shù)據(jù)時(shí), 該作業(yè)中的所有進(jìn)程會(huì)收到SIGTTIN信號(hào). 缺省時(shí)這些進(jìn)程會(huì)停止執(zhí)行.
22》SIGTTOU 類(lèi)似于SIGTTIN, 但在寫(xiě)終端(或修改終端模式)時(shí)收到.
23》SIGURG 有"緊急"數(shù)據(jù)或out-of-band數(shù)據(jù)到達(dá)socket時(shí)產(chǎn)生.
24》SIGXCPU 超過(guò)CPU時(shí)間資源限制. 這個(gè)限制可以getrlimit/setrlimit來(lái)讀取/改變
25》SIGXFSZ 超過(guò)文件大小資源限制.
26》SIGVTALRM 虛擬時(shí)鐘信號(hào). 類(lèi)似于SIGALRM, 但是計(jì)算的是該進(jìn)程占用的CPU時(shí)間.
27》SIGPROF 類(lèi)似于SIGALRM/SIGVTALRM, 但包括該進(jìn)程用的CPU時(shí)間以及系統(tǒng)調(diào)用的時(shí)間.
28》SIGWINCH 窗口大小改變時(shí)發(fā)出.
29》SIGIO 文件描述符準(zhǔn)備就緒, 可以開(kāi)始進(jìn)行輸入/輸出操作.
30》SIGPWR Power failure有兩個(gè)信號(hào)可以停止進(jìn)程:SIGTERM和SIGKILL。 SIGTERM比較友好,進(jìn)程能捕捉這個(gè)信號(hào),根據(jù)您的需要來(lái)關(guān)閉程序。在關(guān)閉程序之前,您可以結(jié)束打開(kāi)的記錄文件和完成正在做的任務(wù)。在某些情況下,假 如進(jìn)程正在進(jìn)行作業(yè)而且不能中斷,那么進(jìn)程可以忽略這個(gè)SIGTERM信號(hào)。
31》對(duì)于SIGKILL信號(hào),進(jìn)程是不能忽略的。這是一個(gè) “我不管您在做什么,立刻停止”的信號(hào)。假如您發(fā)送SIGKILL信號(hào)給進(jìn)程,Linux就將進(jìn)程停止在那里
三、用戶登錄審計(jì)
w? ??#查看使用系統(tǒng)當(dāng)?shù)那坝脩粲心男?/p>
w -f ? #查看使用地點(diǎn)
last ? #查看登錄成功的歷史
lastb? #查看用戶登錄未成功的歷史
總結(jié)
以上是生活随笔為你收集整理的linux的进程命令,Linux基础进程命令详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux ntfs 用户权限,Linu
- 下一篇: linux 冒号命令,linux 的空命