學會快捷鍵之後,接著我們要更深入一點,開始處理電腦效能的問題。
在視窗化的系統,當電腦慢的時候,我們通常會開啟「工作管理員」或者打開 mac 的「活動監視器」來查看是哪一個工作佔據了我們的資源。
這邊所謂的「程式」,在 linux 的世界內,叫做進程(process)。概略地說,就是紀錄每個任務什麼時候可以使用系統的資源(CPU、記憶體⋯⋯等),又會在什麼時候任務結束並歸還資源。
要查看現有的進程,我們可以使用 ps
NAME
ps - report a snapshot of the current processes.
這邊的 man
說明非常詳盡,建議各位花時間深入閱讀。
剛連線時使用 ps
會看到
ps
PID TTY TIME CMD
27774 pts/1 00:00:00 bash
27805 pts/1 00:00:00 ps
這邊會看到我們這個終端裝置底下運作中的進程
對 linux 來說,這個作業系統一開始的設計,就是假設會給多人同時使用的一種作業系統,所以會對不同終端所呼叫的指令進行區隔。
如果我們輸入 ps x
可以看到不隸屬任何終端裝置(TTY,TeleTYpes)底下運作的指令
x Lift the BSD-style "must have a tty" restriction,
使用時會看到
ps x
PID TTY STAT TIME COMMAND
6101 ? Ssl 8:15 MailHog
6609 ? R 256853:37 /usr/bin/php8.0 -S 0.0.0.0:80 /var/www/html/server.php
24384 ? S 0:00 sshd: ec2-user@pts/0
24387 ? S 0:00 sshd: ec2-user@notty
24388 ? Ss 0:00 /usr/libexec/openssh/sftp-server
24405 pts/0 Ss+ 0:00 -bash
27752 ? S 0:00 sshd: ec2-user@pts/1
27756 ? S 0:00 sshd: ec2-user@notty
27757 ? Ss 0:00 /usr/libexec/openssh/sftp-server
27774 pts/1 Ss 0:00 -bash
29084 ? R 0:00 /usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=80
29085 pts/1 R+ 0:00 ps x
這樣可以看到更多進程。
如果要看到所有進程,可以使用 ps -e
。
如果想看到更詳盡的進程資訊,很常見的指令是 ps aux
a Lift the BSD-style "only yourself" restriction,
u Display user-oriented format.
這會列出所有用戶,所有終端的進程。通常會多到閱讀不太方便,所以可以搭配 less
使用
ps aux | less
如果要看進程呼叫的父子關係,可以用 ps axjf
,會畫出樹狀結構
j BSD job control format.
f ASCII art process hierarchy (forest).
可以看到,單單一個 ps
指令,可以研究的學問很深呢!
今天有關進程的部分,我們就分享到這邊,各位明天見!