<Попередній | зміст | Наступна>
Пошук в історії
У будь-який час ми можемо переглянути вміст списку історії:
[me@linuxbox ~]$ історія | менше
[me@linuxbox ~]$ історія | менше
За замовчуванням bash зберігає останні 500 команд, які ми ввели, хоча більшість сучасних дистрибутивів встановлюють це значення на 1000. Як налаштувати це значення, ми побачимо в наступному розділі. Скажімо, ми хочемо знайти команди, які ми використовували для переліку / usr / bin. Один із способів зробити це:
[me@linuxbox ~]$ історія | grep /usr/bin
[me@linuxbox ~]$ історія | grep /usr/bin
І припустимо, що серед наших результатів ми отримали рядок, що містить цікаву команду на зразок цієї:
88 ls -l /usr/bin > ls-output.txt
Число «88» — це номер рядка команди в списку історії. Ми могли б використати це негайно, використовуючи інший тип розширення, який називається розширення історії. Щоб використати наш виявлений рядок, ми можемо зробити це:
[me@linuxbox ~]$ ! 88
[me@linuxbox ~]$ ! 88
bash розгорне «!88» до вмісту вісімдесят восьмого рядка в списку історії. Є й інші форми розширення історії, які ми розглянемо трохи пізніше.
bash також надає можливість поступового пошуку в списку історії. Це означає, що ми можемо наказати bash шукати список історії, коли ми вводимо символи, при цьому кожен додатковий символ ще більше покращує наш пошук. Щоб розпочати інкрементний пошук, натисніть Ctrl-r, а потім введіть текст, який ви шукаєте. Коли ви знайдете його, ви можете натиснути Enter, щоб виконати команду, або натиснути Ctrl-j, щоб скопіювати рядок зі списку історії в поточний командний рядок. Щоб знайти наступне входження тексту (переміщення «вгору» по списку історії), знову натисніть Ctrl-r. Щоб припинити пошук, натисніть Ctrl-g або Ctrl-c. Ось ми бачимо це в дії:
[me@linuxbox ~]$
[me@linuxbox ~]$
Спочатку натисніть Ctrl-r:
(зворотний пошук)`':
(зворотний пошук)`':
Підказка змінюється, щоб вказати, що ми виконуємо зворотний інкрементний пошук. Це «зворотне», тому що ми шукаємо від «зараз» до деякого часу в минулому. Далі ми починаємо вводити наш пошуковий текст. У цьому прикладі «/usr/bin»:
(зворотний пошук)`/ usr / bin': ls -l /usr/bin > ls-output.txt
(зворотний пошук)`/ usr / bin': ls -l /usr/bin > ls-output.txt
Одразу пошук повертає наш результат. З нашим результатом ми можемо виконати команду, натиснувши Enter, або ми можемо скопіювати команду в наш поточний командний рядок для подальшого редагування, натиснувши Ctrl-j. Давайте скопіюємо це. Натисніть Ctrl-j:
[me@linuxbox ~]$ ls -l /usr/bin > ls-output.txt
[me@linuxbox ~]$ ls -l /usr/bin > ls-output.txt
Повернеться підказка оболонки, і наш командний рядок завантажений і готовий до дії! У таблиці нижче наведено деякі натискання клавіш, які використовуються для маніпулювання списком історії:
Таблиця 8-5: Команди історії
Ключова дія
Ключова дія
Ctrl-p Перехід до попереднього запису історії. Те ж саме, що і стрілка вгору. Ctrl-n Перехід до наступного запису історії. Те ж саме, що і стрілка вниз. Alt-< Перехід на початок (верх) списку історії.
Alt-> Перейти до кінця (внизу) списку історії, тобто до поточного командного рядка.
Ctrl-r Зворотний інкрементний пошук. Поетапний пошук із поточної командної рядки доводить до списку історії.
Alt-p Зворотний пошук, без збільшення. За допомогою цієї клавіші введіть рядок пошуку та натисніть Enter, перш ніж пошук буде виконано.
Alt-n Пошук вперед, без збільшення.
Ctrl-o Виконати поточний елемент у списку історії та перейти до наступного. Це зручно, якщо ви намагаєтеся повторно виконати послідовність команд у списку історії.