2009-07-13 19 views
2

我是Linux環境編程的新手,所以我不完全知道要爲自己回答這個問題而搜索什麼。我需要了解應用程序如何設置shell以接受某個命令來啓動它們。例如,您可以通過執行命令firefox從命令行啓動Firefox。設置bash命令行變量來啓動我的應用程序

我不知道這是在哪裏定義的。 Makefile文件?配置腳本?在源代碼本身?

任何資源/閱讀Linux編程這些小技巧將不勝感激!

謝謝。

回答

5

Firefox是由命令「firefox」啓動的,因爲在$ PATH環境變量中的一個文件夾中有一個名爲「firefox」的可執行文件。

2

你說的是PATH變量嗎?看起來像你。在linux下,你應該能夠輸入:「echo $ PATH」(不含引號),並得到一個「:」 - 程序所在位置的分隔列表(如firefox)。

如果你需要的東西添加到您的路徑,你應該能夠做到:

export PATH=$PATH:/another/directory 

在你的shell(這是最有可能的bash)

您也可以鍵入:

which firefox 

顯示Firefox可執行文件的位置。

2

通常,shell將會有一個名爲$ PATH set的環境變量。這只是有人在命令中鍵入的所有目錄的有序列表。只要它找到一個可執行文件(我的意思是一個你有執行權限的文件,而不是一個以.exe結尾的文件),它的名稱與輸入的文件名稱相同,它將運行該文件。在$ PATH中的公共目錄可能是/ bin,/ usr/local/bin,〜/ bin等。

因此,當您鍵入'firefox'時,shell會查看$ PATH中的所有目錄,直到找到/ usr/local/bin/firefox,然後運行。要使自己的程序以相同的方式運行,您需要將它們(或它們的符號鏈接)放在可能位於每個用戶路徑中的目錄中(/ usr/local/bin /是個不錯的選擇),或者你需要讓你的用戶把你的程序的目錄添加到他們的$ PATH中。

有關更完整的說明,請參閱關於$ PATH變量的Wikipedia article

0

作爲前面提到的修改$ PATH的替代方法,您還可以將您的可執行文件複製或鏈接到您的$ PATH中的其中一個目錄中。更具體地說,大多數UNIX系統上都提供了/usr/local/bin/以用於此目的(在操作系統的默認包管理之外安裝軟件)。

0

它是在路徑中每個人所提到的,但您可能還需要讓它可執行文件是這樣的:

chmod +x /path/to/file 

如果這是一個腳本,通常有在頂部,一個家當告訴操作系統用什麼來執行它:

#! /usr/bin/python 
0

通常情況下,大的軟件包安裝在/opt與包裝腳本或鏈接某處PATH。例如,我的系統上,Google Picasa安裝在/opt/google/picasa並沒有在/usr/bin/picasa一個符號鏈接/opt/google/picasa/3.0/picasa

Firefox/usr/bin/firefox我的系統上,這是一個符號鏈接/usr/bin/firefox-3.0這本身就是一個符號鏈接/usr/lib/firefox-3.0.11/firefox.sh - 那shell文件摸索直到它終於運行/usr/lib/firefox-3.0.11/firefox(除非它找到了做其他事情的理由)。最後,這是一個二進制可執行文件。所以/usr/lib是安裝firefox,對我來說。

您可以使用此命令來找出一個方案是:

type -a firefox 

然後,你可以找出什麼樣的文件,它是用這樣的:

file /usr/bin/firefox 

另見Filesystem Heirarchy Standard有關文件和程序推薦位置的更多信息。

相關問題