Історія баш може зробити багато корисних справ, і пошук із Strg-r
цим згадуваним Террі Ван є важливим серед них. Але також можна зробити саме те, про що ви просили.
Ви можете повторити попередню команду за допомогою !!
. За допомогою цього ви також можете редагувати попередню команду. Наприклад, ви забули отримати кореневі привілеї для команди
apt-get install a-long-list-of-packages
вам не доведеться вводити все це знову. Замість цього просто зателефонуйте
sudo !!
Якщо ви хочете повторно виконати команду на певній позиції зі своєї історії, ви також можете використовувати !
, наприклад
!3
щоб знову виконати команду в положенні 3. Будьте в курсі, що це рахується зверху. Отже, якщо ви зберігаєте 500 команд у своїй історії, це !1
було б "500 команд тому". Ви також можете використовувати від’ємні числа. Наприклад
!-2
повторно виконає другу останню команду.
Ви також можете повторно виконати останню команду, розпочату з типу "рядок"
!apt-
який би повторно зробив останній рядок, що починався з "apt-". Якщо ви хочете останню команду, де рядок з'явився в будь-якому місці рядка, ви можете використовувати щось на зразок
!?pt-ge
Є ще цікаві речі, якими може займатися історія баш. Тільки щоб створити враження про широкий спектр можливостей, ви можете спеціально отримати доступ до параметра команди з історії. Так
!-5:3:p
буде надрукувати третій параметр до п'ятого з останньої команди.
EDIT: Що стосується коментаря Руді нижче, стандартні параметри цього розширення історії башів справді виконуються безпосередньо. Це, ймовірно , краще за все можна описати таким чином: Виклик , як !-3
буде замінена оболонкою з третьої останньою командою з історії та потім ваш вхід (з заміною) виконується. Отже, якщо ви набираєте !-3
і натискаєте, ENTER
і третя остання команда була ls ~
, це фактично те саме, що якби ви ls ~
знову ввели і натиснули ENTER
«самостійно».
Якщо ви цього не хочете, ви можете встановити параметр оболонки histverify
. Для налаштування та зняття параметрів оболонки ви можете прочитати shopt
команду. З histverify
набором виклик, як-от !-3
записує лише заміну з вашої історії у ваш командний рядок, але не виконує її безпосередньо. Ви повинні, так би мовити, натискати на найважливіше ENTER
- або утримайтеся від цього, якщо захочете.