2009-04-16 82 views
1

當我執行上述命令時,X11打開。我很困惑。我運行過嗎?我如何確定在查看事物時不運行任何程序?我真的很討厭閱讀一個文本文件可能會執行一個程序的想法。在運行簡單的cat命令或類似的命令時,如何編寫執行程序?命令「cat/tmp/dir /:0」是做什麼的?

+0

那到底發生了什麼?你在一個文本終端,X啓動了?你爲什麼要運行這個命令? – Zifre 2009-04-16 13:37:40

+0

@Zifte:我讀過的東西:0對應於一個顯示器,X將它的文件保存在/ tmp /中。因此,測試事情真正起作用是合乎邏輯的。我正在等待閱讀一些不錯的代碼,但我只打開了一個顯示。 – 2009-04-16 13:40:47

+0

您輸入'cat/tmp /:0'了嗎?我假設最初的$是你的shell提示符? – 2009-04-16 13:50:47

回答

3

如果運行

file /tmp/:0 

你應該看到,這是不正常的「文本」文件,而是一個插座。別名ls從而

ls -F 

將有助於你的shell自動識別此類文件。

2

機:0是一個X顯示
我從來沒有見過的/ tmp(「機」在第一顯示器)/:0,但它可能是你的機器配置,使所有無法比擬的機器名稱映射到本地主機。 您還沒有執行任何操作,X服務器只會嘗試將cat發送的任何命令解釋爲X指令。這就像做一個http地址的貓

2

:0東西是一個指向X服務器的套接字。程序使用此套接字與X服務器通信(例如繪製一個窗口)。以某種方式從此插座讀取導致服務器激活。在執行此命令之前,X服務器必須已經運行。

3

這聽起來像OSX 10.5的行爲。

launchd偵聽套接字'/ tmp/launch-xxxxxx /:0'。 DISPLAY變量設置爲告訴X應用程序寫入該套接字。當X應用程序打開套接字時,launchd會自動啓動'X11.app'以嚮應用程序提供顯示。

cat'ing the socket打開它並觸發X11.app。我認爲沒有任何其他默認配置的行爲的實例。