day11 grep正則匹配
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正則匹配