SHELL入門教程 6 環境

2021-07-04 01:17:42 字數 3796 閱讀 7707

shell入門教程(1)-shell基礎 - justkk的專欄 - 部落格頻道 - csdn.net

shell入門教程(2)-變數和引數 - justkk的專欄 - 部落格頻道 - csdn.net

shell入門教程(3)-命令編輯 - justkk的專欄 - 部落格頻道 - csdn.net

shell入門教程(4)-作業控制 - justkk的專欄 - 部落格頻道 - csdn.net

shell入門教程(5)-算術運算 - justkk的專欄 - 部落格頻道 - csdn.net

shell入門教程(6)-環境 - justkk的專欄 - 部落格頻道 - csdn.net

shell入門教程(7)-編寫指令碼 - justkk的專欄 - 部落格頻道 - csdn.net

1、登入之後

使用者登入時,

shell

在顯示命令提示符之前還有一些動作。 執行

/etc

/profile

,這是整個系統範圍的環境檔案,每個使用者登入時都會執行。

執行使用者的

.bash_profile

,位於使用者的

home

目錄下。這是使用者自己的環境檔案,用以設定一些個性化引數。

2、環境檔案

乙個特殊的環境變數,

bash_env

,定義乙個環境檔案。 每次

shell

執行乙個指令碼時,都會首先執行這個環境檔案。

簡單演示一下,其中每行前面的

#表示命令提示符。

# cat 0.sh 

檢視指令碼檔案

0.sh

的內容,簡單的輸出乙個資訊

echo "hi"

# ./0.sh 

執行並檢視輸出 hi

# export bash_env=0.sh 

定義環境檔案

# ./0.sh 

再次執行,並檢視輸出 hi

hi執行其他的任何乙個指令碼,都會首先執行環境檔案

0.sh。

3、環境變數

shell

包含很多預定義的環境變數,你可以用來定製自己的工作環境。 •

path 

命令的查詢路徑,包含冒號分隔的一組目錄列表

使用者輸入一條命令時,如果沒有明確指定命令的路徑,

shell

將依次在

path

指定的各個目錄中搜尋,直到找到對應的命令為止。

如果多個路徑下包含同名的檔案,將使用第乙個找到的命令檔案,並跳出查詢過程;

如果所有指定的路徑下都沒有找到這個命令檔案,

shell

將報錯:

command not found... •

ps1 

命令列提示符

還有其他一些常用的環境變數,不再一一枚舉。

4、shell選項

shell

有一組選項,可以調整其行為方式。 •

noglob

-- 禁止檔名稱擴充套件,預設是關閉狀態

set -o

noglob

禁止檔名稱擴充套件,萬用字元將失去其特殊含義,僅僅表示字元本身,如

$ ? *

set +o

noglob

啟用檔名稱擴充套件

選項前面使用

-表示開啟相應的功能,使用

+表示關閉對應的功能。

上面兩個命令分別等價於

set -f

與 set +f •

vi  --

使用 vi

• 檢視所有選項的當前狀態

set -o

5、別名

別名是乙個命令的另乙個等價名字,示例:

alias

aa="

ls-f"

說明: 1

、如果使用單引號,那麼別名將在每次使用時重新擴充套件,這在別名的定義包含變數時有用,如:

alias p='

ls$d'

之後變數

d 的取值將影響別名

p的執行行為。 2

、如果別名的定義以空白結尾,那麼執行時將檢查其引數是否是別名,並相應擴充套件。

alias p='echo ' h=hello   # 同時定義兩個別名,注意別名

p的字母

o後面有乙個空格

p h  # 此時會輸出

hello •

顯示所有的別名,

alias •

刪除別名,使用

unalias

命令,如

unaliash

• 不解釋別名

引用別名時,使用單引號包含別名,

shell

將不解釋別名,僅僅作為其原始含義。如:

'p'  # 此時

shell

嘗試執行p本身

6、命令列提示符

命令列提示符也是通過預定義的環境變數定義的,常用的有

ps1與

ps2。

ps1

是主要的命令列提示符,

shell

等待使用者輸入命令時顯示

ps1的值;

ps2

是次要的命令列提示符,

shell

需要更多輸入時顯示

ps2的值,如命令續行。預設值是

>;

可以嘗試改變

ps1與

ps2看看效果。

7、子shell

下述情況將產生乙個子

shell

:使用()

包裹一組命令、執行命令替換、後台程序。 子

shell

是當前shell

轉殖的乙個副本,當前

shell

中的變數可以在子

shell

中使用,而子

shell

對變數的修改不會影響當前

shell

,示例:

a=3(echo $a; a=4)  # 子

shell

中會看到

3,並更改為4

echo $a  # 子

shell

結束,在當前

shell

中檢視,仍然是3

8、巢狀

shell 與子

shell

類似,巢狀執行乙個

shell

,在新的

shell

中的修改同樣不會影響之前的

shell。

bash  # 執行乙個新的

shell

a=4  # 修改變數

exit  # 退出新的

shell

,回到之前的

shell

echo $a  # 仍然是3

另外注意,與子

shell

有所不同,當前

shell

中的普通變數不能在新的

shell

中使用。

a=3  # 定義變數a

bash  # 執行乙個新的

shell

echo $a  # 新的

shell

中,看不到3

exit

此時需要當前

shell

匯出為環境變數

,即:

export a=3  # 當前

shell

中定義變數

a,並匯出為環境變數

重複上面的驗證過程,並檢視結果。

這個特性可以用來保留工作現場:開啟乙個新的

shell

,執行一組操作之後退出,一切煙消雲散..

Shell入門知識3 環境變數

基本語法 export 變數名 變數值 將shell變數輸出為環境變數 source 配置檔案 讓修改後的配置資訊立即生效 echo 變數名 查詢環境變數的值 快速入門 1 在 etc profile檔案中定義tomcat home環境變數 vim etc profile 在檔案末尾追加 tomca...

HTML入門教程6

總結 div 標籤定義 html 文件中的乙個分隔區塊或者乙個區域部分。div 標籤常用於組合塊級元素,以便通過 css 來對這些元素進行格式化。margin 10px 5px 15px margin 10px 5px margin 10px 屬性值值 描述auto 瀏覽器計算外邊距。length ...

nodejs入門1 環境

安裝完成後,可以從開始選單中nodejs看到,如下 點開node.js command prompt選項即可。可能第一次使用命令列的使用者會擔心環境變數問題,莫擔心,因為msi會把環境變數幫你配置好 ok,來開始前端程式設計的第乙個例子吧 hello world 用txt文字編寫乙個hellowor...