環境變量、全局變量、位置變量、重定向
設置變量的作用範圍
格式1:export 變量名 ...
格式2: export 變量名=變量值 ... —— 兩種格式可以混合使用
export 查看全局變量
更改環境變量 PATH
[[email protected] ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
在/etc/procfile 中添加需要更改添加的PATH
Export PATH=/root/yj:$PATH
重啟電腦 shutdown -r now
檢查PATH狀態是否添加成功
echo $PATH
若添加成功,你的shell就可以直接拿指令,當命令來使!
修改登錄後名稱:liu
需要修改 修改/etc/sysconfig/network 重新啟動網卡
查看全局變量
set命令可以查看所有的Shell變量,其中包括全局變量(是由父進程繼承給子進程)
env命令只查看全局變量
環境變量:
由系統提前創建,用來設置用戶的工作環境
配置文件: /etc/profile、~/.bash_profile
常見的環境變量:
PWD、PATH
USER(用戶名) 、
LOGNAME(用戶名)、
UID(用戶的ID)、
PPID(父進程ID)、
SHELL(當前默認使用的shell)、
HOME(用戶家目錄)
PS1(指定[[email protected] ~]#)、$PS2(命令行的續行符號)
位置變量
表示為 $n,n為1~9之間的數字
大於9的位置參數要用{},例如${10}
預定義變量
$#:命令行中位置變量的個數;
$*:所有位置變量的內容(較少使用);
[email protected]:所有位置變量的內容;
$0:當前執行的進程/程序名;
$$ :當前shell的PID
$?:上一條命令執行後返回的狀態;
//命令狀態返回值,不是標準輸出的,是用來判斷命令是否執行成功的。。
//如果命令狀態返回值是0,說明命令執行成功;如果非0,說明執行出錯或異常。
//通過$?可以獲取狀態值(獲取得是上一條命令的狀態值)。
參數處理 |
說明 |
$# |
傳遞到腳本的參數個數 |
$* |
以一個單字符串顯示所有向腳本傳遞的參數。 如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。 |
$$ |
腳本運行的當前進程ID號 |
$! |
後臺運行的最後一個進程的ID號 |
[email protected] |
與$*相同,但是使用時加引號,並在引號中返回每個參數。 如"[email protected]"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。 |
$- |
顯示Shell使用的當前選項,與set命令功能相同。 |
$? |
顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。 |
$RANDOM |
隨機數,可以作為臨時文件名; 隨機數範圍 0-32767 |
返回值判斷
有條件運行多個命令
cmd1 && cmd2 //cmd1成功了(返回值為0)才會運行cmd2
cmd1 || cmd2 //cmd1失敗了(返回值為非0)才會運行cmd2
UNIX時間戳:
UNIX時間戳從1970-1-1 0:0:0 到某個時間點的秒數
[[email protected] ~]# date +%s
1547214687
Bash的重定向操作
改變標準輸入、標準輸出、標準錯誤的方向
類型 |
操作符 |
用途 |
重定向標準輸入 |
< |
將命令中接收輸入的途徑由默認的鍵盤更改為指定的文件 |
重定向標準輸出 |
> |
將命令的執行結果輸出到指定的文件中,而不是直接顯示在屏幕上 |
>> |
將命令執行的結果追加輸出到指定文件 |
|
重定向標準錯誤 |
2> |
清空指定文件的內容,並將標準錯誤信息保存到該文件中 |
2>> |
將標準錯誤信息追加輸出到指定的文件中 |
|
重定向標準輸出和 標準錯誤 |
&> |
將標準輸出、標準錯誤的內容全部保存到指定的文件中,而不是直接顯示在屏幕上 |
&>> |
Bash4.0以上才支持,rhel5不支持 |
|
Here Document |
<< |
命令序列傳遞到一個交互程序或者命令中 |
命令 |
說明 |
command > file |
將輸出重定向到 file。 |
command < file |
將輸入重定向到 file。 |
command >> file |
將輸出以追加的方式重定向到 file。 |
n > file |
將文件描述符為 n 的文件重定向到 file。 |
n >> file |
將文件描述符為 n 的文件以追加的方式重定向到 file。 |
n >& m |
將輸出文件 m 和 n 合並。 |
n <& m |
將輸入文件 m 和 n 合並。 |
<< tag |
將開始標記 tag 和結束標記 tag 之間的內容作為輸入。 |
Here Documet用法: 傳遞命令序列到程序
環境變量、全局變量、位置變量、重定向