shell--小结1

文章介绍了正则表达式的特殊字符如.*和通配符*的区别,并阐述了/dev/null作为数据黑洞的作用。此外,详细说明了标准输入输出(0,1,2)以及重定向操作,包括错误和正常输出的合并。最后讨论了nohup和&符号在后台运行进程中的功能,以及如何结合使用它们来确保进程在会话关闭后继续运行并忽略特定信号。
摘要由CSDN通过智能技术生成

一、正则表达式与通配符

正则表达式与通配符在含义上有所不同

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〉与〉等价
22> 或者 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 &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值