实例1-1 磁盘空间不足系列:
原因 排查过程 解决
1.block df -h; du -sh /data/* 具体的文件或目录 确认之后删除
2.block lsof|grep delete 重启对应的服务
3.inode df -i; 找出系统中大于1M的目录 删除大量小文件
第2章 特殊符号
2.1 引号系列
2.1.1 “” 双引号
引号内的特殊符号会被解析
2.1.2 ‘’ 单引号
所见即所得,输入什么就输出什么
2.1.3 `` 反引号
$()==``
2.1.4 无引号
可以使用{}
2.2 重定向系列
>标准输出重定向先把文件清空追加
>>标准输出追加重定向
2> 标准错误输出重定向
2>>
<标准输入重定向 xargs tr
<<标准输入追加重定向与cat配合追加多行内容
2>&1将错误和正确内容都记录到文件中
2.3 位置系列
~ 当前用户家目录
.. 上一级目录
. 当前目录
- 参数 cd – su –
2.4 判断关系
&& 前面命令执行成功之后在执行后一个命令
|| 前一个命令执行失败之后执行后一个命令
[[email protected] ~]# ls /oldboy && echo 目录已存在
ext nginx.conf oldboy.SH oldboy.txt-hard oldboy.txt-soft2 test.sh t.sh.bak xiaodong xingfujie
jeacen oldboy oldboy.txt oldboy.txt-soft test t.sh wodi.gz xiaofan yingsui.gz
目录已存在
[[email protected] ~]# ls /ooooo && echo 目录已存在
ls: cannot access /ooooo: No such file or directory
[[email protected] ~]# ls /ooooo || echo 目录不存在
ls: cannot access /ooooo: No such file or directory
目录不存在
2.5 无分类系列
# 注释说明 显示环静变量的配置文件 root用户的命令提示符
$ 普通用户命令提示符 awk取列
! !ls运行上一个以ls开头的命令并执行 !!运行上一个命令
| 管道符号
; 在同一行分割命令
2.6 通配符号
2.6.1 * 所有文件
1.以.conf结尾的文件
find / -type f -name "*.conf"
2.找出系统中文件名包含ifconfig (文件名中有ifconfig就行)
方法一:
[[email protected] ~]# find / -type f -name "ifconfig"
/sbin/ifconfig
[[email protected] ~]#
[[email protected] ~]# find / -type f -name "*ifconfig*"
/usr/sbin/pifconfig
/usr/share/man/de/man8/ifconfig.8.gz
/usr/share/man/pt/man8/ifconfig.8.gz
/usr/share/man/man8/pifconfig.8.gz
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/fr/man8/ifconfig.8.gz
/sbin/ifconfig
方法二:
[[email protected] ~]# find / -type f |grep ifconfig
/usr/sbin/pifconfig
/usr/share/man/de/man8/ifconfig.8.gz
/usr/share/man/pt/man8/ifconfig.8.gz
/usr/share/man/man8/pifconfig.8.gz
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/fr/man8/ifconfig.8.gz
/sbin/ifconfig
2.6.2 {} 生成序列 备份
{} 生成序列
[[email protected] ~]# echo stu{01..5}
stu01 stu02 stu03 stu04 stu05
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# echo {1,5,100}
[[email protected] ~]# echo stu{01..10}
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
[[email protected] ~]# echo stu{01..10..2}
stu01 stu03 stu05 stu07 stu09
通过 {} 进行备份
[[email protected] ~]# cp oldboy.txt{,.bak}
[[email protected] ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
第3章 基础正则表达式
3.1 符号比较
中文 ‘’ “” () 。 * …… ¥ | {} 【】
英文 '' "" () . * ^ $ | {} []
为grep配置别名
alias grep='grep --color'
alias egrep='egrep --color'
3.2 第1个符号 ^ 以....开头的行
模拟文件
[[email protected] /oldboy]# cat oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god,i am not oldbey,but OLDBOY!
第1个符号 ^
以....开头的行 ^m
[[email protected] /oldboy]# grep '^m' oldboy.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
my god,but OLDBOY!
cat -A 显示文件中所有符号 每行结尾都会有个$
3.3 第2个符号 $ 显示文件结尾的行
[[email protected] /oldboy]# grep ' $' oldboy.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
3.4 第3个符号^$ 显示空行
[[email protected] /oldboy]# grep '^$' oldboy.txt
3.5 第4个符号 . 任意一个字符
[[email protected] /oldboy]# #grep '.' oldboy.txt
[[email protected] /oldboy]# grep -o '.' oldboy.txt
3.6 第5个符号 \ 转义字符
[[email protected] /oldboy]# grep '\.$' oldboy.txt
I teach linux.
not 4900000448.
[[email protected] /oldboy]# tr '\n' '\t' <oldboy.txt
I am oldboy teacher! I teach linux. I like badminton ball,billiard ball and chinese chess! my blog is http://oldboy.blog.51cto.com our size is http://blog.oldboyedu.com my qq is 49000448 not 4900000448. my god,but OLDBOY! [[email protected] /oldboy]#
3.7 第6个符号 * 一个字符连续出现0或0次以上
3.8 第7个符号 .* 所有符号字符 包括空行
[[email protected] /oldboy]# grep '.*' oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball,but OLDBOY!
正则中表示 连续出现或所有的时候
正则表达式有贪婪性
替你寻找的文字符号 有多少吃多少 有多少匹配多少
[[email protected] /oldboy]# grep '^.*o' oldboy.txt
I am oldboy teacher!
I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
not 4900000448.
my god,but OLDBOY!
3.9 第8个符号 []每次匹配一个字符
grep '[a-z]' oldboy.txt
grep '[A-Z]' oldboy.txt
grep '[0-9]' oldboy.txt
grep '[a-zA-Z]' oldboy.txt
grep '[a-Z]' oldboy.txt
grep -i '[a-z]' oldboy.txt
-i 不区分大小写 ignore case
1.找出oldboy.txt中以m或n开头的行
[[email protected] /oldboy]# grep '^[mn]' oldboy.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
not 4900000448.
my god,but OLDBOY!
2.找出oldboy.txt中以m或n开头并且以m或n结尾的行
[[email protected] /oldboy]# grep '^[mn]' oldboy.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
not 4900000448.
my god,but OLDBOY!
[[email protected] /oldboy]# grep '^[mn]' oldboy.txt|grep '[mn] $'
my blog is http://oldboy.blog.51cto.com
3.10 第9个符号 [^] 每次匹配一个字符,显示出除过这个字符的所有字符
[[email protected] ~]# grep '[^ab]' oldboy.tat
I am oldboy teacher!
I teach linux.
I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god,but OLDBOY!
1.排除文件中的数字和大小写字母
[[email protected] /oldboy]# grep '[0-Z]' oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball,but OLDBOY!
第4章 扩展正则表达式 (ERE Extented Regular Expression)
4.1 第10个符号 + 前一个字符连续出现1次或1次以上
[[email protected] /oldboy]# egrep '0+' oldboy.txt
my qq is 49000448
not 4900000448.
[[email protected] /oldboy]# grep -E '0+' oldboy.txt
my qq is 49000448
not 4900000448.
[[email protected] /oldboy]# grep '0\+' oldboy.txt
my qq is 49000448
not 4900000448.
[[email protected] /oldboy]# egrep '0+' oldboy.txt -o
000
00000
1.取出连续出现的小写字母
[[email protected] /oldboy]# egrep '[a-z]+' oldboy.txt
4.2 第11个符号 | 或者
[[email protected] /oldboy]# egrep 'oldboy|linux' oldboy.txt
I am oldboy teacher!
I teach linux.
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
1.先备份 /etc/ssh/sshd_config 然后 排除 文件中的#号的行或空行
[[email protected] /oldboy]# egrep -v '^$|#' /etc/ssh/sshd_config
Protocol 2
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
Subsystem sftp /usr/libexec/openssh/sftp-server
实例4-1 [^]与grep -v
[^a-z] 排除按字符 某个字符 某些字符
grep -v [a-z] 排除按行
[[email protected] /oldboy]# grep '[^a-z]' oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball,but OLDBOY!
+++++\\\\\\!!!!$$$$$$^^^
####!!!^^^^^[email protected]@@@@####
[[email protected] /oldboy]# grep -v '[a-z]' oldboy.txt
+++++\\\\\\!!!!$$$$$$^^^
####!!!^^^^^[email protected]@@@@####
4.3 第12个符号 () 表示一个整体 反向引用/后向引用
[[email protected] /oldboy]# egrep 'oldb(o|e)y' oldboy.txt
I am oldboy teacher!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my god,but OLDBOY!
反向引用/后向引用
思路:把你想要的内容保护起来 ()
sed 在 's###g' 后两个井号之间使用 \数字 引用
[[email protected] /oldboy]# echo 123456
123456
[[email protected] /oldboy]# echo '<123456>'
<123456>
[[email protected] /oldboy]# echo 123456|sed -r 's#(.*)#\1#g'
123456
[[email protected] /oldboy]# echo 123456|sed -r 's#(.*)#<\1>#g'
<123456>
[[email protected] /oldboy]# echo 123456|sed -r 's#(34)#<\1>#g'
12<34>56
[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3#g'
56
[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3\2#g'
5634
[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3\2\1#g'
563412
[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3<\2\1#g'
[[email protected] /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3<\2>\1#g'
56<34>12
4.4 第13个符号 {} 0{n,m}表示至少出现了n次,最多出现m次
[[email protected] /oldboy]# egrep '0{3,4}' oldboy.txt
my qq is 49000448
not 4900000448.
[[email protected] /oldboy]# egrep '0{3}' oldboy.txt
my qq is 49000448
not 4900000448.
[[email protected] /oldboy]# egrep '0{3,4}' oldboy.txt
my qq is 49000448
not 4900000448.
[[email protected] /oldboy]# egrep '0{3}' oldboy.txt
my qq is 49000448
not 4900000448.
取×××号码
[[email protected] /oldboy]# cat id.txt
金 211324198705244720
万 500224197105168312
任 1231231231oldboy
任 3oldboy
任 lidao97303136098
任 alex2197303136098
任 350182197303oldgir
吕 211282199209113038
孔 150000198309176071
邹 371001197412221284
贺 130185200011215926
杜 362522198711278101
向 14052219961008852X
[[email protected] /oldboy]# egrep '[0-9X]{18}' id.txt
金 211324198705244720
万 500224197105168312
吕 211282199209113038
孔 150000198309176071
邹 371001197412221284
贺 130185200011215926
杜 362522198711278101
XXXXXXXXXXXXXXXXXX
向 14052219961008852X
[[email protected] /oldboy]# egrep '[0-9]{17}[0-9X]' id.txt
金 211324198705244720
万 500224197105168312
吕 211282199209113038
孔 150000198309176071
邹 371001197412221284
贺 130185200011215926
杜 362522198711278101
向 14052219961008852X
4.5 第14个符号 ? 前一个字符连续出现0次或1次
取出网卡的ip地址
方法1
[[email protected] /oldboy]# ip a s eth0 |awk 'NR==3'|awk -F"[ /]+" '{print $3}'
10.0.0.200
[[email protected] /oldboy]#
取出ifconfig eth0 ip地址和子网掩码
[[email protected] /oldboy]# ifconfig eth0 |awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[[email protected] /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"[ :]+" '{print $4,$NF}'
10.0.0.200 255.255.255.0
方法二
[[email protected] /oldboy]# ifconfig eth0 |awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[[email protected] /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"addr:|Bcast:| Mask:" '{print $2}'
10.0.0.200
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。