Вивчення історії Linux Bash

У середовищі сервера Linux ви часто будете взаємодіяти з терміналом. Більшість дистрибутивів Linux мають оболонку bash як стандартну, тому ви, ймовірно, будете її використовувати. Під час сеансів командного рядка ви будете неодноразово вводити різні команди, а часто вам доведеться вводити незначні варіації цих команд ще частіше.

Спочатку ручне введення кожної команди може бути корисним, але з набуттям досвіду це може стати втомливим і заважати роботі. На щастя, оболонка bash пропонує надійні функції історії, які відстежують усі ваші команди терміналу.

У цій статті ми розглянемо, що таке історія bash і де вона зберігається у вашій системі Linux. Ми також розглянемо корисну команду історії, яка використовується для управління історією bash.

ЩО ТАКЕ ІСТОРІЯ BASH?

Термін «історія bash» означає запис раніше виконаних команд в оболонці bash, популярному інтерфейсі командного рядка, що використовується в операційних системах типу Unix. Ця історія — це хронологічний список команд, які ви вводили в терміналі. Оболонка bash зберігає цю історію, щоб допомогти користувачам легко згадати і повторно використати раніше виконані команди.

У Linux команда «history» служить для переліку і перегляду команд вашої історії bash. У цій статті ми зосередимося на використанні команди history в Linux, оскільки термін «історія bash» використовується для позначення цієї команди. Однак ви можете взаємодіяти з історією bash за допомогою конфігураційних файлів (таких як ~/.bash_history), розширень (наприклад, !!) та клавіатурних скорочень (наприклад, клавіш ↑ і ↓) на додаток до цих вбудованих команд.

ДЕ ЗБЕРІГАЄТЬСЯ ІСТОРІЯ BASH?

У оболонці bash команди спочатку зберігаються в пам'яті (RAM) під час їх виконання в терміналі, і ці команди залишаються там, поки ви не вийдете з терміналу. Після виходу з системи ці команди зберігаються у файлі з назвою «.bash_history» у домашньому каталозі вашої системи Linux «/home/username/.bash_history». Цей файл зберігає записи історії ваших команд. Використовуйте наступну команду, щоб знайти файл bash_history:

$ ls -l /home/username/.bash_history

Важливо зазначити, що тільки користувач з правами root може переглядати історію команд усіх користувачів у вашій системі. Якщо ви є звичайним користувачем, то можете переглядати тільки свої журнали історії.

Також слід пам'ятати, що існують певні обмеження щодо кількості команд, які можна зберігати. Буфер історії, що базується на пам'яті, може вмістити до 1000 записів команд, тоді як файл історії, що базується на диску, може містити максимум 2000 записів.

Якщо ви хочете змінити спосіб функціонування команди «history» в bash, ви можете налаштувати її, змінивши змінні середовища, про що ми детальніше поговоримо трохи пізніше.

ЯК ВИКОРИСТОВУВАТИ КОМАНДУ LINUX BASH HISTORY?

Команда history використовується для перегляду історії bash у дистрибутиві Linux. Тому, щоб переглянути історію терміналу, використовуйте команду history без будь-яких опцій:

$ history

Вищевказана команда відобразить всю історію команд терміналу.

Ви можете обмежити виведення команди історії. Це означає, що ви можете контролювати кількість відображуваних записів у історії команд, вказавши обмеження при використанні команди «history». Наприклад, якщо ви хочете побачити тільки останні десять записів, ви можете використовувати наступну команду:

$ history 10

ПОШУК В ІСТОРІЇ BASH

Ви можете відфільтрувати історію команд, використовуючи команди grep або fewer з командою «history», перенаправляючи її вихідні дані. Наприклад, якщо ви хочете відфільтрувати всі команди, що містять «Nginx», використовуйте таку команду:

$ history | grep nginx

Для пошуку в історії bash доступно кілька комбінацій клавіш. Ось їх перелік:

Клавіші-стрілки:

  • Клавіша ↑Дозволяє прокручувати історію bash у зворотному напрямку.
  • Клавіша ↓Дозволяє прокручувати історію bash у прямому напрямку.

Клавіші алфавіту клавіатури:

  • Натискання Ctrl+R дозволяє шукати команди в історії bash.
  • Ctrl+O можна використовувати для виконання команди, яку ви знайшли за допомогою пошуку Ctrl+R.
  • Ctrl+G використовується для виходу з пошуку Ctrl+R.

Щоб виконати останню команду, яка починається з певного рядка, додайте цей рядок після знака оклику.

$!sudo

Але якщо ви не хочете виконувати команду безпосередньо над командою, ви можете використовувати опцію «p:».

$!sudo:p

Вищезазначена команда тепер буде шукати тільки останні команди, що починаються з «sudo». Ця команда не буде виконуватися безпосередньо у вашій системі.
Щоб знайти команду, що містить певний рядок, але не обов'язково на початку, ви можете додати знак питання після знака оклику. Наприклад, щоб виконати останню команду, що знову містить «Nginx», ви можете використати таку команду:

