If using ksh, the commands typed are stored (for a defined number of entries) in the .sh_history file usually located in the user's home directory. This can be examined if necessary. I belive the bash shell offers a similar facility. Be aware, however that this file will not record commands typed in (for example) a sqlplus session in Oracle.
I imagine there are other key-capture products offering a greater degree of flexibility and tighter security from user interference, but I have never come across them. You could also write your own routine to be executed on entry, I guess!
I want to be good, is that not enough?