假设我想运行一个 Java 程序,那么我会输入
java myProgram
然后假设它在屏幕上打印了一些输出,但需要几个小时才能完成运行。如果我想在运行时继续在同一个终端上工作,我应该使用什么命令?我最后尝试了 &,但似乎不起作用。
答案1
只需在命令后面添加一个&
。这将使命令在后台运行。
请注意,您仍然会获得它的输出,因此您可能希望将输出重定向到/dev/null
或重定向到某个配置文件。
例如,为了重定向 stdout 和 stderr:
java myProgram > /dev/null 2>&1 &
答案2
由于程序运行时间很长,您可能需要考虑使用屏幕。您可以运行该程序,然后使用 Control-a Control-c 启动另一个命令提示符。您可以根据需要多次执行此操作,并同时处理多项任务。此外,即使您注销然后稍后重新登录(只是不要关闭),您也可以重新连接到屏幕并查看其运行情况。执行“man screen”获取信息。
还有 tmux,它是一个类似的工具,但您需要安装它。
答案3
我认为屏幕最能回答您的具体问题,但听起来您的工作流程从使用标签中受益最多。
要在终端中打开新选项卡,请选择终端并按Ctrl+T,您可以通过按Ctrl+PgUp或者Ctrl+PgDown在它们之间切换。
这很快就变得直观,并且最终变得高效,因为您可以在选项卡之间快速切换以检查长时间运行的程序,或者在忙于处理长时间任务的选项卡时快速生成更多选项卡。