shell整理(37) 變數理解和兩個練習題

2021-09-20 19:23:35 字數 1913 閱讀 4795

1 /etc/profile

2 ~/.bash_profile

3 ~/.bashrc

4 $path

其中,/etc/profile是全域性的環境變數,對所有使用者生效,而.bash_profile只對當前使用者啟作用。

~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.簡單說就是把指令碼路徑放在這裡面,每次使用者登入的時候都會執行這裡面的指令碼路徑中的指令碼。

~/.bashrc:該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該檔案被讀取.(每個使用者都有乙個.bashrc檔案,在使用者目錄下)

簡單說就是把指令碼路徑放在這裡面每開啟乙個shell就會執行指令碼路徑中的指令碼。

$path:決定了shell將到哪些目錄中尋找命令或程式,path的值是一系列目錄,當您執行乙個程式時,linux在這些目錄下進行搜尋編譯鏈結。

編輯你的 path 宣告,其格式為:

path=$path::::------:

你可以自己加上指定的路徑,中間用冒號隔開。環境變數更改後,在使用者下次登陸時生效,如果想立刻生效,則可執行下面的語句:$ source .bash_profile

需要注意的是,最好不要把當前路徑 「./」 放到 path 裡,這樣可能會受到意想不到的攻擊。完成後,可以通過 $ echo $path 檢視當前的搜尋路徑。這樣定製後,就可以避免頻繁的啟動位於 shell 搜尋的路徑之外的程式了。

倆課後練習題

(1)為root使用者編寫登入歡迎指令碼,報告當前主機中的程序數,已登入的使用者,根檔案系統的磁碟使用率,當從tty終端登入時,顯示的效果如下所示。

推薦步驟:

(1)新建指令碼檔案welcome.sh,用於輸出各種監控資訊。

(2)修改/root/.bash_profile檔案,呼叫welcome.sh指令碼程式。

指令碼如下:

在/root/.bash_profile中新增路徑如下:

(2)編寫start、stop、status三個指令碼程式,用來啟動、停止各種系統服務。例如,直接執行stop crond \start crond 命令即可停止、啟動crond 服務。

path變數用於設定可執行程式的預設搜尋路徑,當僅指定檔名稱來執行命令程式時,linux系統將在path變數指定的目錄範圍查詢對應的可執行檔案,如果找不到則會提示「command not found」

檢視$path 路徑

我們可以看到有/root/bin,我們把start.sh 指令碼放到/root/bin/下

start.sh指令碼內容如下:

在~/.bashrc中新增別名:

輸出結果如下:

總結:指令碼不是重要的,這篇主要想整理下這幾個重要的檔案,很有用。

環境和shell變數

1.變數結合 root localhost error msg sorry this file doet not exist user logname root localhost echo sorry this file doet not exist user root root localhos...

shell內部變數和全域性變數

一.1 var unix 全域性變數 2 func 3 13 func 執行函式 1415 echo 列印區域性變數lib的值為 f 函式內定義的變數在函式外也可以使用 16 echo var 列印全域性變數var,var的值已經被修改為 linux,函式體可以對全域性變數進行操作 結果如下 wor...

Makefile中的變數和shell變數

我們在寫makefile時 多多少少會用到shell指令碼,對於變數的在shell中的使用有一些要注意的細節。讓我們從乙個簡單的makefile來看看。注意makefile中一定要有乙個目標,且一定要有乙個終極目標,若想要有多個目標應該設立乙個偽目標。如下 all hello hello2 hell...