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

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

72
задан 14 October 2013 в 14:50

4 ответа

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

Если вы на самом деле хотите, чтобы команды без цифр были спереди, используйте эту команду вместо history:

history | cut -d' ' -f 4-

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


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

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

history | tail -n 15

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


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

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

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

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


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

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

history | tac | less

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

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

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

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

0
ответ дан 14 October 2013 в 14:50

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

emacs ~/.bash_history

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

echo $HISTFILE

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

0
ответ дан 14 October 2013 в 14:50

В дополнение к отличному ответу minerz029.

Повторим: команда «history» печатает историю вместе с номером рядом с ней.

Вы можете направить вывод истории в grep, less и т. Д.

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

  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 я набрал бы в терминале

 admin@xen1~$ !473

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

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

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

0
ответ дан 14 October 2013 в 14:50

enter image description here

Вы можете попробовать историю в стиле «предложи коробку» https://github.com/dvorka/hstr - он читает историю Bash и обеспечивает быструю навигацию.

0
ответ дан 14 October 2013 в 14:50

Другие вопросы по тегам:

Похожие вопросы: