8.6管道符、作業控制
sleep 100 暫停100秒
sleep 100& 直接放在後台暫停
8.7shell變數(上)
env系統內建變數
set不僅可以顯示系統預設的變數,也可以連同使用者自定義的變數顯示出來
a=111
echo $a 顯示為111
在linux下設定自定義變數有哪些規則
設定變數的格式為 「a=b」, 其中a為變數名,b為變數的內容,等號兩邊不能有空格;
變數名只能由英、數字以及下劃線組成,而且不能以數字開頭;
當變數內容帶有特殊字元(如空格)時,需要加上單引號;
單引號不解析,是啥還是啥(有空格啥的也帶)
雙引號裡面的變數就給解析了(本身有單引號就用雙引號)
反引號裡面加命令,不加變數
[root@localhost ~]# myname='aming li'
[root@localhost ~]# echo $myname aming li
有一種情況,需要你注意,就是變數內容中本身帶有單引號,這就需要用到雙引號了。
[root@localhost ~]# myname="aming's" [root@localhost ~]# echo $myname aming's
如果變數內容中需要用到其他命令執行結果則可以使用反引號;
[root@localhost ~]# myname=`pwd` [root@localhost ~]# echo $myname /root
變數內容可以累加其他變數的內容,需要加雙引號;
[root@localhost ~]# myname="$logname"aming [root@localhost ~]# echo $myname rootaming
在這裡如果你不小心把雙引號加錯為單引號,將得不到你想要的結果
[root@localhost ~]# myname='$logname'aming [root@localhost ~]# echo $myname $lognameaming
8.8shell變數(下)
w後看在哪個bash下,使用echo $ssh_tty檢視
pstree 這個指令會把linux系統中所有程序通過樹形結構列印出來。exit退出當前shell終端。(可以看所有使用者)
export其實就是宣告一下這個變數的意思,讓該shell的子shell也知道變數abc的值是123.如果export後面不加任何變數名,則它會宣告所有的變數。export不能在別的機器上顯示變數
unset 後跟變數名 取消變數
bash 命令,如果在當前shell中執行bash,則會進入乙個新的shell,這個shell就是原來shell的子shell了。使用 bash 命令即可再開啟乙個shell,此時先前設定的 「aa=666」 變數已經不存在了,退出當前shell回到原來的shell, 「aa=666」 變數還在,這時候export aa=666,他的子shell就有了,那要想設定的變數一直生效怎麼辦?有兩種情況:
1) 要想系統內所有使用者登入後都能使用該變數
需要在 「/etc/profile」 檔案最末行加入 export aa=666然後執行 source /etc/profile 就可以生效了。此時再執行bash命令或者直接 su - test 賬戶可以看到效果。
2)只想讓當前使用者使用該變數
需要在使用者主目錄下的 .bashrc 檔案最後一行加入 export aa=666 然後執行 source .bashrc 就可以生效了,這時候再登入quyifan賬戶,aa=666變數則不會生效了。
8.9 環境變數配置檔案
/etc/profile /etc/bashrc
~/.bashrc ~/.bash_profile ~/.bash_history
~/.bash_logout 定義退出時需要做的操作,比如刪除歷史命令history
ps1 -> /etc/bashrc 就是左邊名字這些東西
ps1='[\u@\h \w\]\$ ' -> ps1='[\u@\h \w]\$ '
-> ps1='\$ '
在這裡多寫了乙個\才一直出現錯誤哈哈
擴充套件bashrc和bash_profile的區別
SHELL 基礎知識
1 什麼是shell?shell的本意是 殼 的意思,其實已經很形象地說明了shell在linux系統中的作用。shell就是圍繞在linux核心之外的乙個 殼 程式,使用者在作業系統上完成的所有任務都是通過shell與linux系 統核心的互動來實現的。shell本身是乙個c語言編寫的程式,是使用...
shell 基礎知識
預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...
shell 基礎知識
預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...