В нашей повседневной работе с Linux мы регулярно выполняем как простые, так и сложные команды. В то время как короткие и простые команды легко запомнить, запоминание длинных и сложных команд с множеством флагов может оказаться сложной задачей.
Получение команд из истории в Linux
Получение длинных команд из файла истории в Linux может быть облегчено с помощью нескольких советов и трюков. Не только длинные команды, вы можете отслеживать все выполненные команды, как описано в следующих разделах.
- Использование команды
history:
Просто наберитеhistory, чтобы получить список последних команд. Затем вы можете прокрутить этот список, чтобы найти нужную команду.
history
- Поиск в истории с помощью Ctrl + R:
Нажмите Ctrl + R и начните вводить часть команды. Это инициирует обратный поиск в истории. Продолжайте нажимать Ctrl + R, чтобы перебирать совпадения.
Нажмите Ctrl + R и введитеssh, чтобы найти последнюю использованную командуssh.

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

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

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

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




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