Например:
[root@ip-10-0-7-125 ~]# history | grep free
594 free -m
634 free -m | xargs | awk '{print "free/total memory" $17 " / " $ 8}'
635 free -m
636 free -m | xargs | awk '{print "free/total memory" $9 " / " $ 10}'
736 df -h | xargs | awk '{print "free/total disk: " $11 " / " $9}'
740 df -h | xargs | awk '{print "free/total disk: " $11 " / " $8}'
741 free -m | xargs | awk '{print "free/total memory: " $17 " / " $8 " MB"}'
Мне просто интересно, есть ли способ выполнить команду 636 без ее повторного ввода, просто введите что-нибудь плюс число, например, историю 636 или что-то в этом роде.
bash
command-history
Тот самый
источник
источник
ctrl-r
?Ответы:
В bash просто
!636
все будет хорошо.источник
In Linux
- Это больше относится к оболочке (bash, zsh и т. Д.), В которой работает человек, а не ОС, в которой он запущен. В Linux есть оболочки без поддержки истории.:p
команду напечатать,!636:p
например, без ее запуска . Это означает, что вы можете легко выбрать его снова из своей истории, нажав стрелку вверх и внести незначительные изменения, которые вы хотитеДа, это называется «расширение истории». Видеть
для полной информации.
Использование восклицательного знака с последующим числом, возможно, является самым простым:
Однако вы также можете запустить последнюю выполненную команду напрямую, не зная ее номера истории:
Или вы можете запустить две команды назад:
Однако чаще всего я использую форму для повторения последнего аргумента последней команды:
Или, скажем, я проверяю файл. Используя завершение вкладки, я мог бы сделать следующее:
Снова, прочитайте справочную страницу для более подробной информации:
источник
Alt-.
может быть удобнее, чем!$
. Он вставляет последний аргумент последней команды дословно в строку.!$
, но никогда не слышалAlt-.
)? Вы разместите ссылку на него, пожалуйста?LESS="+/DEFAULT KEY BINDINGS" man 3 readline
,/etc/inputrc
,~/.inputrc
. Многие программы, кроме bash, используют libreadline; для тех , кто это делает, вы получите ту же функцию , такие какAlt-.
,Ctrl-X-U
(отменить),Ctrl-/
(опишите ярлык), закладка-завершение и т.д. - бесплатно. Например, всего с тремя строками вPYTHONSTARTUP
одной можно включить завершение табуляции и историю в стандартном питоне REPL . Который будет работать (в основном) так же, как в bash, поскольку эту работу выполняет библиотека GNU Readline. На странице readline подробно описаны функции.echo {1..5}
следуетtouch !$
коснуться пяти файлов, а не только одного. Строго говоря, это не последний аргумент, а последнее слово оболочки в этой строке. (Также попробуйтеecho hello >temp
следоватьecho goodbye !$
.) Если вы можете придумать способ сделать его более четким, не стесняйтесь предложить редактирование.Хороший, если вы не хотите в первую историю, запишите номер и т.д .:
в Bash (и, возможно, другие):
(
ctrl-r
= "Обратный поиск в интерактивном режиме") (something
= часть предыдущей команды)Это покажет вам последнюю строку истории, содержащую
something
. Чтобы получить предыдущий, снова выполните ctrl-r (один), каждый раз, когда он получает предыдущую строку.например:
чтобы показать последнюю строку истории, содержащую '10' (например, строку с
$10
, в вашем примере), иctrl-r
снова, пока вы не получите строку истории, которую вы искалиКогда линия вы хотите появиться, просто
Enter
запустить его (или вы можете изменить его, используяarrow keys
,backspace
иctrl-a
идти в начале строки,ctrl-e
чтобы добраться до конца,ctrl-k
: «убить» от курсора до конца строки (= удаляет + сохраняет его в буфере)ctrl-y
,: восстановить из буфера ранее уничтоженный бит и т. д.)Если вы хотите искать вперед (ctrl-s), вам сначала нужно отключить XON : см. Https://stackoverflow.com/a/791800/1841533 :
«просто отключить XON / XOFF, запустив
"(и тогда вы сможете использовать Ctrl-S, не заставляя его заморозить терминал)
источник
Вы можете использовать встроенную оболочку fc :
источник
-s
чтобы получить преимущества. Если вы запустите,fc 636
вы откроете редактор с командой 636 из вашей истории в буфере, и когда вы сохраните и выйдете, команда (измененная или нет) будет запущена. И даже лучше, этот POSIX-совместимый .help
- это не POSIX - возможно, придется сделатьman dash
или подобноеhelp
существует. Еще одна встроенная оболочка. И загадка для неосторожных пользователей, которые могут захотеть помочь с новой системой, но вместо этого сталкиваются с потоком тарабарщины. :-(Есть
HSTR
-hh
команда дляbash
иzsh
интерактивного выбора команды, лучше чем Ctrl-R обратный поиск:он интерактивен, так что вы можете искать и редактировать команду перед ее выполнением.
В Ubuntu вы можете установить
hh
со следующей однострочной:или шаг за шагом:
Установить
hh
на Fedora, RHEL или CentOS:В macOS с
homebrew
:... затем настройте его:
Это заменит поведение по умолчанию Ctrl-R.
Запустите,
hh --show-configuration
чтобы определить, что будет добавлено в ваш профиль Bash.Дополнительные параметры конфигурации доступны на домашней странице проекта на Github: https://github.com/dvorka/hstr.
источник