[解决方法] linux如何将命令行的输出打印到txt文件中
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
在运行程序的时候,如果想将信息输出至txt文件中,可以使用下述几种方法:
-
如果是在本地运行程序,想运行程序后,继续在terminal做其他的事情,可以在terminal上进行下述操作:
python -u test.py > log.txt 2>&1 & # 将输出信息写到log.txt中
其中,
- 最后一个“&”表示后台运行程序
- “python”表示执行python代码
- “-u”表示不启用缓存,实时输出打印信息到日志文件(如果不加-u,则会导致日志文件不会实时刷新代码中的print函数的信息)
- “test.py”表示要执行的python的源代码文件
- “>”表示将打印信息重定向到日志文件
- “log.txt”表示输出的日志文件
- “2>&1”表示将标准错误输出转变为标准输出,可以将错误信息也输出到日志文件中(0-> stdin, 1->stdout, 2->stderr) -
如果是在远程服务器上运行的程序,将代码跑起来之后直接关闭ssh,将程序放入服务器后台执行,可以使用下述命令:
nohup python -u test.py & # 将程序放入后台运行,并将输出信息写到nohup.output中
其中,“nohup” 表示程序不被挂起,可以在ssh关闭后继续运行。执行完上面一句后,执行
exit
退出ssh即可。
可以新建run.sh文件,内容如下:#!/usr/bin/env bash nohup python -u test.py &
然后执行
./run.sh
即可,下次登入服务器时,执行cat nohup.output
即可查看程序的输出信息。 -
查看log信息
cat log.txt # 查看截止目前所有的日志内容 tail log.txt # 查看截止目前,最后10行日志 tail -f log.txt # 从最后10行开始滚动输出,准实时刷新。若想停止刷新,ctrl+c即可 tail -n 100 -f log.txt # 从最后100行开始滚动输出
-
虽然也可以直接在python文件中定义将输出写入至文件中,但是感觉比较麻烦:
f = open('log.txt', 'w') print('Hello world', file=f) f.close()
感谢下述链接的博主: 1和2的来源
GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:4 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献6条内容
所有评论(0)