文本处理工具

简要介绍各种文本查看,分析和统计的工具

文本处理工具

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运维部落立场,如若转载,请注明出处:/95044

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达直属QQ  万达娱乐平台  万达开户  万达娱乐注册  万达娱乐主管QQ  万达娱乐注册  万达娱乐平台  guoqibee.com  万达招商QQ