Я часто использую Терминал, и иногда я выполняю команды, которые я не хочу, чтобы другие видели, но больше команд, которые, если я случайно выполнил стрелку вверх или случайно выполнил, вызвали бы много проблем.
Поэтому мне интересно, есть ли или я могу создать какой-то терминал в «режиме инкогнито», который позволил бы мне при выполнении определенной команды прекратить запись моей истории, а затем начать запись только после того, как я либо снова выполните команду начала записи истории и выйдите из «режима инкогнито», либо я просто перезапущу Терминал?
Потому что позже я собираюсь удалить вещи из моего .bash_history
, когда это будет гораздо проще если бы я мог остановить его запись там, во-первых, или, по крайней мере, заставить его попытаться записать его где-то там, где ему просто не разрешили бы, и в конечном итоге не записал бы его.
Выполнение команда, не помещая его в историю:
Просто помещает пространство перед командой. Bash проигнорирует команды с предварительно ожидаемым пространством:
Пример: Примечание echo "Some secret text"
Пространства: Это только работает, если HISTCONTROL
переменная установлена на ignorespace
или ignoreboth
.
Отключают историю временно:
set +o history
Пространства или shopt -uo history
Пространства для отключения истории. set -o history
или shopt -so history
для включения его снова. Отключают историю для текущей сессии (не будет помнить команд от сессии):
unset HISTFILE
Примечание: Вы будете в состоянии видеть, что команды нажимают , пока Вы не закроете терминал.
<час>Удаляют команду из истории:
Выполнение history | grep "part of your secret command"
Пространства Это покажет, что список ранее выполнил команды в этом формате:
casa@portátil:~$ history | grep pkill
302 pkill $
467 pkill gone-cal
468 pkill actionaz
500 pkill chrome
550 pkill super
Выбор число записи слева от команды. Можно скопировать его с Ctrl + Сдвиг + Выполнение C
history -d <number>
Пространства, где <number>
число записи для удаления записи.
можно вставить то число с Ctrl + Сдвиг + V <час>
Другие интересные ответы:
Можно просто удалить историю одного конкретного терминального сеанса путем добавления команды history -cw
после работы. Не закрывайте терминал прежде, чем дать команду.
shopt -uo history
должен сделать это лучше всего.
Уничтожение HISTFILE
(и др.) переменные не остановят Ваш зарегистрированная история, это просто не продвинет его к диску. Это может или не может быть положительным моментом для Вас, но, учитывая Вас упоминают его, я предполагаю, что Вы хотите что-то лучше. При изменении shopt
установка истории мешает целому механизму истории инициировать.
можно стать входящими на с shopt -so history
(-s
, и -u
установлены и сброшены соответственно).
Примечание, что сама команда будет, вероятно, зарегистрирована так, предварительно ожидает ее с пространством для остановки ее добавляемый к истории перед очисткой переменной.
Другой способ уничтожить текущую оболочку, не регистрируясь в файл истории состоит в том, чтобы сделать:
kill -9 $
Это заставляет удар (и вероятно другие оболочки также) отправлять сигнал SIGKILL в себя, уничтожая его на месте и препятствуя тому, чтобы он писал что-либо в диск.
К временному файлу отключают историю команд для текущей сессии, можно временно сбросить переменную среды HISTFILE.
unset HISTFILE
, в то время как сессия активна, можно получить доступ к истории, как обычно, но ей won’t быть сохраненными к диску.
Для инвертирования на той же сессии (все изменения будут зарегистрированы)
HISTFILE=$HOME/.bash_history
Можно изменить строки истории на текущей сессии оболочки. Если Вы будете идти назад через историю (например, с или Ctrl + P ) и изменять строку , не выполняя его , только измененная версия строки будет сохранена. Можно изменить его по своему усмотрению; хороший выбор включал бы использование Ctrl + U для общего очищения строки или использования Esc # для помещения #
символ комментария вначале.
Для оставления позади строки, не выполняя его не забудьте не совершать нападки Возврат ( Входят ). То, что я делаю, возвратиться к новейшей строке в истории через Esc > .
(Вместо Esc , сопровождаемого > , в большинстве терминалов, можно держать Высокий звук и нажатие > ; то же идет для Esc # предложение выше.)
Примечание: Вы can’t постоянно изменяют записи от предыдущих сессий этот путь. Те изменения не будут применены к HISTFILE
в конце сессии.
Вы могли также сделать .bash_history только для чтения. Я освободил бы файл сначала и затем сделал бы:
chattr +i .bash_history
Вы могли выполнить чувствительные команды на экранной сессии, затем уничтожить сессию, когда Вы сделаны.
Поочередно, Вы могли поддержать ту экранную сессию, но отсоединились, и только получите доступ к ней, когда Вы на самом деле хотите быть в состоянии к стрелке вверх к в других отношениях опасным командам.
Лично я использую mksh
, и у этой раковины по умолчанию нет файла истории. Это означает, что Вы могли запустить альтернативную раковину такой как mksh
или dash
(который прибывает по умолчанию, между прочим), чтобы управлять командой Вы не хотите, чтобы пользователи видели, и вышли когда-то сделанный. bash
история только сделает запись этого, Вы запустили альтернативную раковину и вот именно.
--
и -
перед опциями: D
– Rinzwind
17 August 2016 в 23:41
Можно также использовать оконечный мультиплексор такой в качестве tmux
, screen
. Таким образом под tmux
или screen
история не была бы сохранена.