История bash может сделать много полезных вещей, и поиск, Strg-r
который упомянул Терри Ван, является одним из них. Но также возможно сделать именно то, что вы просили.
Вы можете повторно выполнить предыдущую команду с помощью !!
. При этом вы также можете редактировать предыдущую команду. Если, например, вы забыли получить права root для команды
apt-get install a-long-list-of-packages
Вам не нужно снова все это перепечатывать. Вместо этого просто позвоните
sudo !!
Если вы хотите повторно выполнить команду в определенной позиции из вашей истории, вы также можете использовать !
, например,
!3
чтобы повторно выполнить команду в позиции 3. Имейте в виду, что это считается сверху. Так что, если вы храните 500 команд в своей истории, !1
будет "500 команд назад". Вы также можете использовать отрицательные числа. Например
!-2
будет повторно выполнить вторую последнюю команду.
Вы также можете повторно выполнить последнюю команду, которая началась с такой строки, как
!apt-
который будет делать последнюю строку, начинающуюся с «apt-». Если вы хотите, чтобы последняя команда, где строка появилась в любом месте строки, вы можете использовать что-то вроде
!?pt-ge
Есть и другие интересные вещи, которые может сделать история bash. Просто чтобы составить представление о широком спектре возможностей, вы можете специально получить доступ к параметру команды из истории. Так
!-5:3:p
вывел бы третий параметр к пятому из последней команды.
РЕДАКТИРОВАТЬ: Что касается комментария Руди ниже, со стандартными настройками это расширение истории bash действительно выполняется напрямую. Это, вероятно , лучше всего можно описать следующим образом: Вызов , как !-3
будет заменена оболочкой с третьей последней командой из истории и затем ваш вход (с заменой) выполняется. Таким образом, если вы печатаете !-3
и нажимаете, ENTER
и ваша третья последняя команда была ls ~
такой же, она фактически такая же, как если бы вы набрали ls ~
снова и нажали ENTER
«самостоятельно».
Если вы не хотите этого, вы можете установить опцию оболочки histverify
. Для установки и отмены параметров оболочки вы можете прочитать shopt
команду. При использовании histverify
set вызов like !-3
только записывает замену из вашей истории в командную строку, но не выполняет ее напрямую. Вы должны, так сказать, нажать на решающее значение ENTER
самостоятельно - или воздерживаться от него, если вы решите.