Кто-то предложил эту команду для удаления постоянной истории оболочки

history -c; >$HISTFILE

Я просто не хочу выполнять его, пока не узнаю, что именно он делает, вы можете помочь?

0
αғsнιη 10 Янв 2022 в 14:56
2
Какую оболочку вы используете? Это про Баш или что-то другое?
 – 
terdon
10 Янв 2022 в 13:04

1 ответ

Это две команды, разделенные ;, а не одна. У вас есть history -c, а затем у вас есть > $HISTFILE. Вы не указываете в своем вопросе, но если вы используете bash, вы можете запустить help history, чтобы увидеть, как работает команда history. Вы увидите, что опция -c будет:

  -c    clear the history list by deleting all of the entries

Таким образом, history -c удаляет всю историю из вашего текущего сеанса оболочки.

Глобальная история сохраняется в файле, хранящемся в переменной $HISTFILE. По умолчанию это ~/.bash_history:

$ echo $HISTFILE
/home/terdon/.bash_history

В оболочке bash оператор перенаправления > без команды очистит файл. Например:

$ echo "Hello world!" > file
$ cat file
Hello world!
$ > file
$ cat file
$ 

Как вы можете видеть выше, запуск > file очистил файл, поэтому запуск > $HISTFILE очистит ваш файл истории.

Итак, взяв все это вместе, history -c; > $HISTFILE очистит вашу текущую историю оболочки, а затем также удалит всю сохраненную историю у вашего пользователя.

3
terdon 10 Янв 2022 в 22:48
Идеальный ответ, спасибо :)
 – 
Farouk
10 Янв 2022 в 13:32
Потратьте время, чтобы принять ответ, поскольку он решает вашу проблему.
 – 
Quasímodo
10 Янв 2022 в 18:27