《Linux Shell腳本攻略》-1小試牛刀(1)

《Linux Shell腳本攻略》讀書筆記1

  • Shell是系統用戶界面,提供用戶與內核進行交互操作的一種接口。Shell是一種命令解釋器,它解釋用戶輸入的命令并把他們送到內核
  • Bash是目前多數GNU/Linux系統默認的shell環境
  • sudo (Super user do) sudo <command><arguments>
  • shebang: #! (sharp/hash: #; bang: !)
  • 當啟動shell時,它一開始會執行一組命令來定義諸如提示文本、顏色等各類設置。這組命令來自位于用戶主目錄中的腳本文件~/.bashrc。
  • 在Bash中,每個命令或是命令序列是通過使用分號或換行符來分隔的。
  • echo是用于終端打印的基本命令:
    • echo xxx 不能打印;
    • echo 'xxx' 不能打印變量
    • echo “xxx” 不能打印特殊字符,需要轉義
  • printf 格式化輸出,需要手動添加換行,%-5s:
    • - : 左對齊
    • 5 : 輸入最小寬度
    • s : 輸出字符串
  • echo "\e[1;31m xxxx \e[0m": \e[1;31將顏色設為紅色,\e[0m將顏色重新置回。
  • 在bash中,每個變量的值都是字符串
  • 在一些特殊的變量會被shell環境和操作系統環境用來出儲存一些特別的值,這些變量就被稱為環境變量。
    cat /proc/$PID/environ
  • pgrep命令獲得進程id:
    pgrep gedit # 獲取gegit的進程ID
  • tr(translate)命令,簡化sed工具:
    • 主要功能:①替換②刪除。
    • tr '\0' '\n' #用'\n'替換'\0'
    • tr [option] ["string1"] ["string2"] < file:
      • 默認選項 - 替換操作
      • c - 將string1字符的補集替換為string2
      • d - 刪除
      • s - 重復出現,只保留一個
  • 變量賦值 var=value
    • 如果value不包含任何空白字符(例如空格),那么它就不需要使用引號進行引用,否則必須使用單引號或雙引號
    • 注意=兩遍不要留空格: val=value是賦值,val==value是相等操作
  • 環境變量是未在當前進程中定義,而從父進程中繼承而來的變量。
  • export命令用來設置環境變量。
  • PATH通常定義在/etc/environment/etc/profile~/.bashrc中。
  • ${#變量} 是變量長度
  • $SHELL or $0 是所用shell
  • UID是一個重要的環境變量,可以用來檢查當前腳本是以超級用戶還是以普通用戶的身份運行的。
  • PS1環境變量用來定制提示文本。默認的shell提示文本是在文件~/.bashrc中的某一行。
  • chsh -s /bin/zsh #修改SHELL
  • eval 首先掃描名兩行進行所有的置換,然后再執行該命令。
    prepend() { [ -d "$2" ] && eval $1=\"$2$\{$1:+':'\$$1\}\" && export $1 ; }
    其中,${parameter:+expression} 如果parameter有值且不為空,則使用expression的值
  • 反引號``和$()功能相似。解釋命令行,開子shell執行命令,然后用結果替換。反引號以及其中的命令。
  • 在Bash shell環境中,可以要利用let、(( ))和[ ]執行基本的算術操作,在進行高級操作時,expr和bc這兩個工具也會非常有用。
  • bc是一個用于數學運算的高級工具。
    • echo "scale=2;3/8" | bc #0.37 scale設定小數精度
    • echo "obase=2;$no"| bc obase結果進制為2進制
    • echo "obase=10;ibase=2;$no | bc"將2進制數轉化為十進制
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容