linux中如何回到终端命令行

那么Linux系统,命令行终端,你看哪里呢?具体场景和活动也各不相同。

让我们从图形界面返回到终端。
您使用 GNOME 或 KDE 安装 Linux 系统。
Ctrl+Alt+T,这样按一下,哦,会出现一个新的终端窗口。
我这里使用 Ubuntu,安装于 2 02 2 年,这个技巧总是有效。
例如,您编写了一个脚本并对其进行了调试,但图形界面卡住并停止运行。
你应该做什么? Ctrl+Alt+T,哦,终端打开了。
然后使用top命令查看哪个进程占用CPU过多并杀死它。
我在这里尝试过,有效。

我们来谈谈从终端运行的程序以及如何返回命令行。
如果它是图形程序,例如浏览器或编辑器,只需单击窗口上的叉号并将其关闭。
简单的。
如果它是文本模式程序怎么办?例如,在 Vim 编辑器中,您必须输入:q,保存并退出。
如果您很着急并且不想保存,只需:q!被迫放弃。
上次我在这里改了配置文件,忘记保存了。
Ctrl + Z 挂断。
然后我回到车站说:q!,快点。
对于任何其他 Python 解释器,键入 exit() 或按 Ctrl+D,会话将结束。

还有像Screen/Tmux这样的多任务管理工具。
屏幕上,要退出当前会话,只需键入 exit。
或者按 Ctrl+A 并输入 :quit。
要恢复会话,请使用 screen -r,后跟会话 ID。
对于我的远程服务器管理任务,Screen 非常棒。
上次网络突然断了。
我很快就断开了连接。
过了一会儿,网络恢复了。
我运行 screen -r ,之前的工作仍然存在。
Tmux 类似。
要退出会话,请键入 exit 或按 Ctrl+B,然后键入:kill-session。
要恢复会话,请使用 tmux Attach -t,后跟会话名称。
我这里使用Tmux,发现它比Screen更灵活。

最严重的情况下,系统完全失效,根本不响应。
唯一的选择是进行硬重启。
但重启后,所有进程都会中断。
因此,请记住在重新启动之前保存您的工作。
我曾经在这里输过钱。
我忘记保存文件并硬重启。
结果,我所做的所有更改都消失了。
当时我很困惑。

在图形界面中记住 Ctrl+Alt+T 很重要。
程序出口和图形点与文本不同。
Screen/Tmux、会话可以恢复。
最后的手段是在重新启动之前保存数据。
就是这样。

linux之怎么停止正在执行的脚本

说实话,我之前在Linux下查杀失控脚本的时候也遇到过麻烦。
Ctrl+C其实是最方便的方法,但是如果用在错误的地方,就会闹出笑话。

就说上次在数据中心的时候,手一抖,按了Ctrl+C,监控脚本就被杀掉了。
那时,系统管理员只是翻了个白眼 - 挂在后台的批处理脚本根本没有在前端终端中运行。
这时我才知道Ctrl+C这个伎俩有一个大前提:必须有一个你在前台手动运行的脚本,并且你有权限杀死它。
如果使用nohup后台启动脚本,Ctrl+C根本不起作用。

后来我断定,后台脚本必须使用kill命令。
我记得有一次当我测试数据库备份脚本时,它卡在了某个步骤。
我运行命令行并首先使用 ps aux | grep backup.sh 查找 PID。
这串数字看上去就像是一串乱码,但却至关重要。
我第一次杀死它时,脚本就优雅地结束了。
如果它还不肯撤退,我就咬牙用杀-9 感觉就像用锤子敲钉子一样,很硬。
但在我使用kill -9 之前,我不得不嘀咕:如果数据被破坏了,会发生什么?所以现在我习惯使用kill先发送一个SIGTERM信号,给进程几分钟的喘息时间。

有趣的是,有些脚本特别难。
我曾经设置过一个计划任务,并使用 crontab + & 使其在后台运行,但它从未完成。
我尝试杀死 1 2 3 4 5 ,我尝试杀死 -9 1 2 3 4 5 ,这就像一个保持咒语。
查了资料,发现这个产品可以用systemd启动。
在这种情况下,ps 命令无法判断它在哪里。
最后我可以使用 systemctl stop 命令来解决问题。

我记得数据是大约十年前的。
当时kill命令用得不多,但现在可能更复杂了。
但这个过程——先用ps找到PID,然后用kill发送信号——基本保持不变。
只不过现在docker和kubernetes用的比较多,但是直接杀掉的进程比较少。
但如果你了解了这些底层操作,万一有一天容器跑了,你一定知道如何从根源上解决问题吧?

linux终端中输入sh命令后无法退出,求教怎么退出sh

直接从高速公路出口驶出。
键盘快捷键 Ctrl+D 也可以使用。

使用Ctrl+C中断脚本,但要小心:脚本可能已经处理了中断。

自己掂量一下。