Shell程式設計 shell特性

2021-07-28 09:44:12 字數 2254 閱讀 9675

linux會預設記錄1000條歷史記錄,可通過#echo $histsize 檢視,如果講histsize更改為2000,那麼會預設儲存2000條。1000條記錄儲存在家目錄的 .bash_history 中,僅當使用者正常退出當前shell時,當前shell中執行的命令才會儲存到 .bash_history 檔案中,如果刪除家目錄下的.bash_history,會吧所有使用者的歷史命令記錄刪除。

#history 【檢視當前歷史命令記錄,記錄會實時跟新】

#history -c 【清除當前使用者在當前終端所有執行的命令】

#!! 【執行上一條指令】

#!n 【n表示命令歷史中第n條指令】

#!字串 【字串大於等於1,!pw表示執行命令歷史中最近一次以「pw」開頭的命令】

#last 【檢視歷史登入資訊,history檢視歷史命令資訊】

tab 會補全檔名、路徑、指令

連續兩次 tab ,會把所有命令或者檔案名列出來

[root@thinkpad ~]# init 連按兩次tab

init initctl

alias 別名

#alias 【列出所有預設alias】

alias cp='cp -i'

alias mv='mv -i'

語法:alias [別名]=['具體命令']

unalias [別名] 【解除別名】

萬用字元

* 萬用字元,匹配乙個或者多個字元

?萬用字元,匹配乙個字元

| 管道符

把前面的命令執行的結果丟給後面的命令

#cat /etc/passwd |wc -l 【wc -l 的意思是顯示當前文件的行數,需要反向重定向wc -l < 1.txt】

#cat /etc/passwd >> 1.txt

作業控制:

ctrl+z 暫停

fg 恢復暫停的命令

bg 切換至後台執行

ctrl+c 終止

示例:# vi 1.txt

輸入內容sadsfdfadfadfafdasdf

按 esc ,使用ctrl+z 暫停

#vi 1.txt

[1]+ stopped vi 1.txt 【vi命令已經停止】

使用 fg 命令恢復,回到bi視窗。

再次暫停,

#jobs 【檢視被暫停或者後台執行的任務】

[1]+ stopped vi 1.txt

#bg 【暫停的命令去後台執行】

[1]+ vi 1.txt &

[1]+ stopped vi 1.txt

vi命令不支援後台執行

#vmstat 1 > /tmp/1.log

^z 【暫停命令】

[2]+ stopped vmstat 1 > /tmp/1.log

#jobs

[1] - stopped vi 1.txt

[2]+ stopped vmstat 1 > /tmp/1.log +表示優先順序更高

#bg 2

[2]+ vmstat 1 > /tmp/1.log &

多個被暫停的任務會有編號,jobs可以檢視所有任務,那麼使用fg,bg的時候就需要有編號。bg2 把第二個被暫停的任務丟到後台跑起來,丟入後台需要使用在命令後加乙個&符號,中間有個空格。

如何關閉後台的命令

1、fg 編號

ctrl + c

2、關閉了當前的shell,開啟其他shell使用jobs不能顯示後台或者暫停的命令。

#ps aux |grep vmstat

root

9433 0.0 0.0 6180....................................... vmstat 1

root

9435 0.0 0.0 103308 ................................. grep vmstat 【紅色為pid號碼】

#kill 9433 【ps aux 可以找到所有程序,並顯示pid號碼,使用kill pid可以殺死程序】

#kill -p [pid] -p 強制終止

注:#vmstat 1 >/tmp/1.log & 【&的作用是放入後台,並且顯示pid號碼】

#vmstat 1 > /tmp/1.log 2>&1 &    

檢測到的狀態,正確的資訊輸入到1.log, 錯誤的資訊也輸入到1.log檔案內,&1表示前面的檔案1.log, 最後的 & 表示放到後台執行。

如果不加最後的 &會一直在前台執行,沒辦法輸入其他命令,所以一定要加上。

高階shell特性

如果歷史命令和命令補充等有用的shell特性不能工作,請看一下內容。b 1 環境變數 b bash shell 維護大量已經執行命令 多種配置引數的設定 正在操作的環境等資訊,其中很多資訊儲存在 shell 環境中,因此稱作 環境變數 environment variable 可以通過輸入 prin...

Shell學習之Shell特性 一

這個不說了,我們在輸入命令的時候,按tab鍵補全。history 歷史命令記錄 上下鍵 切換歷史命令 number 執行對應number的歷史命令 string 重新執行一遍含有string的最近的歷史命令 執行上一條命令 alias 檢視臨時別名 alias 別名 命令 定義別名 unalias ...

Shell程式設計 Shell函式

shell函式 1.將命令序列按格寫在一起 2.可方便重複使用命令序列 3.shell函式定義 function 函式名 4.呼叫函式的方法 函式名 引數1 引數2 5.shell函式應用示例 1 兩個數字求和 要求 通過sum 定義函式 兩個數求和 方法一 root localhost vim d...