Я смотрел на мой .bash_history
, и я нашел пустую строку. Я думал, что, возможно, нажал "Enter", в то время как я смотрел в файле.
Это нормально? Или возможно я действительно нажал Enter при взгляде файла на gedit?
Править: Просто найденный сегодня, что у меня есть больше чем один разрыв строки. Это странно, я никогда не редактирую .bash_history файл.
Это не проблема, это не опасно и совершенно нормально. Можно получить такие строки, если Вы поражаете пространство несколько раз и затем совершаете нападки входят . Это будет сохранено в Вашей истории (так как это - непустая строка, пробелы являются символами просто невидимые).
Для тестирования этого мы можем использовать команду, которая печатает пустые строки в истории удара, Например, это grep
будет соответствовать всем строкам, которые запускаются с чисел и затем имеют 0 или больше пробелов (пробелы или вкладки или безотносительно) и ничто иное до конца строки:
history | grep -P '^\s*\d+\s* , Который должен показать Вам список пустых команд, которые Вы выполнили. Теперь, выполненный (первое пространство хита средств строки несколько раз, затем войдите)
$ echo foo
foo
$
$ history | tail -n 3
$ history | tail -n 3
80 echo foo
81 ## this is the blank line
82 history | tail -n 3
, Вы заметите, что у Вас есть новая пустая строка. В заключение не волнуйтесь. все прекрасно, и это нормально.
, Который должен показать Вам список пустых команд, которые Вы выполнили. Теперь, выполненный (первое пространство хита средств строки несколько раз, затем войдите)
$ echo foo
foo
$
$ history | tail -n 3
$ history | tail -n 3
80 echo foo
81 ## this is the blank line
82 history | tail -n 3
, Вы заметите, что у Вас есть новая пустая строка. В заключение не волнуйтесь. все прекрасно, и это нормально.
Как упомянутый terdon, это - вероятный пробел только строки.
существует две опции переменных среды, которые управляют, хранятся ли пробельные строки в истории или нет:
HISTCONTROL
: если это содержит ignorespace
, то любая строка, которая запускается с пробела, проигнорирована.
HISTIGNORE
: двоеточие разделило список башмаков для игнорирования. Например, если это содержит:
HISTIGNORE=' *'
затем строки, которые запускаются с одиночного пробела, будут проигнорированы.
я не смог заставить удар сохранить действительно пустые строки без пробела.
Здесь объяснение о том, как пустые строки могут произойти в .bash_history
файл.
Вкратце:
при вызове из истории командной строки, которую Вы на самом деле ввели ранее на том же самом текущем терминальном сеансе и затем редактируете его (возможно, удаление его), но затем прерываете свое редактирование путем оставления этого (история-) командной строкой, использующей, например,
Down
стрелка для возвращения к подсказке фактической текущей командной строки, затем позже при выходе из терминала, редактирования зарегистрированы в .bash_history файле.