vi $(locate php.ini)
Примечание: это будет иметь проблемы, если Ваши пути к файлам будут иметь пробелы, но это функционально эквивалентно Вашей команде.
Эта следующая версия правильно обработает пробелы, но немного более сложна (новые строки в именах файлов все еще повредят ее хотя),
(IFS=$'\n'; vi $(locate php.ini))
Объяснение:
То, что происходит, - то, что программы наследовали свои дескрипторы файлов от процесса, который породил их. xargs
имеет его STDIN, подключенный к STDOUT locate
, так vi
не имеет никакой подсказки что исходный STDIN действительно в.
Это печатает утверждение и добавляет его в историю, но на самом деле не выполняет его. Затем я делаю стрелку вверх и изменяю ее по желанию.
Я комбинирую это с моим [1129163]hg[1129164] псевдонимом ([1129165]псевдоним hg='history | grep '[1129166]), чтобы вспомнить команды истории, основанные на некотором тексте.
crontab -e
Пример:
Я использую это в дополнение к [1129167]ctrl[1129168]-[1129169]r[1129170] (поиск по обратной истории), потому что иногда я предпочитаю видеть немедленный список всех возможностей данной строки, а не просто вывод на 1 строке, который [1129171]ctrl[1129172]-[1129173]r[1129174] показывает. После [1129175]hg [string][1129176] я бы сделал [1129177]![номер строки] search_string[1129178], как в [1129179]hg checkout[1129180], показанном выше.[1128713].
Если Вы устанавливаете histverify
опция, например.
shopt -s histverify
затем все замены истории подняты для редактирования вместо того, чтобы быть сразу выполненными. Необходимо было бы затем нажать Enter дважды вместо однажды после ввода !755
выполнить команду.
Можно продвинуть произвольный текст на список предыстории с history -s
. Объедините это с fc -nl
перечислять определенную запись истории.
history -s "$(fc -nl 755 755)"
затем нажмите Up для вспоминания то, что является теперь последней записью истории.
Можно искать назад через историю с помощью Ctrl+R. Если запись истории является долгим использованием мышь (не клавиатура, которая останавливается, поиск), чтобы скопировать и вставить часть команды для редактирования въезжают задним ходом.
Как @rijsg прокомментировал, можно затем использовать (левые и правые) стрелки или эквивалентные ключи, чтобы остановить поиск и начать редактировать.
Ctrl-a
например), остановит поиск, оставляя текущую запись истории в командной строке, не выполняя его. Это может или не может быть достаточно, в зависимости от того, что хочет @Michael.
– njsg
08.12.2013, 21:03
Если вы сконфигурируете свой файл .bashrc для использования редактора vi в командной строке, это значительно упростит редактирование командной строки.
1-й, как только "set -o vi" включен, вы можете просто нажать "
ПРИМЕЧАНИЕ: при использовании vi существует два режима: команда и редактирование. для входа в командный режим нажмите ESCAPE KEY ONCE, затем a, A, i, I и т. Д., Чтобы вставлять.
Простая панель управления курсором в vi: left = h, down = j, up = k, right = l http://linuxmeister.net/vi/vi-Summary.jpg
I ' Мы добавили все записи, необходимые для этой работы, по адресу: http://linuxmeister.net/Notes/bashrc-simple.html
Итак, основываясь на очень полезной информации выше, {{ 1}} Я смог использовать «историю» и ВЫЗЫВАТЬ строку из «истории» БЕЗ выполнения ее. (СПАСИБО ЗА ЗАПИСЬ!)
если в списке есть магазин и histverify отключен a! будет ВЫПОЛНЯЕТСЯ немедленно,
если вы добавили в свой .bashrc или набрали: shopt -s histverify , затем a! позволяет редактировать, например:
history
1 more .bashrc
2 history
3 shopt
4 . ./.bashrc
5 shopt | grep hist
6 history
7 alias
8 history
9 shopt
10 history
->! 5
shopt | grep hist
cmdhist on
histappend on
histreedit off
histverify on
lithist off
Помните, что Линус и Ричард создали инструменты Linux и GNU , чтобы использовать преимущества UNIX. Редактор vi (созданный Биллом Джоем) - один из лучших инструментов для освоения, поскольку он есть в КАЖДОМ дистрибутиве UNIX и Linux.
Все остальные редакторы командной строки должны быть загружены, и требуется дополнительное программное обеспечение. Использование графического интерфейса в Linux (кроме Firefox, Thunderbird и OpenOffice) похоже на буксировку вашего Diesel 4x4 с VW Beetle 1968 года ... это будет работать, но в этом нет никакого смысла.
Помните, что Керниган сказал о графическом интерфейсе пользователя: «То, что вы видите, - это все, что вы получаете».
echo !number
, затем нажмите стрелку -, удалите слово echo
и отредактируйте остальное; нажмите Enter, чтобы выполнить.