Linux學習筆記(二) 常見命令 正規表示式

2021-08-15 16:50:20 字數 3158 閱讀 9874

paste [options] file1 file2  將兩行貼在一起,預設使用tab鍵分開

-d  後面跟分隔符,預設使用tab鍵來分割

examples:

paste /etc/passwd /etc/shadow

cat /etc/goroup | paste /etc/passwd /etc/shadow - | head -n 3  

split [options] file prefix 將大檔案拆分成小檔案

-b  [b k m]  後跟要拆分的單位大小

-l  按照行數進行拆分

split -b 1000k /tmp/forp.log logs   將forp.log檔案進行拆分

cat logs* >> logs.log  將拆分出來的檔案進行合併

ls -al / | split -l 10 - lsroot   使用ls -al 輸出的資訊中,每10行記錄行程乙個檔案

重點在 - ,一般來說,如果需要stdout或stdin,但偏偏沒有檔案時,有的只是-時,那麼-就會被當成stdout或stdin

基礎的正規表示式:

1.最簡單的字串選取的功能

grep [options] '搜尋的字串' filename

-i  忽略大小寫的不同

-n  輸出行號

grep 'root' /var/log/secure

last | grep -n 'root'

cat /etc/yum.conf | grep -in 'it'

grep -n 'oo' /tmp/readme.txt  --->  檢視含有『oo』的字元  並且輸出行號

grep -n  '[oo]' /tmp/readme.txt   --->  中不管有幾個字元,只代表乙個字元,所以想搜去兩個oo連續的必須採用上面的

那種方式

grep -n '[^g]oo'  /tmp/readme.txt --->  搜尋除了'goo'之外,意思就是不以g開頭的oo的字元

grep -n '[0-9]'  /tmp/readme.txt   --->  搜尋所有數字

grep -n  '[^0-9]' /tmp/readme.txt   --->  搜尋所有非數字(即字母和其他特殊字元)

grep -n '^\.$' /tmp/readme.txt   --->  找出必須以.開頭和以.結尾

\  --->  轉義字元

*  --->  代表任意(0或多個)字元

.  --->  代表任意乙個字元

grep -n 'g..d' /tmp/readme.txt   --->  搜尋出g(兩位任意字元)d的單詞

grep -n 'go*d' /tmp/readme.txt   --->  搜尋出god,gd,good,goooo...d等的pattern的字元

grep -n 'o\' /tmp/readme.txt   --->  搜尋出o出現2次的單詞

grep -n 'o\' /tmp/readme.txt  --->  搜尋出o出現2至5次的單詞字元

grep -n 'o\' /tmp/readme.txt   --->  搜尋出現5次以上的單詞字元

因為{},}在shell中有特殊意義,所以必須利用「\」進行轉義

特別注意:

->  中代表的被搜尋的乙個字元,如a[bcd] 代表ab ac ad這三種選擇

->  ls -l a*  列出所有已a開頭的檔案   (萬用字元方式)

ls | grep '^a.*'  (正規表示式的方式)

->  萬用字元的取反  [!range]   正規表示式是  [^range]

拓展正規表示式:

egrep    = grep -e 

examples:

grep -v '^$' /tmp/readme.txt | grep -v '^#' /tmp/readme.txt

等價於egrep -v '^$ | ^#' readme.txt

拓展正規表示式幾種常見的符號:

+   --->   乙個或乙個以上的字元

?  --->   0個或乙個字元

|   --->   or的意思

()  --->   或,二選一的,常於|連用

egrep -n 'go+' /tmp/readme.txt

egrep -n 'g0?' /tmp/readme.txt   找出g或go的字元單詞

egrep -n 'g(o|l)' /tmp/readme.txt  

sed工具的介紹

可以分析標準輸入stdin的資料,然後經過處理後再將它們stdout。它有替換,刪除,新增,選定特定行等處理功能

sed [options] 動作

-n  使用安靜模式,

-e  直接在命令列模式上進行sed的操作編輯

-f  直接將sed的操作寫在乙個檔案內,-f filename,則可以直接執行filename檔案中sed操作

-r  sed的操作是支援正規表示式,(預設是基礎正規表示式)

操作說明: 

--->  [n1[,n2]]function

a  ->  新增,a後面可以接字串,而這些字串則會在新的一行內出現(當前的下一行)

c  ->  替換,c後面可以跟字串,可以替換n1到n2行之間的內容

d  ->  刪除,因為是刪除,所以後面是不常跟內容的

i  ->  插入,後面跟字串,會出現在當前行的上一行

p  ->  列印

nl /etc/passwd | sed '2,5d'  需要列印行號,並將2到5行的資料進行刪除

nl /etc/passwd | sed '2a hehejijihuhu'  在第二行之後進行內容的追加

nl /etc/passwd | sed '3i lllllljjjjj' 在第2行和3行之間新增內容

nl /etc/passwd | sed '2,4c hehehheheheheh'   將2-4行之間的內容進行替換

diff ->  比較兩個檔案的不同

diff [options] file|directory file2|directory2 

-i  忽略大小寫

-b  忽略空白行的不同

-b  忽略一行中多個不同空白的差異

pr  列印預覽

pr /etc/man.config

linux學習筆記 常見命令

乙個指令可以包含多個選項,操作的物件也可以是多個。上列表中第一列字元表示文件型別,其中 表示對應的文件型別為檔案,d 表示文件型別為資料夾 mkdir 路徑名 路徑可以是資料夾名 藍色表示資料夾,綠色表示擁有全部許可權 wc lwc 需要統計的檔案的路徑 l line行數 w words數,r 表示...

linux學習筆記 常見命令

linux命令格式為 命令 選項 引數 代表可選 help可以使用help命令檢視幫助文件 例如 ls help或者ls helpmanmanual 手冊,是linux提供的乙個手冊,包含了大多數命令 可以使用man 命令來檢視命令的用法,例如man ls和很多地方的快捷鍵一樣,使用tab鍵自動補全...

linux常見命令學習筆記

一 基礎指令 ls 顯示檔案或者目錄 l list 顯示檔案的詳細資訊 a all 顯示當前目錄下的所有檔案及子目錄 mkdir 建立目錄 make directory p 建立目錄 parent cd 切換目錄 touch 建立空檔案 echo 建立帶有內容的檔案 cat 檢視檔案內容 cp co...