Menu Chiudi

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 commenti

  1. LuNa

    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. elect

    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. irruenza

    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. riva.dani

    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. Jaba

    :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. montoya

    Nemo, mi hai anticipato. Cmq uso sempre ![A-z]+ in genere per ripetere l’ultimo comando che inizia per [A-z]+… fantastico.

  7. irruenza

    @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

  8. irruenza

    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

  9. Massimo

    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.

  10. nomadsoul

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

  11. Kouta

    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!

  12. gian

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

  13. felipe

    @irruenza:
    Tempo fa ho descritto un metodo per superare il limite di 500 nella history bash: http://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: http://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 :)

  14. merlos

    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!!

  15. mamozzi

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

  16. Pingback:Tre pacchetti interessanti « pollycoke :)

  17. Pingback:La mappa delle comunità online e cosa accadrebbe se la vita fosse un sistema Unix-like at Boliboop

  18. Pingback:Sudo su Debian | /nuNce.net/blog/

Rispondi

Scopri di più da pollycoke :)

Abbonati ora per continuare a leggere e avere accesso all'archivio completo.

Continue reading

Vai alla barra degli strumenti