1. 程式人生 > >學習筆記第二十二節課

學習筆記第二十二節課

作業

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 輸入重定向到一個命令裏面去。
  • 技術分享圖片
  • 這裏要註意 輸入重定向只能是一個輸入到一個命令 不能是文件。
  • 技術分享圖片

學習筆記第二十二節課