2011-05-05

Esecuzione del comando precedente con sudo in bash

Se vi capita spesso di amministrare un sistema Unix/Linux e, come è giusto, non avete effettuato il login come root, potrebbe succedervi, come succede a me, di dimenticare di aggiungere sudo prima di un comando che necessita dei permessi di superuser, in questo caso l'operazione più noiosa sarebbe quella di scrivere un nuovo comando iniziando con sudo e poi riscrivere interamente il comando precedente, spero per voi che non facciate in questo modo, ci sono metodi un po' più veloci, se il comando da ripetere è breve potrebbe essere accettabile ma molti comandi sono lunghi, complessi e nascondo insidie da evitare.


Nella scala della velocità vedo il metodo che utilizza il copia e incolla messo a disposizione dagli ambienti grafici oppure dalla console, in questo caso quando ci si accorge dell'omissione di sudo si può scriverlo come prima cosa, copiare ed incollare l'intero comando precedente.
Un gradino più in alto si trova il metodo che con la freccia verso l'alto ripropone il comando e poi con il tasto <Home>, oppure con <Ctrl>A ci si posiziona all'inizio del comando e si digita il dimenticabile sudo.
Il comando metodo che preferisco in assoluto è quello che utilizza la vecchia modalità di accesso all'history dei comandi, si tratta del doppio punto esclamativo !! che equivale a scrivere !-1 ma essendo forse uno dei richiami più frequenti gli è stata dedicata un'abbreviazione; per rieseguire il comando precedente aggiungendo in testa sudo si può digitare
sudo !!
Fate solo attenzione ad una trappola, se il comando appena eseguito, in realtà, si tratta di una serie di comandi uniti da | ( pipe ) oppure da ; oppure && , i permessi di superuser saranno concessi solo all'esecuzione del primo comando della serie.

Nessun commento:

Posta un commento