TDP001 Handhavande av datormiljö
Terminalkommandon v34
Här presenteras det första mailet då alla ännu inte fått sin epostadress. Denna vecka ger jag inga uppgifter att lösa, första veckorna brukar vara nog hektiska, men det finns lite övningsuppgifter som jag rekommenderar om du inte använt ett linux-system tidigare.
Terminalen (även ibland kallad skalet ("shell")) är ett verktyg som kan användas för att köra program som finns installerade på systemet. Vi kommer genom kursens gång titta på flera av de som finns tillgängliga, men vi kommer senare även kunna programmera lite i terminalen. Den terminalemulator som finns installerad i ert Mint-system styrs nämligen av ett Turingkomplett programmeringsspråk!
Det finns flera olika terminalemulatorer installerade på systemet och den som används som standard heter dash. Några av er har säkert använt bash tidigare. Dash säger sig vara snabbare och kräva mindre resurser och används därför som standard i Debian-baserade linux-system. För en normal användare är det dock ingen direkt skillnad mellan de två.
Vi börjar med en kort överblick av filsystemet ni får i ert operativsystem.Filsystemet i Linux är ett trädbaserat system där vi längs upp har roten (alltså ett upp och nedvänt träd...). Roten symboliseras med sökvägen "/". I mappen (även kallad katalog) / finns det flera kataloger som just är mer eller mindre intressanta. Här listas några som kan vara intressanta:
- En användares hem-mapp, dvs katalogen där användarens filer bör ligga
alltid hittas på sökvägen "
/home/<användarnamn>
" (där<användarnamn>
byts ut mot användarens faktiska användarnamn). Exempelvis har användarenKim
sin hemkatalog på sökvägen "/home/Kim
". - Katalogen "
/etc
" innehåller konfigurationsfiler för diverse program som finns installerade på systemet. - I "
/bin
" finns programvara systemet behöver för att fungera - "
/sbin
" innehåller administrativ programvara - Katalogen "
/usr
" innehåller sådant som inte är vitalt, exempelvis programvara användare har installerat eller annat som följde med installationen - I "
/media
" hittar man oftast exempelvis usb-minnen och andra externa enheter
Så, då har vi lite koll på katalogerna som finns. Hur ser vi dem då?
Till att börja med är det bra att starta en terminal. Tryck på
menyknappen nere till vänster, skriv terminal och tryck på enter
(eller tryck på genvägen "Terminalfönster" till vänster i menyn). Nu får du
förhoppningsvis upp en svart ruta med lite text som ser ut likt detta:
Detta betyder att du är inloggad med användarnamn
<uid>@localhost:~$
<uid>
på dator
"localhost". Du står i mapp ~
(din hemmapp, beskrivs nedan) och du är
inloggad som en normal användare. Om det står ett #
-tecken istället
för $
betyder det att du har root-rättighet. I dokumentationer inleds oftast
kommandon som ska köras som vanlig användare med $
och kommandon
som måste köras med root-rättighet inleds med #
. Detta betyder INTE att
dessa tecken ska skrivas in i terminalen.
Här kommer en kort lista på kommandon som kan vara bra för att navigera i och hantera filsystemet:
kommando | Betydelse | Beskrivning |
---|---|---|
ls | List Structure | Lista filer och mappar i nuvarande mapp |
ls sökväg | Lista filer och mapppar i sökvägen "sökväg" | |
pwd | Print Working Directory | Nuvarande position (var är jag) |
cd sökväg | Change Directory | Gå till given sökväg |
cd | Gå till hem-mappen | |
cd - | Gå till föregående mapp (den jag stog i innan jag flyttade mig) | |
cp orginal mål | Copy | Kopiera filen(sökvägen) orginal till mål |
mv orginal mål | Move | Flytta orginal till mål |
rm sökväg | Remove | Tag bort filen "sökväg" |
rmdir sökväg | Remove Directory | Tag bort den tomma mappen "sökväg" |
mkdir sökväg | Make Directory | Skapa katalogen "sökväg" |
touch sökväg | Uppdatera tidsstäpeln för "sökväg" (skapar en tom fil om den inte finns) |
Katalogen ..
är intressant. Det är alltid katalogen ett steg uppåt i
filstrukturen. Står du exempelvis i din hemkatalog kommer du efter att
du kört kommandot "cd ..
" stå i katalogen "/home
". Tag som övning reda
på vad som händer om du går uppåt när du står i rot-katalogen ("/
"). Var hamnade du?
Likaså är katalogen ~
spännande, ~
används nämligen för att nå en
användares hemkatalog. Skriver jag "cd ~eriel
" hamnar jag i användaren
"eriel
"s hemkatalog. Utelämnar jag användarnamnet och exempelvis
skriver "cd ~
" hamnar jag i min egen hemkatalog. Vad händer om jag
skriver "cd ~/Desktop
"? Vad händer om jag efteråt skriver "cd ../Documents
"?
Kommandon i skalet är i grunden ganska enkla och gör de man hoppas,
men ibland är det lite svårt att veta hur de fungerar. Som tur är
finns det för de flesta program en dokumentation som man når med hjälp
av kommandot "man
". Om jag exempelvis vill se dokumentationen för
kommandot "ls
" skriver jag "man ls
". Det finns oftast flera rubriker,
överst står hur jag anropar det programmet, för ls ser det ut enligt
nedan:
Hur tolkar jag detta? Jo, du skriver
ls [OPTION]... [FILE]...
ls
och hakparenteserna betyder
att de delarna inte krävs. "...
" betyder att man kan ha flera. Jämför
detta med "man cp
":
Här betyder det alltså att
cp [OPTION]... [-T] SOURCE DEST
SOURCE
och DEST
krävs och att man får lägga
till en eller flera OPTION
(som beskrivs vidare i man-sidorna för
cp). Man kan även lägga till väljaren -T
.
I man-sidorna navigerar man normalt sätt genom att trycka på
mellanslag för att bläddra en sida text. Man kan också söka efter ett
visst ord genom att trycka på /
(dvs shift+7), skriva in det man söker
efter och trycka på enter. För att se nästa matchade ord kan man
trycka på n
(som i next). För fler kommandon tryck h
(som i
help). Tryck q
för att avsluta.
ls
listar normalt sätt endast filnamn som inte inleds med en
punkt. Tag med hjälp av "man
" reda på hur du använder ls
för att visa
en detaljerad lista över samtliga filer i nuvarande katalog ordnade med
senast ändrad fil först.
Om man tycker man-sidorna är lite för utförliga har de flesta program
väljaren -h
eller --help
för att kort beskriva programmet. Se vad
skillnaden är mellan "man ls
" och "ls --help
". Varför får du inte
hjälp när du skriver "ls -h
"?
Med terminalen kan man som vi har sett starta massor av inbyggda
program, men vi kan även starta andra program. När vi skriver ett
kommando i terminalen letar den reda på installerade program som
matchar detta och startar programmet vi ber om. I python-kursen (och
även när ni jobbar med html-delen av denna kurs) rekommenderar vi att
ni arbetar med en väldigt vanlig texteditor som heter emacs
. För att
starta emacs från terminalen skriver ni helt enkelt emacs
i terminalen och trycker
på enter. Nu får ni förhoppningsvis upp ett fönster där ni kan skriva
text. Vi har dock ett problem, så fort du startade emacs blir
terminalen "upptagen" och tar inte emot nya kommandon. Så fort du
stänger av emacs kommer det dock börja fungera. Detta är lite tråkigt
så det man kan göra för att starta emacs i bakgrunden är att köra
kommandot "emacs &
" i terminalen istället. &-tecknet lägger processen
i bakgrunden så att vi kan fortsätta använda terminalen. Om vi råkat
starta ett program utan att lägga det i bakgrunden och behöver vår
terminal är det lite tråkigt att behöva stänga av programmet vi
startade. Det man kan göra istället är att gå till terminalen och
trycka Ctrl-Z
. Detta gör att terminalen går att använda, men inte det
program vi hade startat, det är också lite tråkigt. Därför kan vi
efter att vi tryckt Ctrl-Z lägga programmet i bakgrunden genom att
köra "bg
" (som i background). Här kommer stegen i lite trevligare format:
$ emacs ( Ett emacs-fönster öppnas ) Ge fokus till terminalen genom att trycka Ctrl-Z i terminalfönstret ( nu kan du inte längre skriva i emacs, men terminalen går att använda ) $ bg ( emacs läggs i bakgrunden på samma sätt som att det startats enligt "emacs &" )
Sidansvarig: Pontus Haglund
Senast uppdaterad: 2019-05-29