SHELL訓練營--day1
阿新 • • 發佈:2018-12-18
shell 介紹
- shell是一個殼,是基於核心提供的一個使用者介面,用來解釋使用者輸入資訊及執行和反饋使用者相關命令。
- shell 具有自己的邏輯和判斷處理方法,支援特定語法
- 使用者的shell設定: /etc/passwd 使用者登入shell設定。centos預設是bash.另外其它shell有zsh,ksh,tcsh等。
命令歷史
-
使用者輸入命令,預設會儲存若干條。
- 可通過shell中上下鍵進行查詢或重複執行命令。
- 可通過快捷鍵 ctrl+R 進行查詢歷史命令。
-
也可通過
!
+命令的前些字元或是!
+命令所在記錄的編號 進行執行命令。``` shell #如 最近 執行的 ls -la /tmp 檢視 /tmp 目錄 檔案。可通過下面方法執行 !ls #假如上條 ls -la /tmp 命令在命令歷史中 編號是 888 那麼可通過下面命令執行 !888 ```
- 最近的一條命令相關資訊:
#執行最近命令 !! #檢視上條命令執行結果 echo $?
- 使用者預設的歷史命令儲存在家目錄下
~/ .bash_history
檔案。 - 預設歷史命令可存 1000條,通過 環境變數
$HISTSIZE
控制儲存條數。 - 當前登入使用者在沒有退出前,預設輸入的命令會儲存在記憶體中,在退出時會寫入該檔案中。
- 清空當前使用者 記憶體中儲存 的歷史命令:
history -c
- 系統設定 history 命令條數檔案:
/etc/profile
可通過重宣告來修改。如:export HISTSIZE=5000
- 預設系統是隻保留相關的命令,沒有命令執行時間 。可通過修改 環境變數儲存格式來儲存相關資訊:
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
。也可儲存在 profile 檔案中。 - 使用者歷史命令儲存禁止刪除,可通過對儲存檔案
.history
新增隱藏追加許可權. 如:chattr +a ~/.bash_history
命令補全和別名
- 為幫助使用者減少輸入和提醒使用者命令的全名和命令的引數,linux中提供命令補全,預設是TAB鍵。
- 在centos6中只支援命令補全,centos7新增引數補全。相關的包是:
yum install -y bash-completion
。安裝後,需重啟伺服器。 - 另外,有些命令和引數比較多,又比較常用,為幫助使用者減少重複輸入,引入別名。將長命令重命令以簡短不重複的單詞。
- 檢視系統預設別名:
alias
- 設定命令別名:
alias xxx="命令"
。如常用 的ll命令:alias ll='ls -l --color=auto'
- 取消別名設定:
unalias xxx
- 預設全域性別名設定:
/etc/.bashrc
和 目錄/etc/profile.d/
下指令碼檔案。個人設定別名存放於使用者家目錄下:~/.bashrc
萬用字元
- 除命令補全外,linux對命令的物件也引入幫助機制--萬用字元。
- 常見萬用字元如下:
星號
*
:可匹配所有的字元,不限個數,如命令:ls 1*
,可匹配1.txt,133.sh
問號?
:可匹配所有字元,只匹配一個。
單個字元範圍:[123],[1-3],[abc],[a-z]等。
單個字元範圍另種表示方法:{1,2,a,3,6}等。
輸入輸出重定向
- 某些命令輸入輸出比較多時,或是輸出資訊需要儲存時,linux引入了輸入輸出重定向符號。
- 重定向包含兩種型別:重定向和追加重定向。
- 輸入重定向:
<
常用來表示輸入檔案內容。 - 輸入追加重定向:
<<
後需跟終止符 如"EOF" 。表示後續輸入資訊都是輸入的內容,直到遇見終止 符後。wc -l << EOF #此處回車 hello world good EOF
- 輸出重定向:
>
。輸出追加重定向:>>
- 輸出重定向表示:命令輸出的資訊 儲存在後面跟隨的檔案中,如果原檔案有內容,那麼之前資訊會刪除掉。
- 輸出追加重定向:原檔案內容不變,將當前命令的輸出資訊追加到該檔案中。
- 一般命令輸出分為兩類:正確輸出和錯誤輸出。檔案描述符是1和2。可通過指定檔案描述符輸出追加重定向來指定命令輸出 的儲存位置。
如:cat 1.txt > ~/2.txt
cat 3.txt 1&2 >> ~/2.txt
cat 4.txt &>> ~/2.txt
cat 6.txt 1>>~/2.txt 2>1