linux基础(三)

一、文本处理工具

1、文本查看工具less和cat

cat -E filename 能看到行的结束符

-A filename 能看到tab键 回车 (hexdump -C win.txt)

-n filename 加行号

-s filename 压缩空行(连续相邻的空行)'

-b 加行号,但空行不加cat > f3 给文件写入内容(nl==cat -b )

2、more(分页查看文件)

3、less(支持搜索man的用法来自less)

4、head(查看文件首部,默认10行)

head -n 4

-c n 查看前n个字符

cat /dev/random strings(提取二进制程序的课间字符)

openssl

5、tail(查看文件尾部)

tail -f f1 实时跟踪文件

whath -n1 tail f1 & --> jobs查看后台执行程序 fg

6、cut命令(提取列)

-d 指定分隔符

-f 指定列 -f 1,3

-output-delimiter="+" 输出分隔符为+

-c 按字符切割

7、paste命令(合并)

合并两个文件同一行放在一块

paste f1 f2 > f3 (横向合并 各自第一行放在同一行)

cat f1 f2 > f4 (纵向合并)

-d 指定分割符

-s 所有行横着显示

8、wc(文本统计)

-l 行数

-w 单词

-c 字节

-m 字符

/usr/share/dict/linux.words

多少用户登录:who wc -l

9、sort(排序)

-n 按数字排序

-r 倒叙

-k 指定列 sort -rn -k 3

-t 指定分割符

-u 删除重复的行'

10、uniq(压缩重复相邻的行)

-c 统计重复的行数'

-d 只显示重复过的行

-

netstat -nt tr -s " " ":" cut -d: -f6 sort uniq -c

netstat -nt rev tr -s " " : cut -d: -f 4 rev sort uniq -c sort

让网站访问某主机网页1000次

ab -c 1000 -n 10000 http://192.168.25.128/index.html

11、rev

12、diff(判断两个文件的不同)

diff a.bak b.bak

-u : 显示详细信息 diff a.bak b.bak -u > diff.log

-b : 选项来自备份该表了的文件

patch -b acl.bak diff.log (还原文件)

13、grep(行提取工具)

-v 显示不被匹配的行

-i 忽略大小写

-n 显示匹配行号

-c 统计匹配的行数

-o 仅显示匹配到的字符串

-q 静默模式,不输出任何信息

-A # 后#行 包含当前行后续的的三行

-B # 前#行

-C # 前后各#行

-e 实现多个选项间的逻辑or关系

grep -e 'cat' -e 'dog' file

-w 整行匹配整个单词

-E 使用ERE 扩展正则表达式

-F 相当于fgrep。不支持正则表达式

nmap 网络扫描器

nmap -sP -v 172.18.254.0/24 grep -B1 up grep -v up

namp -v -A 172.18.254.88

二、正则表达式

分类: 基本正则表达式BRE

扩展正则表达式ERE grep -E , egrep

引擎:采用不同算法,检查处理正则表达式的软件模块

元字符:字符匹配、匹配次数、位置锚定、分组

看帮助:man 7 regex

1、基础正则表达式

字符匹配:

.匹配任意单个字符

[] 匹配指定范围内的任意单个字符

[^] 匹配指定范围外的任意单个字符

[:alnum:] 字母和数字

[:alpha:] 代表任何英文大小写字符,a-z A-Z

[:lower:] 小写字母 [:upper:] 大写字母

[:space:] 水平和垂直的空白字符

[:blank:] 空白字符

[:cntrl:] 不可打印的控制字符(退格、删除、警铃)

[:digit:] 十进制数字 [:xdigit:]

[:graph:] 可打印的非空白字符

[:print:] 可打印的非空白字符

[:punct:] 标点符号

注意:grep 'a\\b' f1 搜索a\b 内容

grep "a\.b" f1 搜索a.b 内容

匹配次数

* 匹配前面的字符任意次,包括0次;贪婪匹配模式

.* 任意长度的任意字符

\? 匹配其前面的字符0次或1次

