第06天 [文本处理grep和shell]


cat 查看
	cat [OPTION]... [FILE]...
	-E:显示行结束符$
	-n:对显示出的每一行进行编号
	-A:显示所有控制符
	-b:非空行编号
	-s:压缩连续的空行成一行


head 查看
	-n 查看第几行
	-c 查看多少个字节

tail [OPTION]... [FILE]...
	-c #  指定获取后#字节
	-n # 指定获取后#行
	-f  跟踪显示文件fd新追加的内容,常用日志监控
	相当于 --follow=descriptor
	举例 tail -f a.txt   打开另外一个窗口后进行追加操作,此时会发现tail -f a.txt窗口上有了新增操作。
	通常用于目录log追加  tail -f /var/log/messages
	-F  跟踪文件名,相当于--follow=name --retry

pidof 查看进程号
	pidof tail

lsof 列出当前系统打开文件的方式。

cut 剪切
	cut -d: /etc/passwd    按:剪切
	cut -f1  指明第几个
	例子 cat /etc/passwd|cut -d: f1-2,5
	cat /etc/passwd|cut -c 10
	例子:ifconfig ens33 |grep netmask|tr -s " "|cut -d" " -f3
	--output-delimiter=STRING	
	cat /etc/passwd|cut -d: f1-2,5 --output-delimiter=":"
	
paste 粘贴
	[root@Centos7 wang]$paste -d: c d
	abc:123
	def:456
	[root@Centos7 wang]$paste -s c d
	abc	def
	123	456

wc  统计数目
	story.txt
	39 237 1901 story.txt
	行数 字数 字节数
	常用选项
	-l 只计数行数
	-w 只计数单词总数
	-c 只计数字节总数
	-m 只计数字符总数
	-L 显示文件中最长行的长度	

sort 排序
	sort -u 忽略相同行 相当于uniq 
	-k 分割完滞只有取第几列数
	-t 以什么为分割符号
	sort -t: -k 3
	aaa:10:1.1
	bbb:60:2.2
	ccc:40:3.3
	ddd:30:3.4
	eee:50:5.5
	eee:50:5.5
	-R 随机排序
	-n 执行按数字大小整理
	-f 选项忽略(fold)字符串中的字符大小写
	-u 选项(独特,unique)删除输出中的重复行
-r 反方向排序

uniq 删除重复行
	-c: 显示每行重复出现的次数
	-d: 仅显示重复过的行
	-u: 仅显示不曾重复的行
	注:连续且完全相同方为重复
	常和sort 命令一起配合使用:
	sort userlist.txt | uniq -c
	
lastb 命令用于显示用户错误的登录列表,此指令可以发现系统的登录异常。单独执行lastb命令,它会读取位于/var/log目录下,
	名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。-d:将IP地址转换成主机名称;

diff 比较区别
	常用:diff -u a.txt b.txt
patch 复制其他文件中进行的改变
	diff -u a.txt b.txt >diff.patch
	rm b.txt
	cp a.txt a.txt.bak
	patch -b a.txt diff.patch	

grep 查找
	grep "字段"  /etc/passwd      注意一定要用双引号
	 --color=auto: 对匹配到的文本着色显示
 	-m # 匹配#次后停止
 	-v  显示不被pattern匹配到的行
	 -i  忽略字符大小写
 	-n  显示匹配的行号
 	-c  统计匹配的行数
	-o  仅显示匹配到的字符串
	-q  静默模式,不输出任何信息
	 -A # after, 后#行   查到符合行数再加几行 after
	-B # before, 前#行
	 -C # context, 前后各#行
	 -e  实现多个选项间的逻辑or关系
	grep -e ‘cat ’ -e ‘dog’ file  相当于 \(cat\|dog\)
	-w  匹配整个单词
 	-E  使用ERE
 	-F  相当于fgrep,不支持正则表达式
	 -f file 根据模式文件处理
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z]
[^] 匹配指定范围外的任意单个字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母 [:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字 [:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
正则表达式
  匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
* 匹配前面的字符任意次,包括0次
贪婪模式:尽可能长的匹配
.* 任意长度的任意字符
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次
\{n\} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次
\{n,\} 匹配前面的字符至少n次

位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
[^[:space:]] 非空白字符
\< 或 \b 词首锚定,用于单词模式的左侧
\> 或 \b 词尾锚定,用于单词模式的右侧
\<PATTERN\> 匹配整个单词

取ip ifconfig ens33|grep -o '[0-9.]\{13,16\}'  13到16的意思是匹配数字 .是0-9任意单个数字
取passwd中两位或者是三位数
[root@Centos7 wang]$egrep   "\<[0-9]{2,3}\>" /etc/passwd|wc -l
35
[root@Centos7 wang]$egrep -w  "[0-9]{2,3}" /etc/passwd|wc -l
35

查询同名的行$egrep "^(.*):.*\<\1$"  /etc/passwd 或者是 $egrep "^(.*):.*\<\1$"  /etc/passwd

反向引用代表前面字符里面的数
[root@Centos7 wang]$cat g | egrep "(west).*\1"
westwest
westhkahdwest
相当于
[root@Centos7 wang]$cat g | egrep "(west).*(west)"
westwest
westhkahdwest


vimrc设置 如果仅仅是单用户的话设置在家目录下面的.vimrc文件下,如果是 多用户同时设置放在
	/etc/vimrc     
如果文本是从windows复制过来的话需要 

	修改 vim profile加路径  前提加执行权限chmod +x /profile/shellsz.sh  
加路径PATH=/data/scripts/:$PATH文件 意思是在原来的基础上再加入这一条命令


传输scp /etc/issue wang@172.16.128.163:/data/scripts37/
scp root@192.168.41.157:/wang/a.key .  把157的a.key 传输到当前文件夹下面

如果是目录scp后面加r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值