系统正则符号概念
系统基础符号
基础符号系列:
a 表示注释信息
b 表示登录用户信息 (root用户登录 提示符#)
$
a 表示登录用户信息 (普通用户登录 提示符$)
b 表示调取变量信息 $oldboy
c 表示调取列信息 awk ‘{print $1}’ /oldboy/oldboy.txt
!
a 表示强制意思 :wq! :q!
b 表示取反操作 find /oldboy -type f ! -path /oldboy/oldboy01*/
c 用于调取历史命令 !历史命令信息
|
将前一个命令执行的结果,交给后面命令处理
引号符号系列:
’ ’
单引号: 所见即所得
" "
双引号: 会将部分符号信息做解析处理
没引号
和双引号功能类似 识别序列信息
``
反引号: 等价于$() 将命令执行的结果交给外面的命令处理
路径符号系列:
~
快速切换到用户家目录 cd ~/cd
快速切换到上一次所在路径 cd -/cd $OLDPWD
.
切换到当前所在路径 cd .
…
切换到一级所在路径 cd … / cd …/…/
定向符号系列:
1>/> : 标准输出重定向
1>>/>> : 标准输出追加重定向
2> : 错误输出重定向
2>> : 错误输出追加重定向
错误和正确信息统一放置在一个文件:
echo oldboy >>/oldboy/ok.log 2>&1
echo oldboy &>>/oldboy/ok.log
< : 标准输入重定向
tr ‘a-z’ ‘A-Z’ </oldboy/oldboy.txt
xargs -n2 </oldboy/oldboy.txt
<< : 标准输入追加重定向
cat >>/oldboy.txt<<EOF
逻辑符号系列:
&&: 表示前一个命令执行成功,再执行后面命令
mkdir /oldboy && touch /oldboy/oldboy01.txt
||: 表示前一个命令执行失败,在执行后面命令
rmx /oldboy || touch /oldboy/oldboy02.txt
; 多个命令同时执行
系统通配符号:
- — 匹配所有内容
ls -l /oldboy/.txt — 匹配以.txt结尾信息进行详细显示
rm -rf /oldboy/ — 删除oldboy目录中所有信息, 但是默认无法删除隐藏文件
rm -f /oldboy/.old*.txt — 删除以old开头 .txt结尾的所有隐藏文件
find /oldboy -name “.txt"
find /oldboy -name "oldboy”
find /oldboy -name “old*.txt”
{} — 匹配序列信息
数字序列: — {1…9}
字母序列: — {a…z}
组合序列: —{1,4}{a,c}
快速备份数据
cp /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt{,.bak}
cp /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt.bak
快速还原数据
cp /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt{.bak,}
cp /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt.bak /oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy.txt
cp messages{-20190707,}
系统正则符号: (适用于grep sed awk)
基础正则: (basic regular expression) BRE
^ — 以什么开头的信息
# ll /etc/|grep “^d”
drwxr-xr-x. 3 root root 101 Jul 3 20:25 abrt
drwxr-xr-x. 2 root root 252 Jul 17 18:13 alternatives
drwxr-x—. 3 root root 43 Jul 3 20:26 audis
$ — 以什么结尾的信息
# grep ‘d$’ /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
注意: 如果结尾有空格信息, 过滤是会出现异常
利用底行模式:set list 可以查看结尾空格信息
利用命令查看:cat -A /etc/selinux/config
问题: 将以点结尾的信息过滤出来:
grep ‘.$’ /etc/selinux/config
\ (不属于正则) — 转义符号
将有特殊意义的符号, 还原本身符号意义
将没有意义的字符,变为有意义
\r \n — 换行符
[root@oldboyedu ~]# echo -e “oldboy01\noldboy02” >oldboy.txt
[root@oldboyedu ~]# cat oldboy.txt
oldboy01
oldboy02
\t — 指表符
取消别名功能
4.可以将扩展正则转换为普通正则
[root@oldboyedu ~]# echo “100000 oldboy”|egrep “[0-9]+”
100000 oldboy
[root@oldboyedu ~]# echo “100000 oldboy”|grep “[0-9]+”
100000 oldboy
^$ — 空行信息
grep -v “^