В этом руководстве объясняется, как удалить историю bash, не оставляя следов в Linux.
Историю bash можно увидеть с помощью команды history. Если вы запустите его, вся история пользователя будет отображаться, как показано ниже.
history
По умолчанию история bash находится в файле.bash_history, расположенном в домашнем каталоге пользователя. В моем случае пользователь linuxhint, чтобы просмотреть историю с помощью cat, которую я запускаю:
cat /home/linuxhint/.bash_history
Примечание: вы можете узнать местоположение вашего файла истории, выполнив команду ниже.
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 команд.
Допустим, вы хотите удалить только шестую команду ( 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, как показано ниже.
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 — отличная функция, которая помогает нам очень легко повторять команды, нажимая клавишу.
вот он линукс во всей красе. боряшийся за права и конфедонциальность. копит себе логи не спрашивая пользователя надо ему или нет. команды не команды все подрят как пылелсос. и что бы это отключить нужно побегать по сайтам порытся в командах которые еще хрен найдеш так как все копипастеры копируют команы в статьи только для выключения хистори в текушей сесии но это хоть статья одна из немногих которая написала как полностью вырезать эту ракову опухоль.