Создание списка истории команд

Есть ли способ отобразить список, состоящий из последних n команд терминала, сделанных конкретным пользователем?

1
задан 16 December 2015 в 09:28

4 ответа

Если ваша оболочка bash, лучший способ - использовать команду history:

(HISTFILE=/home/user/.bash_history; history -c; history -r; history n)

. Хотя это немного сложно, это обеспечивает все преимущества команды history (например, отметки времени, если вы включили его). Скобки (()) обеспечивают выполнение команд в подоболочке и не влияют на текущую оболочку.

4
ответ дан 23 May 2018 в 23:49

tail -n /home/userinquestion/.bash_history будет казаться очевидным ответом - если у них есть bash как их оболочка, конечно ..

Если терминал открыт, он может еще не писать команды в файл истории.

Вам нужно будет использовать su или sudo, если пользователь не является вами.

2
ответ дан 23 May 2018 в 23:49

Еще один вариант - создать простой скрипт оболочки, который делает это:

#!/bin/bash
tail --lines=$1 /home/$(whoami)/.bash_history

Это берет ответ gP и делает его немного красивее, делая больше файлов автоматически.

Запустите nano history-lookup.sh (или любое другое имя, которое вы хотите - просто запустите его в .sh). Вставьте этот код. Нажмите Ctrl + O, затем Ctrl + X, чтобы сохранить и выйти. Запустите bash history-lookup.sh NUMBER-OF-ENTRIES. Он должен хорошо выплюнуть их на экран.
2
ответ дан 23 May 2018 в 23:49

Попробуйте:

history | tail -n20 > history20.txt

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

1
ответ дан 23 May 2018 в 23:49

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

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