文件查看
文件查看命令:
cat,tac,rev
cat [OPTION]… [FILE]…
-E: 顯示行結束符$
-n: 對顯示出的每一行進行編號
-A:顯示所有控制符
-b:非空行編號
-s:壓縮連續的空行成一行
tac???? 行號反轉
rev???? 同行反轉
抽取文本的工具
文件內容:less和 cat
文件截?。篽ead和tail
按列抽取:cut
按關鍵字抽?。篻rep
顯示文本前或后行內容
head [OPTION]… [FILE]…
-c #: 指定獲取前#字節
-n #: 指定獲取前#行
-#: 指定行數
tail [OPTION]… [FILE]…
-c #: 指定獲取后#字節
-n #: 指定獲取后#行
-#:
-f: 跟蹤顯示文件fd新追加的內容,常用日志監控
相當于 –follow=descriptor
-F: 跟蹤文件名,相當于—follow=name –retry
tailf 類似tail –f,當文件不增長時并不訪問文件
生成12位字母數字組合的字符串
[root@centos7 data]#openssl rand -base64 30 | tr -dc ‘[:alnum:]’ | head -c 12
iskr3rzbvX2Z
查看ifconfig ens33的第2行
ifconfig ens33 | head -n2 | tail n1
按列抽取文本cut和合并文件paste
cut [OPTION]… [FILE]…
-d DELIMITER: 指明分隔符,默認tab
-f FILEDS:
#: 第#個字段
#,#[,#]:離散的多個字段,例如1,3,6
#-#:連續的多個字段, 例如1-6
混合使用:1-3,7
-c 按字符切割
–output-delimiter=STRING指定輸出分隔符
[root@centos7 data]#cut -d: -f 1,3,5-7 /etc/passwd
root:0:root:/root:/bin/bash
bin:1:bin:/bin:/sbin/nologin
daemon:2:daemon:/sbin:/sbin/nologin
adm:3:adm:/var/adm:/sbin/nologin
[root@centos7 data]#who | cut -c1-9
root
[root@centos6 ~]#chkconfig iptables off
[root@centos6 ~]#service iptables stop
[root@centos7 data]#systemctl stop firewalld
[root@centos7 data]#systemctl disable firewalld
rpm -ivh /mnt/Packages/httpd-2….rpm
service httpd start
vim /var/www/html/aaa.html
tail -f /var/log/httpd/access_log
第一列就是訪問本機web的ip地址
cut和paste
顯示文件或STDIN數據的指定列
cut -d: -f1 /etc/passwd
cat /etc/passwd | cut -d: -f7
cut -c2-5 /usr/share/dict/words
paste 合并兩個文件同行號的列到一行
paste [OPTION]… [FILE]…
-d 分隔符:指定分隔符,默認用TAB
-s : 所有行合成一行顯示
paste f1 f2
paste -s f1 f2
收集文本統計數據wc
計數單詞總數、行總數、字節總數和字符總數
可以對文件或STDIN中的數據運行
wc story.txt
39 237 1901 story.txt
行數 字數 字節數
常用選項
-l 只計數行數
-w 只計數單詞總數??? -連著寫的就算一個單詞
-c 只計數字節總數
-m 只計數字符總數
-L 顯示文件中最長行的長度
ls | wc -l
文本排序sort
把整理過的文本顯示在STDOUT,不改變原始文件
sort [options] file(s)
常用選項
-r 執行反方向(由上至下)整理
-R 隨機排序
-n 執行按數字大小整理
-f 選項忽略(fold)字符串中的字符大小寫
-u 選項(獨特,unique)刪除輸出中的重復行
-t c 選項使用c做為字段界定符
-k X 選項按照使用c字符分隔的X列來整理能夠使用多次
linux:#netstat -nt
win:>tasklist
netstat -no | find pid
統計有多少個IP訪問
[root@centos6 html]#cut -d ” ” -f1 /var/log/httpd/access_log | sort -u | wc -l
抽獎
[root@centos6 html]#seq 102 | sort -R | head -n1
22
取出passwd里的用戶名和UID,并按UID做倒序排序
[root@centos6 html]#cat /etc/passwd | cut -d: -f1,3 | sort -t: -k2 -nr
uniq
uniq命令:從輸入中刪除前后相接的重復的行
uniq [OPTION]… [FILE]…
-c: 顯示每行重復出現的次數
-d: 僅顯示重復過的行
-u: 僅顯示不曾重復的行
注:連續且完全相同方為重復
常和sort 命令一起配合使用:
sort userlist.txt | uniq -c
統計訪問量前10的ip,并統計每個ip訪問了多少次
[root@centos6 data]#cat /var/log/httpd/access_log |cut -d ” ” -f1 | sort | uniq -c |sort -nr | head
比較文件
比較兩個文件之間的區別
diff foo.conf foo2.conf
5c5
< use_widgets = no
—
> use_widgets = yes
注明第5行有區別(改變)
復制對文件改變patch
diff 命令的輸出被保存在一種叫做“補丁”的文件中
使用 -u 選項來輸出“統一的(unified)”diff格式文件,最適用于補丁文件
patch 復制在其它文件中進行的改變(要謹慎使用)
適用 -b 選項來自動備份改變了的文件
$ diff -u foo.conf foo2.conf > foo.patch
$ patch -b foo.conf foo.patch
Linux文本處理三劍客
grep:文本過濾(模式:pattern)工具
grep, egrep, fgrep(不支持正則表達式搜索)
sed:stream editor,文本編輯工具
awk:Linux上的實現gawk,文本報告生成器
grep
grep: Global search REgular expression and Print out the line
作用:文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;打印匹配到的行
模式:由正則表達式字符及文本字符所編寫的過濾條件
grep [OPTIONS] PATTERN [FILE…]
grep root /etc/passwd
grep “$USER” /etc/passwd
grep ‘$USER’ /etc/passwd
grep `whoami` /etc/passwd
grep命令選項
–color=auto: 對匹配到的文本著色顯示
-v: 顯示不被pattern匹配到的行
-i: 忽略字符大小寫
-n:顯示匹配的行號
-c: 統計匹配的行數
-o: 僅顯示匹配到的字符串
-q: 靜默模式,不輸出任何信息? 但有輸出的話$?=0,無輸出的話$?=1(非0)
-A #: after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-e:實現多個選項間的邏輯or關系
grep -e ‘cat ’ -e ‘dog’ file
-w:匹配整個單詞?? 字母、數字、下劃線不能分隔單詞,其它都可以
-E:使用ERE
-F:相當于fgrep,不支持正則表達式
-f:跟文件,pattern的列表? grep -f pattern.txt /etc/passwd
nmap -v -sP 172.20.180.0/24 掃描一個網段,看有哪些機器開機了
nmap -v -sP 172.20.108.0/24 | grep -B1 “Host is up” ???? 有IP的行沒有特殊關鍵字,搜索”Host is up”,加參數-B1取其上一行即可
nmap -v -sP 172.20.108.0/24 | grep -B1 “Host is up” | grep report | cut -d ” ” -f5?? 將up的IP過濾出來
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95497