文本處理工具
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?? //統計字節數(文件大?。?/p>
-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