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

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

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

emacs ~/.bash_history

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

echo $HISTFILE

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

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

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

history | cut -d' ' -f 4-

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


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

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

history | tail -n 15

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


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

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

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 чтобы выйти.

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

Повторюсь - команда "история" печатает историю вместе с номером рядом с ней.

Вы можете передавать выходные данные истории в 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

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

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

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

enter image description here

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

Как насчет история | меньше

ПРИМЕЧАНИЕ: .bash_history добавляется только тогда, когда терминал закрыт.

Вы проверили `/home/username/.bash_history’?

Ответ https://stackoverflow.com/questions/8561983#8562145 - это хороший вариант, я думаю. Вы можете просто сделать cat $HISTFILE.

echo $HISTFILE