Команда history в Linux (Bash History)
Команда history в Linux є потужним інструментом для користувачів, які працюють з оболонкою Bash. Вона відстежує раніше виконані команди, дозволяючи користувачам переглядати, викликати і навіть повторно виконувати команди, не вводячи їх знову. Це може значно підвищити продуктивність, заощаджуючи час і зменшуючи ймовірність помилок при повторному введенні довгих команд.
Що таке історія Bash?
Bash, як і багато інших командних оболонок, зберігає запис введених вами команд у файлі історії. У більшості дистрибутивів Linux ця історія зберігається у файлі з назвою .bash_history у домашньому каталозі кожного користувача (~/.bash_history). За замовчуванням, кожна команда, введена у командному рядку, додається до цього файлу після завершення сеансу, що дозволяє користувачам повернутися до команд з попередніх сеансів.
Базове використання команди history
Команда history проста у використанні і надає різні способи перегляду та взаємодії з історією ваших команд. Нижче наведено деякі з найпоширеніших способів використання:
- Перегляд історії команд:
Якщо виконати команду history без жодних аргументів, буде показано список останніх введених вами команд із зазначенням номера поряд із кожною командою.history
Буде показано останні n команд, де n зазвичай дорівнює 500 або 1000, залежно від конфігурації вашої системи.
- Вкажіть кількість команд:
Ви можете обмежити кількість показаних команд, вказавши число. Наприклад, показати останні 10 команд:history 10
Виклик команд з історії
Команда історії також дозволяє легко викликати і повторно використовувати раніше виконані команди:
- За допомогою знака оклику ! (Знак оклику):
Це дозволяє повторно виконувати команди безпосередньо з історії:- !! – Повторно запускає останню виконану вами команду.
!!
- !n – Запускає команду з позиції n у списку історії.
!42
Повторно виконає команду з номером 42 у списку історії.
- !string – Знаходить останню команду, яка починається з string, і виконує її.
!git
Виконує останню команду, що починається з git.
- !! – Повторно запускає останню виконану вами команду.
- Використання клавіш зі стрілками:
Ви можете використовувати клавіші зі стрілками вгору і вниз для прокрутки попередніх команд безпосередньо у терміналі. Це особливо корисно для швидкого пошуку останніх команд.
Редагування та зміна історії
- Видалення окремих записів:
Ви можете вилучити певну команду з історії за допомогою history -d із зазначенням номера рядка:history -d 42
Це призведе до вилучення команди з рядка 42 у списку історії.
- Очистити всю історію:
Щоб видалити всі команди з файлу історії, скористайтеся:history -c
Це очистить історію для поточного сеансу. Щоб також очистити збережену історію в ~/.bash_history, перезапишіть файл:
history -c && > ~/.bash_history
Налаштування історії Bash
Поведінку історії можна налаштувати за допомогою змінних оточення та конфігураційних параметрів у файлах ~/.bashrc або ~/.bash_profile:
- HISTSIZE:
Ця змінна визначає, скільки команд зберігається в пам’яті під час сеансу роботи. Наприклад, зберігати 1000 команд:export HISTSIZE=1000
- HISTFILESIZE:
Ця змінна задає кількість рядків (команд), які зберігаються у файлі ~/.bash_history. Наприклад:export HISTFILESIZE=2000
Це означає, що 2000 команд буде збережено у файлі історії навіть після виходу з системи.
- HISTCONTROL:
Ця змінна визначає спосіб зберігання команд. Поширені варіанти включають:- ignoredups – запобігає додаванню до історії команд, що повторюються.
- ignorespace – команди, що починаються з пробілу, не додаються до історії.
- ignoreboth – Поєднує в собі обидва варіанти: ignoredups і ignorespace.
Приклад налаштування HISTCONTROL для ігнорування дублікатів:
export HISTCONTROL=ignoredups
- HISTTIMEFORMAT:
Щоб додати позначку часу до кожного запису історії, встановіть HISTTIMEFORMAT:export HISTTIMEFORMAT="%F %T "
Це додасть до кожного запису історії дату (%F) і час (%T).
Пошук в історії
- Зворотний пошук за допомогою Ctrl r:
Одним з найефективніших способів пошуку команди в історії є використання Ctrl r. Почніть вводити частину команди, і Bash знайде відповідні команди в міру того, як ви будете вводити. Повторне натискання Ctrl r призведе до циклічного перегляду попередніх збігів. - Grep з історією:
Ви також можете використовувати grep для пошуку у виведеній історії:history | grep git
Буде показано всі команди, які містять слово git.
Висновок
Команда history є фундаментальною частиною роботи з оболонкою Bash, пропонуючи спосіб відстежувати минулі команди і впорядковувати робочі процеси. Завдяки можливості викликати, шукати і налаштовувати історію команд, вона допомагає зробити роботу з командним рядком більш ефективною і зручною для користувача. Опанувавши історію та пов’язані з нею функції, користувачі можуть значно пришвидшити свою роботу в середовищі Linux.