Команда ‘history’.


Команда history в Linux отображает список ранее выполненных команд в табличном формате; при этом в первом столбце отображается номер команды, а во втором столбце — выполненные команды.

Доступ к списку ранее набранных команд также можно получить, нажав клавиши со стрелками «Вверх» и «Вниз» на клавиатуре, что помогает избавиться от повторного ввода недавно выполненной команды.

Количество сохраненных предыдущих команд настраивается и это значение, по умолчанию, различно в зависимости от дистрибутива.

Отображение всех выполненных команд в консоли.

Бывают случаи, когда пользователь ввел потенциально опасную или команду несущую определенный риск для системы. Хранить такую ​​команду в истории небезопасно, так как ее можно непреднамеренно вызвать снова.

Например, команда под номер 12 и 13 удаляет virtualbox из ОС. Случайно, листая историю команд, можно вызвать ее повторно, когда этого не требуется. И ПО придется переустанавливать заново.

Вывод history может быть очень большим и состоять из сотен строк. Но его можно ограничить, просто указав аргумент в виде числа, обозначающих количество необходимых строк.

Давайте, рассмотрим то, как удалить такие команды из истории.

Повторение последней выполненной команды.

Иногда, случается, что необходимо выполнить предыдущую команду. Ниже приведены четыре различных способа повторения последней выполненной команды.

  • Используйте стрелку вверх, чтобы просмотреть предыдущую команду, и нажмите Enter, чтобы выполнить ее.
  • Введите ‘!!’ и нажмите Enter из командной строки
  • Введите ‘!-1‘ и нажмите Enter в командной строке.
  • Нажатие ‘Ctrl+P‘ отобразит предыдущую команду, затем нажмите «Enter», чтобы выполнить ее.

Выполнение определенной команды из истории.

Иногда нам нужно запустить определенную команду из истории. Например, пусть это будет команда номер 5: ‘uname -r’.

Для этого введите «!» за которым следует номер команды. В нашем случае это будет ‘!5’.

Ограничение количества строк в истории команд.

Количеством строк, хранимых в истории команд, управляют встроенные переменные оболочки HISTSIZE и HISTFILESIZE. Добавьте следующие две строки в свой «~/.bashrc файл», затем выйдите из системы и снова войдите в нее.

Результатом этого будет то, что теперь история настроена на хранение 2000 команд. По умолчанию в большинстве дистрибутивов Linux размер истории ограничен 500 или 1000 записями.

Изменение файла хранения истории.

По умолчанию история хранится в файле ‘/.bash_history’. Для изменения файла, в котором хранится история команд, например, на ‘/.my_commands’, добавьте следующую строку в файл ‘/.bash_profile’, затем выйдите из системы и войдите снова.

Переменная HISTFILE содержит имя и местоположение вашего файла истории Bash.

Удаление повторяющихся записей.

Если мы часто выполняем команду, то строки с использованием этой команды будут повторяться в истории много раз. Например, сама команда ‘history’ появляется несколько раз.

Чтобы удалить все предыдущие повторяющиеся совпадения, установите для переменной ‘HISTCONTROL’ значение ‘erasedups‘.

Если мы повторно запустим команду истории, повторяющиеся совпадения исчезнут

Скрытие некоторых команд из истории.

Теперь мы рассмотрим специфическую особенность команды ‘history’. А именно, когда вы запускаете команду, вы можете указать истории игнорировать ее, установив для переменной HISTCONTROL значение ignorespace и поставив пробел перед командой, как показано ниже.

Обратите внимание, что в начале «ping…» есть пробел, который предписывает команде истории не регистрировать ее.

Конечно, используя эту возможность, помните, что целенаправленное сокрытие команд из истории — верный путь к неприятностям при последующем аудите системы. Поэтому, если у вас нет достаточно веской причины для сокрытия команд, мой совет — воздержитесь от этого.

Игнорирование определенных команд.

Возможно, вы не захотите загромождать свою историю часто используемыми командами, такими как cd, pwd и ls. В этом случае переменная ‘HISTIGNORE’ позволяет вам выбрать, какие команды не следует включать в историю.

Используйте символ «:» для разделения, чтобы указать несколько команд, как показано ниже.

Обратите внимание, что добавление ls к HISTIGNORE игнорирует только ls, но не, например, ls -l. Другими словами, вы должны указать именно ту команду, которую хотите удалить из истории.

Удаление одной строки из истории.

Мы можем удалить одну команду из истории, используя параметр —d.

Запустим команду с этим параметром и удалим 12 строку.

Как видим, удаление нужных строк прошло успешно, а их номер был присвоен следующим командам.

Очистить всю историю команд.

Выполнение команды с параметром -c удалит все команды из списка истории.

Как видно выше, все команды были удалены из истории.

Отключение ведения истории.

Установите для переменной HISTSIZE значение 0, чтобы полностью отключить историю и запретить оболочке Bash запоминать введенные вами команды.

Резюме.

В этой статье познакомились с командой history и то, как удалить определенные команды или все команды из ее вывода. История хранится в файле с именем «.bash_history», который находится в домашней папке пользователя.

Для получения дополнительной информации о команде history обратитесь к справочной странице, выполнив:

Если у вас есть какие-либо вопросы или дополнения, обязательно оставьте комментарий ниже!

Was this helpful?

0 / 0

Добавить комментарий 0