Niklas Rosencrantz Asked: 2019-10-15 02:58:00 +0800 CST2019-10-15 02:58:00 +0800 CST 2019-10-15 02:58:00 +0800 CST 如何在没有箭头键的情况下获取上一个命令[重复] 772 通常我们可以使用向上箭头键来获取上一个命令。但这并不总是有效,您可能会得到 ASCII 序列(“ ^[[A...”),但我也想知道在没有箭头键的旧键盘上是否有这个功能,它是如何工作的天? 有没有其他方法? shell 6 个回答 Voted Best Answer Philippos 2019-10-15T03:00:27+08:002019-10-15T03:00:27+08:00 在emacs模式下,Ctrl- P(上一个),其他方向是Ctrl- N(下一个) 在 vi 模式下,ESC(进入命令模式)和k上升和j下降 echo6667 2019-10-15T03:00:43+08:002019-10-15T03:00:43+08:00 您可以在 shell 中使用两个感叹号来执行此操作:!! binarym 2019-10-15T05:06:36+08:002019-10-15T05:06:36+08:00 只需输入history你最喜欢的 shell 就会触发你整个历史的转储。 您也可以尝试ctrl-r+ 键入搜索命令的第一个字符... ChatterOne 2019-10-16T06:07:26+08:002019-10-16T06:07:26+08:00 如前所述,它取决于外壳,但除了这些答案之外,还有另一种方式: 该history命令将显示如下输出: 89 bash --version 90 source /Library//Developer/CommandLineTools/usr/share/git-core/git-completion.bash 91 brew install bash-completion 92 source ~/.bashrc 然后你可以做例如 !89重新运行命令(bash --version在这种情况下) user232326 2019-10-16T10:15:56+08:002019-10-16T10:15:56+08:00 您可以在多个层中请求最后一个命令。 行编辑器 行编辑器(您在其中键入命令)由 ksh、bash 中的库 readline 和 zsh 中的库 zle 直接提供。其他 shell,如dash 可能没有编辑库来理解这些键(除非编译时--with-libedit启用了该选项)。 这适用于 ksh、bash、zsh: Ctrl- P#Emacs 模式(上一个) Ctrl- N#Emacs 模式(下一个) ESC- k #vi 模式 ESC 进入命令模式,k 向上 ESC- j #vi 模式 ESC 进入命令模式,j 向下 历史 许多shell提供的历史系统允许扩展一些快捷方式: !! # bash and zsh, may be provided by `alias \!\!='fc -e -'` in ksh. !-1 # bash and zsh only 命令 有一些命令能够检索历史命令。 就像非常冗长的命令(仅用于打印): history 2 | head -n-1 或更旧的,因此通常更便携fc的命令(直接重新执行): fc -e - -1 或者可能更简单fc -s -1,但 zsh 不接受 fc 的这种选项。 如果您只想打印命令,请使用:fc -nl -1 -1。 要进行编辑,请设置FCEDIT为文本编辑器(ex、ed、emacs、vi 等)并直接使用 fc fc -1:. Robert Riedl 2019-10-16T01:07:20+08:002019-10-16T01:07:20+08:00 取决于外壳,但这里有一些方法: !! Ctrl + P !-1 所有的一切都必须通过按下Enter
在emacs模式下,Ctrl- P(上一个),其他方向是Ctrl- N(下一个)
在 vi 模式下,ESC(进入命令模式)和k上升和j下降
您可以在 shell 中使用两个感叹号来执行此操作:
!!
只需输入
history
你最喜欢的 shell 就会触发你整个历史的转储。您也可以尝试
ctrl-r
+ 键入搜索命令的第一个字符...如前所述,它取决于外壳,但除了这些答案之外,还有另一种方式:
该
history
命令将显示如下输出:然后你可以做例如
!89
重新运行命令(bash --version
在这种情况下)您可以在多个层中请求最后一个命令。
行编辑器
行编辑器(您在其中键入命令)由 ksh、bash 中的库 readline 和 zsh 中的库 zle 直接提供。其他 shell,如dash 可能没有编辑库来理解这些键(除非编译时
--with-libedit
启用了该选项)。这适用于 ksh、bash、zsh:
Ctrl- P#Emacs 模式(上一个)
Ctrl- N#Emacs 模式(下一个)
ESC- k #vi 模式 ESC 进入命令模式,k 向上
ESC- j #vi 模式 ESC 进入命令模式,j 向下
历史
许多shell提供的历史系统允许扩展一些快捷方式:
命令
有一些命令能够检索历史命令。
就像非常冗长的命令(仅用于打印):
或更旧的,因此通常更便携
fc
的命令(直接重新执行):或者可能更简单
fc -s -1
,但 zsh 不接受 fc 的这种选项。如果您只想打印命令,请使用:
fc -nl -1 -1
。要进行编辑,请设置
FCEDIT
为文本编辑器(ex、ed、emacs、vi 等)并直接使用 fcfc -1
:.取决于外壳,但这里有一些方法:
!!
Ctrl + P
!-1
所有的一切都必须通过按下
Enter