SHELL:
在計算機科學中,Shell俗稱殼(用來區別於核),是指“提供使用者使用界面”的軟件(命令解析器)。它類似於DOS下的command和后來的cmd.exe。它接收用戶命令,然后調用相應的應用程序。
同時它又是一種程序設計語言。作為命令語言,它交互式解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作為程序設計語言,它定義了各種變量和參數,並提供了許多在高級語言中才具有的控制結構,包括循環和分支。
SHELL在執行命令時,會到環境變量中設置的路徑中查找相應的程序來執行。
Linux中環境變量包括系統級和用戶級,系統級的環境變量是每個登錄到系統的用戶都要讀取的系統變量,而用戶級的環境變量則是該用戶使用系統時加載的環境變量。
所以管理環境變量的文件也分為系統級和用戶級的,下面貼一個網上找到的講的比較明白的文件介紹(略作修改)[1]:
1.系統級:
(1)/etc/profile:該文件是用戶登錄時,操作系統定制用戶環境時使用的第一個文件,應用於登錄到系統的每一個用戶。該文件一般是調用/etc/bash.bashrc文件。
/etc/bash.bashrc:系統級的bashrc文件。
(2)/etc/environment:在登錄時操作系統使用的第二個文件,系統在讀取你自己的profile前,設置環境文件的環境變量。
2.用戶級(這些文件處於家目錄下):
(1)~/.profile:每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件。這里是推薦放置個人設置的地方
(2)~/.bashrc:該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取。不推薦放到這兒,因為每開一個shell,這個文件會讀取一次,效率肯定有影響。
~/.bash_profile or ~./bash_login
用法:有些程序我們希望在任何路徑下使用,而每次都要輸入絕對路徑很麻煩,所以可以在環境變量中添加一個目錄,然后把要運行的程序放到這個目錄中。
如:實現一個在任何目錄,輸入FTP + filename 就可以得到ftp的地址。
在~/.bash_profile 加入:
PATH=$PATH:$HOME/bin
然后再$HOME/bin 目錄下編寫腳本
vi FTP
#!/bin/bash file=$1 host=$(hostname) file_real_path=$(readlink -f .) echo "ftp://$host:$file_real_path/$file"
chmod +x FTP
然后在任何位置輸入FTP + filename就可以得到ftp地址,不用手動去拼了。