目前,我正在學習一些UNIX指令,遇到了一些無法解釋的問題。感謝您的回答。
w
當我從終端機運行命令時,我收到了一些訊息,如下圖所示。我知道s000
代表我輸入命令的終端w
。但我對 tty 感到困惑,它的名字是console
,它說我透過它登入系統。據說console
已經閒置了一段時間了。我可以切換到console
啟動這個tty以使其不再空閒嗎?我還做了另一個實驗,試圖啟動正在登入的來賓用戶
console
。如何在不重新啟動電腦的情況下完全關閉來賓?我不能殺了console
。這個問題的根源與第一個問題幾乎相同:「控制台」代表什麼?它絕對不代表我輸入命令的終端w
。這個問題也出現在Linux系統上,例如Ubuntu 14.04,後者以
console
數字命名,例如0
或1
。我想知道 tty 列中的 0 或 1 是什麼意思。但我可以肯定它們與 具有相似的含義console
。
答案1
我不熟悉 macOS,但我認為這些概念與 Linux 中的概念非常相似。這有點過於簡單化,但基本上,在這種情況下,「控制台」指的是整台電腦。或者,更具體地說,是顯示器和人工輸入設備(鍵盤、指點設備等)(網路登入不包括在「控制台」中。)
當您登入電腦(本機,而不是透過網路)時,您正在登入控制台。
現在您顯然已經熟悉終端 - 您可以在其中運行命令的窗口,例如ls
和w
。當您登入控制台時,它會自動執行一個命令(或一組命令),為您提供您習慣的視窗介面。有些作業系統使發生這種情況的機制可見,有時甚至是可調整的;其他人則完全是在“幕後”完成的。
由於控制台除了視窗系統本身之外不運行任何命令,因此它看起來是空閒的。在大多數作業系統上(我預計 macOS 就是其中之一),切換到控制台的唯一方法就是退出視窗系統 - 但這會返回到控制台,然後控制台會自動將您登出。
還有另一個問題:
- 該
w
命令讀取系統文件,將資料格式化以便人們查看,然後將其寫入標準輸出。 - 每當有人在控制台或透過網路登入時,就會將一個條目寫入該檔案。當控制台上的使用者啟動新的終端機視窗時,某些(大多數?所有?)系統也會寫入一個條目。
- 當使用者登出或關閉終端機視窗時,條目通常會被刪除。
- 上述項目符號中的關鍵字是「正常」。在某些情況下,如果您終止一個程序(特別是如果您以超級使用者身分執行此操作),則可能會幹擾擦除舊資料的機制。因此,
w
可能會報告不再有效的資訊。
如果你不知道如何使用ps
,你應該學習。你可以使用它反而的w
,但最好一起使用它們。用於w
為您提供在輸出中查找內容的路線圖ps
。不要盲目相信一切w
告訴你的事;只相信您可以驗證的資訊ps
。例如,如果您已終止所有「來賓」進程,但w
仍顯示「來賓」已登錄,則可能會向您提供陳舊的無效資訊。
你可能會發現shell、控制台和終端有什麼不同? 和 「終端」、「shell」、「tty」和「控制台」之間的確切差異是什麼? 值得一讀。