Есть несколько слоев, в которых вы можете запросить последнюю команду.
Линейный редактор
Редактор строк (где вы вводите свои команды) предоставляется непосредственно ksh, библиотекой readline в bash и библиотекой zle в zsh. Другие оболочки, такие как dash, могут не иметь библиотеки редактирования для понимания этих ключей (если они не скомпилированы с --with-libedit
включенной опцией).
Эта работа в ksh, bash, zsh:
Ctrl- P# Режим Emacs (предыдущий)
Ctrl- N# Режим Emacs (следующий)
ESC- k # Режим vi ESC для перехода в командный режим и k для перехода в верхнее положение
ESC- j # vi Режим ESC для перехода в командный режим и j для перехода в нижнее положение
история
Система истории, предоставляемая многими оболочками, позволяет расширить некоторые ярлыки:
!! # 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
в текстовом редакторе (напр Е.Д. Emacs, VI, и т.д.) и использовать FC непосредственно: fc -1
.