Linux操作系統(tǒng)實戰(zhàn)入門教程
Linux指令入門-文本處理
1. 創(chuàng)建資源
創(chuàng)建資源
- 單擊屏幕右側(cè) 創(chuàng)建資源 ,免費創(chuàng)建當(dāng)前實驗所需云產(chǎn)品資源。
2. 連接終端
- 資源創(chuàng)建完畢后,點擊右側(cè) Web Terminal連接ECS服務(wù)器。
3. 文本編輯工具Vim
- 文本編輯工具Vim
文本編輯工具Vim
vim的三種操作模式
vim有三種操作模式,分別是命令模式(Command mode)、輸入模式(Insert mode)和底線命令模式(Last line mode)。
三種模式切換快捷鍵:
- 命令模式
在命令模式中控制光標移動和輸入命令,可對文本進行復(fù)制、粘貼、刪除和查找等工作。
使用命令vim filename后進入編輯器視圖后,默認模式就是命令模式,此時敲擊鍵盤字母會被識別為一個命令,例如在鍵盤上連續(xù)敲擊兩次d,就會刪除光標所在行。
- 輸入模式
在命令模式下按i或a鍵就進入了輸入模式,在輸入模式下,您可以正常的使用鍵盤按鍵對文本進行插入和刪除等操作。
- 底線命令模式
在命令模式下按:鍵就進入了底線命令模式,在底線命令模式中可以輸入單個或多個字符的命令。
4. 文本文件查看命令
文本文件查看命令
cat
命令描述:cat命令用于查看內(nèi)容較少的純文本文件。
命令格式:cat [選項] [文件]。
命令參數(shù)說明:
參數(shù) 說明
-n或--number 顯示行號 -b或--number-nonblank 顯示行號,但是不對空白行進行編號 -s或--squeeze-blank 當(dāng)遇到有連續(xù)兩行以上的空白行,只顯示一行的空白行
命令使用示例:
- 將一個自增序列寫入test.txt文件中。
for i in $(seq 1 10); do echo $i >> test.txt ; done
- 查看文件內(nèi)容。
cat test.txt
- 將文件內(nèi)容清空。
cat /dev/null > test.txt
- 再次檢查文件內(nèi)容。
cat test.txt
more
命令描述:more命令從前向后分頁顯示文件內(nèi)容。
如下圖是常用操作命令:
命令使用示例:
從第20行開始分頁查看系統(tǒng)日志文件/var/log/messages。
more +20 /var/log/messages
less
命令描述:less命令可以對文件或其它輸出進行分頁顯示,與moe命令相似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動。
命令格式:less [參數(shù)] 文件 。
命令參數(shù)說明:
參數(shù) 說明 -e 當(dāng)文件顯示結(jié)束后,自動離開 -m 顯示類似more命令的百分比 -N 顯示每行的行號 -s 顯示連續(xù)空行為一行
命令常用操作:
命令使用示例:
查看命令歷史使用記錄并通過less分頁顯示。
history | less
head
命令描述:head命令用于查看文件開頭指定行數(shù)的內(nèi)容。
命令格式:head [參數(shù)] [文件]。
命令參數(shù)說明:
參數(shù) 說明 -n [行數(shù)] 顯示開頭指定行的文件內(nèi)容,默認為10 -c [字符數(shù)] 顯示開頭指定個數(shù)的字符數(shù) -q 不顯示文件名字信息,適用于多個文件,多文件時默認會顯示文件名
實例:
head -5 /etc/passwd
tail
命令描述:tail命令用于查看文檔的后N行或持續(xù)刷新內(nèi)容。
命令格式:tail [參數(shù)] [文件]。
命令參數(shù)說明:
參數(shù) 說明 -f 顯示文件最新追加的內(nèi)容 -q 當(dāng)有多個文件參數(shù)時,不輸出各個文件名 -v 當(dāng)有多個文件參數(shù)時,總是輸出各個文件名 -c [字節(jié)數(shù)] 顯示文件的尾部n個字節(jié)內(nèi)容 -n [行數(shù)] 顯示文件的尾部n行內(nèi)容
命令使用示例:
查看/var/log/messages系統(tǒng)日志文件的最新10行,并保持實時刷新。
tail -f -n 10 /var/log/messages
按ctrl+c鍵退出文本實時查看界面。
stat
命令描述:用來顯示文件的詳細信息,包括inode、atime、mtime、ctime等。
命令使用示例:
查看/etc/passwd文件的詳細信息。
stat /etc/passwd
wc
命令描述:wc命令用于統(tǒng)計指定文本的行數(shù)、字數(shù)、字節(jié)數(shù)。
命令格式:wc [參數(shù)] [文件]。
命令參數(shù)說明:
參數(shù) 說明 -l 只顯示行數(shù) -w 只顯示單詞數(shù) -c 只顯示字節(jié)數(shù)
命令使用示例:
統(tǒng)計/etc/passwd文件的行數(shù)。
wc -l /etc/passwd
file
命令描述: file命令用于辨識文件類型。
命令格式:file [參數(shù)] [文件]。
命令參數(shù)說明:
參數(shù) 說明 -b 列出辨識結(jié)果時,不顯示文件名稱 -c 詳細顯示指令執(zhí)行過程,便于排錯或分析程序執(zhí)行的情形 -f [文件] 指定名稱文件,其內(nèi)容有一個或多個文件名稱時,讓file依序辨識這些文件,格式為每列一個文件名稱 -L 直接顯示符號連接所指向的文件類別
命令使用示例:
查看/var/log/messages文件的文件類型。
file /var/log/messages
5. 文本文件處理命令
文本文件處理命令
grep
命令描述:grep命令用于查找文件里符合條件的字符串。
grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它能使用正則表達式搜索文本,并把匹配的行打印出來。
在Shell腳本中,grep通過返回一個狀態(tài)值來表示搜索的狀態(tài):
0:匹配成功。
1:匹配失敗。
2:搜索的文件不存在。
命令格式:grep [參數(shù)] [正則表達式] [文件]。
命令常用參數(shù)說明:
參數(shù) 說明
-c或--count 計算符合樣式的列數(shù) -d recurse或-r 指定要查找的是目錄而非文件 -e [范本樣式] 指定字符串做為查找文件內(nèi)容的樣式 -E 或 --extended-regexp 將樣式為延伸的正則表達式來使用 -F 或 --fixed-regexp 將樣式視為固定字符串的列表 -G 或 --basic-regexp 將樣式視為普通的表示法來使用 -i 或 --ignore-case 忽略字符大小寫的差別 -n 或 --line-number 在顯示符合樣式的那一行之前,標示出該行的列數(shù)編號 -v 或 --revert-match 顯示不包含匹配文本的所有行
sed
命令描述:sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用。
- 處理時,把當(dāng)前處理的行存儲在臨時緩沖區(qū)中,稱為模式空間(pattern space)。
- 接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。
- 接著處理下一行,這樣不斷重復(fù),直到文件末尾。
注意:
sed命令不會修改原文件,例如刪除命令只表示某些行不打印輸出,而不是從原文件中刪去。
如果要改變源文件,需要使用-i選項。
命令格式:sed [參數(shù)] [動作] [文件]。
參數(shù)說明:
參數(shù) 說明
-e [script] 執(zhí)行多個script -f [script文件] 執(zhí)行指定script文件
-n 僅顯示script處理后的結(jié)果
-i 輸出到原文件,靜默執(zhí)行(修改原文件)
動作說明:
動作 說明 a 在行后面增加內(nèi)容 c 替換行 d 刪除行 i 在行前面插入 p 打印相關(guān)的行 s 替換內(nèi)容
awk
命令描述:和 sed 命令類似,awk 命令也是逐行掃描文件(從第 1 行到最后一行),尋找含有目標文本的行,如果匹配成功,則會在該行上執(zhí)行用戶想要的操作;反之,則不對行做任何處理。
命令格式:awk [參數(shù)] [腳本] [文件]。
參數(shù)說明:
參數(shù) 說明
-F fs 指定以fs作為輸入行的分隔符,awk 命令默認分隔符為空格或制表符
-f file 讀取awk腳本
-v val=val 在執(zhí)行處理過程之前,設(shè)置一個變量var,并給其設(shè)置初始值為val
內(nèi)置變量:
變量 用途
FS 字段分隔符
$n 指定分隔的第n個字段,如$1、$3分別表示第1、第三列
$0 當(dāng)前讀入的整行文本內(nèi)容
NF 記錄當(dāng)前處理行的字段個數(shù)(列數(shù))
NR 記錄當(dāng)前已讀入的行數(shù)
FNR 當(dāng)前行在源文件中的行號
能需要在處理數(shù)據(jù)前運行一些腳本命令,這就需要使用BEGIN關(guān)鍵字,BEGIN會在awsk讀取數(shù)據(jù)前強制執(zhí)行該關(guān)鍵字后指定的腳本命令。
和BEGIN關(guān)鍵字相對應(yīng),END關(guān)鍵字允許我們指定一些腳本命令,awk會在讀完數(shù)據(jù)后執(zhí)行它們。
cut
命令描述:cut命令主要用來切割字符串,可以對輸入的數(shù)據(jù)進行切割然后輸出。
命令格式:cut [參數(shù)] [文件]。
參數(shù)說明:
參數(shù) 說明 -b 以字節(jié)為單位進行分割 -c 以字符為單位進行分割 -d 自定義分隔符,默認為制表符
tr
命令描述:tr命令用于對來自標準輸入的字符進行替換、壓縮和刪除。
命令格式:tr [參數(shù)] [文本]。
參數(shù)說明:
參數(shù) 說明 -c 反選指定字符 -d 刪除指定字符 -s 將重復(fù)的字符縮減成一個字符 -t [第一字符集] [第二字符集] 刪除第一字符集較第二字符集多出的字符,使兩個字符集長度相等