摘要: Linux , Python
故城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
工作中需要頻繁使用到一個字符串的md5,因此編寫一個md5命令工具,輸入字符串直接得到輸出,并且命令支持參數(shù)設(shè)置,比如是否事先格式化,指定不同參數(shù)可以支持多功能輸出,操作步驟如下
直接vim一個腳本,腳本名md5不需要.py后綴,這樣更像一個命令,注意在腳本第一行引入python解釋器,并設(shè)置utf-8編碼
其中-f支持先格式化再得到md5,-l支持傳入多個字符串用空格分開
賦予可執(zhí)行權(quán)限
測試是否符合要求
直接放置到 /usr/local/bin 目錄下(需要root權(quán)限)
也可以使用軟連接的方式,推薦使用絕對路徑
之后就可以在環(huán)境變量中直接使用到md5命令
shebang :中文翻譯“釋伴”,由 #! 開頭的字符串,出現(xiàn)在文本文件的 第一行 。類UNIX操作系統(tǒng)的程序載入器會分析shebang后的內(nèi)容,將這些內(nèi)容作為解釋命令,并調(diào)用該指令,并將載有 shebang的文件路徑作為該解釋器 的參數(shù)
比如 #!/bin/bash 就是使用/bin/bash作為解釋器運行腳本,如果以Python作為解釋器運行腳本先找到Python解釋器的路徑,一般在Linux自帶的 /usr/bin/python 是Python2版本,也可以指定其他Python版本 #!/opt/anaconda3/bin/python ,第二行為 # coding=utf-8 用來指定編碼格式,否則Python2輸出中文亂碼
對于自定義腳本,推薦放置在 /usr/local/bin 目錄,有多個可執(zhí)行文件目錄在環(huán)境變量中,區(qū)別如下:
/bin : 包含二進制可執(zhí)行文件,為系統(tǒng)最基本的命令,如ls等
/sbin : 與/bin 類似,不同之處是其為root權(quán)限命令文件
/usr/bin : 系統(tǒng)預裝可執(zhí)行文件,會隨著系統(tǒng)升級而改變
/usr/sbin : 同上,不同之處是其為root權(quán)限運用
/usr/local/bin : 三級目錄,用戶自己的可執(zhí)行文件,系統(tǒng)不管理
/usr/local/sbin : root權(quán)限用戶程序
在做Linux系統(tǒng)優(yōu)化的時候,物理內(nèi)存是其中最重要的一方面。自然的,Linux也提供了非常多的方法來監(jiān)控寶貴的內(nèi)存資源的使用情況。下面的清單詳細的列出了Linux系統(tǒng)下通過視圖工具或命令行來查看內(nèi)存使用情況的各種方法。
1./proc/meminfo
查看RAM使用情況最簡單的方法是通過 /proc/meminfo。這個動態(tài)更新的虛擬文件實際上是許多其他內(nèi)存相關(guān)工具(如:free / ps / top)等的組合顯示。/proc/meminfo列出了所有你想了解的內(nèi)存的使用情況。進程的內(nèi)存使用信息也可以通過 /proc//statm 和 /proc//status 來查看。
$ cat /proc/meminfo
2.atop
atop命令是一個終端環(huán)境的監(jiān)控命令。它顯示的是各種系統(tǒng)資源(CPU, memory, network, I/O, kernel)的綜合,并且在高負載的情況下進行了彩色標注。
$ sudo atop
3.free
free命令是一個快速查看內(nèi)存使用情況的方法,它是對 /proc/meminfo 收集到的信息的一個概述。
$ free -h
4.GNOME System Monitor
GNOME System Monitor 是一個顯示最近一段時間內(nèi)的CPU、內(nèi)存、交換區(qū)及網(wǎng)絡(luò)的使用情況的視圖工具。它還提供了一種查看CPU及內(nèi)存使用情況的方法。
$ gnome-system-monitor
5.htop
htop命令顯示了每個進程的內(nèi)存實時使用率。它提供了所有進程的常駐內(nèi)存大小、程序總內(nèi)存大小、共享庫大小等的報告。列表可以水平及垂直滾動。
$ htop
6.KDE System Monitor
功能同 4 中介紹的GENOME版本。
$ ksysguard
7.memstat
memstat是一個有效識別 executable(s), process(es) and shared libraries使用虛擬內(nèi)存情況的命令。給定一個進程ID,memstat可以列出這個進程相關(guān)的可執(zhí)行文件、數(shù)據(jù)和共享庫。
$ memstat -p
8.nmon
nmon是一個基于ncurses的系統(tǒng)基準測試工具,它可以監(jiān)控CPU、內(nèi)存、I/O、文件系統(tǒng)及網(wǎng)絡(luò)資源等的互動模式。對于內(nèi)存的使用,它可以實時的顯示 總/剩余內(nèi)存、交換空間等信息。
$ nmon
9.ps
ps命令可以實時的顯示各個進程的內(nèi)存使用情況。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”選項對進程進行排序,例如按RSS進行排序:
$ ps aux –sort -rss
10.smem
smem命令允許你統(tǒng)計基于/proc信息的不同進程和用戶的內(nèi)存使用情況。內(nèi)存使用情況的分析可以導出圖表(如條形圖和餅圖)。
$ sudo smem –pie name -c “pss”
11.top
top命令提供了實時的運行中的程序的資源使用統(tǒng)計。你可以根據(jù)內(nèi)存的使用和大小來進行排序。
$ top
12.vmstat
vmstat命令顯示實時的和平均的統(tǒng)計,覆蓋CPU、內(nèi)存、I/O等內(nèi)容。例如內(nèi)存情況,不僅顯示物理內(nèi)存,也統(tǒng)計虛擬內(nèi)存。
$ vmstat -s
一、基本正則列表與擴展正則
二、sed 文本處理工具的用法介紹
三、認識sed工具的 n、r、i 選項指令
四、認識sed工具的 p、d、s 條件指令
五、認識sed工具的 i、a、c 條件指令
六、認識sed高級應用 r、w 條件指令
七、綜合案例
Linux sed
Stream EDitor,流式編輯器
一、基本正則列表與擴展正則
根據(jù)推出時間的不同,分為基本正則和擴展正則,擴展正則在基本正則的基礎(chǔ)上做了一些優(yōu)化和新增了一些正則表達符號,因為一些命令沒有及時更新,所以你可能會遇到有些命令只支持基本正則,不支持擴展正則,或者需要添加一些支持擴展正則的選項。
關(guān)于正則與擴展正則區(qū)別的詳細介紹可以看我另一篇shell 正則的介紹
基本正則列表
擴展正則列表
二、sed 文本處理工具的用法介紹:
相關(guān)說明如下:
sed命令的常用選項如下:
sed命令常用條件指令如下
三、認識sed工具的 n、r、i 選項指令
# sed [選項] '條件指令' 文件.. ..
上面的條件指令 我們可以拆分為 # sed [選項] '范圍界定+操作指令' 文件.. .. 的格式這樣更容易理解
sed命令可以使用行號或正則做為條件匹配:
1)sed命令的 -n 選項
執(zhí)行p打印等過濾操作時,希望看到的是符合條件的文本。但不使用任何選項時,默認會將原始文本一并輸出,從而干擾過濾效果。比如,嘗試用sed輸出/etc/hosts的第1行:
可以發(fā)現(xiàn)所有的行都被顯示出來了(第1行重復2次)。—— 正確的用法應該添加 -n 選項,這樣就可以只顯示第1行了:
行號可以是連續(xù)的行號,如打印passwd第3到第6行賬戶的信息:
2)sed命令的 -r 選項
需要用到擴展正則時,需要加 -r選項
3)sed命令的 -i 選項
正常情況下,sed命令所做的處理只是把操作結(jié)果(包括打印、刪除等)輸出到當前終端屏幕,而并不會對原始文件做任何更改:
若希望直接修改文件內(nèi)容,應添加選項 -i 。
需要特別注意的是,和一些指令組合和使用的先后順序都會對最終輸出結(jié)果產(chǎn)生影響
例如: 指令 -n、和操作操作p
比如,直接刪除test.txt(自行創(chuàng)建一個任意內(nèi)容的文件)的第1~4行:
下文中關(guān)于使用sed修改文件的示例中,為了避免大家在練習過程中因誤操作導致系統(tǒng)故障,命令省略 –i 選項,不再逐一說明。需要時,大家可自行加上此選項。
4)多個指令可以使用分號隔離
用分號來隔離多個操作,比如:
1)行號案例
2)正則案例
3)沒有條件,則表示匹配所有行
四、認識sed工具的 p、d、s 條件指令
1)下面看看sed工具的p指令案例集錦(自己提前生成一個a.txt文件)
2)下面看看sed工具的d指令案例集錦(自己提前生成一個a.txt文件)
3)sed命令的s替換基本功能(s/舊內(nèi)容/新內(nèi)容/選項):
4)下面看看sed工具的s指令案例集錦(自己提前生成一個a.txt文件)
注意:替換操作的分隔“/”可改用其他字符,如#、等,便于修改文件路徑
以下操作使用nssw.txt作為測試文件。
參考數(shù)據(jù)文件內(nèi)容如下:
5)刪除文件中每行的第二個、最后一個字符
分兩次替換操作,第一次替換掉第2個字符,第二次替換掉最后一個字符:
6)將文件中每行的第一個、倒數(shù)第1個字符互換
每行文本拆分為“第1個字符”、“中間的所有字符”、“倒數(shù)第1個字符”三個部分,然后通過替換操作重排順序為“3-2-1”:
7)刪除文件中所有的數(shù)字
因原文件內(nèi)沒有數(shù)字,行首也沒有空格,這里在內(nèi)容中新增一些數(shù)字另外新幾行內(nèi)容 首行添加幾行空格,生成一個新測試文件以 nssw2.txt
以nssw2.txt文件為例,刪除所有數(shù)字、行首空格的操作如下:
8)為文件中每個大寫字母添加括號[]
使用“()”可實現(xiàn)保留功能,所以可參考下列操作解決:
五、認識sed工具的 i、a、c 條件指令
# sed [選項] '條件指令' 文件..
sed工具的多行文本處理操作:
基本語法格式案例:
1)sed命令的 i 指定行之前插入基本功能
2)sed命令的a追加基本功能
3)sed命令的c替換基本功能
六、認識sed高級應用 r、w 條件指令
1)sed命令的 r 讀取文件
2)sed命令的 w 保存到文件
七、綜合案例
1) 綜合案例1
2)綜合案例2 腳本應用
top命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進程的資源占用狀況,類似于Windows的任務(wù)管理器。下面詳細介紹它的使用方法。
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 191272k total, 173656k used, 17616k free, 22052k buffers
Swap: 192772k total, 0k used, 192772k free, 123988k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd
14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top
1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
統(tǒng)計信息區(qū)前五行是系統(tǒng)整體的統(tǒng)計信息。第一行是任務(wù)隊列信息,同 uptime 命令的執(zhí)行結(jié)果。其內(nèi)容如下:
01:06:48 當前時間
up 1:22 系統(tǒng)運行時間,格式為時:分
1 user 當前登錄用戶數(shù)
load average: 0.06, 0.60, 0.48 系統(tǒng)負載,即任務(wù)隊列的平均長度。
三個數(shù)值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值。
第二、三行為進程和CPU的信息。當有多個CPU時,這些內(nèi)容可能會超過兩行。內(nèi)容如下:
Tasks: 29 total 進程總數(shù)
1 running 正在運行的進程數(shù)
28 sleeping 睡眠的進程數(shù)
0 stopped 停止的進程數(shù)
0 zombie 僵尸進程數(shù)
Cpu(s): 0.3% us 用戶空間占用CPU百分比
1.0% sy 內(nèi)核空間占用CPU百分比
0.0% ni 用戶進程空間內(nèi)改變過優(yōu)先級的進程占用CPU百分比
98.7% id 空閑CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si
最后兩行為內(nèi)存信息。內(nèi)容如下:
Mem: 191272k total 物理內(nèi)存總量
173656k used 使用的物理內(nèi)存總量
17616k free 空閑內(nèi)存總量
22052k buffers 用作內(nèi)核緩存的內(nèi)存量
Swap: 192772k total 交換區(qū)總量
0k used 使用的交換區(qū)總量
192772k free 空閑交換區(qū)總量
123988k cached 緩沖的交換區(qū)總量。
內(nèi)存中的內(nèi)容被換出到交換區(qū),而后又被換入到內(nèi)存,但使用過的交換區(qū)尚未被覆蓋,
該數(shù)值即為這些內(nèi)容已存在于內(nèi)存中的交換區(qū)的大小。
相應的內(nèi)存再次被換出時可不必再對交換區(qū)寫入。
進程信息區(qū)統(tǒng)計信息區(qū)域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。
序號 列名 含義
a PID 進程id
b PPID 父進程id
c RUSER Real user name
d UID 進程所有者的用戶id
e USER 進程所有者的用戶名
f GROUP 進程所有者的組名
g TTY 啟動進程的終端名。不是從終端啟動的進程則顯示為 ?
h PR 優(yōu)先級
i NI nice值。負值表示高優(yōu)先級,正值表示低優(yōu)先級
j P 最后使用的CPU,僅在多CPU環(huán)境下有意義
k %CPU 上次更新到現(xiàn)在的CPU時間占用百分比
l TIME 進程使用的CPU時間總計,單位秒
m TIME+ 進程使用的CPU時間總計,單位1/100秒
n %MEM 進程使用的物理內(nèi)存百分比
o VIRT 進程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES
p SWAP 進程使用的虛擬內(nèi)存中,被換出的大小,單位kb。
q RES 進程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA
r CODE 可執(zhí)行代碼占用的物理內(nèi)存大小,單位kb
s DATA 可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小,單位kb
t SHR 共享內(nèi)存大小,單位kb
u nFLT 頁面錯誤次數(shù)
v nDRT 最后一次寫入到現(xiàn)在,被修改過的頁面數(shù)。
w S 進程狀態(tài)。
D=不可中斷的睡眠狀態(tài)
R=運行
S=睡眠
T=跟蹤/停止
Z=僵尸進程
x COMMAND 命令名/命令行
y WCHAN 若該進程在睡眠,則顯示睡眠中的系統(tǒng)函數(shù)名
z Flags 任務(wù)標志,參考 sched.h
默認情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來更改顯示內(nèi)容。
更改顯示內(nèi)容通過 f 鍵可以選擇顯示的內(nèi)容。按 f 鍵之后會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,最后按回車鍵確定。
按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。最后按回車鍵確定。
按大寫的 F 或 O 鍵,然后按 a-z 可以將進程按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉(zhuǎn)。
命令使用
1. 工具(命令)名稱
top
2.工具(命令)作用
顯示系統(tǒng)當前的進程和其他狀況; top是一個動態(tài)顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態(tài).如果在前臺執(zhí)行該命令,它將獨占前臺,直到用戶終止該程序為止. 比較準確的說,top命令提供了實時的對系統(tǒng)處理器的狀態(tài)監(jiān)視.它將顯示系統(tǒng)中CPU最“敏感”的任務(wù)列表.該命令可以按CPU使用.內(nèi)存使用和執(zhí)行時間對任務(wù)進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定制文件中進行設(shè)定.
3.環(huán)境設(shè)置
在Linux下使用。
4.使用方法
4.1使用格式
top [-] [d]
[q] [c] [C] [S] [s] [n]
4.2參數(shù)說明
d 指定每兩次屏幕信息刷新之間的時間間隔。當然用戶可以使用s交互命令來改變之。
p 通過指定監(jiān)控進程ID來僅僅監(jiān)控某個進程的狀態(tài)。
q該選項將使top沒有任何延遲的進行刷新。如果調(diào)用程序有超級用戶權(quán)限,那么top將以盡可能高的優(yōu)先級運行。
S 指定累計模式
s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。
i 使top不顯示任何閑置或者僵死進程。
c 顯示整個命令行而不只是顯示命令名
4.3其他
下面介紹在top命令執(zhí)行過程中可以使用的一些交互命令。從使用角度來看,熟練的掌握這些命令比掌握選項還重要一些。這些命令都是單字母的,如果在命令行選項中使用了s選項,則可能其中一些命令會被屏蔽掉。
Ctrl+L 擦除并且重寫屏幕。
h或者? 顯示幫助畫面,給出一些簡短的命令總結(jié)說明。
k 終止一個進程。系統(tǒng)將提示用戶輸入需要終止的進程PID,以及需要發(fā)送給該進程什么樣的信號。一般的終止進程可以使用15信號;如果不能正常結(jié)束那就使用信號9強制結(jié)束該進程。默認值是信號15。在安全模式中此命令被屏蔽。
i 忽略閑置和僵死進程。這是一個開關(guān)式命令。
q 退出程序。
r 重新安排一個進程的優(yōu)先級別。系統(tǒng)提示用戶輸入需要改變的進程PID以及需要設(shè)置的進程優(yōu)先級值。輸入一個正值將使優(yōu)先級降低,反之則可以使該進程擁有更高的優(yōu)先權(quán)。默認值是10。
S 切換到累計模式。
s 改變兩次刷新之間的延遲時間。系統(tǒng)將提示用戶輸入新的時間,單位為s。如果有小數(shù),就換算成m s。輸入0值則系統(tǒng)將不斷刷新,默認值是5 s。需要注意的是如果設(shè)置太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,而且系統(tǒng)負載也會大大增加。
f或者F 從當前顯示中添加或者刪除項目。
o或者O 改變顯示項目的順序。
l 切換顯示平均負載和啟動時間信息。
m 切換顯示內(nèi)存信息。
t 切換顯示進程和CPU狀態(tài)信息。
c 切換顯示命令名稱和完整命令行。
M 根據(jù)駐留內(nèi)存大小進行排序。
P 根據(jù)CPU使用百分比大小進行排序。
T 根據(jù)時間/累計時間進行排序。
W 將當前設(shè)置寫入~/.toprc文件中。這是寫top配置文件的推薦方法
linxu下的grep命令其實是一個搜索文件文本的工具。下面由我為大家整理了linux的grep命令的詳細解釋的相關(guān)知識,希望對大家有幫助!
一、linux中的grep命令的詳細解釋
1.作用
Linux系統(tǒng)中g(shù)rep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權(quán)限是所有用戶。
2.格式
grep [options]
3.主要參數(shù)
[options]主要參數(shù):
-c:只輸出匹配行的計數(shù)。
-I:不區(qū)分大 小寫(只適用于單字符)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數(shù):
\: 忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結(jié)束行。
\:從匹配正則表達 式的行開始。
\:到匹配正則表達式的行結(jié)束。
[ ]:單個字符,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個字符。
* :有字符,長度可以為0。
二、linux中的grep命令的詳解實例
1.grep命令使用簡單實例
$ grep ‘test’ d*
顯示所有以d開頭的文件中包含 test的行。
$ grep ‘test’ aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
$ grep ‘[a-z]\{5\}’ aa
顯示所有包含每個字符串至少有5個連續(xù)小寫字符的字符串的行。
$ grep ‘w\(es\)t.*\1′ aa
如果west被匹配,則es就被存儲到內(nèi)存中,并標記為1,然后搜索任意個字符(.*),這些字符后面緊跟著 另外一個es(\1),找到就顯示該行。如果用egrep或grep -E,就不用”\”號進行轉(zhuǎn)義,直接寫成’w(es)t.*\1′就可以了。
2.grep命令使用復雜實例
假設(shè)您正在’/usr/src/Linux/Doc’目錄下搜索帶字符 串’magic’的文件:
$ grep magic /usr/src/Linux/Doc/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
其中文件’sysrp.txt’包含該字符串,討論的是 SysRQ 的功能。
默認情況下,’grep’只搜索當前目錄。如果 此目錄下有許多子目錄,’grep’會以如下形式列出:
grep: sound: Is a directory
這可能會使’grep’ 的輸出難于閱讀。這里有兩種解決的辦法:
明確要求搜索子目錄:grep -r
或忽略子目錄:grep -d skip
如果有很多 輸出時,您可以通過管道將其轉(zhuǎn)到’less’上閱讀:
$ grep magic /usr/src/Linux/Documentation/* | less
這樣,您就可以更方便地閱讀。
有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,’grep’會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 CTRL c ,然后再試。
下面還有一些有意思的命令行參數(shù):
grep -i pattern files :不區(qū)分大小寫地搜索。默認情況區(qū)分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
grep -n pattern files 即可顯示行號信息
grep -c pattern files 即可查找總行數(shù)
這里還有些用于搜索的特殊符號:
\ 和 \ 分別標注單詞的開始與結(jié)尾。
例如:
grep man * 會匹配 ‘Batman’、’manic’、’man’等,
grep ‘\man’ * 匹配’manic’和’man’,但不是’Batman’,
grep ‘\man\’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。
‘^’:指匹配的字符串在行首,
‘$’:指匹配的字符串在行 尾,