解決問題時需要了解的 5 個 Linux 指令
在 Linux 中遇到問題?這些命令可以幫助您深入了解它們。
讓那些想要誹謗 Linux 作業系統的人懊惱的是,它實際上非常容易使用。由於現代 GUI 桌面環境和應用程序,任何人都可以加入戰鬥並知道他們在做什麼。
但在極少數出現問題的情況下,您可能需要了解一些命令來幫助您解決問題。問題是,在 Linux 領域內有太多可用的命令,這使得了解哪些命令是最佳選擇變得很困難。
當然,您可以學習任何顯示系統資訊的命令(例如 top、free、iostat、htop、vmstat 或 iftop),但這些工具只能幫助您到此為止。更有價值的是在出現問題時跳到真正可以幫助您的命令。
介紹完畢後,我們來看看指令。
<h2>1. dmesg當我第一次開始使用 Linux 時,dmesg 是我最好的朋友。本質上,dmesg 用於檢查核心引導載入階段之後創建的所有訊息。換句話說,您可能會在這裡找到任何可以解決問題的線索。
與舊的 dmesg 不同,您現在必須使用 sudo 權限來執行該命令,因此:
sudo dmesg這將列印相當多的輸出,您可以滾動瀏覽,這使得找到您要查找的內容變得有點困難,而且您讀到的大部分內容很可能看起來都是亂碼。好消息是錯誤會以紅色列印出來,因此您可以快速滾動以查找任何可能錯誤的內容。
有一種方法可以讓這件事變得更容易。假設您遇到錯誤,並且您想查看是否在發生錯誤時透過 dmesg 記錄該錯誤。為此,請發出命令:
dmesg -w這將在發生時顯示 dmesg 的輸出,因此當發生錯誤時,您將在終端視窗中看到它,並可以從那裡進行故障排除。
dmesg 指令是在 Linux 中開始故障排除的好地方。
<h2>2. tail說到以下輸出,tail指令可讓您追蹤寫入任何日誌檔案的輸出。假設您的 Samba 共享出現問題,並且想要即時查看發生的情況。您要做的第一件事是找出要讀取的日誌檔案。在這種情況下,您可以發出命令:
ls /var/log/samba在該資料夾中,您將找到許多日誌檔案(針對 Samba 伺服器和連接到共用的任何/所有電腦)。假設我想查看 Samba 守護程式日誌的內容。為此,我將發出命令:
tail -f /var/log/samba/log.smbd
當錯誤發生時,它們將被印在終端中。正如您所看到的,我的 smb.conf 檔案中有一個未知參數,名為共用模式。我可以打開該文件,刪除參數,重新啟動 Samba,錯誤就消失了。
Tail 是即時查看寫入日誌的資訊的好方法。
請記住,要退出 tail 命令,您必須使用 Ctrl+c 鍵盤組合。
<h2>3. ps對我來說,ps是通往其他指令的門戶。 ps命令顯示任何給定當前進程的快照。您可以使用ps列出每個正在運行的進程,或將其提供給grep以僅列出特定進程。
但它有什麼用呢?
假設您有一個應用程式已崩潰並且無法關閉。您點擊視窗右上角(或左上角)的小 X,但它不會消失。您需要做的第一件事是找到該進程的 PID,以便解決問題。這就是ps派上用場的地方。但ps本身並沒有太大幫助。為什麼?如果您只是執行ps,它只會列出與您正在使用的終端機關聯的進程。相反,您需要使用一些特定選項,它們是:
ps aux- a - 所有進程
- u - 執行ps的使用者擁有的程序
- x - 列印尚未從終端啟動的應用程式
ps 命令對於尋找可能未按其應有行為的應用程式的資訊至關重要。
該命令列印大量訊息,所有資訊都按列顯示。您將看到幾列,但您需要注意的是 PID 和 COMMAND。透過這兩列中的信息,您可以找到導致問題的進程 ID。一旦找到該進程,就可以殺死它。
如果 ps aux 的輸出過多,您可以將該輸出透過管道傳輸到 grep 並僅列出某些進程。假設 LibreOffice 給您帶來了問題。您可以只列出與 LibreOffice 關聯的進程,如下所示:
ps aux | grep libreoffice<h2>4. killkill 指令非常強大。當您有一個頑固的應用程式已崩潰且無法關閉(或未崩潰但消耗過多內存)時,kill 命令將強制該應用程式關閉。
但要使用kill命令,您必須先獲得相關應用程式的PID(您可以使用ps aux命令找到該應用程式)。假設一個任性的 LibreOffice 應用程式的 PID 是 604187。
kill 604187該應用程式應該關閉,您就可以開始了。
<h2>5. systemctlsystemctl 命令不僅適合啟動和停止應用程序,還可以幫助您排除故障。假設 Samba 沒有按預期工作。發出命令:
systemctl status smbd上面的命令將列出服務是否正在運行、其 PID、關聯任務的數量、使用的記憶體和 CPU 數量以及所屬的 CGroup。更好的是,如果該過程出現任何問題,systemctl將為您提供進一步解決問題所需的資訊(通常在journalctl的幫助下)。
就這樣,你就有了。這五個指令將作為您進行 Linux 故障排除的一個很好的起點。是的,還有很多可用的工具,但對於剛開始使用 Linux 的人來說,您可能想先了解這些命令。



