TDP001 Handhavande av datormiljö
Terminalkommandon v40
Jag nämnde lite snabbt i förra utskicket att det finns en fil,${HOME}/.bashrc, som körs automatiskt när du startar en terminal. Detta brukar vara en bra plats att spara alias som man vill ha tillgång till i alla terminaler, men det är också en bra plats att ge (globala) värden på variabler.
En variabel man vill använda i den terminal man står i just nu är enkel att skapa. Likt python är det bara att skriva variabelnamn=värde (utan mellanslag), exempelvis 
   MY_NAME=eric
Antag att vi har ett script (en fil med kommandon) med namnet print_name.sh med följande innehåll:
  #!/bin/bash
  if [[ -z $MY_NAME ]]
  then echo "No name given"
  else
    echo $MY_NAME
  fi
  $ chmod +x print_name.sh
  $ MY_NAME=eric
  $ ./print_name.sh
  No name given
  $ export MY_NAME
  $ ./print_name.sh
  eric
  $
Ett alternativ till export (som gör värdet globalt tillgängligt) är att sätta variabeln för endast en körning:
  $ MY_NAME=eric ./print_name.sh
  eric
  export MY_NAME=eric
.bashrc gör man oftast det enligt detta format.
PATH
VariabelnPATH är en kolonseparerad lista av sökvägar som bash automatiskt söker igenom när vi försöker starta ett program i terminalen. Antag att min PATH ser ut enligt nedan:
PATH=/usr/local/bin:/bin:/usr/bin:/sw/local/bin:/usr/games:.Om jag exempelvis skriver
python3 i terminalen och trycker på enter kommer bash börja med att leta efter ett program med det namnet i katalogen /usr/local/bin. Om inget hittas där söker den vidare i /bin och därefter i /usr/bin. När ett program med rätt namn hittas (i mitt fall /usr/bin/python3) avslutas sökningen. 
Variabeln PATH är väldigt viktig för systemet, så lyckas du nollställa den får du problem, men det kan vara trevligt att lägga till en egen katalog i den listan. Om jag exempelvis har en katalog där jag lägger hjälpscript och bra program kan det vara en bra kandidat att lägga till. Exempelvis skulle jag kunna skriva
  export PATH=$PATH:/home/my_user/bin
Om man får problem med att fel program körs beror det troligen på att katalogerna i PATH är i fel ordning. Man kan använda which för att ta reda på var ett visst program finns enligt PATH (dvs vilket program som kommer startas givet ett visst namn).
  $ which python3
  /usr/bin/python3
Språkinställningar
Många program är smarta nog att göra olika baserat på systemets språkinställningar. Dessa bestäms till stor del av en grupp av så kallade locale-variabler. Ett program söker efter ditt språk enligt föjande ordning:LANGUAGE LC_ALL LC_xxx (där xxx exempelvis kan vara NUMERIC, TIME, MONETARY osv) LANGMed hjälp av dessa kan jag exempelvis sätta
LANG=sv_SE.utf8 för att få svenska (i unicode) som standard och därefter LC_TIME=en_US.utf8 för att få tider uttryckta på amerikanskt format. 
Det kan också vara trevligt att sätta locale för specifika program. Exempelvis ger kompilatorn g++ (som arbetar med c++-kod) oftast mycket bättre felmeddelanden på engelska. För att få engelsk utskrift när jag kompilerar filen min_kod.cc kan jag alltså köra
  $ LANGUAGE=en g++ min_kod.cc
locale -a listas alternativ du kan välja på locale-variablerna (som finns installerade på ditt system).
Observera att det så klart krävs att tillverkaren av det program du använder har använt sig av locale-variabler för att det ska bli någon skillnad i utskrifter. 
RANDOM
Vi avslutar med en rolig variabel med namnRANDOM. Som det låter så ger RANDOM ett nytt slumpvärde (ett tal i intervallet [0,32767]) varje gång vi läser den.
   $ echo $RANDOM
   24518
   $ echo $RANDOM
   295
   $ echo $RANDOM
   15621
RANDOM=5 kommer jag få samma sekvens av värden nästa gång jag sätter samma värde.
	  
             Sidansvarig: Eric Elfving
Senast uppdaterad: 2016-08-02
	  
 English web site
English web site 
          
           
           
        