1. 程式人生 > >學習筆記(6)

學習筆記(6)

學習筆記

1.fgrep 不支持正則表達式搜索

2.grep abc 接受標準輸入,表示可以接受管道來對輸出進行處理

3.grep [file] file可有可無 可以沒有文件意味著接受標準輸入

Usage: grep [OPTION]... PATTERN [FILE]...

Usage: cat [OPTION]... [FILE]...

4.grep "$USER" /etc/passwd grep也可以使用變量作為pattern來查找

5.grep `whoami` /etc/passwd grep也可以使用命令替換做為pattern來查找

6.cat -n /etc/passwd | grep root 通過cat -n 的帶行號內容的輸出再進行grep搜索

7.grep -q 做是否包含判斷 -q 選項為靜默輸出,不輸出任何內容,可通過echo $?來判斷是否命令是否執行成功

8.nmap -v -sP 172.20.20.0/24 掃網段存活主機

9.grep -e 'cat' -e 'bash' /etc/passwd 多個或者關系的pattern可以使用-e 來連接

10.grep中的單詞是由數字、下劃線、字母組成的,不是通過空格分隔

11.grep -f file 中的匹配字符是或者關系 類似-e

12.通配符(pattern)是匹配文件名的內容,在有些命令使用中會有pattern的支持,正則表達式處理文本中特定的字符串(REGEXP)

13.正則表達式軟件模塊(PCRE:Perl Compatible Regular Expressions),依賴正則表達式的需要安裝該軟件包

14.單個漢字也算一個字符,所以可以通過.號來匹配

15.ls | grep ... ls管道輸出的是內容,不在是文件名,所以可以使用grep來處理

16.echo abb | grep "ax*b" 符合匹配,因為abc前的ab匹配a*b

echo abab |grep -E "(ab)*" 匹配ab組合零次或多次

17.grep -o 只顯示匹配的內容(常用),常用於取值做判斷

df |grep '/dev/sda' |grep -o " [[:digit:]]\{1,3\}%" | grep -o "[0-9]\+"|sort -nr |head -1

18.默認貪婪匹配 echo abccdd |grep "a[a-z]c" 匹配結果abcc

19.\? 出現次數為0次或1次,使用egrep(grep -E 選項可以直接使用?而不需要\來轉義)

20. .放在中括號中只是.字符不是需要匹配的單個字符,不需要\線轉譯,如:echo "1." |grep "[a-z.]\+" 匹配

21.Ctrl + k從光標處刪除至命令行尾

22.ifconfig ens33|grep -o "[0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}" |head -1

23.grep 的模式(pattern)註意要加引號,否則容易有問題

24.grep -v "^[[:space:]]*$" f1 [[:space:]]表示有tab鍵或有空格

25.grep "root\>" /etc/passwd 錨定詞尾

26.grep "\broot\b" /etc/passwd 錨定整個單詞(與grep -w 查找單詞相同)

27.grep wangwangwang |grep "\(wang\)\{3\}" 匹配整體 註意要使用轉譯字符

28.後向引用grep wangwangwangxxxxwangwangwang |grep "\(wang\)\{3\}.*\1

\1匹配的是結果,而非模式本身

29.grep "^bash.*bash$" /etc/passwd 查找出以bash開頭同時也是bash結尾的行

30.grep '^\(.*\):.*/\1$' /etc/passwd 查找首尾相同的行

31.grep "^\(a\|b\).*" /etc/passwd 查找出以a開頭或者以b開頭的行

32.echo axy |grep "\(a\|b\)xy" 查找出存在axy或者bxy的行

33.grep -o "[0-9]\+" /etc/redhat-release |head -n1 找出文本中的主版本號

34.擴展正則表達式即去掉了正則表達式中的轉義字符\,除了單詞錨定的為/<和/> 如egrep (grep -E)

35.grep -Ewo "[0-9]{2,3}" /etc/passwd 查找出文件中存在二位到三位的數字

36.grep -E = egrep

37.echo "/etc/rc.d/init.d/functions" |grep -Eo "[^/]*/?$" 取輸出內容的基名

38.vim -d file1 file2 -d選項用於比較兩個文件不同之處

39.vi編輯器 I鍵直接跳到行首,A 直接跳到行尾

40.vi 另存為 :w another file

41. !表示強制 q鍵可以直接退出,修改文件後需要q!

42.r file 讀文件, 可以r!command 讀入命令輸出

43.vi +/pattern file pattern 為正則表達式

44.%s/\(haha\)/\1er/ vim編輯器中只支持基本的正則表達式

45.%s/^UUID/#&/

46.ctrl +r 取消撤銷

47.:set ff=unix 將window文件格式的內容修改成unix文件的格式

48.vimtutor 查看vim的編輯器幫助

48.cat hellp.sh | bash 可用來遠程調用

49.curl http://192.168.30.128/hello.sh |bash 遠程調用執行

50.ls 不指定文件文件夾的情況下使用-d選項是顯示當前路徑的文件或目錄而不遞歸目錄

51.vim寄存器 3"ayy 表示復制三行到t寄存器

"ap 表示將t寄存器的內容粘貼,最多可以有26個寄存器即a-z

52.vim編輯器中使用ctrl +r 可以重做最後的撤銷更改,使用U撤銷光標落在這行後的所有的此行的更改

53.vim編輯器中使用的選擇替換使用的是基本的正則表達式,所以在使用匹配次數?和+ 號需要使用轉義字符,即 \? 和\+


學習筆記(6)