history
ist ein bash Shell Builtin Befehl und sudo
funktioniert nicht mit Shell Builtins.
Was ist ein eingebauter Befehl und was nicht?
Ich habe den Befehl verwendet which
, "der die Pfadnamen der Dateien (oder Links) zurückgibt, die in der Umgebung ausgeführt werden", um zu bestätigen, dass history
es sich nicht um einen externen Befehl (für Bash) handelt.
Zum Beispiel laufen
$ which history $
gibt nichts zurück und der Exit-Code ist 1 (ein oder mehrere angegebene Befehle sind nicht vorhanden oder nicht ausführbar) [FYI siehe den Exit-Code mit echo $?
] während der Ausführung
$ which ls /bin/ls $
und der Exit-Code 0 (alle angegebenen Befehle werden gefunden und ausführbar).
In bash können Sie auch Hilfe zu integrierten Befehlen mit help
(oder zum Durchsuchen der man bash
Seite) suchen . Zum Beispiel eingeben
$ help history history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...] Display or manipulate the history list. ...
zeigt die Hilfeinformationen von bash. Beim Laufen wird help non-bash-command
etwas ähnliches angezeigt:
$ help ls bash: help: no help topics match `ls'. Try `help help' or `man -k ls' or `info ls'.
und der Exit-Code 1
Also, was hat Sudo gemacht?
Sie können Ihren eigenen Verlauf nach sudo
Befehlen durchsuchen, die Ihr Benutzer ausgeführt hat (und das Überspringen des Verlaufs im Verlauf nicht übersprungen hat), mit grep '^sudo' .bash_history
oder history|less
oder ähnlich.
Auf Ubuntu wird die Datei /var/log/auth.log
aufgezeichnet, was sudo
für alle Benutzer getan wurde. Suchen Sie dort nach "sudo" (andere Distributionen verwenden möglicherweise die Datei /var/log/secure
) oder können sie verwenden
sudo grep sudo /var/log/auth.log
oder laufen, sudo journalctl _COMM=sudo
wenn du systemd hast.
Weitere Informationen finden Sie in der Frage "Details zu Sudo-Befehlen, die von allen Benutzern ausgeführt werden" unter Unix und Linux