Як переглянути файл `.bash_history` за допомогою командного рядка?


72

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


7
Як щодоhistory | less
MadMike

2
Ви перевірили /home/username/.bash_history ?
Мітч

2
Примітка: .bash_historyдодається лише тоді, коли термінал закритий.
Nicolas VERHELST

Відповіді:


56

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

emacs ~/.bash_history

Це місце за замовчуванням, якщо ваш файл історії. Якщо ви там нічого не знайдете, можливо, ви змінили ім’я файла історії. Це зберігається у $HISTFILEзмінній, тому роздрукуйте його, щоб перевірити його поточне значення:

echo $HISTFILE

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


49

Якщо ви на самому справі потрібно висновок .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щоб вийти.


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

 admin@xen1~$ !473

після чого клавіша введення повторює команду поруч із 473 у виведенні історії.

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

Звичайно, ці два останні варіанти працюють в оболонці bash. Я не впевнений, чи працюють ці функції в інших оболонках. Але оскільки bash є оболонкою Ubuntu за замовчуванням, ви повинні їх знайти там.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.