溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在Linux上以樹狀查看文件和進(jìn)程

發(fā)布時(shí)間:2021-09-04 11:15:10 來(lái)源:億速云 閱讀:130 作者:chen 欄目:系統(tǒng)運(yùn)維

本篇內(nèi)容主要講解“怎么在Linux上以樹狀查看文件和進(jìn)程”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么在Linux上以樹狀查看文件和進(jìn)程”吧!

介紹三個(gè) Linux 命令:ps、pstree 和 tree 以類似樹的格式查看文件和進(jìn)程。

Linux 提供了一些方便的命令,用于以樹狀分支形式查看文件和進(jìn)程,從而易于查看它們之間的關(guān)系。在本文中,我們將介紹 pspstreetree 命令以及它們提供的一些選項(xiàng),這些選項(xiàng)可幫助你將注意力集中在要查看的內(nèi)容上。

ps

我們用來(lái)列出進(jìn)程的 ps 命令有一些有趣的選項(xiàng),但是很多人從來(lái)沒(méi)有利用過(guò)。雖然常用的 ps -ef 提供了正在運(yùn)行的進(jìn)程的完整列表,但是 ps -ejH 命令增加了一個(gè)不錯(cuò)的效果。它縮進(jìn)了相關(guān)的進(jìn)程以使這些進(jìn)程之間的關(guān)系在視覺(jué)上更加清晰——就像這個(gè)片段:

$ 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

可以看到,正在運(yùn)行的 ps 進(jìn)程是在 bash 中運(yùn)行的,而 bash 是在 ssh 會(huì)話中運(yùn)行的。

-exjf 選項(xiàng)字符串提供了類似的視圖,但是帶有一些其它細(xì)節(jié)和符號(hào)以突出顯示進(jìn)程的層次結(jié)構(gòu)性質(zhì):

$ 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

命令中使用的這些選項(xiàng)表示:

-e  選擇所有進(jìn)程-j  使用工作格式-f  提供完整格式列表-H  分層顯示進(jìn)程(如,樹狀格式)-x  取消“必須與 tty 相關(guān)聯(lián)”的限制

同時(shí),該命令也有一個(gè) --forest 選項(xiàng)提供了類似的視圖。

$ 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

注意,這些示例只是這些命令如何使用的示例。你可以選擇最適合你的進(jìn)程視圖的任何選項(xiàng)組合。

pstree

使用 pstree 命令可以獲得類似的進(jìn)程視圖。盡管 pstree 具備了許多選項(xiàng),但是該命令本身就提供了非常有用的顯示。注意,許多父子進(jìn)程關(guān)系顯示在單行而不是后續(xù)行上。

$ 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-}]

通過(guò) -n 選項(xiàng),pstree 以數(shù)值(按進(jìn)程 ID)順序顯示進(jìn)程:

$ 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 時(shí)可以考慮的一些選項(xiàng)包括 -a(包括命令行參數(shù))和 -g(包括進(jìn)程組)。

以下是一些簡(jiǎn)單的示例(片段)。

命令 pstree -a 的輸出內(nèi)容:

└─wpa_supplicant -u -s -O /run/wpa_supplicant

命令 pstree -g 的輸出內(nèi)容:

├─sshd(1396)───sshd(28281)───sshd(28281)───bash(28410)───pstree(1115)

tree

雖然 tree 命令聽(tīng)起來(lái)與 pstree 非常相似,但這是用于查看文件而非進(jìn)程的命令。它提供了一個(gè)漂亮的樹狀目錄和文件視圖。

如果你使用 tree 命令查看 /proc 目錄,你顯示的開(kāi)頭部分將類似于這個(gè):

$ 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 權(quán)限運(yùn)行這條命令(sudo tree /proc),你將會(huì)看到更多詳細(xì)信息,因?yàn)?/proc 目錄的許多內(nèi)容對(duì)于普通用戶而言是無(wú)法訪問(wèn)的。

命令 tree -d 將會(huì)限制僅顯示目錄。

$ 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 選項(xiàng),tree 命令會(huì)顯示完整的路徑。

$ 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...

分層顯示通常可以使進(jìn)程和文件之間的關(guān)系更容易理解。可用選項(xiàng)的數(shù)量很多,而你總可以找到一些視圖,幫助你查看所需的內(nèi)容。

到此,相信大家對(duì)“怎么在Linux上以樹狀查看文件和進(jìn)程”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI