Видалити історію терміналів в Linux [закрито]


170

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

Як я можу видалити цю історію?


Вибачте, я зовсім забув згадати, що я використовую bash.
Френк Вілеа

16
Оскільки це питання закрите, я не можу додати це як відповідь. Ви можете сказати bash не зберігати історію для конкретного сеансу за допомогою цієї команди:export HISTFILE=/dev/null
Chris Eberle

1
Я також можу додати це: не вводьте в командний рядок конфіденційну інформацію - чекайте підказки: D
hummingBird

Відповіді:


343

Ви можете очистити історію башу так:

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потім зробіть 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 запам'ятовує історію та відтворює файл під час виходу. Вам потрібно буде увійти, видалити файл, увійти ще раз, вийти з першої оболонки, видалити файл, а потім вийти з другої оболонки.
cHao

Дякуємо, що вказали на це. Я подумав, що я розумний, використовуючи параметр -p + password безпосередньо в команді, оскільки це було набагато швидше просто натиснути стрілку вгору, оскільки у мене дуже довгий пароль. Час на перегляд ..
Френк Вілеа

5
Не забувайте, щоб unset HISTFILEпоточна історія не зберігалася.
Ігнасіо Васкес-Абрамс

Я відредагував свою відповідь і додав рішення, яке не дозволяє вводити пароль кожен раз.
sagi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.