Is there a way to display a list comprised of the last
n terminal commands made by a particular user ?
Every user has a
.bash_history file, present in his home directory. i.e.
/home/<USERNAME>/.bash_history. It stores all the command executed by a particular user.
You can use this file to see the command executed by a user. (You need root privilege to access file of other user.)
tail -n /home/<USERNAME>/.bash_history
Don't forget to replace
n with actual number.
If your shell is
bash, then the best way is to use the
(HISTFILE=/home/user/.bash_history; history -c; history -r; history n)
While a bit complicated, this provides all the benefits of the
history command (such as timestamps, if you have enabled it). The parentheses (
()) ensure the commands are run in a subshell and don't affect the current shell.
One other option is to create a simple shell script that does this:
#!/bin/bash tail --lines=$1 /home/$(whoami)/.bash_history
This takes g-P's answer and makes it just a little prettier by doing more stuff automatically.
nano history-lookup.sh(or whatever name you want - just end it in
Paste that code in
Press Ctrl+O then Ctrl+X to save and exit.
bash history-lookup.sh NUMBER-OF-ENTRIES. It should spit them out nicely onto the screen.