\+ 匹配前面的字符至少一次

\ 匹配前面的字符n次

\ 匹配前面的字符至少m次,至多n次

\{,n\} 匹配前面的字符至多n次

\匹配前面的字符至少n次

位置锚定

^ 锚定行首

$锚定行尾

^PATTERN$用于模式匹配整行

^$空行

^[[:space:]]*$ 空白行

\< 或 \b 词首锚定,用于单词模式左侧(单词边界,除了字母、下划线、数字)

\> 或 /b 词尾锚定,用于单词模式右侧

\

匹配整个单词

\(\) 分组,将一个或多个字符捆绑在一起,当做一个整体处理

echo godgodgod grep -o "\(god\)\" 重复god2次

\1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配的字符

\2 ...

反向引用:应用前面的分组括号中的模式所匹配的字符,而非字符本身

或者\

ab : a或b

Ccat : C或cat

(Cc)at :Cat或cat

2、扩展正则表达式

egrep = grep -E

次数匹配

*匹配前面字符任意次

? 0次或1次

+ 1次或多次

匹配m次

至少m,至多n次

位置锚定

^ 行首

$ 行尾

\< , \b 词首

\> , \b 词尾

分组

()

后向引用:\1 \2 ...

或者

ab : a或b

Ccat : C或cat

(Cc)at :Cat或cat

sed

取ip地址

centos 7:

ifconfig ens33 sed '2!d;s/.*et //;s/ .*$//'

取目录名:

echo "/etc/rc.d/" sed -r 's@^(.*/)([^/]+/?)@\1@g'

取基名:

echo "/etc/rc.d/" sed -r 's@^(.*/)([^/]+/?)@\2@g'

本文来自企鹅号 - 微网天下媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏轮子工厂

5. 很“迷”的字符与字符串

最近一直在为自己的浏览量而担忧啦,都快被厂长大人约谈了……我真的有尽力在写稿子哦,所以也请各位老铁,如果觉得我的文章还不错就转发到朋友圈或者微信群之类的,让更多...

1142
来自专栏强仔仔

AngularJS系列之表达式

这节介绍一下AngularJS中表示式的用法。使用表达式可以把数据绑定到HTML中去,使用起来非常方便。不过在使用之前得先引用AngularJS文件,这个文件可...

1827
来自专栏黑泽君的专栏

c语言基础学习08_内存管理

============================================================================= 涉及...

2511
来自专栏自学笔记

python基本常识

tuple,str都可以看做是一种list,都可以进行切片操作。 利用切片操作,去掉一个字符串的前后空格。要注意是是前后空格是不止一个的,可能有很多个。

2815
来自专栏恰同学骚年

你必须知道的指针基础-8.栈空间与堆空间

一个由C/C++编译的程序占用的内存分为以下几个部分:  1、栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于...

552
来自专栏Brian

Python进阶教程(二)

概述 在上一篇博客中,我们介绍了Python进阶教程(一),还有一些新的技巧没有翻译完,我们下面来继续我们的翻译。 Intermediate Python 中译...

4478
来自专栏专注数据中心高性能网络技术研发

HERD--GCC宏

减少跳转语句失效时CPU等待取指令时间,提高CPU效率 使用__builtin_expect(EXP,N) 意思是EXP==N的概率很大 一般封装为LIKELY...

2955
来自专栏noteless

[五] JavaIO之InputStream OutputStream简介 方法列表说明

1402
来自专栏北京马哥教育

提升Python程序性能的7个习惯

使用局部变量替换模块名字空间中的变量,例如 ls = os.linesep。一方面可以提高程序性能,局部变量查找速度更快;另一方面可用简短标识符替代冗长的模块变...

820
来自专栏张俊红

零基础学习爬虫并实战

总第63篇 本篇主要从爬虫是什么、爬虫的一般流程、爬虫各个流程的实现方法、爬虫实例四个方面分享零基础了解爬虫,并进行简单的实战。 在阅读下面之前,我们...

2.5K10

扫码关注云+社区

领取腾讯云代金券