Linux學習-shell基礎02

smallone233發表於2018-06-25

Bash基本功能

歷史命令與補全

history [選項] [歷史命令儲存檔案]

-c  清空歷史命令    -w把快取中的歷史命令寫入歷史命令儲存檔案 ~/.bash.history

預設儲存1000條歷史命令, 也可以修改/etc/profile 這個檔案 

歷史命令的呼叫

上下箭頭        !n 直接跳到第多少條歷史命令    !!重複執行上一條命令   !字串 重複執行最後一條以字串開頭的命令


命令與檔案補全

Tab鍵可以補全,前提是隻能匹配一個命令,否則按兩下會顯示所有以當前字串開頭的命令。


命令別名

alias 別名='原命令'                    alias 直接檢視所有別名        unalias刪除別名 

定義別名注意不要跟原始的命令一樣

命令執行時順序

1,用絕對路徑或者相對路徑執行的命令

2,第二順位 執行別名

3,執行Bash的內部命令

4,執行按照$PATH環境變數定義的目錄查詢順序找到的第一個命令

這樣定義的 重啟就失效了。  讓別名永久生效  修改  /root/.bashrc 檔案


 Bash常用快捷鍵

紅色是常用的,看起來是大寫字母,其實只要ctrl 加字母就行

ctrl + A  把游標移動到命令列開頭

ctrl + E  把游標移動到命令列尾部

ctrl + C  強制終止當前命令

ctrl + L  清屏

ctrl + U 刪除或者剪下游標之前的命令,比如一個很長的命令,不想使用退格鍵一個一個的刪

ctrl + K 產出或剪下游標之後的內容

ctrl + Y 貼上ctrl + U 或 ctrl + K 的內容

ctrl + R 在歷史命令中搜尋命令

ctrl + D 退出當前終端

ctrl + Z  暫停,並放入後臺

ctrl + D 暫停螢幕輸出

ctrl + Q 恢復螢幕輸出


輸入輸出重定向

1.標準輸入輸出

鍵盤            /dev/stdin        0            標準輸入

顯示器        /dev/sdtout      1            標準輸出

顯示器        /dev/sdterr       2            標準錯誤輸出

2.輸出重定向

把輸出重新定義輸出方向,  比如本來輸出到螢幕的,然後重定向為輸出到檔案裡。

應用:比如深夜需要伺服器做一些負載大的事。是自動執行的。則需要把輸出存到檔案中 供管理員白天來看。


標準輸出重定向        命令>檔案    以覆蓋的方式,把命令的正確輸出輸出到指定的檔案或者裝置中

                                命令>>檔案   以追加的方式,。。。。

標準錯誤輸出重定向       錯誤命令 2>檔案        以覆蓋的方式。。。

                                      錯誤命令 2>>檔案 (不能有空格!!      以追加的方式。。。  

正確輸出和錯誤輸出同時儲存

                        命令 > 檔案 2>&1                 以覆蓋方式,把正確錯誤的輸出都儲存到同一個檔案

                        命令 >> 檔案 2>>&1            以追加方式,把正確錯誤的輸出都儲存到同一個檔案

                        命令 &>檔案(沒有空格!)       以覆蓋方式,把正確錯誤的輸出都儲存到同一個檔案

                        命令 &>>檔案(沒有空格!)    以追加方式,把正確錯誤的輸出都儲存到同一個檔案

                        命令>>檔案1 2>>檔案2         把正確的輸出追加到檔案1   錯誤輸出追加到檔案2

ls &>/dev/null   把命令輸出丟進黑洞,不讓它有輸出顯示   


3.輸入重定向

就是不用常用輸入作為輸入源,而是把輸入源改為檔案裡的內容 之類的23

統計命令  wc [選項] [檔名]

-c 統計位元組數        -w 統計單詞數            -l統計行數

命令格式:  命令 < 檔案


多命令順序執行

; 號   命令1; 命令2   多個命令順序執行,相互之間沒有關係

&&  命令1&&命令2    只有當命令1正確執行了 命令2才會執行

||       命令1||命令2     只有命令1不正確,命令2才會執行


dd 命令  複製特殊命令,

dd  if=輸入檔案     of=輸出檔案     bs=位元組數              count=個數

        原始檔            目標檔案        一個資料塊大小        指定輸出輸入多少個資料塊


管道符

命令1 | 命令2

命令1 的正確輸出 作為命令2的輸入


grep [選項] "搜尋內容"  檔案

-n  顯示行號

-i    忽略大小寫

-v  反向查詢

--color=auto 搜出的關鍵詞用顏色顯示


萬用字元

?    匹配一個任意字元

*     匹配0個或任意多個任意字元

[]        匹配括號中的任意一個字元

[-]        匹配括號中任意一個字元,-代表一個範圍。

[^]        邏輯非,表示匹配不是括號內的一個字元  例如[^0-9]  匹配一個不是數字的字元


特殊符號

''    單引號,單引號中所有特殊符號都沒有特殊含義了

""   雙引號,在雙引號中特殊符號沒含義,但是$ 、 `   和  \  是例外,擁有呼叫變數的值、引用命令和轉義父的特殊含義

``    反引號,反引號括起來的內容是系統命令,在Bash中會先執行它。

                    和$()作用狗一樣,不過建議用$(),因為反引號很容易看錯

$()    和反引號作用一樣    用來引用系統命令

#    在shell指令碼中,#開頭的行代表註釋

$    用於呼叫變數的值,入需要呼叫變數name的值,需要用$name

\    轉義符號,在\之後的符號會實區其本身意思














相關文章