L23 shell基礎知識(一)

2021-08-09 21:50:04 字數 2996 閱讀 2423

主要內容

1 shell介紹

2 命令歷史

3 命令補全和別名

4 萬用字元

5 輸入輸出重定向

1 shell介紹

shell簡單點理解,就是系統跟計算機硬體互動時使用的中間介質,它只是系統的乙個工具。實際上,在shell和計算機硬體之間還有一層東西那就是系統核心了。打個比方,如果把計算機硬體比作乙個人的軀體,而系統核心則是人的大腦,至於shell,把它比作人的五官似乎更加貼切些。

回到計算機上來,使用者直接面對的不是計算機硬體而是shell,使用者把指令告訴shell,然後shell再傳輸給系統核心,接著核心再去支配計算機硬體去執行各種操作。

linux發布版本(redhat/centos)系統預設安裝的shell叫做bash,即bourne again shell,它是sh(bourne shell)的增強版本。bourn shell 是最早行起來的乙個shell,創始人叫steven bourne,為了紀念他所以叫做bourn shell,檢稱sh。

2 命令歷史

我們敲過的命令,linux是會有記錄的,預設可以記錄1000條歷史命令。這些命令儲存在使用者的家目錄中的.bash_history檔案中。只有當使用者正常退出當前shell時,在當前shell中執行的命令才會儲存至.bash_history檔案中。

使用命令cat /root/.bash_history檢視。

命令history –c可以清空當前linux終端的命令,但之前儲存在.bash_history中的命令不會清空。只有推出當前終端才會儲存進去本次開啟終端敲的命令。

使用vi /etc/profile可以改最大儲存命令1000到你想要的數字。

這時如果關閉當前終端再開啟就不能生效了。、

可以把這行命令寫入/etc/profile

這時執行source !$ 就永久生效了。

!! 連續兩個 '!', 表示執行上一條指令;

!n 這裡的n是數字,表示執行命令歷史中第n條指令

!字串 (字串大於等於1),例如 !pw 表示執行命令歷史中最近一次以 'pw' 為開頭的指令。

!字串 (字串大於等於1),例如 !pw 表示執行命令歷史中最近一次以 'pw' 為開頭的指令。

3 命令補全和別名

按tab鍵,補全乙個指令,也可以補全乙個路徑或者乙個檔名。連續按兩次tab鍵,系統則會把所有的指令或者檔名都列出來。

安裝yum install -y bash-completion

可以更好的補全指令

別名alias

alias的介紹,這個就是bash所特有的功能之一了。可以通過alias把乙個常用的並且很長的指令別名乙個簡潔易記的指令。如果不想用了,還可以用unalias解除別名功能。直接敲alias會看到目前系統預設的alias.

alias語法很簡單, alias [命令別名]=['具體的命令']

使用 unalias

命令別名 就可以把設定的別名給解除了。

使用vi .bashrc檢視系統alias

切換到/etc/profile.d目錄可以看到以下檔案,開啟任意乙個可以看到裡面的alias

4 萬用字元

在bash下,可以使用 * 來匹配零個或多個字元。

? 匹配乙個字元:ls ?.txt

匹配數字0-9,ls [0-9].txt

匹配任意數字,ls .txt

5 輸入輸出重定向

輸入重定向用於改變命令的輸入,輸出重定向用於改變命令的輸出。輸出重定向更為常用,它經常用於將命令的結果輸入到檔案中,而不是螢幕上。輸入重定向的命令是,以及追加重定向》

把1.txt輸入到2.txt中:cat 1.txt>2.txt

追加:cat 1.txt>>2.txt

檢視檔案的行數

L25 shell基礎知識(三)

主要內容 1 shell特殊符號cut命令 2 sort wc uniq命令 3 tee tr split命令 4 shell特殊符號 特殊符號有 任意個任意字元 任意乙個字元 注釋字元 脫意字元,將後面的特殊符號 例如 還原為普通字元。管道符,它的作用在於將符號前面命令的結果丟給符號後面的命令。這...

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