2018/11/27
我们总会遇到这样的需求,想执行命令后把输出结果保存在一个文件里面,俗称日志文件。接下来有两种方法。个人倾向第一种,比较方便。
>(输出重定向)
-
在命令后加上
>filepath
,就是相当于本来要输出到界面上的内容存到filepath这个文件里面,且若文件不存在将会被创建。 -
>
:输出重定向到一个文件或设备,相当于删除该文件并重新建立该文件,再写入的效果>!
:输出重定向到一个文件或设备,强制覆盖原来的文件>>
:输出重定向到一个文件或设备,追加原来的文件2>
:将一个标准错误输出重定向到一个文件或设备,覆盖原来的文件2>>
:将一个标准错误输出重定向到一个文件或设备,追加到原来的文件>&
:执行时屏幕上所产生的任何信息写入指定的文件中>>&
:执行时屏幕上所产生的任何信息追加指定的文件中 -
可以把内容放到
/dev/null
这个“黑洞”里面,这样屏幕不会有不想要的输出。比如2>/dev/null
。
script
可以使用script工具记录用户在当前终端的所有的操作,已经输出到屏幕的内容。将这些信息保存到指定的文本文件中。而且可以使用 scriptreplay将其录制的结果播放给他人观看。
-a 选项 ,在现有输出录制的文件的内容上追加新的内容
-c选项 ,后面可以加上需要执行的命令,而不是交互式shell上执行的命令
-r选项 , 子进程中返回退出代码
-f选项 , 如果需要在输出到日志文件的同时,也可以查看日志文件的内容,可以使用 -f 参数。PS:可以用于教学,两个命令行接-f可以实时演示
-q选项 ,可以使script命令以静默模式运行
-t选项,指明输出录制的时间数据
-V选项,输出script的版本信息,然后退出
-h选项,输出script的help信息,然后退出
- 当file为空时,操作内容将记录到当前目录中名称为typescript的文本文件中,默认会生成。
- 不为空,导入数据到指定文件里面,不存在则创建。
- 输入exit可以退出script模式。
- 理论上,我们用
script "filepath" -c "command"
就能够替代>
,但自己使用时候总是出现结果不如预期,算了还是用第一个吧。