Как просмотреть файл .bash_history через командную строку?

58

Я хочу просмотреть содержимое моего файла .bash_history , но не знаю, как туда добраться через командную строку.

    
задан isupportopensource 14.10.2013 в 11:46
источник

4 ответа

48

Если вы хотите получить доступ к самому фактическому файлу, просто используйте свой любимый текстовый редактор (я использую emacs , но вы можете использовать pluma gedit или vim или что-то еще):

emacs ~/.bash_history

Это местоположение по умолчанию, если ваш файл истории. Если вы ничего там не найдете, возможно, вы изменили имя файла истории. Это сохраняется в переменной $HISTFILE , поэтому распечатайте ее, чтобы проверить ее текущее значение:

echo $HISTFILE

Если вместо файла вы просто хотите просмотреть свою историю, вы можете запустить history , как предложили @ minerz029. команда history без параметров просто печатает содержимое вашего $HISTFILE после командами, выполненными в текущей оболочке, которые еще не были записаны в этот файл, с номерами строк.

    
ответ дан terdon 14.10.2013 в 23:43
источник
41

Если вы на самом деле нуждаетесь в файле .bash_history , замените history на %%_de% во всех приведенных ниже командах.

Если вам действительно нужны команды без номеров спереди, используйте эту команду вместо cat ~/.bash_history :

history | cut -d' ' -f 4-

в противном случае разница не будет (за исключением случаев, когда вы используете другую оболочку).

Последние 15 команд

Вы можете использовать

history | tail -n 15

, чтобы получить только последние 15 строк вашей истории с последним выполненным, напечатанным последним (внизу).

Поиск команды

В качестве альтернативы используйте

history | grep "apt-get" | tail -n 15

, чтобы получить последние 15 команд, содержащих history , с последним выполненным последним (внизу). Вы можете заменить apt-get любой командой (или аргументом команды), которую вы хотите найти (это может быть регулярное выражение).

Прокрутка истории

Вы можете использовать

history | tac | less

для прокрутки all команд, запущенных с самого последнего в верхней части. Нажмите q для выхода.

Аналогично, используйте

history | grep "apt-get" | tac | less

для прокрутки all команд, выполняемых с ними " apt-get " (включая аргументы), начиная с самого последнего в верхней части. Нажмите q для выхода.

    
ответ дан kiri 14.10.2013 в 12:07
15

В дополнение к превосходному ответу minerz029.

Чтобы повторить - команда «история» печатает историю вместе с рядом рядом с ней.

Вы можете вывести вывод истории в grep, меньше и т. д.

Вывод истории также показывает число слева рядом с выходом. например.

  469  free
  470  ps -fA
  471  ps -fA | grep xend
  472  free
  473  sudo vi /etc/xen/xend-config.sxp 
  474  cat /etc/default/grub 

С помощью этого номера вы можете повторно запустить команду.

например. для повторного запуска 473 я бы ввел в терминал

 [email protected]~$ !473

, а затем клавишу ввода, чтобы повторить команду, расположенную рядом с 473 в выводе истории.

Вы также можете выполнить поиск в интерактивном режиме назад в истории команд, набрав ctrl + r keys, затем начните вводить некоторые из содержимого команды, и она будет искать и заполнять ее. Когда вы его найдете, вы можете ввести ввод, чтобы повторить его, или нажмите клавишу [tab] , чтобы скопировать его в командную строку, чтобы сначала отредактировать команду.

Конечно, эти последние два варианта работают в оболочке bash. Я не уверен, что эти функции работают в других оболочках. Но поскольку bash является оболочкой Ubuntu по умолчанию, вы должны найти их там.

    
ответ дан Matt H 15.10.2013 в 01:47
1

Возможно,вызахотитепопробовать«предлагатьокно»ввидеистории Ссылка - он читает историю Bash и позволяет быстро перемещаться.

    
ответ дан Martin Dvorak 11.05.2015 в 14:15