Команда history в Linux (Bash History) ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
10.12.2024
No categories

Команда 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.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills