[TOC]
可以列出被進程所打開的文件的信息。被打開的文件可以是
1.普通的文件
2.目錄抽象為特殊文件
3.網路文件系統的文件,抽象為文件
4.字元設備文件在linux抽象為文件
5.(函數)共享庫
6.管道,命名管道
7.符號鏈接
8.底層的socket字流,網路socket,unix域名socket
9.在linux裡面,很多東西都抽象為文件,提供了統一的訪問介面
屬性第一個字元:
rwx=0x111,二進製表示
列出所有進程
-ef f:father
ps –el ,
e:every :顯示所有進程信息,等價於A
a:all :顯示除了當前終端進程外的其他進程
l: long 長格式顯示進程信息。
linux 線程狀態:
ps工具標識進程的5種狀態碼:
chmod 對象 +/- 模式
對象:u(user),g(group),o(other),a(all)
模式:r,w,x
由於inode號碼與文件名分離,這種機制導致了一些Unix/Linux系統特有的現象。
軟體不關閉情況下更新:寫入同名不同inode的文件,下次啟動由於老的inode已經丟失,操作系統回收原來的Block。
綜上,總結一下軟鏈接和硬鏈接的區別:
參考: 阮一峰的網路日誌:理解inode
Ctrl+z 暫停進程執行
uname -m 顯示機器的處理器架構(2)
uname -r 顯示正在使用的內核版本
jobs: 查看後台任務
fg +jobNum: 將後台任務調到前台
未完,不定期更新中...
㈡ linux中查看進程命令ps aux和ps -ef
Linux下顯示系統進程的命令ps,最常用的有ps -ef 和ps aux。這兩個到底有什麼區別呢?兩者沒太大差別,討論這個問題,要追溯到Unix系統中的兩種風格,System V風格和BSD 風格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,兩者輸出略有不同。現在的大部分Linux系統都是可以同時使用這兩種方式的。
ps -ef 是用標準的格式顯示進程的、其格式如下:
其中各列的內容意思如下
UID //用戶ID、但輸出的是用戶名
PID //進程的ID
PPID //父進程ID
C //進程佔用CPU的百分比
STIME //進程啟動到現在的時間
TTY //該進程在那個終端上運行,若與終端無關,則顯示? 若為pts/0等,則表示由網路連接主機進程。
CMD //命令的名稱和參數
ps aux 是用BSD的格式來顯示、其格式如下:
同ps -ef 不同的有列有
USER //用戶名
%CPU //進程佔用的CPU百分比
%MEM //佔用內存的百分比
VSZ //該進程使用的虛擬內存量(KB)
RSS //該進程佔用的固定內存量(KB)(駐留中頁的數量)
STAT //進程的狀態
START //該進程被觸發啟動時間
TIME //該進程實際使用CPU運行的時間
其中STAT狀態位常見的狀態字元有
D //無法中斷的休眠狀態(通常 IO 的進程); uninterruptible sleep (usually IO)不可中斷
R //正在運行可中在隊列中可過行的;
S //處於休眠狀態;
T //停止或被追蹤; traced or stopped
W //進入內存交換 (從內核2.6開始無效);
X //死掉的進程 (基本很少見);
Z //僵屍進程; a defunct (」zombie」) process
< //優先順序高的進程
N //優先順序較低的進程
L //有些頁被鎖進內存;
s //進程的領導者(在它之下有子進程);
l //多線程,克隆線程(使用 CLONE_THREAD, 類似 NPTL pthreads);
+ //位於後台的進程組;
㈢ Linux裡面ps aux命令作用是什麼
ps命令用於獲取有關在Linux,Unix和BSD系統上運行的進程的詳細信息。 ps有一些流行的選項和用例,其中一個是aux選項。
ps命令的默認行為是僅列出當前用戶進程。 所有其他用戶擁有的進程將不會顯示。a選項也會列印所有其他用戶進程。《Linux就該這么學》
關於顯示流程信息的默認行為不會列印流程的所有者。 但是在大多數情況下,流程所有者數據將非常有幫助。 因此,我們可以使用u選項來顯示進程所有者。
ps默認情況下僅顯示終端連接過程。 如果要顯示其他未連接到終端的進程,可以使用x選項。
#a 選項也會列印所有其他用戶進程。
# u顯示進程所有者。
#x顯示其他未連接到終端的進程
㈣ linux命令中ps -ef是什麼意思
ps -ef表示查看全格式的全部進程。
ps是linux下最常用的也是非常強大的進程查看命令,常配合管道命令 | 和查找命令 grep 同時執行來查看特定進程。
參數含義:
-e 顯示所有進程。-f 全格式。-h 不顯示標題。-l 長格式。-w 寬輸出。a 顯示終端上的所有進程,包括其他用戶的進程。r 只顯示正在運行的進程。x 顯示沒有控制終端的進程。
(4)linux下的ps命令擴展閱讀:
進程狀態:
R 運行,正在運行或在運行隊列中等待。
S 中斷,休眠中, 受阻, 在等待某個條件的形成或接受到信號。
D 不可中斷,收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生。
Z 僵死 ,進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放。
T 停止,進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行。
㈤ Linux ps命令:用於顯示當前進程 (process) 的狀態
ps [options] [—help]
ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名稱>][-g <群組名稱>]
[-G <群組識別碼>][-p <進程識別碼>][p <進程識別碼>][-s <階段作業>]
[-t <終端機編號>][t <終端機編號>][-u <用戶識別碼>][-U <用戶識別碼>]
[U <用戶名稱>][-<進程識別碼>][--cols <每列字元數>]
[--columns <每列字元數>][--cumulative][--deselect][--forest]
[--headers][--help][-- info][--lines <顯示列數>][--no-headers]
[--group <群組名稱>][-Group <群組識別碼>][--pid <進程識別碼>]
[--rows <顯示列數>][--sid <階段作業>][--tty <終端機編號>]
[--user <用戶名稱>][--User <用戶識別碼>][--version]
[--width <每列字元數>]
-a 顯示所有終端機下執行的進程,除了階段作業領導者之外
a 顯示現行終端機下的所有進程,包括其他用戶的進程
-A 顯示所有進程
-c 顯示CLS和PRI欄位
c 列出進程時,顯示每個進程真正的指令名稱,而不包含路徑,參數或常駐服務的標示
-C<指令名稱> 指定執行指令的名稱,並列出該指令的進程的狀況
-d 顯示所有進程,但不包括階段作業領導者的進程
-e 此參數的效果和指定"A"參數相同
e 列出進程時,顯示每個進程所使用的環境變數
-f 顯示UID,PPIP,C與STIME欄位
f 用ASCII字元顯示樹狀結構,表達進程間的相互關系
-g<群組名稱> 此參數的效果和指定"-G"參數相同,當亦能使用階段作業領導者的名稱來指定
g 顯示現行終端機下的所有進程,包括群組領導者的進程
-G<群組識別碼> 列出屬於該群組的進程的狀況,也可使用群組名稱來指定
h 不顯示標題列
-H 顯示樹狀結構,表示進程間的相互關系
-j或j 採用工作控制的格式顯示進程狀況
-l或l 採用詳細的格式來顯示進程狀況
L 列出欄位的相關信息
-m或m 顯示所有的執行緒
n 以數字來表示USER和WCHAN欄位
-N 顯示所有的進程,除了執行ps指令終端機下的進程之外
-p<進程識別碼> 指定進程識別碼,並列出該進程的狀況
p<進程識別碼> 此參數的效果和指定"-p"參數相同,只在列表格式方面稍有差異
r 只列出現行終端機正在執行中的進程
-s<階段作業> 指定階段作業的進程識別碼,並列出隸屬該階段作業的進程的狀況
s 採用進程信號的格式顯示進程狀況
S 列出進程時,包括已中斷的子進程資料
-t<終端機編號> 指定終端機編號,並列出屬於該終端機的進程的狀況
t<終端機編號> 此參數的效果和指定"-t"參數相同,只在列表格式方面稍有差異
-T 顯示現行終端機下的所有進程
-u<用戶識別碼> 此參數的效果和指定"-U"參數相同
u 以用戶為主的格式來顯示進程狀況
-U<用戶識別碼> 列出屬於該用戶的進程的狀況,也可使用用戶名稱來指定
U<用戶名稱> 列出屬於該用戶的進程的狀況
v 採用虛擬內存的格式顯示進程狀況
-V或V 顯示版本信息
-w或w 採用寬闊的格式來顯示進程狀況。
x 顯示所有進程,不以終端機來區分
X 採用舊式的Linux i386登陸格式顯示進程狀況
-y 配合參數"-l"使用時,不顯示F(flag)欄位,並以RSS欄位取代ADDR欄位
-<進程識別碼> 此參數的效果和指定"p"參數相同
--cols<每列字元數> 設置每列的最大字元數
--columns<每列字元數> 此參數的效果和指定"--cols"參數相同
--cumulative 此參數的效果和指定"S"參數相同
--deselect 此參數的效果和指定"-N"參數相同
--forest 此參數的效果和指定"f"參數相同
--headers 重復顯示標題列
--help 在線幫助
--info 顯示排錯信息
--lines<顯示列數> 設置顯示畫面的列數
--no-headers 此參數的效果和指定"h"參數相同,只在列表格式方面稍有差異
--group<群組名稱> 此參數的效果和指定"-G"參數相同
--Group<群組識別碼> 此參數的效果和指定"-G"參數相同
--pid<進程識別碼> 此參數的效果和指定"-p"參數相同
--rows<顯示列數> 此參數的效果和指定"--lines"參數相同
--sid<階段作業> 此參數的效果和指定"-s"參數相同
--tty<終端機編號> 此參數的效果和指定"-t"參數相同
--user<用戶名稱> 此參數的效果和指定"-U"參數相同
--User<用戶識別碼> 此參數的效果和指定"-U"參數相同
--version 此參數的效果和指定"-V"參數相同
--widty<每列字元數> 此參數的效果和指定"-cols"參數相同
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程
linux上進程有5種狀態:
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)
5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行)
ps工具標識進程的5種狀態碼:
D 不可中斷 uninterruptible sleep (usually IO)
R 運行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (」zombie」) process
1、# ps aux //顯示所有正在內存中的程序
USER:該 process 屬於那個使用者賬號的
PID :該 process 的號碼
%CPU:該 process 使用掉的 CPU 資源百分比
%MEM:該 process 所佔用的物理內存百分比
VSZ :該 process 使用掉的虛擬內存量 (Kbytes)
RSS :該 process 佔用的固定的內存量 (Kbytes)
TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網路連接進主機的程序。
STAT:該程序目前的狀態,主要的狀態有
R :該程序目前正在運作,或者是可被運作
S :該程序目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。
D: 無法中斷的休眠狀態 (通常 IO 的進程)
T :該程序目前正在偵測或者是停止了
Z :該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆屍) 程序的狀態
<: 高優先序的行程
N: 低優先序的行程
L: 有記憶體分頁分配並鎖在記憶體內 (實時系統或捱A I/O)
START:該 process 被觸發啟動的時間
TIME :該 process 實際使用 CPU 運作的時間
COMMAND:該程序的實際指令
2、# ps -A 顯示進程信息
3、# ps -u work //顯示work進程用戶信息
4、# ps -ef //顯示所有命令,連帶命令行
5、# ps -l //將屬於自己這次登入的pid與相關信息顯示出來
F:代表這個程序的旗標 (flag), 4 代表使用者為 super user
S:代表這個程序的狀態 (STAT)
UID:程序被該 UID 所擁有
PID:就這個程序的 ID
PPID:其上級父程序的ID
C:CPU使用的資源百分比
PRI: Priority (優先執行序) 的縮寫
NI: Nice 值
ADDR:kernel function,指出該程序在內存的那個部分。如果是個 running的程序,一般就是 "-"
SZ:使用掉的內存大小
WCHAN:目前這個程序是否正在運作當中,若為 - 表示正在運作
TTY:登入者的終端機位置
TIME:使用掉的 CPU 時間。
CMD:所下達的指令為何
在預設的情況下, ps 僅會列出與目前所在的 bash shell 有關的 PID,所以, 當使用 ps -l 的時候,只有三個 PID。
6、其他
1)可以用 | 管道和 more 連接起來分頁查看
命令:ps -aux |more
2)把所有進程顯示出來,並輸出到ps001.txt文件
命令:ps -aux > ps001.txt
3)輸出指定的欄位
命令:ps -o pid,ppid,pgrp,session,tpgid,comm
㈥ linux ps查看進程顯示的是用戶ID,不是用戶名是怎麼回事
使用ps命令時,發現部分用戶顯示的是用戶名,有些用戶顯示的是UID,例如nmon程序的運行時webmaster,但是ps顯示的不是直接顯示uid 500。
通過man發現:8位用戶名的賬戶能夠顯示完整的用戶名,9位用戶名的賬戶就顯示了UID使用下面的命令來解決;
ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd
注意:「userForLongName」是隨便填寫的,Linux會自動檢查此字元串的長度,為15,則15位以下的用戶名都可以正常顯示。
㈦ 在linux終端執行命令ps-linit的屏幕輸出結果是
ps(全稱:process status)命令是用來查看linux系統進程使用情況,作用相當於windows的任務管理器。
說明:
ps支持多種系統,如linux,UNIX等,因此可使用的參數選項比較多,但一般我們只需掌握常用的參數即可,此處我們只介紹ps命令不帶參數時的輸出列表示的具體含義。
兼容格式:
UNIX格式:以-開頭。
BSD格式:沒有以-開頭。
GNU長格式:兩個-開頭,即--。
ps命令不接任何參數
默認情況下,ps不帶任何參數時,輸出的是使用者當前所在終端的進程,其輸出結果如圖所示:
㈧ 【ps】關於Linux ps命令的妙用
How to get all process ids without ps command on Linux?
On Linux, all running process have "metadata" stored in the /proc filesystem .
# man ps
# ps -C sshd --no-header
# ps -C dockerd --no-header
-C cmdlist
Select by command name. This selects the processes whose executable name is given in cmdlist.
you can use the long options --headers and --no-headers to enable printing headers each page or disable headers entirely, respectively.
# ps -eo nlwp,pcpu,user,pid,ppid,args --sort nlwp
註:以 nlwp排序,默認正序
LWP -- 輕量級進程,即線程
NLWP --線程數,即 number of threads in process
# ps -eo pid,cmd,%mem,%cpu --sort=-%mem
Thecommand is highly valuable for system admins ring troubleshooting the system.
You can display the processes list in a sorted manner to find out the highest memory usage processes.
# ps -mp ${pid} -o THREAD,tid,time
參數解釋:
-m:顯示所有的線程
-p:pid進程使用CPU的時間
-o:該參數後是用戶自定義格式。
如:THREAD,tid,time表示線程、線程ID號、線程佔用的時間。
$ ps -Hp ${pid}
ps(1) — Linux manual page
https://man7.org/linux/man-pages/man1/ps.1.html
Linux PS command with examples
https://www.fosslinux.com/43296/linux-ps-command-with-examples.htm
How to get all process ids without ps command on Linux?
https://stackoverflow.com/questions/32913424/how-to-get-all-process-ids-without-ps-command-on-linux
What is the difference between ps and top command?
https://unix.stackexchange.com/questions/62176/what-is-the-difference-between-ps-and-top-command
㈨ linux 下查看進程用什麼命令
linux 下查看進程可以使用的命令:
1、ps命令查找與進程相關的PID號:
2、ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
3、ps -A 顯示所有程序。
4、ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
5、ps -e 此參數的效果和指定"A"參數相同。
6、ps e 列出程序時,顯示每個程序所使用的環境變數。
7、ps f 用ASCII字元顯示樹狀結構,表達程序間的相互關系。
8、ps -H 顯示樹狀結構,表示程序間的相互關系。
9、ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
10、ps s 採用程序信號的格式顯示程序狀況。
11、ps S 列出程序時,包括已中斷的子程序資料。
12、ps -t<終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況。
13、ps u 以用戶為主的格式來顯示程序狀況。
14、ps x 顯示所有程序,不以終端機來區分。