1. 程式人生 > >day11 grep正則匹配

day11 grep正則匹配

collect lec linux 取反 pat 至少 判斷 con set

ps aus | trep nginx     # 查看所有正在運行的nginx任務

別名路徑:
    alias test_cmd=ls -l
PATH路徑:
    臨時修改:
        PATH=$PATH:/usr/local/nginx/sbin
        export PATH
        
            將ngxin路徑放入PATH中
        每次切換用戶,都會讀取該用戶家目錄中的/home/[user]/.bashrc文件,所以,如果把命令寫到這個文件中,那麽這個用戶就可以執行它
        
    永久修改:
        /etc/bashrc    # 在這裏面修改,可以作為全局變量,只要開啟shell就會執行這個文件
        
/etc/profile # 在這裏面修改,可以作為全局變量,只要登錄就會加載這個文件 export [變量] 使[變量]可以作用於該程序的所有子程序 通配符: ; 接受過個命令,不管命令結果,依次接受 $? 取上一次命令成功的結果,如果是0表示執行成功,非0,表示執行事變 : 執行結果永遠為真 ? 表示任意一個字符 正則表達式: grep 命令 + 正則表達式: -n 顯示行號 -q 主要用來判斷這條任務有沒有成功,可用來驗證文件中是否包含內容 -l 顯示路徑
-rl 遞歸著去文件中查找子文件,並顯示文件名 -A 2 匹配行的後兩行 -B 2 匹配行的前兩行 -C 1 匹配行的前後一行 -i 忽略大小寫 -o 只顯示匹配的內容 -v 取反 -w 過濾單詞,可以找到用空格或其它符號分開的單詞 正則表達式: grep普通的查找,如果不行,就換egrep擴展正則 ^ 行首,如: ^hello $ 行尾,如: hello$ . 除了換行符以外的一個字符
* 左面字符出現零次到無窮次 grep -E (ab)* test.txt 查找多個或另個 ab 連續的,沒有也算 grep -E ab(ab)* test.txt 至少出現一個 ? 左面字符出現零次或一次 + 左面字符出現一次到無窮次 {} 左面字符出現花括號中的次數 {3,} 左面字符出現花括號中3到*次的次數 .* 隨意字符 [0-9] 任意數字, [a-z] 左右小寫字母, [A-Z] 所有大寫字母, [a-Z] 所有字母, [^0-9] 除了0-9 | 或者 x\{m\} x出現m次 x\{m,\} x出現m次至多次(至少m次) x\{m,n\} x出現m次至n次 compan(y|ies) -v 非 shell script unset x 取消變量x PS1 這個變量可以修改淺慢的 root那啥的,就是那個輸入命令的,前面的那個 [ ] 可以比較大多數東西 (( )) 數字之間的比較

================================================================

作業二:grep作業(正則表達式及字符處理)

目標文件/etc/passwd,使用grep命令或egrep

1.顯示出所有含有root的行:

[[email protected] ~]# egrep root /etc/passwd

技術分享

2.輸出任何包含bash的所有行,還要輸出緊接著這行的上下各兩行的內容:

[[email protected] ~]# egrep -C 2 bash /etc/passwd

技術分享

3. 顯示出有多少行含有nologin

[[email protected] ~]# egrep -c nologin /etc/passwd

技術分享

4.顯示出那些行含有root,並將行號一塊輸出。

[[email protected] ~]# egrep -n root /etc/passwd

技術分享

6.新建用戶

abominable

abominate

anomie

atomize

編寫正則表達式,將他們匹配出來

[[email protected] sbin]# useradd abominable

[[email protected] sbin]# useradd abominate

[[email protected] sbin]# useradd anomie

[[email protected] sbin]# useradd atomize

[[email protected] sbin]# egrep ‘^a(b|n|t)omi(nable|nate|e|ze)‘ /etc/passwd

技術分享

7.建四個用戶

Alex213sb

Wpq2222b

yH438PIG

egon666

egon

過濾出用戶名組成是字母+數字+字母的行

8.顯示出/etc目錄下所有包含root的文件名

9. 過濾掉/etc/ssh/sshd_config內所有註釋和所有空行

[[email protected] sbin]# useradd Alex213sb

[[email protected] sbin]# useradd Wpq2222b

[[email protected] sbin]# useradd yH438PIG

[[email protected] sbin]# useradd egon666

[[email protected] sbin]# useradd egon

技術分享

8.顯示出/etc目錄下所有包含root的文件名

[[email protected] sbin]# egrep -rl ‘root‘ /etc/

技術分享

9. 過濾掉/etc/ssh/sshd_config內所有註釋和所有空行

[[email protected] sbin]# grep -v ‘#‘ /etc/ssh/sshd_config | grep -v ‘^$‘

技術分享

作業三:

linux下源碼安裝python,並設置PATH

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz -P /root/Downloads/

技術分享

解壓

[[email protected] Downloads]# cd /root/Downloads/

[[email protected] Downloads]# tar -xzvf Python-3.6.1.tgz

技術分享

安裝

[[email protected] Downloads]# cd Python-3.6.1/

[[email protected] Python-3.6.1]# mkdir /usr/local/python3.6

[[email protected] Python-3.6.1]# ./configure --prefix=/usr/local/python3.6

技術分享

[[email protected] Python-3.6.1]# make && make install

技術分享

Installing collected packages: setuptools, pip

Successfully installed pip-9.0.1 setuptools-28.8.0

[[email protected] Python-3.6.1]# cd /usr/local/python3.6/

技術分享

[[email protected] python3.6]# cd bin

技術分享

加入環境變量

[[email protected] bin]# vim /etc/bashrc

技術分享

技術分享

技術分享

windows下安裝python,並設置PATH

技術分享

技術分享

技術分享

day11 grep正則匹配