Glömde du sudo?

Dubbla utropstecken i bash

Alla som använt Ubuntu eller någon annan linuxdistribution där sudo används för att utföra ett kommando som kräver root-rättigheter har säkerligen någon gång glömt att skriva just sudo innan det kommando man vill utföra. Eller hur? Det ger vanligtvis till svars:

[anders@anders-laptop ~]$ cat /etc/shadow
cat: /etc/shadow: Åtkomst nekas

Detta förstås för att vi glömde sudo och därmed inte har rättigheter att läsa /etc/shadow-filen. Jag glömmer det ofta i kombination med apt-get install då jag behöver hämta hem nya paket och program. Vad göra?

Lugn, det ordnar sig

Vi kan förstås alltid skriva om kommandot med prefixet sudo.

[anders@anders-laptop ~]$ sudo cat /etc/shadow
nobody:*:15014:0:99999:7:::
usbmuxd:!!:15072::::::
avahi-autoipd:!!:15072::::::
...

Har vi just skrivit ett långt kommando (så som i det tidigare rsync-exemplet) med flera parametrar ter sig dock detta jobbigt, och jobbiga saker vill vi ju alltid undvika! Hur görs det mindre jobbigt? Vi kan förstås  trycka pil upp för att bläddra upp ett steg i kommandohistoriken, trycka på home-knappen för att komma till början av raden och skriva sudo där. Nu börjar det bli riktigt enkelt! Det enklaste alternativet kvarstår dock, nämligen användandet av dubbla utropstecken:

[anders@anders-laptop ~]$ sudo !!

De dubbla utropstecknen är en inbyggd funktion i bash som alltid returnerar det senast inslagna kommandot. Att skriva ovanstående blir alltså i vårt fall samma sak som att skriva:

[anders@anders-laptop ~]$ sudo cat /etc/shadow

Enkelt, eller hur?

En kommentar till “Bash: Upprepa kommando med dubbla utropstecken”

  1. Marcus skriver:

    Tack, man slipper trycka pil-upp, home och sudo. Ska försöka komma ihåg det här kommandot !! :)

Kommentera