文本處理工具

簡要介紹各種文本查看,分析和統計的工具

文本處理工具

1.抽取文本的工具

cat?? -n?? f1??? //顯示行號包括空行在內

cat?? -b??? f1??? //顯示行號(不顯示空行的行號)

cat?? -ns???? //壓縮空行為一行

cat?? -A??? //可顯示出文件中的空格和換行

tac? 文件??? //顯示文件內容(反向顯示)

rev?? 文件?? //在一行中反向顯示文本內容

 

more?? 命令:對大文件分屏顯示;翻看到文件結束自動退出

ls –R? /etc/ |more??? //可分屏顯示/etc/下的內容

 

less命令:也可實現分頁顯示,翻看到文件結束不退出

 

head? 命令:

ifconfig?? |head? -n2???? //顯示前兩行

head?? -c???? //顯示前幾個字節

-n??? //顯示前幾行

 

tail 命令; //? 默認顯示后10行

-n?? //顯示后幾行

-c??? //顯示后幾個字節

-f ??//能跟蹤文件的變化(跟蹤文件描述符)刪除文件無變化(類似tailf?? )

-F?? //能跟蹤文件的變化(跟蹤文件名)刪除文件顯示文件已不存在

 

cut :取出文件的部分內容顯示(以列為單位)

-d??? //指明分隔符

-f???? //指明哪一列

-c??? //按字符數切割

–output-delimiter=STRING?? ??文件路徑 ?//指定輸出分隔符

df? | tr –s ?“ “ |cut? -d” “?? -f5? |? tr? -d%或(df |tr –s “? “?? %? |cut? -d%? -f5)? //取出第五列

ifconfig ens32 |head -n 2 |tail -n 1 |tr -s ” ”? |cut -d” ” -f3? //取出IP地址(centos7)

ifconfig eth0 |head -n 2? |tail -n 1 |tr -s ” ” :|cut -d: -f4??? //取出IP地址(centos6)

 

(centos6中)

service iptables stop??? //關閉防火墻

chkconfig iptables off?? //下次開啟電腦不自動啟動防火墻

(centos7中)

systemctl stop firewalld?? //關閉防火墻

systemctl disable firewalld? //下次開啟電腦不自動啟動防火墻

systemctl enable firewalld?? //開啟防火墻

 

paste? :合并兩文件的行內容(橫向合并)

-s?? //所有行合并成一行(一個文件內容放在一行)

-d?? //指定分隔符

 

2.分析文本的工具

wc? :默認顯示有幾行,有多少單詞,多少字節(統計文本數據)

-l??? //統計指定文件的行數

-w?? //統計有多少單詞

-c?? //統計字節數(文件大小)

-m?? //統計字符數

-L??? //統計行最長的,打印出其長度

ls? |wc??? //統計當前目錄

 

sort:文本排序

-t??? //指定分隔符

-k?? //指定第幾列

-n?? //按數字排序

-r?? //倒序

-f? //忽略大小寫

-u? //刪除重復的內容

-R?? //隨機排序

df |tr -s ” ” % |cut -d% -f5 |sort -nr | head -n 1?? //查看利用率的最大值

cat /etc/passwd? |cut -d: -f1,3 |sort -t: -k2 –nr????? //取出用戶名和UID并按UID倒序排序

netstat? -nt???? //查看有多少用戶正在訪問自己主機

 

uniq :默認將相鄰的重復行合并成一行

-c?? //顯示出將幾行合并成一行(顯示出重復行的次數)

-u?? //顯示不曾重復的行

-d?? //僅顯示重復的行

cat /var/log/httpd/access_log? | cut -d” ” -f1 | sort |uniq -c | sort -nr? |head?? //顯示出訪問次數最多的前十名的IP地址

 

last :顯示日志的命令

 

diff:比較兩個文件內容是否相同

-u?? //輸出統一的diff格式文件,適用于補丁文件

 

patch? -b? ??//適用于自動備份改變了的文件

 

 

面試題:

1. 當用戶docker對/testdir 目錄無執行權限時,意味著無法做哪些操作?

無法cd,無法查看目錄下文件的詳細屬性;不能查看目錄文件內容;不能刪除文件

2.當用戶mongodb對/testdir 目錄無讀權限時,意味著無法做哪些操作?

無法列出目錄的文件列表;可以cd;可以刪除文件

3.當用戶redis 對/testdir 目錄無寫權限時,該目錄下的只讀文件file1是否可修改和刪除?

不可修改,不可刪除

4.當用戶zabbix對/testdir 目錄有寫和執行權限時,該目錄下的只讀文件file1是否可修改和刪除?

不可修改,可刪除

5. 復制/etc/fstab文件到/var/tmp下,設置文件所有者為tomcat讀寫權限,所屬組為apps組有讀寫權限,其他人無權限

