🐧 Различные способы повторить вашу последнюю команду в Linux — Information Security Squad
🐧  Различные способы повторить вашу последнюю команду в Linux

Привет! Сегодня я научу вас, как повторить вашу последнюю команду в Linux.

Вам не нужно повторно вводить ранее выполненные команды в вашей командной консоли.

Конечно, мы используем клавишу со стрелкой ВВЕРХ, чтобы выбрать последние выполненные команды, и нажимаем ENTER, чтобы выполнить их.

Однако есть и другие способы сделать это.

Может быть много способов повторить последние команды в Unix-подобных системах, но это единственные способы, которые я знаю в данный момнет.

Все эти команды были протестированы на моем настольном компьютере с Linux и Ubuntu 18.04 LTS с оболочкой BASH.

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

Как повторить вашу последнюю команду в Linux

Давайте сначала запустим несколько команд.

$ ls -l
$ pwd
$ date
$ uname -r

Как я упоминал ранее, мы можем выполнить последнюю команду, просто нажав стрелку ВВЕРХ и нажав клавишу Enter.

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

Этот метод будет работать во всех оболочках, независимо от используемого вами дистрибутива Linux.

Однако, как я уже сказал, есть несколько других способов сделать это.

Теперь позвольте мне показать вам, как выполнить последнюю команду с некоторыми практическими примерами.

Метод 1 — Использование восклицательных знаков:

Чтобы выполнить любую последнюю выполненную команду, просто введите двойной восклицательный зна к и нажмите клавишу Enter:

$ !!
Система выполнит последнюю команду.
Пример вывода будет таким:
uname -r
5.3.0-40-generic

Добавьте «sudo» перед «!!» чтобы выполнить последнюю команду от имени пользователя root, как показано ниже.

$ 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.

Посмотрите на следующий пример.

В следующем примере я искал «itsec», и система показала последнюю команду «sudo netctl restart itsecforu» в истории, которая содержала слово «itsec»

Затем я нажимаю клавишу Enter для немедленного выполнения команды или клавишу со стрелкой вправо для завершения команды и нажимаю клавишу Enter для ее выполнения.

На всякий случай, если вы хотите отредактировать / изменить последнюю команду перед ее выполнением, просто нажмите клавишу со стрелкой влево, затем отредактируйте последнюю команду и нажмите 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

См. также:

На это пока все.

Теперь вы знаете, как повторить последнюю команду, не вводя ее в терминале.

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

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

Я проверю и обновлю руководство  с вашими дополнениями.

 

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *