學習筆記第二十二節課
阿新 • • 發佈:2018-04-21
作業shell介紹
- shell是一個命令解釋器,提供用戶和機器之間的交互。
- 用戶配置的最後一個段 就是shell
- 創建的普通的用戶 它的shell是bin bash
- 每個用戶都可以有自己的shell sentos7 的shell 是bash
- 除此之外還有 zsh ksh ,用起來和bash 很像,但是有細節上的差異。
- 倉庫裏面提供的也有zsh 和ksh的rpm包,可以去yum安裝它。
- - shell還有自己特定的語法,比如邏輯判斷等。
命令歷史
- 敲過的命令是又一個文件保存著的。
- 可以cat 看一下之前敲過的命令。
- 可以用history 查看之前的命令 最大存儲1000條。
- 是由環境變量配置的,echo $HISTSIZE
- 有時候敲命令出現1004 或者更多,是因為這些命令還沒有寫到環境變量中去。
- history -c 可以把當前內存裏面的歷史清空 但是配置文件裏面的是沒有清空的。
- 敲的命令是退出終端才會保存到配置文件中去。
- HISTSIZE環境變量需要到etc/profile 當中進行修改。
- 比如覺得1000太少,可以修改為5000
- 保存退出後,再去查看還是1000 需要重啟終端或者 運行source /etc/profile 才會生效。
- history去查看,只有id號和命令, 其實也可以顯示出時間。
- HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 指定這個變量的格式。
- echo $ HISTTIMEFORMAT 格式已經更換了。
- 這個環境變量僅僅是在當前終端生效的,去從新復制個渠道去查詢是空的,也就是在另一個渠道,系統默認這個環境變量是不存在的。需要去定義它。
- 再次history 查看 就顯示時間和日期了。
- 想讓這個生效,還可以編輯etc/profile 把這個環境變量寫到下面。
- 然後 sorce一下。
- 再從新打開一個渠道,就發現已經生效了。
- 想讓記錄的命令 永久保存,不被刪除,可以給它增加一個隱藏權限 a權限。增加後只能追加不能刪除掉,用戶所有的命令都會記錄下來。但是有特殊的情況,如果沒有正常退出終端的話 會記錄不完整。
- !!兩個嘆號是上一條命令 也就是你最後輸的一條命令。
- !+數字 是重復執行 你所輸入數字的命令。
- !+字符串,就可以倒著往上數使用 最近的一次 使用 的字符串的命令。
命令補全和別名
- tab 補全 不僅可以補全命令 還可以補全文件和目錄名。
- 當文件 或者命令名 開頭一樣 後面的不一樣 需要兩次tab
- 在sentos7裏面可以補全參數 但是默認是沒有的,需要yum 安裝。
- yum install - y bash-completion
- 這個時候還是不行的 需要重啟一下才能生效。
- reboot 重啟。 然後就可以自動補全了。
- alias 別名 給命令重新起名字 比如 這個重啟網絡服務的命令很長,我們可以給他重起個名字,簡單一點。
- 取消別名的命令是unalias +別名
- alias都有哪些 可以直接alias 把這些都列出來,
- 這些alias都在哪裏 用戶家目錄下.bashrc裏面有三個, 其他的都在etc/profile.d/下。
通配符
- 之前有用過 *就是通配的意思,
- 比如當前目錄下有幾個txt文件,就可以用來把它們都列出來。也可以txt 也可以在兩邊 txt*
- 也可以在後面 比如 1* ,1開頭的不管是目錄還是文件都會列出來。
- 還有? 表示一個任意一個字符。 (bb.txt沒有列出來 因為是兩個字符)
- 還有[ ] 裏面可以寫一個範圍,比如ls【0-3】.txt 只要這個範圍內任意一個滿足方括號內的條件,就會被列出來。 也可以寫如數字 加上大寫
- 還有{} 和[ ]差不多, 但是要加個逗號。
輸入輸出重定向
- >是把前面的命令輸出 給輸入到後面的文件裏面去。
- 比如cat 1.txt>2.txt 會把1.txt刪除掉重寫。
- >> 是追加, 不會刪除之前命令的內容。
- 2> 會把這個命令產生的錯誤信息給指定輸入到一個文件裏去。
- 比如運行一個有問題的錯誤命令。他會提示沒有命令,用2> 就會把這個錯誤的命令 寫到一個文件裏, cat查看 就會看到這個錯誤命令。
- 2>> 錯誤追加重定向。 (linux的追加就是在文件裏 再後面加一些內容)
- >+2>=&> 也就是這兩個可以結合起來。可以把錯誤 正確的輸出信息 定向到一個文件裏去
- 做個實驗:
- 同樣也可以追加。
- 也可以這樣寫 比如 ls [123].txt abc.txt >1.txt 2>a.txt
- 這樣就可以分開,
- 這樣就可以把正確和錯誤區分開, 以後寫shell腳本用的比較多。
- < 輸入重定向。 可以把右邊的文件內容 輸入重定向 一個文件或者命令裏面。
- 比如把1.txt 輸入重定向到一個命令裏面去。
- 這裏要註意 輸入重定向只能是一個輸入到一個命令 不能是文件。
學習筆記第二十二節課