cp /etc/fstab /var/tmp???? ;chown? tomcat:apps? fstab

chmod?? 660?? /var/tmp/fstab

6. 誤刪除了用戶git的家目錄,請重建并恢復該用戶家目錄及相應的權限屬性

cp?? –r?? /etc/skel???? /home/git

chown??? -R??? git:git? /home/git

chmod??? 700?? /home/git

7. 統計遠程主機登錄次數的前三個IP

last |tr -s ” ” |cut -d” ” -f3|tr -d “a-zA-Z” |sort -r |uniq -c |head –n3

8. 找出ifconfig “網卡名” 命令結果中本機的IPv4地址

ifconfig ens32 |head -n 2 |tail -n 1 |tr -s ” ”? |cut -d” ” -f3? //取出IP地址(centos7)

ifconfig eth0 |head -n 2? |tail -n 1 |tr -s ” ” :|cut -d: -f4??? //取出IP地址(centos6)

9、查出分區空間使用率的最大百分比值

df |tr -s ” ” % |cut -d% -f5 |sort -nr | head -n 1

10.查出用戶UID最大值的用戶名、UID及shell類型

cat /etc/passwd? |cut -d: -f1,3,7 |sort -t: -k2 -nr |head -n1

11、查出/tmp的權限,以數字方式顯示

stat? /tmp |head -n4 |tail -n1 |cut -d/ -f1 |tr -dc [:digit:]

stat? -c? %a?? /tmp

12、統計當前連接本機的每個遠程主機IP的連接數,并按從大到小排序

cat /var/log/httpd/access_log? | cut -d” ” -f1 | sort |uniq -c | sort -nr

13、在/testdir/dir里創建的新文件自動屬于webs組,組apps的成員如:tomcat能對這些新文件有讀寫權限,組dbs的成員如:mysql只能對新文件有讀權限,其它用戶(不屬于webs,apps,dbs)不能訪問這個文件夾

mkdir -p /testdir/dir??? ;??? groupadd webs?? ; groupadd apps?? ; groupadd dbs

uaeradd tomcat??? ;???? useradd?? mysql? ; groupmems -a tomcat -g apps

groupmems -a mysql -g dbs? ;

chgrp -R? webs?? /testdir/dir/? ;

chmod g+s /testdir/dir

setfacl -m d:g:apps:rw? /testdir/dir ;

setfacl -m d:g:dbs:r? /testdir/dir ;

setfacl -m o::- /testdir/dir

 

或者:mkdir test;?? useradd? a ;useradd b;? useradd c;groupmems -a b -g a

chgrp -R a /data/test;? chmod? -R?? 760 /data/test ;setfacl -m? d:g:c:r /data/test

 

14、備份/testdir/dir里所有文件的ACL權限到/root/acl.txt中,清除/testdir/dir中所有ACL權限,最后還原ACL權限

getfacl? -R /testdir/dir >acl.txt

setfacl??? -b?? /testdir/dir

setfacl –restore=/root/acl.txt

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95044

(1)
qljqlj
上一篇 2018-04-06 00:12
下一篇 2018-04-06 20:23

相關推薦

  • Linux的tail 與head 命令

    head命令是用來查看具體文件的前面幾行的內容,具體格式如下: head <filename>: 你可以通過head命令查看具體文件最初的幾行內容,該命令默認是前10行內容,如果你想查看前面更多內容,你可以通過一個數字選項來設置,例如 head -20 install.log 通過上面命令你可以查看install.log這個文件前面20行的內容 …

    2018-04-16
  • 文件管理

    系統文件,規范常見命令,軟硬鏈接和重定向

    Linux筆記 2018-03-31
  • linu基礎知識

    低級語言 ;機器語言,匯編語言 中級語言;C 高級語言;JAVA Objetive-C php GO cento s7.4 開源。O pen Sou軟件核原代碼提供所有人自由發布軟件和原代碼 虛擬機配置 內存;1.1G Centos7 .4 磁盤200G 光盤;ISO接 網卡;僅主機 MBR GPT 區類型 主分區;一塊硬盤最i多4個,不可分小區,可以用來啟…

    Linux筆記 2018-04-01
  • linux第五周

    RPM簡介 RPM類似于Windows系統中.exe的軟件安裝程序,用戶可以使用它自行安裝和管理Linux上的應用程序和系統工具; RPM軟件包文件都是以.rpm為后綴,一般采用這樣的命名格式:軟件包名稱 – 版本號 – 修正版 . 硬件平臺 . rpm。 RPM命令的使用方法 rpm命令:rpm [OPTIONS] [PACKAGE_FILE 安裝:-i,…

    Linux筆記 2018-07-22
欧美性久久久久