补充:命令
输出重定向
标准输出:是将信息输出在终端
标准错误输出:在执行命令的过程中所产生错误信息也是输出在终端
标准输入:从键盘输入
1、标准输入重定向
作用:将本来要显示在终端上的信息重定向到一个文件夹中
实现方法
>:将文件中原有的内容全部删除,然后进行写入
>>:在文件的原有内容后,追加新的内容
2、标准错误错误输出重定向
2>:将文件中原有的内容全部删除,然后进行写入
2>>在文件的原有内容后,追加新的内容
例:将正确和错误的信息都保存到同一个文件中
ls /root /raat &> 1.txt
通配符
1、*:任意长度的任意字符
例:删除以a开头的文件
rm -rf a*
2、?:一个长度的任意字符
例:删除文件名第二个是a的文件
rm -rf ?a
3、;(分号):用于链接多个命令
例:cd /tmp;cd ~;ls /
4、&&:只有前面的命令执行成功,后面的命令才会执行
例:cd ~ && ls
5、||:只有前面的命令执行失败,才会执行后面的命令
例:cd /toit || ls
6、#:注释行(描述信息,不执行)
7、|:管道符,将前面的命令执行结果,传递到后面
8、~:root的家目录
9、-:上一次所在的目录
例:cd - 》返回上一次所在目录
10、$:变量前加的符号
11、/:表示根或分隔符
12、>、>>:重定向
13、<<:用于打印菜单
例:
cat << EOF
> 1
> 2
> 3
> EOF
14、引号
" ":强引用,引用中的变量会变成变量的值
' ':弱引用,引用的内容原样输出
` `:命令替换
15、.(点):表示当前目录
..:表示上一级目录
16、{}:花括号展开
用法:创建1-10.dir目录
mkdir {1..10}.dir
正则表达式
构成:一堆特殊符号和字母构成----叫做元字符
作用:通过对文本中内容进行过滤,然后对文件中的内容进行过滤
正则表达式的种类
基础正则表达式
扩展正则表达式
通常结合三个命令来使用
grep
sed
awk
命令:grep
作用:对文件的内容进行过滤
格式:grep 选项 "匹配内容" 文件名
选项
-v:取反
-o:仅仅显示所匹配的内容
-E:使用扩展
-i:忽略大小写
正则和通配符的区别
通配符是对文件名进行匹配,正则表达式是对文件中的内容进行匹配
正则中元字符
1、匹配单个字符
.(点):表示任意一个字符(可以是空格、逗号、数字...)
例:匹配a前面有一个字符的行
grep ".a" 文件名
2、[ ]:表示范围内中的其中一个
[12345]:匹配1或2或3或4或5
[0-9]:匹配所有的数字
[a-z]:匹配所有的小写字母
[A-Z]:匹配所有的大写字母
[a-Z]:匹配所有的字母(不分大小写)
3、用字符集的方式表达
[[:space:]]:表示一个空格
[[:digit:]]:表示任意一个数字
[[:lower:]]:表示任意一个小写字母
[[:upper:]]:表示任意一个大写字母
[[:alnum:]]:表示任意一个字母+数字
[[:punct:]]:表示任意一个标点符号
4、^[]
例:匹配以a开头的行
grep "^[a]" 文件名
grep "^a" 文件名
例:匹配除a之外的任意字符
grep "[^a]" 文件名
5、显示匹配到的内容前的若干行
-An:显示匹配到的内容的后n行
-Bn:显示匹配到的内容的前n行
-Cn:显示匹配到的内容的前后各n行
例:匹配包含root的行前3行
grep -B3 "root" 文件名
6、次数匹配
*:前面字符出现了任意次数
例:过滤文件中开头第一个字符为a的行
grep "a*" 文件名
.*:表示任意长度的任意字符
例:过滤文件中以a开头,b结尾
grep "a.*b" 文件名
?:表示其前面的字符出现一次
a\{m,n\}b:b前面的a出现m次,最多n次
7、位置锚定
^n:表示以n开头的行
$n:表示以n结尾的行
\<n:表示单词首部
n\>:表示单词尾部
^$:表示空白行
8、分组
\( \):将一个内容当作一个整体看待
例:过滤出出现两个相同数字的行
grep "\([[:digit:]]\).*\1" 文件名
扩展正则表达式
基础正则:grep [选项] 匹配内容 文件名
扩展:
grep -E 匹配内容 文件名
egrep 匹配内容 文件名
{1, }等同+:其前面的字符至少出现过1次