Как повторить последнюю команду в Linux
Повторный запуск ранее выполненных команд без их ввода в Linux и Unix
Сегодня я научу вас, как повторить последнюю команду в Linux. Вам не нужно повторно вводить ранее выполненные команды в командной консоли. Конечно, мы используем клавишу Стрелка ВВЕРХ, чтобы выбрать последние выполненные команды, и нажимаем ENTER, чтобы выполнить их. Однако есть и другие способы повторного запуска предыдущих команд. В Unix-подобных системах может быть много способов повторить последние команды, но это единственные способы, о которых мне сейчас известно. Все эти команды были протестированы на моем рабочем столе Arch Linux и Ubuntu с оболочкой BASH.
Предостережение: При использовании следующих методов ранее выполненные команды будут запущены немедленно. Просто убедитесь, что ваша последняя команда не выполнит НИКАКИХ ВРЕДНЫХ ОПЕРАЦИЙ, таких как форматирование раздела или удаление файлов, папок или любых других важных данных.
Повторить последнюю команду в Linux
Давайте выполним несколько команд.
ls -l
pwd
date
uname -r
Как я упоминал ранее, мы можем выполнить последнюю команду, просто нажав стрелку ВВЕРХ и клавишу ENTER. Это наиболее часто используемый многими пользователями способ выполнения предыдущей команды. Этот метод будет работать на всех SHELL, независимо от используемого вами дистрибутива Linux.
Однако, как я уже сказал, есть несколько других способов сделать это.
Теперь позвольте мне показать вам, как выполнить последнюю команду, на некоторых практических примерах.
Способ 1 — повторите последнюю команду, используя восклицательные знаки
Чтобы выполнить любую последнюю выполненную команду, просто введите двойные восклицательные знаки и нажмите Enter:
!!
Это выполнит последнюю команду. Пример вывода будет:
uname -r
5.3.0-40-generic
Добавьте sudo
перед !!
, чтобы выполнить последнюю команду от имени пользователя root
, как показано ниже.
sudo !!
Вы также можете использовать следующую команду для выполнения предыдущей команды от имени пользователя sudo
:
su -c "!!"
Пример вывода:
su -c "uname -r"
Password:
5.3.0-40-generic
Круто, не так ли? Вам не нужно вводить последнюю команду полностью. Это может быть полезно, если вы уже выполнили очень длинную команду и не хотите повторно вводить ту же команду.
Способ 2 — повторение N-й команды
Возможно, вы выполнили так много команд и хотите повторить определенную команду. Что вы будете делать? Простой! Вы можете сделать это, набрав определенное слово предыдущей команды.
Чтобы повторить предыдущую команду, которая начинается с определенного слова/буквы, например un
, просто введите:
!un
Приведенная выше команда выполнит последнюю команду, которая начинается с букв "un".
Пример вывода:
!un
uname -r
5.3.0-40-generic
Как вы видите в приведенном выше примере, вам не нужно вводить всю команду (т. е. uname -r
). Вместо этого просто введите несколько букв команды, и любая предыдущая команда, содержащая слова, будет запущена.
Кроме того, если вы знаете полное имя команды, просто введите его, как показано ниже:
!uname
Он выполнит последнюю команду.
Что делать, если вы не хотите повторять последнюю команду, а просто отображаете ее. Иногда вам не нужно запускать команду, а просто извлечь ее из истории. Если да, найдите номер префикса команды, которую вы хотите запустить:
history | grep -i "source"
Пример вывода:
1664 source googler_at
1678 source googler_at
1685 source ~/.bashrc
2037 history | grep -i "source"
Допустим, вы хотите получить команду 1685-я, но не хотите запускать ее немедленно, добавьте :p
рядом с командой, как показано ниже.
!1685:p
Это отобразит 1685-ю команду из истории, но не выполнит ее.
Способ 3. Повторное выполнение предыдущих команд с использованием обратного поиска.
Другой способ сделать это — выполнить поиск в истории командной строки с помощью CTRL+R
. Нажмите клавишу CTRL+R
для поиска в истории командной строки. Лично я предпочитаю этот метод. Он ищет историю в интерактивном режиме, что, на мой взгляд, безопаснее, чем слепое выполнение команд из истории BASH.
Посмотрите на следующий пример. В следующем примере я выполнил поиск по запросу "ost"
, который отобразил последнюю команду “sudo netctl restart ostechnixjio ”
в истории, содержащей слово "ost"
. Затем я нажимаю клавишу ВВОД, чтобы выполнить команду немедленно, или клавишу со стрелкой вправо, чтобы завершить команду, и нажимаю клавишу ВВОД, чтобы выполнить ее.
(reverse-i-search)`ost': sudo netctl restart ostechnixjio
Поиск в истории bash
На всякий случай вы хотите отредактировать/изменить последнюю команду перед ее выполнением, просто нажмите клавишу со стрелкой влево, затем отредактируйте последнюю команду и нажмите ENTER, чтобы выполнить ее. Некоторые команды могут начинаться с одинаковых букв. В таких случаях продолжайте нажимать клавиши CTRL+R
, чтобы вернуть команду, которую вы хотели выполнить.
Способ 4. Используйте символ дефиса с номерами префикса команды
Вот еще один способ запустить предыдущую команду.
!-1
Пример вывода:
uname -r
5.3.0-40-generic
Аналогично, !-2
выполнит предпоследнюю команду, !-3
выполнит предпоследнюю команду, и так далее.
Способ 5. Используйте CTRL+p и CTRL+o для повторного запуска последних команд.
Я не хочу вводить какие-либо команды вручную. Есть ли способ повторить последнюю команду, просто нажав определенную клавишу (клавиши) на моей клавиатуре? Да, конечно!
Нажмите CTRL+P
чтобы переключиться на последнюю команду, а затем нажмите CTRL+O
чтобы выполнить ее. Это сотворит чудо. Никакой настройки не требуется! Вы можете использовать CTRL+O
столько раз, сколько захотите, продолжая повторно выполнять последние команды.
Метод 6. Повторите ранее выполненные команды с помощью команды fc.
Это еще один способ повторить последнюю выполненную команду. Команда fc
используется для просмотра, редактирования и повторного запуска ранее введенной команды.
Чтобы повторить последнюю команду с помощью fc, просто запустите:
fc -s
Пример вывода:
uname -r
5.3.0-40-generic
Рекомендуем прочитать:
- Учебное пособие по команде fc с примерами для начинающих
- Применяйте теги к командам Linux, чтобы легко извлекать их из истории
- Легкий вызов забытых команд Linux с помощью Apropos
- Pet – простой менеджер фрагментов командной строки
- Как сохранять команды и использовать их по требованию
- Добавьте команды Linux в закладки для упрощения повторного вызова
Метод 7. Повторите последние команды с последними использованными аргументами
Вы можете повторно запустить последнюю команду с последним использованным аргументом, просто добавив буквы "!$"
. Это не только добавит последние использованные аргументы в команду, но и повторно запустит всю команду.
Пример:
uname -r
5.15.102-1-pve
Теперь введите uname
, а затем буквы !$
, чтобы повторно запустить последнюю команду с последним использованным аргументом, то есть -r
.
uname !$
uname -r
5.15.102-1-pve
Метод 8. Добавление последних использованных аргументов в команду с помощью клавиши ALT + точка.
Как сказал один из наших читателей в разделе комментариев, мы также можем использовать клавиши ALT+.
(нажмите ALT+точку), чтобы получить последнюю команду, не запуская ее. Однако есть одно ограничение. Нажатие ALT+.
позволит получить только последний использованный аргумент в команде.
Например, если ваша предыдущая команда — "uname -r"
, она вернет только аргумент -r
, но не всю команду. .
Заключение
И это все. Вот несколько способов повторить последнюю команду, не вводя ее в Терминале. Если вы хотите просмотреть вывод ваших последних команд без необходимости их повторного ввода, эти методы помогут.
Если вы знаете какие-либо другие методы, пожалуйста, дайте мне знать в разделе комментариев ниже. Я проверю и обновлю руководство соответствующим образом.
Теперь вы знали, как повторить ранее выполненную команду. Как повторять команду или программу Linux до тех пор, пока она не достигнет успеха? Ну, это легко! Для получения более подробной информации обратитесь к следующему руководству.
- Как повторять команду до успешного выполнения в Linux
Надеюсь это поможет.