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
用法:有些程式我們希望在任何路徑下使用,而每次都要輸入絕對路徑很麻煩,所以可以在環境變數中新增乙個目錄,然後把要執行的程式放到這個目錄中。
在~/.bash_profile 加入:
path=$path:$home/bin
然後再$home/bin 目錄下編寫指令碼
vi ftp
#!/bin/bashchmod +x ftpfile=$1
host=$(hostname)
file_real_path=$(readlink -f .)
echo
"ftp://$host:$file_real_path/$file
"
然後在任何位置輸入ftp + filename就可以得到ftp位址,不用手動去拼了。
Linux Shell環境變數
shell的環境變數bash是bourne shell的gnu擴充套件,除了繼承了sh的所有特點以外,還增加了很多特性和功能。由login啟動的bash是作為乙個登入shell啟動的,它繼承了getty設定的term path等環境變數,其中path 對於普通使用者為 bin usr bin usr...
linux shell獲取環境變數運算
很多shell運算需要獲取環境變數,例如a b,其中a或者b可能都來自於環境變數。但是環境變數可能出現不存在的情況,這時運算就會出錯。所以在計算前需要判斷其是否存在 z test 更複雜的 input 1 test mode 2 if z test mode then ret 1 elif test...
Linux Shell 環境變數配置檔案
研究學習 linux shell 的系列文章.這篇文章主要以 centos 為例講環境變數的配置檔案.變數型別 環境變數在命令列中修改只能臨時生效,把它寫入配置檔案才能永久生效.path histsize ps1 hostname 等環境變數寫入對應的環境配置檔案,在登陸 shell 時自動載入生效...