Удалить историю терминала в Linux [закрыто]

170

Когда вы используете клавишу «вверх» в терминале Linux, вы можете снова использовать предыдущие команды. Отличная особенность. Однако я начал регистрировать mysql в mysql с подробными сведениями в команде.

Как я могу удалить эту историю?

Фрэнк Вилеа
источник
Извините, я совсем забыл упомянуть, что использую bash.
Фрэнк Вилеа
16
Поскольку этот вопрос закрыт, я не могу добавить его в качестве ответа. Вы можете сказать bash не сохранять историю для определенного сеанса с помощью этой команды:export HISTFILE=/dev/null
Крис Эберле
1
Я также могу добавить это: не вводите конфиденциальную информацию в командную строку - дождитесь приглашения: D
hummingBird

Ответы:

343

Вы можете очистить свою историю bash следующим образом:

history -cw

Эдди
источник
4
Действительно, как этот ответ - это вступает в силу немедленно, а не удаление, .bash_historyкоторое требует перезапуска оболочки для вступления в силу.
Mikemaccana
1
Не работает на моей машине Ubuntu 14.04. История просто появляется с новым терминалом. Все , что работает это >~/bash_history. Для этого придется перезапустить терминал.
Аникет Тхакур
Также работает на Mac OS X El Capitan (протестировано на версии 10.11.2), но вам необходимо добавить следующую строку в ваш ~/.bash_profile:, export SHELL_SESSION_HISTORY=0затем выполнить a source ~/.bash_profileи завершить выход и перезапустить приложение Terminal. Если вы хотите понять, что делает эта команда экспорта, то вам обязательно нужно проверить следующую ссылку: superuser.com/questions/950403/…
King-Wizard
1
не только -c достаточно? В руководствах говорится, что -c очищает список истории, удаляя все записи. -w записывает текущую историю в файл истории и добавляет их в список истории. Просто -c отлично работает.
Кан
24

Если вы используете bash, то история терминала сохраняется в файле с именем .bash_history. Удалите его, и история исчезнет.

Однако для MySQL лучше не вводить пароль в командной строке. Если вы просто укажете опцию -p без значения, вам будет предложено ввести пароль, и он не будет зарегистрирован.

Другой вариант, если вы не хотите каждый раз вводить пароль, это сохранить его в файле my.cnf. Создайте файл с именем ~ / .my.cnf примерно так:

[client]
user = <username>
password = <password>

Обязательно измените права доступа к файлу, чтобы только вы могли прочитать файл.

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

Саги
источник
4
+1 за уточнение -p. Это абсолютно правильный подход к этой проблеме
andyb
2
На самом деле, в моей системе Linux bash запоминает историю и воссоздает файл при выходе из системы. Вы должны войти в систему, удалить файл, войти снова, выйти из первой оболочки, удалить файл, а затем выйти из второй оболочки.
Цао
Спасибо что подметил это. Я подумал, что я умен, используя опцию -p + пароль непосредственно в команде, потому что гораздо быстрее было просто нажать стрелку вверх, так как у меня очень длинный пароль. Время пересмотреть ..
Фрэнк Вилеа
5
Не забудьте, unset HISTFILEчтобы текущая история не сохранялась.
Игнасио Васкес-Абрамс
Я отредактировал свой ответ и добавил решение, которое не позволяет вводить пароль каждый раз.
саги