NetBSD.SE Logotype
Meny
Välkommen till NetBSD.se

Sök bland pkgsrc/wip:Sök efter manual:
 


Introduktion till bash.
2003-09-18 18:35:07 inskickat av ekstam

GuiderEn introduktion till Bash.

Vilka olika shells finns det att välja på? Vi kan ju nämna några av de mest frekvent använda.

o Korn
o Public Domain Korn
o Ash
o Sh
o C Shell
o Bash - Defaultshellet i de flesta linuxdistributioner, och den vi kommer att diskutera här (mer specifikt version 2 och över).

Information för er som gillar att göra allt som root, GÖR INTE DET. Installera sudo istället. Men det täcker vi inte här. Ska du dock leka och lära dig så gör det som
en vanlig user.



Hur vet jag om jag kör Bash?

Öppna en terminal och skriv `echo $SHELL', om svaret innehåller Bash så gör du det. Har du inte bash så finns det ett par saker du kan göra, skriv `whereis bash'
eller `where bash'. Om du får en sökväg som svar så skriver du ned den. Skriv sedan `chsh' och editera sedan sökvägen till ditt shell.



Bash Enviroment

Såsom DOS har Bash en bit minne som den kan lagra information i, kallad enviroment (eng.). Till skillnad från DOS, vars enviroment är litet och inte växer speciellt
bra, så har Bash ett som växer fint och kan ta mångar rader kod.

Det finns många sätt kustomisera ditt enviroment, men jag tar bara upp fyra: speciella filer, aliases, inställningar och variabler.



Speciella filer.

Det finns 3 st filer som du behöver oroa dig över när du ska kusomisera ditt shell, /etc/profile, ~/.bash_profile och ~/.bashrc

/etc/profile är den fil som alla shell läser när de startas. Om du vill göra en ändring som sträker sig till alla shells över hela systemet så gör du den här.

~/.bash_profile läses, och alla kommandon i den exekveras varje gång du loggar in. Den läses INTE när ett subshell öppnas.

~/.bashrc läses varje gång du öppnar bash, förutom när du loggar in.

Min rekomendation är att lägga till alla dina kustomisationer i ~/.bashrc och sen ha en `source ~/.bashrc' i ~/.bash_profile.



Alias

Ett alias är egentligen bara en snabb väg att skriva ett kommando. Ganska snarlikt besläktad med en funktion. De finns till enbart för att göra ditt liv lättare.
De flesta system kommer med flera alias definerade. T.ex. `ll' i C-shells, som egentligen kör `ls -l'.

För att skapa ett alias skriver du bara helt enkelt, `alias aliasnamn="kommandot som ska utföras', ie. `alias ll="ls -l"'. För att se vilka alias som redan finns
definerade skriver du bara `alias'.

Vill du ta bort ett alias så skriver du bara `unalias aliasnamn'.



Funktioner

Funktioner är snarlikt besläktade med alias. En ganska bra regel att hålla är att ett alias inte ska ta mer än max en rad kommandon, medan en funktion
används för att köra en rad av kommandon. Dom är väldigt snarlika förutom på en sak.

Ett shellscript hålls inte i minnet, och läses bara när det behövs. En funktion hålls kvar i minnet, och laddas på så sätt mycket snabbare. Det är upp till dig
om du vill lägga dina favoritkommandorader i ett shellscript eller definera dem som en funktion i din ~/.bashrc. Mellan tummen och pekfingret så kan man
säga att ju mer du använder det, desto större argument till att göra det till en funktion.

En funktion har ännu en sak som ett shellscript inte kan göra. Ett shellscript kan inte ändra enviromentet i det shell du jobbar i, eftersom shellscriptet körs
i en subshell och arbetar med dess enviroment. Funktioner jobbar i samma shell som du, och kan därför utan problem ändra ditt aktuella enviroment.

Funktioner skapas genom att köra `function mittnamn { massa kommandon }



Inställnignar

Olikt alias och funktioner så låter inställningar dig att ändra shellets uppträdande. Inställningar arbetar på precis samma sätt som olika switchar till vanliga
kommandon, men nu finns det ju somsagt ingen chans att skicka switchar till shellet du kör, så man får jobba med Inställningar istället. Du sätter olika
inställningar med `set -o Inställningsnamn' samt `set +o Inställningsnamn'. Men akta dig här, +-et arbetar precis på motsatt sätt mot vad man tror. +-et
stänger AV inställningen, medan - sätter PÅ den. `set -o' enbart visar alla inställningar och om dom är på/av.

De inställningar man har störst nytta av, är enligt mig:
Inställning
Beskrivning
deeof
Stänger av möjligheten att använda Ctrl+D för att logga av. Man måste använda `exit' eller `logout'.
noclobber
Tillåter inte att man skriver över en existerande fil med redir av stdout,stderr (>).

Bash 2.0 introducerar också ett nytt sätt att sätta Inställningar, med `shopt'. Se Bashs dokumentation för mer information om det.



Variabler

Variabler defineras såhär: namn=värde. (Inga mellanslag mellan =)

Om värdet är en annan variabel så kan man använda två olika definitioner av dem.

1. $ samt variabelnamnet, ie. $husvagn, $PS1, $SHELL.
2. $ samt variabelnamnet mellan { och }, ie. ${husvagn}, ${PS1}, ${SHELL}

Observera att den vänstra sidan av definitionen INTE har någon $ eller några { } omkring sig. Ska du dock referrera till en annan variabel så ska dom vara där.



Shellvariabler.

Vi tar och leker lite med prompten bara för skojjs skull. Det är fyra variabler som styr hur prompten ska seut, $PS1, $PS2, $PS3 samt $PS4. De flesta ser bara
$PS1 och $PS2. $PS1 styr huvudprompten.

Vi börjar med att spara den gamla prompten: `SAVE=${PS1}'

Och sen gör vi en enkel prompt: PS1=$ Nu ska du ha en ny prompt.

Men vi tar och gör någonting som ser lite snyggare ut, PS1="[ ][u@h:w]$ " Hur tycker du den serut? Dubbelfnuttarna används eftersom vi har ett mellanslag
sist.

För att få tillbaka din gamla prompt skriver du bara, PS1=$SAVE

ekstam@netbsd.se

EOF


skrivut.gif Utskriftsformat mail.gif Skicka artikeln till någon


Kommentarer tillhörande (Introduktion till bash.)


Namn (tomt = anonym):
Din email:






© 2003-2008 NetBSD.se
Materialet som publicerats på denna sida tillhör respektive författare. Materialet får kopieras med förutsättning av att källanvisning medförs som i detta fall är www.netbsd.se. Eventuella kommentarer tillhör skrivande individ. All information erbjuds utan garanti på funktion och duglighet och NetBSD.se tar inget ansvar för händelser som åsakats på grund av något på denna sida. NetBSD är ett registrerat varumärke som tillhör The NetBSD Foundation. Alla varumärken och copyright på denna sida ägs av deras respektive ägare. Vår maskot går under BSD-licensen och är fri att användas.