如何在终端中“完成”命令?

如何在终端中“完成”命令?

当我运行命令并想退出时,我只需按Ctrl+C即可。但有时这不起作用,执行另一个命令的唯一方法是关闭终端并打开一个新终端。我想知道如何强制退出。例如,当我运行:

git log 

它开始报告所有提交,如果我按下ESC或,我可以看到底部的END字样END和,但如果我按下它们,则什么也不会发生。那么,这是什么意思?完成任何命令的方式是什么?ESC

答案1

git log示例中,只需按下该q键。Q 退出当前操作。Q 也适用于more命令和其他命令。

答案2

这取决于正在运行的进程是否遵守给出的特定信号。例如,在 Linux 系统上,“ctrl + c”会给出 SIGINT。您也可以尝试“ctrl + z”来查看它是否遵守 SIGTSTP。但这实际上不会终止进程,因此之后如果您想结束它,您必须找到作业 ID 并终止它。默认命令kill发送 SIGTERM,而kill -9发送 SIGKILL。当然,对于 kill 命令,您需要打开一个新终端并确定要终止的进程 ID。最后,没有“灵丹妙药”。SIGKILL 通常被认为是“最强的”,但它也是最严厉的,并且仅推荐作为最后的手段,因为它不允许进程正常终止。以下是更完整的信号列表的链接:

https://en.wikipedia.org/wiki/Unix_signal

如果项目不能正确处理某些信号,很多项目都会认为这是一个错误。因此,始终可以选择向未确认“ctrl + c”的项目记录错误,然后查看他们是否会修复它以按预期方式处理 SIGINT。

相关内容