Как в Linux легко получить все введенные команды из истории

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

Получение команд из истории в Linux

Получение длинных команд из файла истории в Linux может быть облегчено с помощью нескольких советов и трюков. Не только длинные команды, вы можете отслеживать все выполненные команды, как описано в следующих разделах.

  1. Использование команды history:
    Просто наберите history, чтобы получить список последних команд. Затем вы можете прокрутить этот список, чтобы найти нужную команду.
    history
  2. Поиск в истории с помощью Ctrl + R:
    Нажмите Ctrl + R и начните вводить часть команды. Это инициирует обратный поиск в истории. Продолжайте нажимать Ctrl + R, чтобы перебирать совпадения.
    Нажмите Ctrl + R и введите ssh, чтобы найти последнюю использованную команду ssh.
  3. История с номерами строк:
    Используйте history | nl для отображения истории с номерами строк. Затем вы можете выполнить команду непосредственно из истории с помощью !number, где number – номер строки в истории.
    Наберите !25, чтобы выполнить команду, указанную в истории как строка номер 25.
    !25
    cat /etc/fedora-release 
    Fedora release 39 (Thirty Nine)

  4. Использование grep с историей:
    Вы можете выполнить grep в истории с помощью history | grep 'search-term'. Это полезно для поиска команд, содержащих определенное слово или фразу.
    history | grep 'ssh'

    Это позволяет найти все команды в истории, которые включают „ ssh „.
    6  sudo systemctl status sshd
    7  sudo systemctl start sshd
    8  sudo systemctl enable sshd
    9  sudo systemctl status sshd
    131  history | grep 'ssh'


    Как видно из приведенного выше вывода, все команды, включающие ssh, отображаются вместе с их порядковым номером. Этот порядковый номер можно использовать вместо идентификатора команды для выполнения с помощью символа ! bang.
    Например, выполнение !6 приведет к выполнению команды sudo systemctl status sshd.
  5. Псевдонимы для длинных команд:
    Если вы регулярно используете длинную команду, подумайте о создании псевдонима для нее в .bashrc или .bash_profile. Таким образом, вы сможете выполнять команду с коротким, запоминающимся именем.
    Добавьте alias ll='ls -alF „ в файл .bashrc. Набрав ll, вы выполните команду ls -alF.
  6. Сценарии для сложных команд:
    Для очень сложных команд, особенно с большим количеством аргументов и флагов, рекомендуется сохранять их в виде сценариев. Таким образом, вы сможете выполнить их с помощью простой команды.
    Напишите сценарий backup.sh с вашей сложной командой резервного копирования. Запустите скрипт с помощью ./backup.sh, вместо того чтобы набирать всю команду.
    Недавно мы сделали простой скрипт Rsync для резервного копирования файлов с удаленной системы. Перейдите по следующей ссылке, чтобы узнать, как создать скрипт rsync и как создавать резервные копии файлов.
  7. Закладка команд:
    Вы можете «заложить» длинную команду, добавив к ней уникальный комментарий. Например, your-long-command #uniqueTag. Позже вы сможете легко найти ее по уникальному тегу.
    Перейдите по следующей ссылке, чтобы узнать, как применять теги к командам и как использовать их для получения команды, связанной с этим тегом.
  8. Использование команды fc:
    Команда fc открывает последнюю команду в текстовом редакторе по умолчанию. Можно также указать диапазон, например fc 10 20, чтобы открыть в редакторе команды с 10 по 20.
    fc -l


    На экране появится список команд с их идентификаторами. Вы можете определить ID команды, которую хотите выполнить.
    После определения ID команды вы можете использовать символ !, за которым следует ID, чтобы выполнить команду. Например, если идентификатором команды sudo dnf install vim является 10, вы можете использовать:
    !10
  9. Расширение истории:
    Используйте такие функции расширения истории, как !! для обращения к последней команде, !-n для n-й последней команды и !string для выполнения последней команды, начинающейся с „string“.

    Мы собрали несколько методов повторения ранее выполненных команд из истории. Для получения более подробной информации обратитесь к следующему руководству.
  10. Расширенное управление историей:
    Вы можете настроить переменные .bashrc или .bash_profile, чтобы увеличить размер файла истории и управлять тем, что сохраняется. Например, переменные HISTSIZE и HISTFILESIZE определяют размер истории.

Заключение

В этом руководстве мы рассмотрели несколько полезных советов по поиску команд из файла истории в Linux.

Используя эти советы, вы сможете эффективно перемещаться по истории команд и извлекать длинные команды без необходимости набирать их заново.

Теперь ваша очередь. Какие способы поиска команд из истории командной строки вы считаете эффективными? Сообщите нам об этом в разделе комментариев ниже.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен ostechnix.com

Похожие статьи

Комментарии (0)