В нашей повседневной работе с 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)