17
OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011 INNEHÅLL Kommandotolken Bash Konfigurationsfiler Inbyggda kommandon Miljövariabler Bash-skript Variabler If-satser

OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

  • Upload
    hiero

  • View
    54

  • Download
    3

Embed Size (px)

DESCRIPTION

INNEHÅLL Kommandotolken Bash Konfigurationsfiler Inbyggda kommandon Miljövariabler Bash-skript Variabler If-satser. OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011. Bash. Bash är den kommandotolk som idag används som standard under Linux - PowerPoint PPT Presentation

Citation preview

Page 1: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

OPERATIVSYSTEM OCH PRAKTISK LINUXFöreläsning 8 – Vecka 5 2011

INNEHÅLLKommandotolken Bash

KonfigurationsfilerInbyggda kommandonMiljövariabler

Bash-skriptVariablerIf-satser

Page 2: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

BashBash är den kommandotolk som idag används som standard under Linux

Bash står för Bourne again shell vilket på svenska betyder ungefär:På-nytt-fött skal

Bash är baserat på bourne shell skalet

Page 3: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: KonfigurationsfilerViktiga konfigurationsfiler för Bash är: profile .bshrc .bash_profile .inputrc Inputrc .bash_logout

(filer som börjar med . är dolda filer, kan listas med ls –la)

Page 4: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: Konfigurationsfiler/etc/profile Här görs inställningar som gäller alla användare som loggar in Denna fil existerar inte längre i Ubuntu

.bashrc Personlig konfigurationsfil för bash Är placerad i användarens hemkatalog Här görs inställningar som endast gäller den specifika användaren

.bash_profile Personlig konfigurationsfil för Bash, som är placerad i användarens hemkatalog Innehåller personliga inställningar (t.ex. Alias eller miljövariabler) Körs endast om Bash körs som ett log-inskal, dvs om användaren loggar in på

kommandotolken men användarnamn och lösenord

Page 5: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: Konfigurationsfiler.inputrc Används i vissa situationer för att hantera tangenbordsuppsättningen

.bash_logout Ett personligt skript som körs när användaren loggar ut Finns i användarens hemkatalog

Page 6: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: Inbyggda kommandonDet finns en mängd olika inbyggda kommandon i bash, här en lista på en del av dem: Echo Exec Set Test Help Type Ulimit Umask ...

Page 7: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: MiljövariablerMiljövariabler används för att spara information till ett senare tillfälle eller för att vidarebefodra dem till program eller skript som skall köras

Miljövariabler som finns på den lokala datorn och i körande kommandotolk kan listas i de flesta Linux-system med kommandot: set (printenv i Ubuntu)

Typiska miljövariabler som alltid är satta och som har samma funkionalitet i de flesta kommandoskal:

Variabel Innehåll

HOME Den absoluta sökvägen till användarens hemkatalog

HOSTNAME Namnet på datorn

PATH Sökvägen till de kataloger där kommandotolken letar efter körbara program, ex /usr/bin /usr/sbin

Page 8: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: Skapa miljövariablerEn miljövariabel är väldigt enkel att skapa, exempel:

MUSIK=/home/karlssoj/nerladdadMusik

Raden ovan skrivs direkt på kommandotolken och den skaper en variabel MUSIK som innehåller sökstigen till en katalog där användaren karlssoj sparar all sin musik

Observera att en miljövariabel man skapar själv försvinner genast man stänger kommandotolken, den syns inte heller i ett annat kommandotolksfönster

För att få en egen miljövariabel att stanna kvar är det bäst att initiera den i någon av kommandotolkens startfil, t.ex. .bash_profile eller .bashrc

Page 9: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: Exportera miljövariablerOm man vill att en miljövariabel skall vara åtkomlig även i andra kommandotolksfönster kan man använda kommandet export, exempel:

export MUSIK=/home/karlssoj/nerladdadMusik

Page 10: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: shellskriptKommandotolken är i sig självt ett kraftfullt programmeringsspråk

I kommandotolken kan man skriva enklare procedurer likaväl som mer komplicerade program

Många av de program och kommandon man kör från kommandotolken är i själva verket shellskript

En av de grundläggande filosofierna i Unix är att man ska skriva små enkla program som kan samarbeta

Genom att stapla programmen ”på varandra” kan man sedan utföra de mest fantastiska uppgifter!

Page 11: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: shellskriptDet är många saker man gör i Linux systemet som utförs många gånger

Då kan det vara trevligt att automatisera genomförandet genom att göra ett skript

Ett shellskript är en vanlig textfil dit man placerar en mängd olika kommandon efter varandra

För att kunna köra ett shellskript måste texfilen där skriptet finns ha exkeverignsrättigheter

Page 12: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash: shellskriptEtt typiskt shellskript börjar med följande rad:#!/bin/bash

Raden ovan berättar vilken kommandotolk vi ska använda när vi kör skriptet.

Förövrigt använder man tecknet ’#’ för att sätta ut kommentarer i koden

Page 13: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash-skript: VariablerFörutöver att bara stapla upp kommandon efter varandra kan man också i ett skript skapa variabler:

variabelnamn=värde

Exempel:Name = KalleAge = 55

För att senare i skriptet komma åt värdet av en variabel måste man sätta tecknet $ föra variabelnamnet:

echo $Age #skriver ut 55

Page 14: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash-skript: Indata från användarenMan kan ta in parametrar till ett skript genom att anväda tecknet $ + en siffra engligt följande:

$1 betyder första parametern$2 betyder andra paramtern...

Exempel (följande kodrader sparas i filen subtrahera):#!/bin/bashecho $1 - $2

Om vi kör skriptet från kommandoraden med parametrarna 1 och 1 får vi 0 ut på skärmen:

subtrahera 1 1

Page 15: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash-skript: if-satserUppställning av if-satser i Bash:

if testthen

rad1rad2

fi

if testthen

rad1else

rad2fi

Page 16: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash-skript: if-satserUppställning av if-satser i Bash:

if testthen

rad1rad2

elseif testrad3

elserad4

fi

Page 17: OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 8 – Vecka 5 2011

Bash-skript: if-satserTest-delen av ifsatsen (se föregående slide) ser i bash ut så här:

Test Tal Sträng Engelska

Är A och B lika? A –eq B A == B Equals

Är A mindre än B? A -lt B A < B Less than

Är A mindre än eller lika med B?

A –le B Less than or equal

Är A större än B? A –gt B A > B Greater than

Är A större än eller like med B?

A – ge B Greater than or equal

Är A olikt B? A –ne B A != B Not equal