Aggiungere “sudo” all’ultimo comando dato

Questo trucchetto potrebbe tornarvi utile quelle volte che date un comando che richiede diritti di amministrazione ma dimenticate di aggiungere “sudo” all’inizio della riga.

sandwich.png

La vignetta qui sopra è un classico umoristico abbastanza esplicativo: una richiesta (fammi un panino) viene accolta con un “no” (eh? fattelo da solo), ma diventa irrifiutabile se ci si aggiunge “sudo” :D Nell’immagine potete però notare che per usare sudo bisogna ripetere il comando, cosa alquanto noiosa. Per rimediare a questo c’è un sistema decisamente elegante…


Poniamo che io voglia aggiornare il sistema da linea di comando. Lancio con noncuranza apt:

$: apt-get update

Il cursore fa una capriola e mi risponde: “Permesso negato“. Ma certo, ho dimenticato “sudo”. Mi alzo indispettito, vado a giocare un po’ al dottore con Ambrosia, giusto per compensare la temporanea perdita di autostima, poi torno al terminale e digito:

$: sudo !!

Zac! Il sistema risponde con un impercettibile inchino. Mi viene mostrato il comando per intero, chiesta la password, che io concedo con la stessa generosità dimostrata prima alla mia amica, e la richiesta viene soddisfatta in perfetta efficienza.

Ecco allora la vignetta di prima, ma modificata per sfruttare questo piccolo trucchetto. Notare il risparmio:

sandwich-enhanced.jpg

Non male :D

Se volete scovare altri trucchetti relativi all’uso della bash, terminale e comandi in genere, cercate nella categoria “Comodamente Shell

[fonte: Tom]

46 pensieri su “Aggiungere “sudo” all’ultimo comando dato

  1. questo qui e particolarmente azzecato perke sudo e’ una cosa che si dimentica spessissimo, io lo uso da tanto il doppio esclamativo ma applicato a questo è comodissimo, bravo felipe :D

  2. Edit: nn era un prova per dire provaci tu, era un prova per vedere se funzava il commento..

    Ps: cmq troppo lol la scenetta

  3. Questo perchè la shell tiene in memoria gli ultimi 500 comandi..
    Se digitate history vi compare l’elenco numerato, a quel punto se digitate !n_comando il comando sarà rieseguito..il doppio punto esclamativo riesegue l’ultimo comando, ed è possibile aggiungervi prima (come nel caso di sudo) o dopo altri comandi/opzioni…..
    Forse ho spiegato in maniera contorta……boh
    un saluto

  4. Ommioddio… Come ho fatto senza finora? Davvero utilissimo, che ignorante che ero/sono!

    PS: Ovviamente fino ad ora usavo freccia su > Home > sudo > spazio > invio, ma altrettanto ovviamente così si fa prima! :p

  5. :D macché comodità e comodità: qui ci vuole un dieci per lo stile!!!
    SUDOOOO!!! :D :D devo fare un alias maiuscolo con tante “O” :D

  6. @simone_engineer
    veramente il “modo” esiste già da un po’….io per lavoro usavo una sun blade con solaris e, che mi ricordi, almeno 8 anni fa su solaris già c’era, l’history e il punto esclamativo.e credo anche su linux

  7. Anzi, perchè, Felipe, non inserisci nel post anche il fatto che !! equivale semplicemente all’ultimo comando, e che col punto esclamativo si può richiamare anche il penultimo, terzultimo, ecc…… così si capirebbe meglio l’esatto senso di !
    ciao

  8. E consideriamo anche !$ che equivale all’ultimo argomento del precedente comando :)

    Le scorciatoie che conosco:
    ctrl+a inizio riga
    ctrl+e fine riga
    ctrl+u cancella tutta una riga
    ctrl+k cancella fino alla fine
    ctrl+w cancella fino all’inizio
    ctrl+s blocca il terminale (funziona anche con il login non grafico)
    ctrl+q lo sblocca

    Per chi usa la tcsh, ESC+spazio permette l’espansione immediata dei !*, e ESC+p permette di completare la riga di comando pescando il primo comando nell’history che inizia uguale.

  9. oppure puoi anche, per dire, premere freccia su, premere il tasto home e scrivere sudo all’inizio della riga :P

  10. AIUTATEMI digito :
    sudo make ambrosia parsley
    ma non arriva e non succede nulla!! mi da questo errore

    xlian@xlian-desktop:~$ make ambrosia parsley
    make: *** No rule to make target `ambrosia’. Stop.

    IO la voglio!

  11. davvero utile…
    dimentico spesso sudo, e per rimediare faccio:
    su + home + digito “sudo” …
    con sudo !! diventerò ancora più veloce! xD

  12. @irruenza:
    Tempo fa ho descritto un metodo per superare il limite di 500 nella history bash: https://pollycoke.wordpress.com/2007/03/08/aumentare-la-memoria-della-bash-per-fare-alcuni-trucchetti/

    Per il resto non sei stato per niente “contorto” e anzi sottoscrivo tutto, questo è solo un modo per trarre vantaggio di questa caratteristica poco conosciuta. I commenti che ampliano le info, come il tuo, sono una benedizione :)

    @Massimo:
    Dai un occhio a queste: https://pollycoke.wordpress.com/2006/10/04/shell-alcune-interessanti-combinazioni-di-tasti/

    @Fabrizio:
    La fonte è un’altra, e l’ho citata in calce al post come faccio sempre. Prova a leggere meglio.

    @giovanniceribella:
    Non a caso l’ho definita un “classico umoristico”

    @Kouta:
    Bisogna prima soddisfare una lunga serie di dipendenze :D

    @tutti:
    Contento che vi sia piaciuto! È bello vedere che la bash sia ancora apprezzata, e che questi trucchetti attirino sempre la nostra attenzione :)

  13. tratto direttamente da “man bash” :)

    [….]
    Event Designators
    An event designator is a reference to a command line entry in the his‐
    tory list.

    ! Start a history substitution, except when followed by a blank,
    newline, carriage return, = or ( (when the extglob shell option
    is enabled using the shopt builtin).
    !n Refer to command line n.
    !-n Refer to the current command line minus n.
    !! Refer to the previous command. This is a synonym for ‘!-1’.
    !string
    Refer to the most recent command starting with string.
    !?string[?]
    Refer to the most recent command containing string. The trail‐
    ing ? may be omitted if string is followed immediately by a new‐
    line.
    [….]

    Grazie della dritta!!

  14. La shell ha tante di quelle comodità che tuttora non capisco quelli che la bollano come “da dinosauri” e vogliono farne assolutamente a meno…

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...