Linux下常用文本處理命令大全
我們提供的服務有:成都網站設計、成都網站制作、微信公眾號開發、網站優化、網站認證、托克遜ssl等。為成百上千企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的托克遜網站制作公司
Linux下面有很多經典的非常有用的命令,其中處理文本的命令就有很多。下面就讓我們一起看看這些經典的Linux文本處理命令有哪些吧。
一. sort
文件排序, 通常用在管道中當過濾器來使用. 這個命令可以依據指定的關鍵字或指定的字符位置, 對文件行進行排序. 使用-m選項, 它將會合并預排序的輸入文件. 想了解這個命令的全部參數請參考這個命令的info頁.
二. tsort
拓撲排序, 讀取以空格分隔的有序對, 并且依靠輸入模式進行排序.
三. uniq
這個過濾器將會刪除一個已排序文件中的重復行. 這個命令經常出現在sort命令的管道后邊.
四. expand, unexpand
expand命令將會把每個tab轉化為一個空格. 這個命令經常用在管道中.
unexpand命令將會把每個空格轉化為一個tab. 效果與expand命令相反.
五. cut
一個從文件中提取特定域的工具. 這個命令與awk中使用的print $N命令很相似, 但是更受限. 在腳本中使用cut命令會比使用awk命令來得容易一些. 最重要的選項就是-d(字段定界符)和-f(域分隔符)選項.
六. paste
將多個文件, 以每個文件一列的形式合并到一個文件中, 合并后文件中的每一列就是原來的一個文件. 與cut結合使用, 經常用于創建系統log文件.
七. join
這個命令與paste命令屬于同類命令. 但是它能夠完成某些特殊的目地. 這個強力工具能夠以一種特殊的形式來合并兩個文件, 這種特殊的形式本質上就是一個關聯數據庫的簡單版本.
join命令只能夠操作兩個文件. 它可以將那些具有特定標記域(通常是一個數字標簽)的行合并起來, 并且將結果輸出到stdout. 被加入的文件應該事先根據標記域進行排序以便于能夠正確的匹配.
八. head
把文件的頭部內容打印到stdout上(默認為10行, 可以自己修改). 這個命令有一些比較有趣的選項.
九. tail
將一個文件結尾部分的內容輸出到stdout中(默認為10行). 通常用來跟蹤一個系統logfile的.修改情況, 如果使用-f選項的話, 這個命令將會繼續顯示添加到文件中的行.
十. wc
wc可以統計文件或I/O流中的”單詞數量”:
十一. fold
將輸入按照指定寬度進行折行. 這里有一個非常有用的選項-s, 這個選項可以使用空格進行斷行(譯者: 事實上只有外文才需要使用空格斷行, 中文是不需要的)(請參考例子 12-23和例子 A-1).
十二. fmt
一個簡單的文件格式器, 通常用在管道中, 將一個比較長的文本行輸出進行”折行”.
十三. col
這個命令用來濾除標準輸入的反向換行符號. 這個工具還可以將空白用等價的tab來替換. col工具最主要的應用還是從特定的文本處理工具中過濾輸出, 比如groff和tbl. (譯者: 主要用來將man頁轉化為文本.)
十四. column
列格式化工具. 通過在合適的位置插入tab, 這個過濾工具會將列類型的文本轉化為”易于打印”的表格式進行輸出.
十五. colrm
列刪除過濾器. 這個工具將會從文件中刪除指定的列(列中的字符串)并且寫到文件中, 如果指定的列不存在, 那么就回到stdout. colrm 2 4 filename將會刪除filename文件中每行的第2到第4列之間的所有字符. p="" /filename將會刪除filename文件中每行的第2到第4列之間的所有字符.
Caution: 如果這個文件包含tab和不可打印字符, 那將會引起不可預期的行為. 在這種情況下, 應該通過管道的手段使用expand和unexpand來預處理colrm.
十六. nl
計算行號過濾器. nl filename將會把filename文件的所有內容都輸出到stdout上, 但是會在每個非空行的前面加上連續的行號. 如果沒有filename參數, 那么就操作stdin.
nl命令的輸出與cat -n非常相似, 然而, 默認情況下nl不會列出空行.
十七. pr
格式化打印過濾器. 這個命令會將文件(或stdout)分頁, 將它們分成合適的小塊以便于硬拷貝打印或者在屏幕上瀏覽. 使用這個命令的不同的參數可以完成好多任務, 比如對行和列的操作, 加入行, 設置頁邊, 計算行號, 添加頁眉, 合并文件等等. pr命令集合了許多命令的功能, 比如nl, paste, fold, column, 和expand.
pr -o 5 –width=65 fileZZZ | more 這個命令對fileZZZ進行了比較好的分頁, 并且打印到屏幕上. 文件的縮進被設置為5, 總寬度設置為65.
一個非常有用的選項-d, 強制隔行打印(與sed -G效果相同).
十八. gettext
GNU gettext包是專門用來將程序的輸出翻譯或者本地化為不同國家語言的工具集. 在最開始的時候僅僅支持C語言, 現在已經支持了相當數量的其它程序語言和腳本語言.
想要查看gettext程序如何在shell腳本中使用. 請參考info頁.
十九. msgfmt
一個產生二進制消息目錄的程序. 這個命令主要用來本地化.
二十. iconv
一個可以將文件轉化為不同編碼格式(字符集)的工具. 這個命令主要用來本地化.
二十一. recode
可以認為這個命令是上邊iconv命令的專業版本. 這個非常靈活的并可以把整個文件都轉換為不同編碼格式的工具并不是Linux標準安裝的一部分.
二十二. TeX, gs
TeX和Postscript都是文本標記語言, 用來對打印和格式化的視頻顯示進行預拷貝.
TeX是Donald Knuth精心制作的排版系統. 通常情況下, 通過編寫腳本的手段來把所有的選項和參數封裝起來一起傳到標記語言中是一件很方便的事情.
日志文件夾的默認存儲路徑是:/var/log下面是幾個重要的日志文件:/var/log/messages:包括整體系統信息,其中也包含系統啟動期間的日志。此外,還包括mail,cron,daemon,kern和auth等內容。/var/log/syslog:它和/etc/log/messages日志文件不同,它只記錄警告信息,常常是系統出問題的信息。/var/log/user.log:記錄所有等級用戶信息的日志。/var/log/auth.log:包含系統授權信息,包括用戶登錄和使用的權限機制等。日志是一種文本文件,因此可以使用查看文本文件的命令來查看日志。cat /var/log/messages 查詢日志的全部內容,head -5 /var/log/messages 查詢日志的前5行,tail -5 /var/log/messages 查詢日志的最新5行,sed -n '5,10p' /var/log/messages 查詢日志的5到10行,學習linux命令基礎,請關注《linux就該這么學》官網。
基本linux命令有哪些呢?
1、ls命令
就是 list 的縮寫,通過 ls 命令不僅可以查看 linux 文件夾包含的文件,而且可以查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等。
常用參數搭配:
ls -a 列出目錄所有文件,包含以.開始的隱藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改時間排序
ls -S 以文件大小排序
ls -h 以易讀大小顯示
ls -l 除了文件名之外,還將文件的權限、所有者、文件大小等信息詳細列出來
實例:
(1) 按易讀方式按時間反序排序,并顯示文件詳細信息
ls -lhrt
(2) 按大小反序顯示文件詳細信息
ls -lrS
(3)列出當前目錄中所有以"t"開頭的目錄的詳細內容
ls -l t*
(4) 列出文件絕對路徑(不包含隱藏文件)
ls | sed "s:^:`pwd`/:"
(5) 列出文件絕對路徑(包含隱藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
2、cd 命令
cd(changeDirectory) 命令語法:
cd [目錄名]
說明:切換當前目錄至 dirName。
實例:
(1)進入要目錄
cd /
(2)進入 "home" 目錄
cd ~
(3)進入上一次工作路徑
cd -
(4)把上個命令的參數作為cd參數使用。
cd !$
3、pwd 命令
pwd 命令用于查看當前工作目錄路徑。
實例:
(1)查看當前路徑
pwd
(2)查看軟鏈接的實際路徑
pwd -P
4、mkdir 命令
mkdir 命令用于創建文件夾。
可用選項:
-m: 對新建目錄設置存取權限,也可以用 chmod 命令設置;
-p: 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不在的目錄,即一次可以建立多個目錄。
實例:
(1)當前工作目錄下創建名為 t的文件夾
mkdir t
(2)在 tmp 目錄下創建路徑為 test/t1/t 的目錄,若不存在,則創建:
mkdir -p /tmp/test/t1/t
5、rm 命令
刪除一個目錄中的一個或多個文件或目錄,如果沒有使用 -r 選項,則 rm 不會刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復原狀。
rm [選項] 文件…
實例:
(1)刪除任何 .log 文件,刪除前逐一詢問確認:
rm -i *.log
(2)刪除 test 子目錄及子目錄中所有檔案刪除,并且不用一一確認:
rm -rf test
(3)刪除以 -f 開頭的文件
rm -- -f*
6、rmdir 命令
從一個目錄中刪除一個或多個子目錄項,刪除某目錄時也必須具有對其父目錄的寫權限。
注意:不能刪除非空目錄
實例:
(1)當 parent 子目錄被刪除后使它也成為空目錄的話,則順便一并刪除:
rmdir -p parent/child/child11
7、mv 命令
移動文件或修改文件名,根據第二參數類型(如目錄,則移動文件;如為文件則重命令該文件)。
當第二個參數為目錄時,第一個參數可以是多個以空格分隔的文件或目錄,然后移動第一個參數指定的多個文件到第二個參數指定的目錄中。
實例:
(1)將文件 test.log 重命名為 test1.txt
mv test.log test1.txt
(2)將文件 log1.txt,log2.txt,log3.txt 移動到根的 test3 目錄中
mv llog1.txt log2.txt log3.txt /test3
(3)將文件 file1 改名為 file2,如果 file2 已經存在,則詢問是否覆蓋
mv -i log1.txt log2.txt
(4)移動當前文件夾下的所有文件到上一級目錄
mv * ../
8、cp 命令
將源文件復制至目標文件,或將多個源文件復制至目標目錄。
注意:命令行復制,如果目標文件已經存在會提示是否覆蓋,而在 shell 腳本中,如果不加 -i 參數,則不會提示,而是直接覆蓋!
-i 提示
-r 復制目錄及目錄內所有項目
-a 復制的文件與原文件時間一樣
實例:
(1)復制 a.txt 到 test 目錄下,保持原文件時間,如果原文件存在提示是否覆蓋。
cp -ai a.txt test
(2)為 a.txt 建議一個鏈接(快捷方式)
cp -s a.txt link_a.txt
9、cat 命令
cat 主要有三大功能:
1.一次顯示整個文件:
cat filename
2.從鍵盤創建一個文件:
cat filename
只能創建新文件,不能編輯已有文件。
3.將幾個文件合并為一個文件:
cat file1 file2 file
-b 對非空輸出行號
-n 輸出所有行號
實例:
(1)把 log2012.log 的文件內容加上行號后輸入 log2013.log 這個文件里
cat -n log2012.log log2013.log
(2)把 log2012.log 和 log2013.log 的文件內容加上行號(空白行不加)之后將內容附加到 log.log 里
cat -b log2012.log log2013.log log.log
(3)使用 here doc 生成新文件
cat log.txt EOF
Hello
World
PWD=$(pwd)
EOF
ls -l log.txt
cat log.txt
Hello
World
PWD=/opt/soft/test
(4)反向列示
tac log.txt
PWD=/opt/soft/test
World
Hello
10、more 命令
功能類似于 cat, more 會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示。
命令參數:
+n 從笫 n 行開始顯示
-n 定義屏幕大小為n行
+/pattern 在每個檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開始顯示
-c 從頂部清屏,然后顯示
-d 提示“Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)”,禁用響鈴功能
-l 忽略Ctrl+l(換頁)字符
-p 通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似
-s 把連續的多個空行顯示為一行
-u 把文件內容中的下畫線去掉
常用操作命令:
Enter 向下 n 行,需要定義。默認為 1 行
Ctrl+F 向下滾動一屏
空格鍵 向下滾動一屏
Ctrl+B 返回上一屏
= 輸出當前行的行號
:f 輸出文件名和當前行的行號
V 調用vi編輯器
!命令 調用Shell,并執行命令
q 退出more
實例:
(1)顯示文件中從第3行起的內容
more +3 text.txt
(2)在所列出文件目錄詳細信息,借助管道使每次顯示 5 行
ls -l | more -5
按空格顯示下 5 行。
11、less 命令
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動,而且 less 在查看之前不會加載整個文件。
常用命令參數:
-i 忽略搜索時的大小寫
-N 顯示每行的行號
-o 將less 輸出的內容在指定文件中保存起來
-s 顯示連續空行為一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重復前一個搜索(與 / 或 ? 有關)
N:反向重復前一個搜索(與 / 或 ? 有關)
-x 將“tab”鍵顯示為規定的數字空格
b 向后翻一頁
d 向后翻半頁
h 顯示幫助界面
Q 退出less 命令
u 向前滾動半頁
y 向前滾動一行
空格鍵 滾動一行
回車鍵 滾動一頁
[pagedown]: 向下翻動一頁
[pageup]: 向上翻動一頁
實例:
(1)ps 查看進程信息并通過 less 分頁顯示
ps -aux | less -N
(2)查看多個文件
less 1.log 2.log
可以使用 n 查看下一個,使用 p 查看前一個。
12、head 命令
head 用來顯示檔案的開頭至標準輸出中,默認 head 命令打印其相應文件的開頭 10 行。
常用參數:
-n 顯示的行數(行數為復數表示從最后向前數)
實例:
(1)顯示 1.log 文件中前 20 行
head 1.log -n 20
(2)顯示 1.log 文件前 20 字節
head -c 20 log2014.log
(3)顯示 t.log最后 10 行
head -n -10 t.log
13、tail 命令
用于顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日志文件。
常用參數:
-f 循環讀取(常用于查看遞增的日志文件)
-n 顯示行數(從后向前)
(1)循環讀取逐漸增加的文件內容
ping 127.0.0.1 ping.log
后臺運行:可使用 jobs -l 查看,也可使用 fg 將其移到前臺運行。
tail -f ping.log
(查看日志)
14、which 命令
在 linux 要查找某個文件,但不知道放在哪里了,可以使用下面的一些命令來搜索:
which 查看可執行文件的位置。
whereis 查看文件的位置。
locate 配合數據庫查看文件位置。
find 實際搜尋硬盤查詢文件名稱。
which 是在 PATH 就是指定的路徑中,搜索某個系統命令的位置,并返回第一個搜索結果。使用 which 命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
常用參數:
-n 指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名。
實例:
(1)查看 ls 命令是否存在,執行哪個
which ls
(2)查看 which
which which
(3)查看 cd
which cd(顯示不存在,因為 cd 是內建命令,而 which 查找顯示是 PATH 中的命令)
查看當前 PATH 配置:
echo $PATH
或使用 env 查看所有環境變量及對應值
15、whereis 命令
whereis 命令只能用于程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。whereis 及 locate 都是基于系統內建的數據庫進行搜索,因此效率很高,而find則是遍歷硬盤查找文件。
常用參數:
-b 定位可執行文件。
-m 定位幫助文件。
-s 定位源代碼文件。
-u 搜索默認路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。
實例:
(1)查找 locate 程序相關文件
whereis locate
(2)查找 locate 的源碼文件
whereis -s locate
(3)查找 lcoate 的幫助文件
whereis -m locate
1.cd/home/fleety/Diagserver/log
cd到指定的目錄
2.tail -f day.log
實時讀取指定目錄下的日志(一直中,不停止)
3.grep -a 'mdtId' day.log 或 grep -v 'mdtid' day.log
指定條件下查找mdtid文件的記錄
4.tar -zcvf day.log.tgz day.log 或 tar -zcvf day.log.tgz
分別是四個參數
x : 從 tar 包中把文件提取出來
z : 表示 tar 包是被 gzip 壓縮過的,所以解壓時需要用 gunzip 解壓
v : 顯示詳細信息
f xxx.tar.gz : 指定被處理的文件是 xxx.tar.gz
5.mkdir -p/home/fkeety/Diagserver/log
在home下建一個fleeety的子目錄,在fleety下建一個DiagServer的子目錄,在DiagServer建一個log的子目錄
6.mv day.log day.log.bak
mv,移動文件到另一個文件,備份
7.rm -rf day.log
刪除這個文件
8.vi day.log
打開或新建day.log文件,并將光標置于第一行首
9.pwd
顯示工作目錄
10. In -s aa bb
為bb文件在aa文件上建立一個同步的鏈接
11.unzip day.log.zip
解壓到當前目錄下
12. find/home/fleety/Diagserver -name ' zwyc' -print**
查找名稱為XXX的內容并打印
13.ssh -l root 180.168.34.250 -p 9222
root權限連接主機,端口是9222
14.telnet 192.168.0.22 23
建立遠程tcp連接
15. sed -n '100.2720p'1159857_20150506_2159857_20150506_2_2
將字符串'100,2720p' 寫入文件15..._2文件里 并重定向到15..._2_2文件里
16.chmod fleety.fleety aaa
給fleety.fleety設置權限
17.chown 755 aaa
給aaa 添加
7 擁有者有 讀取,寫入,執行權限
7 組用戶有 讀取,寫入,執行權限
5 其他用戶有 讀取,執行權限
18.cp -r /home/fleety/Diagserve/log ./
將log文件下的所有內容 復制到當前目錄下
19.ftp 192.168.0.218 21
ftp模式連接遠程主機 ,服務器會詢問用戶名和密碼
20.more day.log
查看day.log日志,分頁形式打開, more 一頁頁顯示文件內容 空白鍵下一頁 b鍵上一頁
21.ps -ef
查看系統進程
22.top
主要用于查看進程的相關信息,同時它也會提供系統平均負載,cpu 信息和內存信息
/var/log/secure:記錄登入系統存取數據的文件,例如 pop3, ssh, telnet, ftp 等都會被記錄;
/var/log/wtmp:記錄登入者的訊息數據,由于本文件已經被編碼過,所以必須使用 last指令來取出文件的內容;
/var/log/messages:尤為重要,幾乎發生的錯誤訊息(或是重要信息)都會被記錄在此;
/var/log/boot.log:記錄開機或者是一些服務啟動的時候,所顯示的啟動或關閉訊息;
/var/log/maillog 或 /var/log/mail/*:紀錄郵件存取或往來( sendmail 與 pop3 )的使用者記錄;
/var/log/cron:記錄 crontab 這個例行性服務的內容的。
/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log:分別是幾個不同的網絡服務的記錄文件!
分享標題:linux命令處理log linux命令詳解
URL標題:http://m.kartarina.com/article48/hggphp.html
成都網站建設公司_創新互聯,為您提供網站維護、商城網站、微信小程序、品牌網站制作、、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