bash 配置文件
按生效范圍劃分:存在兩類;
全局配置:
/etc/profile
/etc/profile.d/*.sh
個人配置;
~/. bash_profile
~/.bsahrc
按功能劃分,存在兩類;
profile類;為交互式登錄的shell提供 配置
全局:/etc/profile,/etc/profile.d/*.sh
個人:~/.bash_profile
功用:
(1)用于定義環境變量
(2)運行命令或腳本;
bashrc類;為非交互式登錄的shell提供配置
全局:/etc/bashrc
個人:~/.bashrc
功用:
(1)定義命令別名
(2)定義本地變量
shell登錄;
交互式登錄:
直接通過終端輸入賬號密碼登錄;
使用“su – UserName”或”su -l UserName”切換的用戶
非交互式登錄;
su UserName
圖形界面下打開的終端
執行腳本
~/.bashrc – -> /etc/bashrc – -> /etc/profile.d/*.sh
編輯配置文件定義的新配置的生效方式;
bash中的算術運算
+,–,*,/,%,
實現算術運算;
(1)let var=算術表達式
(2)var=$(算術表達式)
(3)var=$((算術表達式))
(4)var=$(expr ar)
乘法符號有些場景中需要轉義:
bash有內建的隨機數生成器:$RANDOM
增強型賦值:
+=,-=,*=,/=,%=
let varOPERvalue
例如:let count+=1
自增,自減
let var+=1
let var++
let var-=1
let var–
條件測試
判斷需求是否滿足,需要由測試機制來實現
Note:專用的測試表達式需要由測試命令輔助完成測試過程
測試命令:
test EXPRESSION
[EXPRESSION]
[[EXPRESSION]]
Note:EXPRESSION前后必須有空白字符
bash的測試類型
數值測試
-get: 是否大于
-ge: 是否大于等于
-eq: 是否等于;
-ne: 是否不等于
-lt: 是否小于
-le: 是否小于等于;
字符串測試
==:是否等于
>: 是否大于
<: 是否小于
l=: 是否不等于;
~=:左側字符串是否能被右側的PATTERN所匹配
-z “SIRING”;測試字符串不否為空,空則為真,不空則為假;
-n”SIRING”, 測試字符串是否不空,不空則為真,空則為假;
Note:用于字符串比較時的用到的操作數都應該使用引號;
bash自定義退出狀態碼
exit [n]:自定義退出狀態碼
注意:腳本中一旦遇到exit命令,腳本會立即終止,終止退出狀態取決給于exit命令后面的數字;
注意:如果未給腳本指定退出狀態碼,整個腳本的退出狀態碼取決于腳本中執行的最后一條命令的狀態碼
let let命令Shell內建命令 let命令是bash中用于計算的工具,提供常用運算符還提供了方冪**運算符。在變量的房屋計算中不需要加上$來表示變量,如果表達式的值是非0,那么返回的狀態值是0;否則,返回的狀態值是1。
bash運算
(1)let var=算術表達式
[root@localhost ~]# num1=3 [root@localhost ~]# num2=20 [root@localhost ~]# let var=num1+num2 [root@localhost ~]# echo $var
(2)var=$(算術表達式)
[root@localhost ~]# let var=$num1+$num2 [root@localhost ~]# echo $var 23
(3)var=$((算術表達式))
[root@localhost ~]# echo $(($sum1+$sum2)) 32
(4)var=$(expr ar)
[root@localhost ~]# mu12=$(expr $num1 \* $num2) [root@localhost ~]# echo $mu12 60
增強型賦值 自增
[root@localhost ~]# echo $count 1 [root@localhost ~]# count=$[$count+1] [root@localhost ~]# echo $count 2 [root@localhost ~]# count=$[$count+1] [root@localhost ~]# echo $count 3 [root@localhost ~]# count=$[$count+1] [root@localhost ~]# echo $count 4
bash的基礎特性:
globbing:文件名通配(整體文件名匹配,而非部分)
匹配模式:元字符
*:匹配任意長度的任意字符
pa*, *pa*, *pa, *p*a*
pa, paa, passwd
?:匹配任意單個字符
pa?, ??pa, p?a, p?a?
pa, paa, passwd
[]:匹配指定范圍內的任意單個字符
有幾種特殊格式:
[a-z], [A-Z], [0-9], [a-z0-9]
[[:upper:]]:所有大寫字母
[[:lower:]]:所有小寫字母
[[:alpha:]]:所有字母
[[:digit:]]:所有數字
[[:alnum:]]:所有的字母和數字
[[:space:]]:所有空白字符
[[:punct:]]:所有標點符號
pa[0-9][0-9], 2[0-9][0-9]
[^]:匹配指定范圍外的任意單個字符
[^[:upper:]]
[^0-9]
[^[:alnum:]]
原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/75836