Hund

Kom igång med alias i skalet

9 April 2020

Det finns flera saker som mer och mindre erfarna användare många gånger tar för givet, en av dessa saker är alias i skalprogrammen (eller skalet som det oftast förkortas till). Ett alias kan enklast beskrivas som genvägar i skalet.

Eftersom att vissa kommandon i skalet ibland kan vara långa och/eller svåra att komma ihåg kan man förenkla kommandot med en genväg, det vill säga att man tillägnar kommandot ett unikt namn som du kör istället för kommandot. Ett exempel är mitt kommando för att uppdatera min dator:

sudo emerge --sync ; sudo emerge --ask --verbose --update --deep --newuse --keep-going y @world

Det kommandot är inte vidare roligt att behöva skriva om eller leta på i historiken varje gång jag vill uppdatera min dator, vad man istället kan göra är att man skapar ett alias för det. I mitt fall heter mitt alias pku (förkortning för “package upgrade”). Och här har vi själva kodsnutten för just det aliaset:

alias pku='sudo emerge --sync ; sudo emerge --ask --verbose --update --deep --newuse --keep-going y @world'

Den raden placerar man i sin konfigurationsfil för sitt skal, vilket vanligast är filen ~/.bashrc om du inte använder ett alternativt skal, vilket du i sådana fall borde ha koll på. Om du skapar ett eget alias behöver du antingen starta om skalet eller läsa om inställningarna på nytt med kommandot source ~/.bashrc för att de nya inställningarna ska börja gälla.

Variabler i skalet

En liten bonus för det här avsnittet är variabler. Förut när jag hade två datorer och innan jag gick över till Gentoo på båda hade jag två olika pakethanterare på dessa datorer. För att kunna använda en och samma konfigurationsfil för båda datorer och även kunna använda samma kommandon för de olika pakethanterarna skapade jag variabler som kollade vilken Linuxdistribution det var och sedan läste in olika alias beroende på vilken dator det var.

I min konfigurationsfil lade jag till den här raden som kontrollerar vilken Linuxdistribution det är och skapar variabeln distro med värdet:

distro=$(cat /etc/*-release | grep --color=NEVER -w 'ID' | cut -c4-)

Värdet för $distro blir exempelvis gentoo för Gentoo och debian för Debian. Jag kunde då omsluta mina alias för pakethanterarna i en if-sats:

if [ "$distro" = "gentoo" ]; then
    alias pku='sudo emerge --sync ; sudo emerge --ask --verbose --update --deep --newuse --keep-going y @world'
    [...]
elif [ "$distro" = "debian" ]; then
    alias pku='sudo apt update ; sudo apt upgrade'
    [...]
fi

Om du har tips på fler intressanta funktioner för nybörjare eller är själv någon som vill vet mer om något är jag alltid tacksam för alla tips och idéer som erfarna användare kanske tar för givet.

Meta

Kommentarer

Det finns inga kommentarer för det här inlägget. Använd e-postformuläret om du vill lämna en kommentar på det här inlägget. [Användarvillkor]