標籤:grep
4.1.1、chmod 修改所有者許可權(-u(屬主)、-g(屬組)、-o(其他)、-a(所有)),--reference參考指定檔案許可權賦值給需要修改檔案,舉例:chmod --reference=/etc/inittab /tmp/123.txt ,-R(遞迴修改目錄下所有檔案許可權)。chown user:group可以同時修改屬主和屬組、umask使用者建立預設許可權值(目錄為777-umask、檔案666-umask(檔案許可權減去umask若有執行許可權將會在對應的許可權上加1))
4.1.2、Ctrl+a:跳轉至命令列首、Ctrl+e:跳轉至命令列尾、Crtl+u:刪除游標處至行首內容、Crtl+k:刪除游標處至行尾內容、Crtl+l:清屏、Crtl+c:終止、Crtl+z:把命令送至後台運行。
4.2.1、過程式程式設計語言控制語句(順序執行、選擇執行、迴圈執行),指令碼:人機互動介面提供的控制機制,將希望執行的命令羅列在檔案中一起執行。bash沒有庫,整個程式都依賴於命令完成。編譯型(來源程式->預先處理->編譯->彙編->連結)也稱為靜態語言,解釋型(來源程式->解譯器去讀取執行)也稱為動態語言。編譯型程式產生為二進位程式後無需依靠編譯器可單獨運行,解釋型無法脫離解譯器獨立運行。
4.2.2、bash變數:本地變數(只對當前shell進程有效,其他shell和子shell進程無效)、環境變數(當前shell和子shell進程有效,其他 shell進程無效,export name)、局部變數(對某shell指令碼程式碼片段有效)、位置變數、特殊變數:有特殊意義的變數($?)。
4.2.3、變數賦值:向變數空間儲存資料name=value。變數引用:讀取變數空間資料echo ${name}。撤銷變數:unset name。唯讀變數:readonly name(當設定為唯讀變數後變數值將不能修改和撤銷)。查看當前shell進程中所有變數:set,查看當前shell中環境變數:export、printenv、env
4.2.4、變數類型:整數、浮點數(單精確度和雙精確度)、字元型(char、string)。定義不同變數類型所儲存機制不同:例如(18儲存整數為00010010,儲存為字元是分別把1和8轉換成ASCII進行儲存)。bash是弱類型:儲存變數方式一切皆字元
4.2.5、bash設定檔:profile類:為互動式登入使用者提供配置(全域:/etc/profile和/etc/profile.d/*.sh、個人:~/.bash_profile、),bashrc類:為非互動式使用者提供配置(全域:/etc/bashrc、個人:~/.bashrc)
4.2.6、登入類型:互動式(1.通過終端使用帳號密碼進行登入的,2.通過su - username登入的),非互動式(1.通過su userename登入,2.圖形下開啟的終端,3.自動執行指令碼時)。修改設定檔生效方式:退出重新登入或用source重讀設定檔。互動式讀取設定檔的順序(/etc/profile、/etc/profile/*.sh、~/.bash_profile、~/.bashrc、/etc/bashrc),非互動式(~/bashrc、/etc/bashrc、/etc/profile/*.sh)
4.3.1、grep(Global search REgular expression and Print out the line),根據使用者指定模式逐行搜尋:grep --color=auto ‘root‘ /etc/passwd、-v反向顯示、-o不顯示匹配行只顯示匹配到的內容、-i忽略大小寫、-E支援擴充Regex、-An、-Bn、-Cn顯示前後n行
4.3.2、Regex元字元:(.任意單個字元、[]指定範圍內的任意單個字元、[^]取反範圍外的任意單個字元、*前一字元出現的任意長度,\?前一字元出現的0次或1次、\{m\}前一字元出現指定次數)、\{m,n\}前一字元出現最少m次,最多n次、.*任意長度任一字元、^行首錨定、$行尾錨定、^$表示空白行、不包含特殊字元的單詞錨定(\<詞首錨定、\>詞尾錨定、)、分組符號\(\)。\n引用第n個匹配的內容。
4.4.1、egrep無需寫轉譯符如:?{}()詞首和詞尾錨定還是需要轉譯符(\<、\>),多了+:表示前一字元至少出現一次,| 或
馬哥教育第四天檔案許可權、bash、grep、egrep