输入/输出重定向
同标准I/O一样,Shell对于每一个进程预先定义了三个文件描述字(0,1,2)。分别对应于:
0(STDIN)标准输入
1(STDOUT)标准输出
2 (STDERR)标准错误输出
0键盘是标准输入。1,2都是屏幕上面显示的。输入输出重定向就是输入不从键盘输入,输出不从屏幕输出。梦飞科技。
>或>>输出重定向
范例:ls -l /tmp > /tmp.msg 将ls查看的结果重定向到文件里面
date >> /tmp.msg
<输出重定向
范例:wall < /etc/motd
将查看tmp下面的信息全部写入到temp.msg文件当中,
服务器租用。
如果再向这个文件里面重定向写入数据就会发现里面数据都会被覆盖了,原来的数据没有了。
>>两个符号可以将命令查询的结果追加到文件里面。
输出重定向将输出的内容放到文件里面或者终端而不是显示到屏幕上面。
这个十分重要,一个人管理十几台服务器不可能每个服务器都去敲命令,而是将服务器上面相关信息写入到文本里面最后让系统将这个文件自动发送出去。
错误输出重定向
范例:cp -R /usr /backup/usr.bak 2> /bak.error
输入重定向就是指数据不是从键盘输入是从其他地方重定向过来,比如从一个文件里面
错误重定向:
cp -R表示拷贝目录
系统下面的user这个目录特别重要 像Windows安装完以后系统盘下面有一个Windows目录,那个目录很大存放了Windows核心程序。在Linux里面user这个目录相当于windows目录,里面存放了Linux的核心程序。
[root@server ~]# cp -R /usr/ /tmp/user.bak 2> /bak.error
将user目录拷贝到其他目录下面如果出错了就将出错信息写入根目录下面的bak.error日志文件里面去。
>2是指当操作失败时将信息写入到指定的日志文件。云主机。如果命令是正确的那么什么都没有。
[root@server ~]# ls /df 2> error.log 故意将命令写错
[root@server ~]# cat error.log
ls: cannot access /df: No such file or directory
这个 2> 号用处非常大,计划任务shell脚本的时候会写很多系统自动化管理的脚本都需要加上这样的判断,否则判断不了脚本是否执行成功了。错误输出重定向可以帮助你解决这个问题。
香港服务器,国内外服务器。