一、正则表达式与通配符
正则表达式与通配符在含义上有所不同
1、正则表达式
.(小数点):代表一定有一个任意字符
*(星星号):代表重复前一个字符,0到无穷多次的意思
.* 代表零个或者任意多个任意字符
正则表达式使用的命令:grep、sed、vi、awk、
需要将正则表达式用单引号括起来
2、BASH操作环境下的通配符(wildcard)
*代表0个或者无穷多个任意字符
通配符的使用命令find ls cp 等
二、/dev/null
可以看作一个黑洞,等价于一个只写文件,所有写入进去的内容都会永远丢失,从而读取不到任何信息
三、标准输入输出 standard input output error
0 标准输入 /proc/self/fd/0
1 标准输出 /proc/self/fd/1
2 错误输出 /proc/self/fd/2
对应的操作符
代码 | 操作符 |
---|---|
0 | < 或者 << |
1 | > 或者 >> 1> 1>> 1>>中间不允许有空格 1〉与〉等价 |
2 | 2> 或者 2>> |
> | 是覆盖重定向 |
>> | 累加重定向 |
示例如下
cat file1 > file2 等价于 cat file1 1> file2
cat file1 2> file2 会将报错的内容输出到文件file2,如果没有出错会将文件内容输出到屏幕也就是标准输出
将正确和错误的数据写入到(重定向)同一个文件中
find /home -name .bashrc > list 2> list 错误
find /home -name .bashrc > list 2>&1 正确
find /home -name .bashrc &> list 正确
四、nohup与&
1、nohup 即no hang up 即不挂断运行,即忽略SIGHUP信号,当你关闭shell,退出当前session的时候,进城依旧存在,但是当你输入Ctrl+C的时候,该进程会推出,即无法忽略SIGINT信号,结果会默认输出到当前目录下的nohup.out文件中。
2、& 符号是后台运行的意思,使用该符号的时候可以忽略SIGINT 即当你输入Ctrl+C,该进程依然在运行,但是当你退出该seesion,该进程也会推出。即该方式运行的进程无法忽略SIGHUP信号,结果会输出到终端界面。
3、nohup与&一同使用,可以使程序在后台不挂断运行,可以同时免疫SIGHUP信号和SIGINT信号,
五、nohup & 重定向最佳实践方案
nohup find /home -name .bashrc &> list &
nohup find /home -name .bashrc > list 2>&1 &