Есть ли способ отобразить список, состоящий из последних n команд терминала, сделанных конкретным пользователем?
Если ваша оболочка bash, лучший способ - использовать команду history:
(HISTFILE=/home/user/.bash_history; history -c; history -r; history n)
. Хотя это немного сложно, это обеспечивает все преимущества команды history (например, отметки времени, если вы включили его). Скобки (()) обеспечивают выполнение команд в подоболочке и не влияют на текущую оболочку.
tail -n /home/userinquestion/.bash_history будет казаться очевидным ответом - если у них есть bash как их оболочка, конечно ..
Если терминал открыт, он может еще не писать команды в файл истории.
Вам нужно будет использовать su или sudo, если пользователь не является вами.
Еще один вариант - создать простой скрипт оболочки, который делает это:
#!/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. Он должен хорошо выплюнуть их на экран.Попробуйте:
history | tail -n20 > history20.txt
Посылая результат в текстовый файл, вы можете в любое время распечатать, просмотреть, отправить по электронной почте и т. д.