1)用戶自定義變量
2)環境變量: 這種變量中主要保存的是和系統操作環境相關的數據
3)位置參數變量: 這種變量主要是用來向腳本當中傳遞參數或數據的,變量名不能自定義,變量作用是用來固定的
4)預定義變量: 是bash中已經定義好的變量,變量名不能自定義,變量作用也是固定的
名稱由數字、下劃線、字母組成,但是開頭不能用數字,如”2Name”
注意:
1)變量等號兩邊不能有空格
2)若有空格,則用 ” “” 括起來
3)用”\”轉義符,可使特殊符號失效如: “\$name”
4)如果要進行變量疊加,可用”$變量名” 或者${變量名}
5)若把命令結果作為變量值,則用反引號(不推薦) 或者\$()包名命令
6)環境變量名建議大寫
舉例:
aa=”test” echo$aa 就是輸出test
aa=123 aa=”$aa”456 輸出什麼呢?
set 變量查看命令
unset + 變量名 刪除變量命令
exprot 變量名=變量值申請變量
env 查詢變量
unset 刪除變量名
PATH: 系統查找命令路徑(系統查找命令是有默認排序和路徑)
PATH=”$PATH”:/root 變量疊加(臨時)
環境變量的PS1:
定義系統提示符的變量,也就是[主機名@……]# 那個東西
查詢顯示當前的配置命令:echo$PS1
更換的格式為:PS1=’[ …… ]$’(記得最後留個空格,更好輸入命令)
選項包括:
\d顯示日期,格式為”星期 月 日”
\h顯示簡寫主機名,如默認主機名為”localhost”
\t顯示24小時制時間,格式為”HH:MM:SS”
\T顯示12小時制時間,格式為”HH:MM:SS”
\A顯示24小時制時間,格式為”HH:MM”
\u顯示當前用戶名
\w顯示當前所在的目錄的完整名稱
\W顯示當前所在的目錄的最後一個目錄
\#執行的第幾條命令
\$提示符,如果是root用戶則會顯示”#”,如果是普通用戶則顯示”$”
位置參數一般在shell裡使用
$nn為數字,0代表命令本身,十以上參數用大括號括起來
$*代表把命令行所有參數,$*都看作一個整體
$@表示所有參數,但是每個參數區別對待
$#代表命令行、參數的個數預定義可與echo一起使用
$?判斷上一個命令,為0則為正確執行,非0則為錯誤(具體數,由命令決定)
$$當前進程號
$!後台運行最後一個進程號
declare [+/-] [選項] 變量名
- : 給變量設定類型屬性
+: 取消給變量設定類型屬性
-i 將變量聲明為整數型
-x 將變量聲明為環境變量 =>exprot
-p 顯示指定變量的被聲明類型
如:
aa=11 bb=22
dd=$(expr$aa +$bb) 注意!+號兩邊必須要有空格
常用 “$((運算)) ” 或者 “$[運算]”
如: ff=$(($aa + $bb))
運算符的優先級:
變量測試與內容替換: 測試變量內容或者是否替換,從輸出x看結果
source 配置文件和. 配置文件
上面兩種配置文件直接生效,不用重啟(注意有個點)
下面是五個默認配置文件:
/etc/profile
/etc/profile.d/*.sh(所有以.sh結尾)
/etc/bashrc
這三個對所有用戶都有效
~/.bash_profile
~/.bashrc
用戶命令下,這兩個對特定的用戶有效
注銷時生效的環境變量配置文件:
~/.bash_logout
~/.bash_history
(登陸之前)
/etc/issue (本地登錄)
/etc/issue.net (在遠程終端歡迎信息)
Ps.需在ssh配置文件/etc/ssh/sshd_config中
#Banner ………… 下,加入Banner /etc/issue.net
再重啟,service sshd restart
/etc/motd直接vim操作,可以顯示(登陸之後的提示信息)
變量這一塊確實是個難點,不僅僅很多配置文件,更是要熟記於心,加油。
http://xxxxxx/Linuxjc/1139903.html TechArticle