在检查某些内容时记住半输入的命令

在检查某些内容时记住半输入的命令

我经常发现自己处于以下位置:我开始在 bash 提示符下输入一个长命令,但在中途我发现我需要使用另一个命令检查某些内容。当我在控制台(没有 X)时这是一个问题,这是经常发生的情况,因为那时我只有以下我所知道的令人不满意的方法来做到这一点:

  • 点击ctrl++altF2登录另一个虚拟控制台,找出我想要的内容,然后返回并继续
  • ctrl+ a,输入 echo + space+ enter,找出我想要的内容,按直到找到我的命令,ctrl+ adelx 5,ctrl+ e,然后继续
  • 突出显示到目前为止我用鼠标输入的内容(如果 gpm 正在运行,通常是这样),按ctrl+c中断,找出我想要的内容,同时小心不要使用鼠标突出显示内容,然后按鼠标中键出现新提示并继续
  • 向命令行大神祈祷,写了一半的命令不会有任何不良影响,只是失败,小心翼翼地按回车键,然后找出我想要的内容,按向上箭头,直到我得到我的命令,然后继续
  • 跳进我的时间机器,回到过去并提醒自己在开始输入命令之前启动屏幕,回到现在,按ctrl+ a c,找出我想要的内容,按ctrl+ a ctrl+a,然后继续

所以我想知道的是,是否有一些更优雅的方法来做到这一点?某种子 shell 命令或类似命令?

我最感兴趣的是不需要任何准备或设置即可工作的方法。

答案1

更快的版本亚历克斯的 Ctrl+ A Ctrl+ K(移动到行的前面,然后向前剪切所有内容)就是使用Ctrl+ U,它在 bash 上向后剪切,在 zsh 上使用整个行(无论当前位置如何)。然后你用Ctrl+Y再次粘贴

答案2

执行 ctrl-A 到达行首,添加哈希值并按回车键 - 这样它将作为注释保留在命令历史记录中,您可以通过向上光标返回到它

编辑:刚刚注意到这是你的#2 的一个稍微更优雅的变体;)

答案3

点击Ctrl+A,Ctrl+K移动到行首并删除(删除)到行尾。然后进行研究,准备好继续点击Ctrl+Y(猛拉)以恢复已保存(已杀死)的线路。

答案4

在 bash 中,只需输入Alt+ #

然后,当您准备好后,UpAlt+ #

第一个#在行的开头放置 a 以将其转换为注释,然后接受该行,就像您按下了一样Enter

然后,当您第二次执行此操作时,它会发现该行在#开头已经有一个,因此它将删除它并接受它,再次为您保存密钥Enter

如果第二次只是插入另一个#,那么您必须输入Alt++ 。- Alt#

你可以通过输入让 zsh 做同样的事情

bindkey -M emacs '\e#' pound-insert

在你的 ~/.zshrc 中。

或者,如果您使用 vi 绑定,则可以#在 bash 和 zsh 中从命令模式键入。

相关内容