$ !?search_string

$ !?nginx

ВІДОБРАЖЕННЯ ІСТОРІЇ LINUX З ЧАСОВИМИ МІТКАМИ

Ви можете змінити формат виводу команди історії, змінивши файл “.bashrc”. Усі налаштування історії bash зберігаються в цьому файлі, який ви можете редагувати відповідно до своїх вимог. Наприклад, припустимо, ви хочете відобразити часові мітки з усіма командами в історії bash. Існують різні формати часових міток, які ви можете використовувати з історією bash:

%d: Display Day

%m: Display Month

%y: Display Year

%H: To display Hour

%M: Display Minutes

%S: Display Seconds

%F: To display the full date format (Yy-Mm-Dd )

%T: To display in clock time (H: M:S format)

%c: To display in the complete date and timestamp format (Day-D-M-Y H: M:S)

Для цього відкрийте файл «.bashrc» за допомогою редактора вихідного коду. Тут ми використовуємо стандартний редактор Nano:

$ sudo nano .bashrc

Додайте наступний рядок, щоб додати мітку часу перед кожною командою у файлі історії bash:

export HISTTIMEFORMAT=”%c ”

Збережіть вищевказані зміни за допомогою комбінації клавіш «Ctrl+o» у цьому файлі та натисніть «Ctrl+x», щоб вийти з цього файлу. Тепер знову виконайте наступну команду, щоб переглянути зміни у форматі історії bash:

$ history 

Як бачите, тепер перед кожною командою в файлі історії bash додається мітка часу.

ЗМІНА ФАЙЛУ ІСТОРІЇ BASH І РОЗМІРУ БУФЕРА

Файл «.bashrc» містить два записи, які контролюють розмір буфера історії bash і розмір файлу.

HISTSIZE: Використовується для відображення розміру буфера історії bash. Він містить максимальну кількість записів для списку історії.

HISTFILESIZE: Максимальний розмір файлу історії bash.

Ви можете легко змінити обидва вищезазначені змінні середовища у файлі .bashrc.

ВИКЛЮЧЕННЯ КОМАНД З ІСТОРІЇ LINUX BASH

Щоб виключити певні команди з запису в історії bash за допомогою файлу «~/.bashrc», ви можете скористатися змінною середовища $HISTIGNORE.

 

Встановивши $HISTIGNORE, ви можете вказати список шаблонів команд, розділених двокрапками, які не будуть зберігатися в історії bash. Наприклад, якщо ви хочете виключити команди, що містять «sudo» або будь-яку команду, що починається з «ls», ви можете включити ці шаблони у файл ~/.bashrc.

HISTIGNORE=“sudo *”:'ls *'

Збережіть зміни та закрийте цей файл. Тепер команди sudo та ls не будуть записуватися у файлі історії bash.

ЯК ВИДАЛИТИ ІСТОРІЮ BASH?

Часто бувають випадки, коли ви не хочете, щоб інші користувачі вашої системи Linux мали доступ до історії вашого терміналу. Наприклад, під час викладання або спільного використання комп'ютера ви могли продемонструвати потенційно шкідливі команди. Деякі студенти, з цікавості, можуть експериментувати з цими командами, що призведе до проблем із системою. Хоча відновлення системи можливе, це не ідеальний варіант. Найкраще очистити історію командного рядка, щоб зберегти конфіденційність і безпеку, особливо під час спільного використання доступу з іншими.

Видалити конкретний рядок із файлу історії bash Linux можна за допомогою команди «history» з опцією -d. Просто вкажіть номер рядка, який хочете видалити. Наприклад, якщо вам потрібно видалити команду, що містить конфіденційну інформацію, таку як пароль, введений у вигляді звичайного тексту, ви можете визначити номер рядка в історії та виконати команду таким чином:

$ history -d 38

Щоб очистити або видалити всі записи в історії B=bash, можна скористатися опцією -c разом із командою «history». Виконання наступної команди видалить усі записи з історії:

$ history -c

Або, якщо ви хочете назавжди видалити всі записи раніше виконаних команд у файлі історії bash, ви можете скористатися такою командою:

$ cat /dev/null > ~/.bash_history

CONCLUSION

In this article, we have demonstrated the use of the history command in Linux. The bash history is a file or repository that keeps the record of all commands executed by a user in a Linux command-line environment. This bash history feature allows users to easily find and reuse previously executed commands on their Linux system, often with the convenience of arrow key navigation.

If you are using a VPS server, the history command will help you find and execute desired commands on your servers efficiently. Please let us know if you find any problems related to this article. Thanks!

Залиште свої відгуки

Поділіться своїми думками та допоможіть нам покращитися! Ваш відгук важливий для нас.

Завантажте своє фото