Изучение истории 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, используйте следующую команду:

$история | 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: Перейти к дате

%M: Display Minutes

%S: Display Seconds

%F: Для отображения общего формата времени (Yy-Mm-Dd )

%T: Чтобы установить время (H: M:S формат)

%c: Для отображения в полном объеме и timestamp формате (Day-DMY 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

В цій статье, ми повинні продемонструвати, что использование истории комментария в Linux. Bash history є файлом або репозиторієм, що зберігає записи всех комманд executed як user in Linux command-line environment. Це bash history feature allows users easily find and reuse previously executed commands on their Linux system, often with the convenience of arrow key navigation.

Якщо ви використовуєте VPS-сервер, history command буде help you find and execute desired commands on your servers efficiently. Подразумевай, что я знаю, если вы выясните, что проблемы связаны с этим материалом. Thanks!

Оставьте свои отзывы

Поделитесь своим мнением и помогите нам стать лучше! Ваши отзывы важны для нас.

Загрузите свою фотографию