Linux常用运维命令小结

1. 空设备文件以及标准输入输出

/dev/null 表示空设备文件

0 表示stdin标准输入

1 表示stdout标准输出

2 表示stderr标准错误

2>&1 这里有两种解释:将标准错误重定向到标准输出。这里标准输出已经重定向到了 /dev/null。那么标准错误也会输出到/dev/null可以把/dev/null 可以看作"黑洞".

它等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到.偶尔也可以把 & 在命令的最后加上,表示让程序后台执行。

ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1;
ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;
ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了;
ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了。


2. nohup命令

使用./后台运行程序:
结果会输出到终端
使用Ctrl + C发送SIGINT信号,程序关闭
关闭session发送SIGHUP信号,程序关闭
例如:./XXX

使用&后台运行程序:
结果会输出到终端
使用Ctrl + C发送SIGINT信号,程序免疫
关闭session发送SIGHUP信号,程序关闭
例如:./XXX &
 
使用nohup运行程序:
结果默认会输出到nohup.out
使用Ctrl + C发送SIGINT信号,程序关闭
关闭session发送SIGHUP信号,程序免疫
例如:nohup ./XXX
 
平日线上经常使用nohup和&配合来启动程序:
同时免疫SIGINT和SIGHUP信号
例如:nohup ./XXX  &

posted @ 2019-03-04 16:11  阿木木在发呆  阅读(186)  评论(0编辑  收藏  举报