Как удалить историю без следа в Linux?

GIF в Linux Советы и хитрости

В этом руководстве объясняется, как удалить историю bash, не оставляя следов в Linux.

Историю bash можно увидеть с помощью команды history. Если вы запустите его, вся история пользователя будет отображаться, как показано ниже.

history

Историю bash можно увидеть с помощью команды history

По умолчанию история bash находится в файле.bash_history, расположенном в домашнем каталоге пользователя. В моем случае пользователь linuxhint, чтобы просмотреть историю с помощью cat, которую я запускаю:

cat /home/linuxhint/.bash_history

По умолчанию история bash находится в файле.bash

Примечание: вы можете узнать местоположение вашего файла истории, выполнив команду ниже.

echo $HISTFILE

Удаление вашей истории без следа в Linux

Удалить историю активности командной строки просто, и есть несколько способов добиться этого. Первый метод использует команду истории, показанную выше, за которой следует параметр -c (очистить), как показано на снимке экрана ниже.

history -c

Как видите, после запуска history -c, если мы снова запустим команду history без параметров, вывод не будет, кроме текущей команды.

history

Другой способ удалить историю bash — удалить скрытый файл.bash_history, расположенный в домашнем каталоге пользователя.

Поскольку мы хотим удалить историю командной строки, не оставляя следов, давайте сделаем это так, чтобы восстановить файл истории было невозможно. Для этого нам нужно установить инструмент очистки.

Чтобы установить очистку в дистрибутивах Linux на основе Debian, запустите:

sudo apt install wipe

Теперь программа wipe установлена, вы можете безопасно удалить файл.bash_history без возможности его восстановления.

wipe ~/.bash_history

Теперь ваш файл.bash_history был полностью очищен, но он будет автоматически сгенерирован снова для записи будущих команд, когда вы выйдете из системы и снова войдете в систему как тот же пользователь. В конце этого руководства вы найдете инструкции по предотвращению записи команд в файле.bash_history.

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

Предположим, как и большинство пользователей Linux, вы используете.bash_history при повторении команд, но хотите удалить конкретную ошибку. В некоторых случаях некоторые пользователи могут вводить пароль в своем терминале; это крайне небезопасно.

На следующем снимке экрана мы видим 7 команд.

На следующем снимке экрана мы видим 7 команд

Допустим, вы хотите удалить только шестую команду ( wipe.bash_history ). Для этого вы можете использовать команду history -d, за которой следует строка, которую вы хотите удалить, как показано ниже.

history -d 6

Как видите, команда была удалена, но вам нужно записать изменения, используя команду history, за которой следует флаг -w, как показано ниже.

history -w

Теперь конкретная строка, которую вы хотели удалить, была удалена.

Вы также можете удалить диапазоны строк. В следующем примере показано, как удалить определенное количество строк, начиная с определенной строки. Приведенная ниже команда удалит 10 строк, начиная со строки 40. Если вы хотите удалить число, отличное от 10 строк, замените число 10 на количество строк, которые вы хотите удалить. Замените число 40 строкой, с которой должен начинаться диапазон строк.

for i in {1..10}; do history -d 40; done

Отключение истории bash

В этом разделе руководства объясняются различные методы отключения истории bash.

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

set +o history

Как видите, после выполнения set + o history эта команда была записана последней, что означает, что никакие команды, набранные после этого, не были записаны, включая команду history, используемую для проверки результата.

Вы можете увидеть, включена ли история, выполнив команду ниже.

set -o | grep history

Примечание. Вы можете снова включить историю bash, выполнив команду ниже.

set -o history

Чтобы навсегда отключить историю bash, выполните приведенную ниже команду, чтобы добавить историю набора правил + o в файл.bashrc. В файле.bashrc хранится конфигурация сеансов терминала, включая историю оболочки, а также другие функции.

echo ‘set +o history’ >> ~/.bashrc

Как видите, в нижней части файла.bashrc вы увидите добавленное правило set + o history.

less .bashrc

Как видите, в нижней части файла.bashrc вы увидите добавленное правило

Примените изменения, запустив файл.bashrc, как показано ниже.

sh .bashrc

Чтобы отключить историю для всей системы, выполните приведенную ниже команду с правами суперпользователя, чтобы сбросить значение переменной HISTFILE.

echo ‘unset HISTFILE’ >> /etc/profile.d/nohistory.sh

Примечание. Если вы хотите восстановить историю активности оболочки, вы можете удалить только что созданный файл в /etc/profile.d.

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

echo ‘set +o history’ >> /etc/profile

Чтобы отменить предыдущую команду и восстановить историю bash, вам необходимо удалить историю set + o из файла / etc / profile

nano /etc/profile

Удалите выделенную строку (последнюю, содержащую команду set + o history ).

Удалите выделенную строку (последнюю, содержащую

Измените его на:

Измените его на

Ограничение размера истории bash

Есть 2 переменные, ограничивающие размер истории bash: переменные $ HISTFILESIZE и $ HISTSIZE. Разница между ними в том, что $ HISTFILESIZE определяет количество строк, которые будут сохранены на диск и останутся после завершения сеанса. Вторая переменная, $ HISTSIZE, определяет количество строк, которые будут сохранены в истории, но не останутся после закрытия сеанса.

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

echo $HISTFILESIZE

Как видите, после закрытия и повторного входа в мою историю сохранятся мои последние 100 команд.

Чтобы изменить количество строк, сохраняемых на диск, выполните команду ниже.

HISTFILESIZE=50

Примечание. 50 — это количество строк, которое вы хотите сохранить в своей истории даже после закрытого сеанса. Замените его желаемым количеством строк.

Как видите, теперь ваша история сохраняет на диск последние 50 команд.

Выполните команду ниже, чтобы увидеть количество строк, сохраненных в одном сеансе до выхода из системы.

echo $HISTSIZE

Как видите, в истории сеансов записаны последние 500 команд.

Чтобы изменить запуск $ HISTSIZE:

HISTSIZE=50

Теперь ваши сеансы сохранят ваши последние 50 команд.

Заключение

Как видите, удалить историю bash или конкретный контент из нее довольно просто, в том числе для новых пользователей Linux. Знание того, как удалить свою историю, особенно важно, когда вы работаете удаленно и вам нужно обеспечить безопасность. В некоторых случаях пользователи могут ошибочно вводить свои пароли на терминале, оставляя важную информацию. В некоторых случаях некоторые администраторы могут вообще отключить эту функцию. Тем не менее, история bash — отличная функция, которая помогает нам очень легко повторять команды, нажимая клавишу.

Читайте также:  Как изменить значок папки в Windows 10: 3 простох шага
Оцените статью
ПОПУЛЯРНЫЕ ТЕХНОЛОГИИ
Добавить комментарий

  1. Благодарец

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

    Ответить