Linux系统将执行程序或者文件输出到指定文件中

Linux系统将执行程序或者文件输出到指定文件中

1、使用标准输出以及重定向

例如:echo “123” > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件.*

find / -name 123.log > file 2>&1
###将执行结果标准输出与错误输出同时记录到文件“file”中

2、使用命令tee追加文件

从标准输入读取内容并将其写到标准输出和文件中
列如: ls /root |tee file

使用 tee 时,如果想保留目标文件原有的内容,可以使用 -a 参数,附加至给出的文件,而不是覆盖它。
如果同时输出到多个文件直接跟文件名字即可

ping baidu.com | tee -i ping.log
-i参数能够让tee忽略中断事件(SIGINT)

3、script 命令
script这个命令很强大,可以记录终端的所有输出到相应的文件中
若不能使用是不是没下载包的节奏聂

[storage@hxbank2 service]$ script
Script started, file is typescript
[storage@hxbank2 service]$ ll
总用量 68
-rw-r–r--. 1 storage storage 256 9月 10 14:53 startSrmDB.sh
-rw-r–r--. 1 storage storage 140 9月 10 14:53 startSupervisord.sh
-rw-r–r--. 1 storage storage 401 9月 10 14:53 startTomcat.sh
-rw-r–r--. 1 storage storage 139 9月 10 14:53 stopSupervisord.sh
-rw-rw-r–. 1 storage storage 0 11月 25 16:21 typescript
[storage@hxbank2 service]$ exit
exit
Script done, file is typescript

[storage@hxbank2 service]$ cat typescript
脚本启动于 2019年11月25日 星期一 16时21分57秒
[storage@hxbank2 service]$ ll
总用量 68
-rw-r–r--. 1 storage storage 256 9月 10 14:53 startSrmDB.sh
-rw-r–r--. 1 storage storage 140 9月 10 14:53 startSupervisord.sh
-rw-r–r--. 1 storage storage 401 9月 10 14:53 startTomcat.sh
-rw-r–r--. 1 storage storage 139 9月 10 14:53 stopSupervisord.sh
-rw-rw-r–. 1 storage storage 0 11月 25 16:21 typescript
[storage@hxbank2 service]$ exit
exit
Script done on 2019年11月25日 星期一 16时22分05秒

-a参数 指定文件名;若不指定则使用默认的输出文件名typescript

4、Linux中nohup的用法
nohup 后跟命令 ,会将此命令的标准输出指定到noput.out文件中,此文件就在当前目录中产生。
因此此命令多用于对脚本或者程序后台执行的时,将启动脚本的“标准输出“记录到相应的文件中。
使用了解到此命令不可实现错误输出,只能识别标准输出

[root@hxbank2 service]# nohup pwd
nohup: 忽略输入并把输出追加到"nohup.out"
[root@hxbank2 service]# cat nohup.out
/StoragePlus/app/service
[root@hxbank2 service]# nohup whoami
nohup: 忽略输入并把输出追加到"nohup.out"
[root@hxbank2 service]# cat nohup.out
/StoragePlus/app/service
root
[root@hxbank2 service]# nohup saassss
nohup: 忽略输入并把输出追加到"nohup.out"
nohup: 无法运行命令"saassss": 没有那个文件或目录
[root@hxbank2 service]# cat nohup.out
/StoragePlus/app/service
root
最后查看nohup.out文件发现错误处命令并没有的记录到文件中

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

nohup command > myout.file 2>&1 &

你可能感兴趣的:(Linux系统将执行程序或者文件输出到指定文件中)