Переглянути історію команд, запущених у терміналі


75

Чи є спосіб зберегти всі мої введені команди термінала і переглянути його як історію в журналі журналів?

Відповіді:


92

Це робиться автоматично. Bash зберігає ваші команди в ~/.bash_history. Якщо ви хочете ознайомитись з історією, надрукуйте вихід цього файлу за допомогою одного з

cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...

Або ви можете використовувати вбудовану команду bash:

history

Щоб очистити історію, видаліть файл та очистіть історію темпу:

rm ~/.bash_history && history -c

За замовчуванням розмір за замовчуванням до 500 команд. Однак ви можете збільшити це, додавши до рядка такий рядок ~./bashrc:

HISTSIZE=<number of entries, -1 for unlimited>

Це набере чинності не відразу, а лише для нещодавно розпочатих сесій. Щоб застосувати це, ресурс .bashrc файл:

. ~/.bashrc

або запустити HISTSIZE=...в поточному сеансі.


1
За замовчуванням він зберігає лише останні 500 команд. Ви можете змінити номер, який потрібно зберегти, але вам доведеться лише випадково запустити його з налаштуваннями за замовчуванням один раз, і вся ваша стара історія піде.
kasperd

Це не працює для мене на Ubuntu 16
Nam G VU

31

Ви можете ввести historyтермінал, щоб переглянути всі попередні виконані команди.


Ви можете обрізати вихід у деяких рядках (де 5 - кількість рядків):

history 5

Якщо ви хочете переглядати лише команди, що містять рядок (тобто mv), ви можете зробити це:

history | grep mv

Ви можете відкликати команду, ввівши !за нею номер номера.

Скажімо, у мене така історія:

1 ls -la
2 mkdir foo
3 mv bar.txt foo
  • Щоб запустити mkdir foo, ви можете ввести !2.
  • Для запуску останньої команди ви можете використовувати !-1або!!
  • Для запуску передостаннього можна скористатися !-2

Якщо ви запускаєте команду, яка не вдається, оскільки їй потрібні привілеї root (тобто touch /etc/foo), ви можете використовувати sudo !!останню команду як root.


  • Якщо ви введете, !manви виконаєте останню команду, яка починається зman
  • Якщо ви введете, !?man?вона виконає останню команду, яка містить man(не обов'язково в рядку починається)

Якщо у вас є друкарська помилка в команді, ви можете виправити це таким чином. Припустимо , що я друкую cat .bash_hi, щоб замінити .bash_hiна .bash_historyмені потрібно тільки набрати ^hi^history^.


Джерело: https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps


2
Також ви можете натиснути Ctrl-R, щоб здійснити пошук у хості під час введення.
Mhmd

historyпрацює для мене на Ubuntu 16. Дякую і повинен бути прийнятим!
Нам Г ВУ

9

Просто введіть:

history > print.txt

Новий файл під назвою print.txt буде створений у вашому поточному робочому каталозі.


3
Виключає команди після 1000
Антуан

3

Я часто просто хочу цих останніх команд. Дописувати до моїх записок про розробку або, ну, таких, як stackexchange сайти ... Це виявилося дуже корисним, видаляючи невідповідні номери рядків:

history | cut -c 8- | tail

або, якщо вам це подобається як псевдонім, номери рядків видаляються та мають відступ відразу (так само, як це потрібно для відмітки коду коду)

alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\}  /    /gi'"

1
Простіше у використанні fc: askubuntu.com/a/839642/158442
muru

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