非程序员的GNU Emacs使用心得......Shell Mode 第12集 如何从 shell 中退出来

为什么要退出来?为什么要如何退出来?为什么不能用 exit 退出来? 为什么... 没错,shell 的确是用 exit 退出来的,但是,可但是,我们说的不是这么便宜的事情。。。

 

在我们每天的工作环境里,有这样一个特色。我们会先登录到一台中央机器上去,然后在从这里登录到自己的目标机器上去。为什么要这样做呢?因为 密码,那些恼人的密码。在这个环境中,只有登录到中央机器上去,才需要输入密码。从此之后就不再需要任何密码。这是一件很重要的事情。尤其是面对大量的机器和大量的人的时候,不用记忆那些无穷无尽的密码是一件很让人开心的事情。

 

这种方式也带来了麻烦,就是结束工作之后,如何从这层层嵌套的 shell 当中优雅的退出来?

 

当然你可以对他置之不理,直接把网断了,让那些 login shell 就挂在那里,但是这种简单粗暴是非常令人不齿的。行为举止要保持优雅。所以就要一遍一遍一遍一遍的退啊退。退完一套机器,再退另一套机器。。。。。。总有一天你会觉得忍无可忍的。

很多人都有这样一个习惯,至少书上是这么写来着 ———— 当你觉得不能再忍的时候,你就会想到要写一个脚本。。。问题是这个麻烦真的可以通过脚本搞定吗?至少我是没有看到有任何的希望。不是怀疑编写脚本的能力,而是没有看到能把脚本放在那里?要把脚本放在哪台机器上面?是在中央机器?目标机器?我自己的机器?还是每一台机器?要知道在这里有无数的目标机器在不同的员工手里流转。。。维护是一件不可能的事情。

所以,我选择的方式是从 Emacs 的 Shell mode 下手,在我自己的机器上,我编写了这样一个函数,

这个函数会自动帮助我从 shell session 里面优雅地退出来。这个命令被我绑定在 C-c e 组合键上。当我需要退出多层嵌套的 shell session 的时候,只需要加上一个 prefix ,例如 C-u 3 C-c e  或者更简单的 C-3 C-c e,就可以一次退出一个 3层嵌套的 shell session。

posted on   David Young 杨博华  阅读(458)  评论(3编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
< 2010年8月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11

导航

统计

点击右上角即可分享
微信分享提示