shell基礎知識(2)

2022-09-03 13:15:11 字數 2097 閱讀 5145

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...