在做调试的时候,需要观察终端输出的内容,有时候终端输出太多会被覆盖掉,并且直接在终端观察不太方便。将终端输出的内容保存在日志文件中,一方面可以便于查看输出内容,另一方面可以永久保存,便于回看。因此本文对相关的方法进行整理总结。
方法一
把命令运行的结果保存到文件当中:用 > 把输出转向就可以了,如
$ ls > ls.txt #或者 ls-->ls.txt #把ls命令的运行结果保存到文件ls.txt中
说明: > 是把输出转向到指定的文件,如文件已存在的话也会重新写入,文件原内容不会保留
>> 是把输出附向到文件的后面,文件原内容会保留下来
方法二
上面的方法在写入文件的时候,终端没有任何输出,如果想要同时在终端显示,需要用tee指令
$ ls | tee ls.txt #将会在终端上显示ls命令的执行结果,并把执行结果输出到ls.txt 文件中
$ ls | tee -a ls.txt #保留ls.txt文件中原来的内容,并把ls命令的执行结果添加到ls.txt文件的后面
方法三
上面的方法是写一句指令的输出,如果需要运行多条指令,还用同样的方法,就会比较麻烦,这个时候就用到了script指令
$ script
#Script. started, file is typescript
$ ls
#…… 内容省略
$ exit
#exit
#Script. done, file is typescript
我们在启动script时没有指定文件名,它会自动记录到当前目录下一个名为 typescript的文件中。也可以用 -a参数指定文件名,比如
$script. -a example.txt #终端的输出内容被记录到 example.txt这个文件中
退出script时,用exit,事实上script就是启动了一个shell