实例1-1 磁盘空间不足系列:
原因 排查过程 解决
1.block df -h; du -sh /data/* 具体的文件或目录 确认之后删除
2.block lsof|grep delete 重启对应的服务
3.inode df -i; 找出系统中大于1M的目录 删除大量小文件
引号内的特殊符号会被解析
所见即所得,输入什么就输出什么
$()==``
可以使用{}
>标准输出重定向先把文件清空追加
>>标准输出追加重定向
2> 标准错误输出重定向
2>>
<标准输入重定向 xargs tr
<<标准输入追加重定向与cat配合追加多行内容
2>&1将错误和正确内容都记录到文件中
~ 当前用户家目录
.. 上一级目录
. 当前目录
- 参数 cd – su –
&& 前面命令执行成功之后在执行后一个命令
|| 前一个命令执行失败之后执行后一个命令
[root@oldboyedu50-lnb ~]# 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
目录已存在
[root@oldboyedu50-lnb ~]# ls /ooooo && echo 目录已存在
ls: cannot access /ooooo: No such file or directory
[root@oldboyedu50-lnb ~]# ls /ooooo || echo 目录不存在
ls: cannot access /ooooo: No such file or directory
目录不存在
# 注释说明 显示环静变量的配置文件 root用户的命令提示符
$ 普通用户命令提示符 awk取列
! !ls运行上一个以ls开头的命令并执行 !!运行上一个命令
| 管道符号
; 在同一行分割命令
1.以.conf结尾的文件
find / -type f -name "*.conf"
2.找出系统中文件名包含ifconfig (文件名中有ifconfig就行)
方法一:
[root@oldboyedu50-lnb ~]# find / -type f -name "ifconfig"
/sbin/ifconfig
[root@oldboyedu50-lnb ~]#
[root@oldboyedu50-lnb ~]# 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
方法二:
[root@oldboyedu50-lnb ~]# 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
{} 生成序列
[root@oldboyedu50-lnb ~]# echo stu{01..5}
stu01 stu02 stu03 stu04 stu05
[root@oldboyedu50-lnb ~]#
[root@oldboyedu50-lnb ~]#
[root@oldboyedu50-lnb ~]# echo {1,5,100}
[root@oldboyedu50-lnb ~]# echo stu{01..10}
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
[root@oldboyedu50-lnb ~]# echo stu{01..10..2}
stu01 stu03 stu05 stu07 stu09
通过 {} 进行备份
[root@oldboyedu50-lnb ~]# cp oldboy.txt{,.bak}
[root@oldboyedu50-lnb ~]# echo oldboy.txt{,.bak}
oldboy.txt oldboy.txt.bak
中文 ‘’ “” () 。 * …… ¥ | {} 【】
英文 '' "" () . * ^ $ | {} []
为grep配置别名
alias grep='grep --color'
alias egrep='egrep --color'
模拟文件
[root@oldboyedu50-lnb /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
[root@oldboyedu50-lnb /oldboy]# grep '^m' oldboy.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
my god ,i am not oldbey,but OLDBOY!
cat -A 显示文件中所有符号 每行结尾都会有个$
[root@oldboyedu50-lnb /oldboy]# grep ' $' oldboy.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
[root@oldboyedu50-lnb /oldboy]# grep '^$' oldboy.txt
[root@oldboyedu50-lnb /oldboy]# #grep '.' oldboy.txt
[root@oldboyedu50-lnb /oldboy]# grep -o '.' oldboy.txt
[root@oldboyedu50-lnb /oldboy]# grep '\.$' oldboy.txt
I teach linux.
not 4900000448.
[root@oldboyedu50-lnb /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 ,i am not oldbey,but OLDBOY! [root@oldboyedu50-lnb /oldboy]#
[root@oldboyedu50-lnb /oldboy]# grep '.*' 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!
正则中表示 连续出现或所有的时候
正则表达式有贪婪性
替你寻找的文字符号 有多少吃多少 有多少匹配多少
[root@oldboyedu50-lnb /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 ,i am not oldbey,but OLDBOY!
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开头的行
[root@oldboyedu50-lnb /oldboy]# grep '^[mn]' oldboy.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
2.找出oldboy.txt中以m或n开头并且以m或n结尾的行
[root@oldboyedu50-lnb /oldboy]# grep '^[mn]' oldboy.txt
my blog is http://oldboy.blog.51cto.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu50-lnb /oldboy]# grep '^[mn]' oldboy.txt|grep '[mn] $'
my blog is http://oldboy.blog.51cto.com
[root@oldboy50-01 ~]# 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 ,i am not oldbey,but OLDBOY!
1.排除文件中的数字和大小写字母
[root@oldboyedu50-lnb /oldboy]# grep '[0-Z]' 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!
[root@oldboyedu50-lnb /oldboy]# egrep '0+' oldboy.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu50-lnb /oldboy]# grep -E '0+' oldboy.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu50-lnb /oldboy]# grep '0\+' oldboy.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu50-lnb /oldboy]# egrep '0+' oldboy.txt -o
000
00000
1.取出连续出现的小写字母
[root@oldboyedu50-lnb /oldboy]# egrep '[a-z]+' oldboy.txt
[root@oldboyedu50-lnb /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 然后 排除 文件中的#号的行或空行
[root@oldboyedu50-lnb /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] 排除按行
[root@oldboyedu50-lnb /oldboy]# grep '[^a-z]' 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!
+++++\\\\\\!!!!$$$$$$^^^
####!!!^^^^^$$$$@@@@@####
[root@oldboyedu50-lnb /oldboy]# grep -v '[a-z]' oldboy.txt
+++++\\\\\\!!!!$$$$$$^^^
####!!!^^^^^$$$$@@@@@####
[root@oldboyedu50-lnb /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 ,i am not oldbey,but OLDBOY!
反向引用/后向引用
思路:把你想要的内容保护起来 ()
sed 在 's###g' 后两个井号之间使用 \数字 引用
[root@oldboyedu50-lnb /oldboy]# echo 123456
123456
[root@oldboyedu50-lnb /oldboy]# echo '<123456>'
<123456>
[root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(.*)#\1#g'
123456
[root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(.*)#<\1>#g'
<123456>
[root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(34)#<\1>#g'
12<34>56
[root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3#g'
56
[root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3\2#g'
5634
[root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3\2\1#g'
563412
[root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3<\2\1#g'
[root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(..)(..)(..)#\3<\2>\1#g'
56<34>12
[root@oldboyedu50-lnb /oldboy]# egrep '0{3,4}' oldboy.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu50-lnb /oldboy]# egrep '0{3}' oldboy.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu50-lnb /oldboy]# egrep '0{3,4}' oldboy.txt
my qq is 49000448
not 4900000448.
[root@oldboyedu50-lnb /oldboy]# egrep '0{3}' oldboy.txt
my qq is 49000448
not 4900000448.
取×××号码
[root@oldboyedu50-lnb /oldboy]# cat id.txt
金 211324198705244720
万 500224197105168312
任 1231231231oldboy
任 3oldboy
任 lidao97303136098
任 alex2197303136098
任 350182197303oldgir
吕 211282199209113038
孔 150000198309176071
邹 371001197412221284
贺 130185200011215926
杜 362522198711278101
向 14052219961008852X
[root@oldboyedu50-lnb /oldboy]# egrep '[0-9X]{18}' id.txt
金 211324198705244720
万 500224197105168312
吕 211282199209113038
孔 150000198309176071
邹 371001197412221284
贺 130185200011215926
杜 362522198711278101
XXXXXXXXXXXXXXXXXX
向 14052219961008852X
[root@oldboyedu50-lnb /oldboy]# egrep '[0-9]{17}[0-9X]' id.txt
金 211324198705244720
万 500224197105168312
吕 211282199209113038
孔 150000198309176071
邹 371001197412221284
贺 130185200011215926
杜 362522198711278101
向 14052219961008852X
取出网卡的ip地址
方法1
[root@oldboyedu50-lnb /oldboy]# ip a s eth0 |awk 'NR==3'|awk -F"[ /]+" '{print $3}'
10.0.0.200
[root@oldboyedu50-lnb /oldboy]#
取出ifconfig eth0 ip地址和子网掩码
[root@oldboyedu50-lnb /oldboy]# ifconfig eth0 |awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu50-lnb /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"[ :]+" '{print $4,$NF}'
10.0.0.200 255.255.255.0
方法二
[root@oldboyedu50-lnb /oldboy]# ifconfig eth0 |awk 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu50-lnb /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"addr:|Bcast:| Mask:" '{print $2}'
10.0.0.200
原文:http://blog.51cto.com/13858927/2153213