Linux第六天筆記(markdown格式)

文本處理三劍客

grep:grep,egrep,fgrep

pattern:模式,類型

sed

awk

通用技術:正則表達式

blank和space的區別:

  `[:blank:]' Blank characters: space and tab.
  ?
  [:space:]'
   ? ? ? Space characters: in theC' locale, this is tab, newline, vertical tab, form feed, carriage return, and space.

grep

  
  grep -q 
  不做任何顯示,但會有一個返回的結果,叫$?
  grep -nA3 root /etc/passwd
  root后面的后3行
  grep -nB3 root /etc/passwd
  ?
  grep -nC3 root /etc/passwd
  既包含前3行,也包含后3行
  _不算單詞的分隔符,-算單詞的分隔符

Perl非常擅長做正則表達式

元字符分類:字符匹配,匹配次數,位置錨定,分組

man 7 regex

  
  echo abc | grep a.c //.表示一個字符 

轉義:加轉義符之后,表示字符原來的含義

  
  echo abcdef | grep "a" 
  echo abcdef | grep "a[xyz]c" 

x*表示 *前面的x出現的次數是不確定的

.*表示任意長度的任意字符串

遇到正則表達式寫法最好加上雙引號

*貪婪

+貪婪

\?懶惰模式

在[]里面寫.表示.本身,不需要轉義符

不懂!

  
  [a-z.]

正則表達式匹配IP地址

  
  [0-9]\{1,3\}.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}

在學習的時候,方法是不斷更新和改進的

查看硬盤的利用率

  
  df | grep "/dev/sd" | grep -o "[0-9]\{1,3\}%" | grep -o "[0-9]"

行首^,寫在最前

行尾$,寫在最后

查看非注釋與非空行

  
  grep -v "^#" /etc/fstab | grep -v "^$" ?
  
  過濾空行
  grep -v "^[[:space:]]*$" f1

以root為單詞詞首開始的行

  
  grep "\<root" /etc/passwd // ? 注意 \< 

以root為單詞詞尾結束的行

  
  grep "root\>" /etc/passwd 

包含以root為單詞的行

  
  grep "\<root\>" /etc/passwd 
  grep -w "root" /etc/passwd

包含wang三次

  
  echo wangwangwang | grep "\(wang\)\{3\}"

做計算機的最忌諱的是重復

分組是重點!

  
  搜尋頭尾相同
  grep "^\(.*\):.*/\1$" /etc/passwd
取centos的版本數字
  
  cat /etc/centos-release | grep -o "[[:digit:]].*[[:digit:]]\>"

取文件或者文件夾的基名

  
  echo /etc/rc.d/init.d/ | egrep -o "[^/]*/?$"

sed一般適合大量文件

vi/vim

vim是基于模式的,有ex模式,有insert模式,還有普通/一般模式

:r 將其他文件的輸出追加到當前文件夾

點加空格表示一句

(上一句

)下一句

空行算一個段落

{上一段

}下一段

x–>p 實現了兩個字母的對調位置

J刪除當前行后的換行符

dG 刪除光標之后的所有內容

26個寄存器(a-z)

Shell編程

程序:指令+數據

程序編程風格:

  
  過程式:以指令為中心,數據服務于指令
  ?
  對象式:以數據為中心,指令服務于數據
  ?
  大工程一般是面向對象的

shell程序:提供了編程能力,解釋執行

python,java,go

低級:匯編

高級:編譯:高級語言–>編譯器–》目標代碼(Java,C#

? 解釋:高級語言–》解釋器–》機器代碼(Shell,perl,python

shell腳本就是命令的集合,按照自己的次序寫出來

編程邏輯處理方式:

1.順序執行

2.循環執行

3.選擇執行

shell編程:過程式,解釋執行

編程語言的基本結構:

各種系統命令的組合

數據存儲:變量,數組

表達式:a+b

語句:if

shell編程相對而言不是很安全,如果給用戶用,用戶只能使用二進制

給用戶用,編譯性的語言更加安全

shell,perl,python都是源碼,都是文本

shell:各種系統命令的組合

數據存儲:變量,數組

不同shell的語法是不同的

shebang機制:sharp+bang

自動化運維使用shell,建議寫成shell腳本

加bash的時候,即使這個文件沒有可執行權限,依然能夠通過bash命令執行

  
  cat hello.sh | bash
  bash hello.sh
  
  curl http://192.168.30.128/hello.sh

把一個腳本放在很多人都能夠訪問的主機上,那么這個程序就能夠很容易地被很多人調用

腳本代碼開頭約定:

1.第一行shebang,即使打字也不要使用漢字

2.程序名,避免更改文件名為無法找到正確的shell

3.版本號

4.更改后的時間

…………..

附加知識點:

SUID,SGID,STICKY和token有聯系

ACL可能和token沒有聯系

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95534

(0)
思定思定
上一篇 2018-04-08
下一篇 2018-04-08

相關推薦

欧美性久久久久