您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么在Linux上以樹狀查看文件和進程”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么在Linux上以樹狀查看文件和進程”吧!
介紹三個 Linux 命令:ps、pstree 和 tree 以類似樹的格式查看文件和進程。
Linux 提供了一些方便的命令,用于以樹狀分支形式查看文件和進程,從而易于查看它們之間的關系。在本文中,我們將介紹 ps
、pstree
和 tree
命令以及它們提供的一些選項,這些選項可幫助你將注意力集中在要查看的內容上。
我們用來列出進程的 ps
命令有一些有趣的選項,但是很多人從來沒有利用過。雖然常用的 ps -ef
提供了正在運行的進程的完整列表,但是 ps -ejH
命令增加了一個不錯的效果。它縮進了相關的進程以使這些進程之間的關系在視覺上更加清晰——就像這個片段:
$ ps -ejH PID PGID SID TTY TIME CMD... 1396 1396 1396 ? 00:00:00 sshd28281 28281 28281 ? 00:00:00 sshd28409 28281 28281 ? 00:00:00 sshd28410 28410 28410 pts/0 00:00:00 bash30968 30968 28410 pts/0 00:00:00 ps
可以看到,正在運行的 ps
進程是在 bash
中運行的,而 bash
是在 ssh 會話中運行的。
-exjf
選項字符串提供了類似的視圖,但是帶有一些其它細節和符號以突出顯示進程的層次結構性質:
$ ps -exjfPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND... 1 1396 1396 1396 ? -1 Ss 0 0:00 /usr/sbin/sshd -D 1396 28281 28281 28281 ? -1 Ss 0 0:00 \_ sshd: shs [priv]28281 28409 28281 28281 ? -1 S 1000 0:00 \_ sshd: shs@pts/028409 28410 28410 28410 pts/0 31028 Ss 1000 0:00 \_ -bash28410 31028 31028 28410 pts/0 31028 R+ 1000 0:00 \_ ps axjf
命令中使用的這些選項表示:
-e 選擇所有進程-j 使用工作格式-f 提供完整格式列表-H 分層顯示進程(如,樹狀格式)-x 取消“必須與 tty 相關聯”的限制
同時,該命令也有一個 --forest
選項提供了類似的視圖。
$ ps -ef --forestUID PID PPID C STIME TTY TIME CMD...root 1396 1 0 Oct08 ? 00:00:00 /usr/sbin/sshd -Droot 28281 1396 0 12:55 ? 00:00:00 \_ sshd: shs [priv]shs 28409 28281 0 12:56 ? 00:00:00 \_ sshd: shs@pts/0shs 28410 28409 0 12:56 pts/0 00:00:00 \_ -bashshs 32351 28410 0 14:39 pts/0 00:00:00 \_ ps -ef --forest
注意,這些示例只是這些命令如何使用的示例。你可以選擇最適合你的進程視圖的任何選項組合。
使用 pstree
命令可以獲得類似的進程視圖。盡管 pstree
具備了許多選項,但是該命令本身就提供了非常有用的顯示。注意,許多父子進程關系顯示在單行而不是后續行上。
$ pstree... ├─sshd───sshd───sshd───bash───pstree ├─systemd─┬─(sd-pam) │ ├─at-spi-bus-laun─┬─dbus-daemon │ │ └─3*[{at-spi-bus-laun}] │ ├─at-spi2-registr───2*[{at-spi2-registr}] │ ├─dbus-daemon │ ├─ibus-portal───2*[{ibus-portal}] │ ├─pulseaudio───2*[{pulseaudio}] │ └─xdg-permission-───2*[{xdg-permission-}]
通過 -n
選項,pstree
以數值(按進程 ID)順序顯示進程:
$ pstree -nsystemd─┬─systemd-journal ├─systemd-udevd ├─systemd-timesyn───{systemd-timesyn} ├─systemd-resolve ├─systemd-logind ├─dbus-daemon ├─atopacctd ├─irqbalance───{irqbalance} ├─accounts-daemon───2*[{accounts-daemon}] ├─acpid ├─rsyslogd───3*[{rsyslogd}] ├─freshclam ├─udisksd───4*[{udisksd}] ├─networkd-dispat ├─ModemManager───2*[{ModemManager}] ├─snapd───10*[{snapd}] ├─avahi-daemon───avahi-daemon ├─NetworkManager───2*[{NetworkManager}] ├─wpa_supplicant ├─cron ├─atd ├─polkitd───2*[{polkitd}] ├─colord───2*[{colord}] ├─unattended-upgr───{unattended-upgr} ├─sshd───sshd───sshd───bash───pstree
使用 pstree
時可以考慮的一些選項包括 -a
(包括命令行參數)和 -g
(包括進程組)。
以下是一些簡單的示例(片段)。
命令 pstree -a
的輸出內容:
└─wpa_supplicant -u -s -O /run/wpa_supplicant
命令 pstree -g
的輸出內容:
├─sshd(1396)───sshd(28281)───sshd(28281)───bash(28410)───pstree(1115)
雖然 tree
命令聽起來與 pstree
非常相似,但這是用于查看文件而非進程的命令。它提供了一個漂亮的樹狀目錄和文件視圖。
如果你使用 tree
命令查看 /proc
目錄,你顯示的開頭部分將類似于這個:
$ tree /proc/proc├── 1│ ├── attr│ │ ├── apparmor│ │ │ ├── current│ │ │ ├── exec│ │ │ └── prev│ │ ├── current│ │ ├── display│ │ ├── exec│ │ ├── fscreate│ │ ├── keycreate│ │ ├── prev│ │ ├── smack│ │ │ └── current│ │ └── sockcreate│ ├── autogroup│ ├── auxv│ ├── cgroup│ ├── clear_refs│ ├── cmdline...
如果以 root 權限運行這條命令(sudo tree /proc
),你將會看到更多詳細信息,因為 /proc
目錄的許多內容對于普通用戶而言是無法訪問的。
命令 tree -d
將會限制僅顯示目錄。
$ tree -d /proc/proc├── 1│ ├── attr│ │ ├── apparmor│ │ └── smack│ ├── fd [error opening dir]│ ├── fdinfo [error opening dir]│ ├── map_files [error opening dir]│ ├── net│ │ ├── dev_snmp6│ │ ├── netfilter│ │ └── stat│ ├── ns [error opening dir]│ └── task│ └── 1│ ├── attr│ │ ├── apparmor│ │ └── smack...
使用 -f
選項,tree
命令會顯示完整的路徑。
$ tree -f /proc/proc├── /proc/1│ ├── /proc/1/attr│ │ ├── /proc/1/attr/apparmor│ │ │ ├── /proc/1/attr/apparmor/current│ │ │ ├── /proc/1/attr/apparmor/exec│ │ │ └── /proc/1/attr/apparmor/prev│ │ ├── /proc/1/attr/current│ │ ├── /proc/1/attr/display│ │ ├── /proc/1/attr/exec│ │ ├── /proc/1/attr/fscreate│ │ ├── /proc/1/attr/keycreate│ │ ├── /proc/1/attr/prev│ │ ├── /proc/1/attr/smack│ │ │ └── /proc/1/attr/smack/current│ │ └── /proc/1/attr/sockcreate...
分層顯示通常可以使進程和文件之間的關系更容易理解。可用選項的數量很多,而你總可以找到一些視圖,幫助你查看所需的內容。
到此,相信大家對“怎么在Linux上以樹狀查看文件和進程”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。