Come posso sapere chi ha eseguito un determinato comando e quale terminale è stato utilizzato per eseguirlo?
Originale :
Come faccio a sapere che il cmd particolare viene eseguito da chi e per conoscere il mio terminale
Come posso sapere chi ha eseguito un determinato comando e quale terminale è stato utilizzato per eseguirlo?
Originale :
Come faccio a sapere che il cmd particolare viene eseguito da chi e per conoscere il mio terminale
Risposte:
Per vedere quali comandi vengono eseguiti, utilizzare "ps -ef". Questo ti dirà cosa stanno facendo tutti, ma di solito sono troppe informazioni.
Per restringere il campo per scoprire chi esegue un determinato comando, è possibile aggiungere un filtro "grep" in questo modo:
ps -ef | grep scp
Questo restituirà tutti i comandi scp ma potrebbe anche restituire il comando grep che cerca scp e qualsiasi altro comando con le lettere scp incorporate in essi poiché grep è semplicemente corrispondente alla stringa. Quindi potresti dover essere intelligente con l'espressione data a grep (molte volte devi solo citarlo e aggiungere uno spazio:
ps -ef | grep "scp "
o ancora meglio sfruttare le espressioni regolari e:
ps -ef | grep "[s]cp "
Se conosci l'utente e vuoi solo sapere cosa stanno eseguendo, allora "ps -fu" è tuo amico. Per esempio
ps -fu tom
Che, ovviamente, può essere combinato con grep per ottenere i processi scp di tom:
ps -fu tom | grep "[s]cp "
La colonna 6 è la tty.
È possibile utilizzare tty
per scoprire il nome del file del terminale collegato allo standard input.
Per l'ultima parte della tua domanda, sudo
o su
e poi grep -c 'command' /home/username/.bash_history
.