Linux-文本工具

CentOS01

文件查看

文件查看命令:

cat,tac,rev

cat [OPTION]… [FILE]…

-E: 显示行结束符$

-n: 对显示出的每一行进行编号

-A:显示所有控制符

-b:非空行编号

-s:压缩连续的空行成一行

tac     行号反转

rev     同行反转

 

抽取文本的工具

文件内容:less和 cat

文件截取:head和tail

按列抽取:cut

按关键字抽取:grep

 

显示文本前或后行内容

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.178linux.com/95497

(1)
qjyqjy
上一篇 2018-04-08 19:41
下一篇 2018-04-08 20:00

相关推荐

  • lvs(linux virtual server)、keepalived

    Linux Cluster: httpd: ab,  benchmark; 系统的扩展方式: Scale up:向上扩展; 提供性能更好的服务器替代现有的服务器; Scale out:向外扩展; 提供更多的服务器来满足同一个需求; 集群:将多台主机组织起来满足某一特定需求; 集群类型: 1、LB:Load Balancing, 负载均衡集群; 负载均衡器,调…

    2018-07-05
  • linux学习练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。[root@localhost etc]# cp -r /etc/skel /home/tuser1[root@localhost ~]# getfacl /home/tuser1/getfacl: Removing lead…

    Linux笔记 2018-07-15
  • 加密和安全

    常见的加密算法和安全协议 一、对称加密:加密和解密使用同一个密钥,依赖于算法和密钥,其安全性依赖于密钥而非算法 常见的算法:DES ​ 特性: ​ 加密、解密使用同一个密钥 ​ 将明文分隔成固定的大小块逐个进行加密 ​ 缺点: ​ 密钥过多、密钥分发 二、非对称加密:采用的是公钥加密方法,密钥是成对出现的,公钥是从私钥中提取出来的 ​ 公钥:公开给所有人;p…

    Linux笔记 2018-05-10
  • 文件管理(番外篇)——文本处理工具

    cat查看、tac反向查看(列)、rev反向查看(行) cat -E:             #显示行结束符$ -n:             #对显示出的每一行进行编号 -A:             #显示所有控制符 -b:             #非空行编号 -s:             #压缩连续的空行成一行 utac             …

    2018-04-05
  • NFS文件系统介绍及相关实验

    NFS:Network File System 网络文件系统,基于内核的文件系统。Sun公司开发,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(Remote Procedure Call Protocol远程过程调用)实现

    2018-06-28
  • 标准IO和管道

    一.三种I/O设备 标准输入(STDIN) -0   默认接受来自键盘的输入 标准输出(STDOUT) -1  默认输出到终端窗口 标准错误(STDERR) -2   默认输出到终端窗口 程序:指令加数据 每个文件打开都有一个文件描述符(fd) ll /proc/$$/fd      //可以查看文件的描述符 exec 8<>/data/host…

    Linux笔记 2018-04-02