我已经尝试过script
但它不起作用。
milenko@milenko-desktop:~/MTM$ script output.txt
Script started, file is output.txt
milenko@milenko-desktop:~/MTM$ wc -l output.txt
0 output.txt
由于执行 C 代码,我的屏幕上有超过 4000000 行。只是其中的一部分
4194282 0.166666 2.35285e-06 -56.2841 -137.299 -129.386 4 0.974001
4194283 0.166666 2.2536e-06 -56.4712 -129.67 -131.872 4 0.577388
4194284 0.166666 2.33943e-06 -56.3089 -131.649 -132.051 4 0.693404
4194285 0.166666 2.40782e-06 -56.1838 -139.678 -129.377 4 0.702479
4194286 0.166666 2.61584e-06 -55.8239 -125.733 -128.783 4 0.585886
4194287 0.166666 2.60877e-06 -55.8356 -129.239 -127.815 4 0.773082
4194288 0.166666 2.71129e-06 -55.6682 -129.591 -127.553 4 0.796556
4194289 0.166666 2.89225e-06 -55.3876 -125.257 -127.627 4 0.815006
4194290 0.166666 2.84658e-06 -55.4568 -129.576 -127.566 4 0.557463
4194291 0.166666 2.71516e-06 -55.662 -129.31 -128.904 4 0.797976
4194292 0.166666 2.56104e-06 -55.9158 -127.996 -128.422 4 0.895766
4194293 0.166666 2.6007e-06 -55.8491 -128.079 -129.663 4 0.503785
4194294 0.166666 2.40808e-06 -56.1833 -140.025 -128.88 4 0.857429
4194295 0.166666 2.33237e-06 -56.322 -126.524 -130.575 4 0.410364
4194296 0.166666 2.46136e-06 -56.0883 -135.197 -130.224 4 0.833398
4194297 0.166666 2.48021e-06 -56.0551 -134.945 -131.935 4 0.856674
4194298 0.166666 2.43826e-06 -56.1292 -128.865 -128.875 4 0.490521
4194299 0.166666 2.45184e-06 -56.1051 -126.444 -129.16 4 0.935146
4194300 0.166667 2.51457e-06 -55.9954 -141.302 -130.337 4 0.745215
4194301 0.166667 2.47265e-06 -56.0684 -133.622 -131.74 4 0.541706
4194302 0.166667 2.45156e-06 -56.1056 -128.236 -128.832 4 0.503959
4194303 0.166667 2.54703e-06 -55.9397 -127.012 -127.581 4 1.10325
4194304 0.166667 2.55029e-06 -55.9341 -132.414 -127.012 4 0.475155
如何保存这个?
如果我尝试 script > output.txt
Script started, file is typescript
]0;milenko@milenko-desktop: ~/MTM[01;32mmilenko@milenko-desktop[00m:[01;34m~/MTM[00m$ exit
Script done, file is typescript
我也尝试过
command | tee ~/outputfile.txt
但再一次
wc -l outputfile.txt
0 outputfile.txt
所以这不是正确的方法。
答案1
如果您使用script
命令:
script history_log.txt
然后做你想做的事,完成后输入:
exit
如果您指的是脚本的输出,则重定向标准输出:
script.sh > output.txt
>
将标准输出重定向到您想要的任何软件2>
重定向标准错误&>
重定向 stdout 和 stderr
答案2
当我需要捕获 stdout 和 stderr 时,我的小秘密是使用诺哈普。当您只对输出感兴趣而不是屏幕上的交互时,这是一个很好的解决方案。
这经典的捕获标准输出(仅)并将其显示在屏幕上的方法是使用以下命令球座
nohup script.sh | tee merged.out
如果只需要标准输出
script.sh | tee script.out
这是一个使用命令ls
而不是 script.sh 的快速示例
xx069:~ # nohup ls | tee merged.out
nohup: ignoring input and redirecting stderr to stdout
bin
inst-sys
merged.out
xx069:~ # cat merged.out
bin
inst-sys
merged.out
当然,诸如 2>&1 之类的重定向来组合 stdout 和 stderr 也是可能的。
我主要用来script
捕获屏幕上的输入和输出。当仅需要输出时,我根据需要使用>
、>>
、2>&1 >
、tee
和- 之一。tee -a
而nohup
当我懒惰的时候。
答案3
你可以试试国民健康保险。它自动捕获有关每个已执行命令(及其输出)的所有潜在有用信息。
您nhi
可以轻松检索任何 shell 会话或单个命令,就像您的情况一样。
笔记:
我是这个工具的创造者。如果您有疑问,请随时提问。