Come molte persone che lavorano con macchine Linux, preferisco usare l'interfaccia della riga di comando quando possibile e quando ha senso. In alcuni casi, è più facile trovare, ispezionare e modificare alcune configurazioni usando le dita perché semplicemente "conoscono" i comandi che devi digitare ed è più veloce che aprire una GUI e cercare la sequenza di menu di cui hai bisogno per fare clic.
Certo, ci sono alcuni casi in cui l'utilizzo della GUI è più veloce e stai facendo quell'attività solo una o due volte, quindi chi se ne frega, giusto? Ma se è qualcosa che dovrai fare più volte, magari con alcune variazioni, il tuo cervello di amministratore di sistema riflette:"Posso automatizzarlo?" In molti casi, la risposta sarà sì, ma lo sforzo di automatizzare l'attività non vale la pena in altre situazioni.
[ Potrebbe piacerti anche: Trucco del terminale Linux:hackerare il comando cd per ricordare dove sei stato]
Se potessi riutilizzare i comandi recenti che ho digitato.
Cronologia
L'opzione più semplice quando si tratta di recuperare gli ultimi comandi digitati nella console Linux è usare history
. In questo esempio, stai lavorando con il server HTTP e stai interrompendo ripetutamente il servizio, modificando il httpd.conf
file, quindi riavviare httpd
per controllare i risultati nel browser.
Il seguente comando ti mostrerà gli ultimi 10 comandi utilizzati:
❯ history | tail -10
10057 systemctl stopt httpd.service
10058 systemctl stop httpd.service
10059 sudo systemctl stop httpd.service
10060 sudo systemctl start httpd.service
10061 systemctl status httpd.service
10062 history
10063 systemctl status httpd.service
10064 ps -ef|grep httpd
10065 man httpd.conf
10066 view /etc/httpd/conf/httpd.conf
Da lì, puoi copiare e incollare la riga (se devi modificare il comando o utilizzarlo in un altro terminale) o digitare il punto esclamativo seguito dalla sequenza del comando nella cronologia:
> !10061
Questa riga richiama il comando systemctl status httpd.service
dalla cronologia, quindi premi semplicemente INVIO tasto (o modificare il comando prima di rieseguirlo).
Questo non è male, ma devi comunque digitare la sequenza o copiare + incollare con il mouse. Non un enorme affare, ma vuoi concentrarti sul tuo compito principale.
Alcune buone alternative
Puoi richiamare i comandi precedenti dalla cronologia usando UP tasto freccia. Naviga nell'elenco utilizzando SU e GIÙ chiavi.
Questo approccio va bene, ma cosa succede se vuoi recuperare qualcosa che sai di aver usato 15 minuti fa? Sarà sicuramente nell'elenco della cronologia, ma potresti dover fare un po' di mining.
Ad esempio, puoi utilizzare history
, invia l'output a grep
ed elenca solo i comandi che soddisfano le tue esigenze. In questo esempio, visualizzo tutti i comandi in history
che includono http stringa:
> history | grep http
10544* systemctl status httpd.service
10545* systemctl stopt httpd.service
10546* systemctl stop httpd.service
10547* sudo systemctl stop httpd.service
10548* sudo systemctl start httpd.service
10549* systemctl status httpd.service
10551* systemctl status httpd.service
10552* ps -ef|grep httpd
10553* man httpd.conf
10554* view /etc/httpd/conf/httpd.conf
10561* systemctl status httpd.service
Quindi da qui puoi usare di nuovo il punto esclamativo e il numero di sequenza. Ad esempio:!10546
Ma potresti pensare:"Va bene, ma la mia connessione cervello-dita è così veloce che non voglio essere distratto. Lo so esattamente il comando che cerco."
Va bene, c'è una soluzione anche per questo.
Quando il cervello e le dita sanno cosa stanno cercando
Continuando con questo esempio, vuoi richiamare i comandi relativi a httpd
velocemente.
L'opzione per te è usare CTRL+R , che ti chiederà una sottostringa. Usalo per ricordare l'ultimo comando che hai digitato che contiene quella stringa.
Mentre digiti la stringa dal tuo comando, verrà visualizzato l'ultimo comando che ha utilizzato quella stringa. Se il comando è quello che stai cercando, premi INVIO , e verrà eseguito.
Se a questo punto continui a premere CTRL+R , il penultimo verrà mostrato il comando che contiene quella stringa di ricerca, che in questo esempio è view /etc/httpd/conf/httpd.conf
comando.
Puoi navigare indietro (CTRL+R ) e avanti (CTRL+S ).
[ Vuoi testare le tue capacità di amministratore di sistema? Fai una valutazione delle abilità oggi. ]
Concludi
Quando conosci parte del comando che hai eseguito di recente, puoi utilizzare le scorciatoie discusse qui per richiamarlo rapidamente. Questo può essere particolarmente utile se hai usato il comando molto tempo fa ed è ancora nella cronologia della shell, ma le tue dita lo "ricordano".
Ovviamente, ci sono modi più efficienti per svolgere le tue attività quotidiane rispetto alla digitazione:creare alias per i comandi che usi molto, creare script, automatizzare, ecc. Ma quando è necessario digitare, è meglio farlo in modo efficiente.