Intereting Posts
В localhost он по-прежнему показывает самую низкую версию, используя Ubuntu Не удается получить доступ с ubuntu до дисков Windows 8, которые устанавливаются рядом с ним После обновления до Ubuntu 13.04, следует ли использовать драйвер NVIDIA 310 или изменить его на драйвер 313? единство не запускается после загрузки Уменьшить время ожидания GRUB Не удалось установить java 8 на Ubuntu 14.04 32 бит сценарий оболочки для перезапуска сетевого менеджера – не с терминала 13.04 Пакеты не могут быть аутентифицированы Установите MOTD для пользователей или групп в SSH Как установить приложения $ 0 из Ubuntu Software Center с помощью apt-get? Что контролирует поведение apport для сохранения основных дампов? 12.10 видеокарта Драйвер: <Пусто> Опыт: ограниченный Безопасно ли спящий компьютер при обновлении программного обеспечения? Цветная печать принтера Canon слишком темная Как удалить виртуальный виджет Google из Ubuntu 16.04?

Поиск старой команды в истории оболочки

Как я могу найти старую команду, которую я запускал в своем терминале?

Я использовал команду appengine и хотел бы просто найти ее в своей локальной истории команд, не исследуя ее онлайн снова.

История – это то, что вы ищете.

Запустите history чтобы получить список последних 1000 команд или запустите:

 history | grep command_to_search 

для поиска некоторого шаблона в списке, сгенерированном историей, например:

 history | grep apt 

Чтобы найти любую связанную с apt команду, обратите внимание на то, что grep не привязывает ваш шаблон к концу строки, поэтому в большинстве случаев не требуется никаких подстановочных знаков.


Список history генерируется из последних 1000 команд (по умолчанию), хранящихся в ~/.bash_history (который хранит последний 2000 по умолчанию), и такой файл обновляется только при каждом выходе из вашей сессии Bash. Это означает, что все команды из вашего текущего сеанса не будут находиться в этом файле до закрытия вашего терминала. Они также не будут записаны, если вы убьете процесс оболочки.

Поэтому историю команд (2000 последних команд) также можно найти в ~/.bash_history , либо:

  • less ~/.bash_history или, например, gedit ~/.bash_history
  • Открытие Nautilus, Ctrl + h и поиск файла .bash_history .

И history и поведение ~/.bash_history можно изменить , добавив или изменив параметры в ~/.bashrc , вот несколько примеров:

  • Добавить export HISTCONTROL=ignoreboth:erasedups или изменить существующую строку HISTCONTROL , чтобы удалить повторяющиеся команды, т. HISTCONTROL Если вы запускаете echo Hello сразу после echo Hello , в bash_history будет отображаться только один.

  • Измените HISTSIZE=1000 чтобы расширить или уменьшить количество команд, показанных с history

  • Измените HISTFILESIZE=2000 чтобы расширить или уменьшить количество команд, хранящихся в bash_history . Установите HISTFILESIZE=-1 для неограниченного.

  • Добавьте HISTFILE=/path/to/file чтобы сохранить историю в другом месте.


Источники и дальнейшее чтение:

Персональные страницы Bash

Кредит на комментарии от Byte Commander

Существует много способов найти недавно выполненную команду.

  • Самый простой из них – просто нажать клавишу и циклически перебирать историю команд по строкам, пока не увидите то, что искали.

  • Вы также можете нажать Ctrl + R, чтобы войти в так называемый (reverse-i-search) .

    Это запрос на поиск, который автоматически завершит то, что вы начнете печатать, с последней командой запуска, содержащей эту строку. Когда он показывает, что вы искали, нажмите Enter, чтобы запустить его, или Esc, чтобы выйти из приглашения поиска, сохранив команду в приглашении, чтобы вы могли ее отредактировать. Чтобы отбросить результат и выйти из поиска, нажмите Ctrl + C.

  • Вы можете использовать history Bash, чтобы отобразить полный список записанных команд из вашей истории.

    Вы можете отфильтровать этот список для строк, соответствующих определенному шаблону, например grep , например history | grep 'appengine' history | grep 'appengine' .

    Более подробную информацию об history встроенной команды Bash можно найти, введя help history .

  • Используйте bang-expansion для непосредственного запуска последней выполненной команды, содержащей строку. Это заменит строку, которую вы набрали соответствующей строкой из истории, и немедленно запустите ее, без подтверждения, поэтому будьте осторожны.

    Просто введите !string и он заменит это на самую последнюю командную строку, которая начинается с «string».

    Если вы хотите запустить последнюю команду, завершившуюся «string», вместо этого введите !?string .

    Или, если вы хотите, чтобы в последней строке была строка «string», введите !?string? ,

    Более подробную информацию об расширении истории можно найти, набрав man history .

Если он был недавно использован, вам может быть легко найти его, открыв терминал и используя стрелки вверх и вниз на клавиатуре, чтобы просмотреть последние использованные команды.