Hur du lär dig bli vän med Terminalen
Vad är Terminalen eller Command line?
Mappar och filer. Det är vad hela Terminalen eller Command line går ut på och är uppbyggt av. Det finns många andra sätt att se på saken, men jag har märkt att den förklaringen är det som gör att det blir lätt konkret att förstå och förhålla sig till Terminalen.
På tal om det Terminalen, den kan heta olika beroende vilket OS du använder. Men då jag är Mac användare så väljer jag att kalla det Terminalen då det heter så i mitt OS på svenska.
Podcasten Developers! Mer än bara kod av Sofia och Madde har ett jättebra avsnitt om Terminalen där de går igenom lite mer grunden, olika namn, etc som du hittar här och bör lyssnas på 🎧
Eller gör som jag gjorde och gå på Meetups för att lära dig nya saker och träffa fler likasinnade personer, jag deltog på en workshop som Marie Dubrementz höll i Uppsala Women Coding meetup gruppen och det inspirerade till hela det här blogginlägget.
Maries workshop var en chans att gå igenom grunden ifrån början, vilket är något jag inte varit med om tidigare, utan bara börjat arbeta med Terminalen direkt. Här hittar du anteckningarna som utgjorde en del av terminologin och övningarna bakom workshopen och det här blogginlägget.
Hur ska jag tänka för att förstå?
Om vi tänker oss att Terminalen bygger på mappar så finns det en tydlig struktur att utgå ifrån. Mappar finns i andra mappar och innehåller antingen andra mappar eller filer. Lite får får får, eller får får lamm principen alltså. På precis samma sätt som du skulle gå in i Finder (Mac OS nu igen, men insert valfritt ord för just ditt OS) och du letar efter mappen som heter Dokument så kan du använda Terminalen för att göra detta.
Såhär ser det ut när du använder Finder för att leta upp mappen.
- Jag har gått till carolinajsall som är min användare och där finns mappen Dokument
- För att se hela sökvägen i Finder till just den mappen så kan hålla inne CMD och klicka på carolinajsall längst uppe i Finder och se hur jag har tagit mig just till den mappen. Då ser det ut såhär
- Notera här nu att jag är inte i root mappen när jag går in i mappen Dokument. Utan jag är i användaren carolinajsalls mapp. Root mappen i det här fallet är alltså Macintosh HD = Min dator.
Som vi såg här så har alla mappar från rooten och framåt child mappar, en mapp i en annan mapp. Ska vi gå upp ur Dokument så går vi till parent, föräldrern till Dokument mappen som i det här fallet är carolinajsall.
Det vi har gjort ovan, att använda Finder, är att använda vad som kallas ett GUI. Ett GUI är ett grapichal user interface och innebär att det programmet du ska köra har ett grafiskt utseende som är pedagogiskt att interagera med.
Hur gör jag det här i Terminalen nu då?
Nu ska vi översätta den här kunskapen till Terminalen 👏🏼
Om vi nu byter ut namnet mapp till directory så kommer många pusselbitar falla på plats framöver när vi pratar om kommandon i Terminalen.
Hur hittar jag Terminalen?
På en Mac kan du hitta Terminalen på olika sätt, här är några av dem
cmd + spacebar
så får du upp en spotlight sökning och kan skriva Terminalen- Gå in i mappen Appar —> Verktyg så hittar du Terminalen
- Klicka på Launchpad och sök efter Terminalen
På en Windows dator så kan det vara olika vad du letar efter beroende på vilken version du har
- Terminalen kan heta Command prompt på din dator
- Eller så heter den Power Shell
- För att hitta den så sök på din dator efter Power shell så bör du hitta rätt
På en Chromebook så måste du få igång Linux innan du kan hitta Terminalen, du kan hitta den guiden här
Hur byter jag mapp i Terminalen?
Så varje directory (en mapp) har parents och childs. Så vi kan gå fram och tillbaka mellan mappar i Terminalen också, som vi gjorde ovan i Finder.
I terminalen kan vi dock inte klicka oss runt utan måste instruera Terminalen på något sätt, det gör vi med att ge den kommandon som den utför åt oss.
Kommandot för att byta mapp är cd
och det står change directory - Rätt lätt att förstå när en lär sig att mappar heter directory här. Vi måste också berätta var vi vill cd
till så då kan det se ut såhär om vi ska ta oss från root till Dokument mappen
cd Users/carolinajsall/Documents
Så nu har vi tagit oss från ett ställe till ett annat - Plättlätt!
cd
kommandot går att använda på många olika sätt, så en behöver inte alltid skriva en hel sökväg utan här nedan finns några olika sätt att använda cd
på också
cd
Change directory/Byt mappcd .
Change directory men när du lägger till punkten så stannar du kvar i samma mappcd ./
Samma sakcd ..
Change directory till parent directory (parent är den mapp som nuvarande mapp befinner sig i)cd ../
Samma sakcd /
Gå till root directorycd ~
Gå till din hemmapp
Varför ser terminalen ut som den gör?
Det kan vara hjälpsamt att reda ut från vilken punkt som en faktiskt börjar skriva kommandon och inte då det ute på internet kan se olika ut när en letar efter hjälp.
Så som du ser här nedan så står det, carolinajsall@46elks-Carolina / %
. Om vi separerar det så är carolinajsall
min användare på datorn 46elks-Carolina
är vad jag har döpt min dator till och /
är i det här fallet root directory (eller som du ser ovan så står det också Macintosh HD, precis som i Finder) som vi befinner oss i och sedan finns det ett %.
Det är % tecknet som är relevant här - Det är till höger om det som vi alltid skriver våra kommandon, så allting efter % är de instruktioner som vi ger Terminalen. Det kanske inte alltid är ett % i alla Terminaler, det kan också vara ett $ och det är helt okej att det är olika för oss alla, det funkar på samma sätt ändå. Anledningen till att det kan vara olika betyder bara att en kör Terminalen antingen med exempelvis bash eller c shell - Tänker att vi nöjer oss där för denna gång för det är inte viktigt att veta nu (kanske vi tar ett annat blogginlägg för det 😌)
Bra att veta är dock att när du letar kommandon ute på internet på typ Stackoverflow, Stackexchange eller liknade sidor så kan du ibland se ett helt kommando som nedan. Ta alltid bort det första $ eller % då, det är bara en indikator på att det Terminalen som en använder här och vilket kommando en ska använda kommer efteråt. Som i instruktionen här nedan:
Nu tar vi och testar lite olika kommandon för att öva
Övning ger färdighet. Och självförtroende framförallt. Så vi gör en liten övning tillsammans 💪🏾
- Ta dig till root directory och tillbaka till ditt Documents (återigen, det kan heta olika på olika OS eller datorer) directory
- Visa vad som finns i Documents directory
- Skapa ett nytt directory
- Gå in i det nya directory
- Skapa en ny fil där
- Lista det som finns i ditt nya directory
- Till sist ska vi skriva ut hela den vägen också
Här finns en hel lista med kommandon som du kan använda dig av för att genomföra den här övningen - Testa vilka du behöver använda och så kan du kika på facit sedan. Kom ihåg - Ingenting kommer explodera eller gå sönder, vi ska bara “klicka oss runt mellan mappar och skapa en fil” precis som du hade gjort i Finder normalt sett.
Det som är viktigt att komma ihåg är listan innehåller bara själva kommandona och en förklaring. Ska du skapa en mapp så behöver du skriva just det kommandot och mellanslag och sedan namnet på din mapp innan du trycker enter. Kommer gå fint det här - Kör bara kör 👏🏼
Lite olika kommandon att köra för att komma igenom övningen
cd
Change directory/Byt mappcd .
Change directory men när du lägger till punkten så stannar du kvar i samma mappcd ./
Samma sakcd ..
Change directory till parent directory (parent är den mapp som nuvarande mapp befinner sig i)cd ../
Samma sakcd /
Gå till root directorycd ~
Gå till din hemmappls -lia
Listar allt i ditt directory med rättigheter, storlek, datum, etcls -a
Listar allt i ditt directory och de dolda mapparna (de som börjar med .directory)ls *
* är ett wildcard som hjälper dig att söka efter det du är ute efter. Så ex ls *.pdf så hittar du alla filer som innehåller .pdfls *ordet*etttillord
Så har du lagt på två wildcards på samma kommando och narrows down ditt sökandepwd
Print working directory, visa vägenmkdir
Skapa en ny mapptouch
Skapa en ny fil
Facit på övningen
Som vanligt med kod så finns det många olika sätt att ta sig till samma mål. Det här är bara ett sätt att ta sig till mål på.
En hade kunnat använda vim Minfil.txt för att skapa och komma direkt in i en ny fil också men Vim sparar vi till ett annat blogginlägg 🤓
Bra att känna till om Terminalen
När du ska skriva en sökväg så kan du använda tab knappen så kommer Terminalen att autocomplete det som du letar efter. Finns det flera exempel så kommer den att visa dig dem och be att du kompletterar ordet du letar efter och sedan ta dig dit. Så då kan det se ut något sånt här
En annan sak är att Terminalen finns i många text-editors också. Så i VS code brukar jag använda Terminalen direkt i VS code igenom att gå View → Terminal [^↑’] och då kan det se ut såhär
Det går också att installera olika program till Terminalen beroende på vad en behöver göra. En kan göra det på olika sätt beroende på vilket OS en har, med Mac så gör en det via Homebrew. Dock kan vi prata mer om det senare, viktigaste i början är att bli mer bekant med Terminalen som den ser ut nu, men det är bra att känna till att den går att “bygga ut”.
Det finns olika kortkommandon för att utföra en del saker när du skriver kommandon. Så till exempel om du har skrivit ett väldigt långt kommando som du vill ändra i så är det jobbigt att bara ta sig fram och tillbaka med piltangenterna i ditt kommando.
Då finns det fiffiga kortkommandon och här är några av de vanligaste som kan vara en lifesaver ibland 😅
ctrl + a
Hoppa till början av ditt kommandoctrl + e
Hoppa till slutet av ditt kommandoctrl + u
Ta bort hela kommandot som du precis skrivit till vänster om the cursorctrl + k
Ta bort hela kommandot som du precis skrivit till höger om the cursorctrl + c
Exit/canceluppåtpilen
Senaste kommandot du har skrivitnedåtpilen
Gå tillbaka i kommandon du har skrivit
En lista med vanliga kommandon att köra
Utmana dig själv att använda Terminalen för att ta dig fram och tillbaka i din dator. Skapa en fil här och en mapp där med Terminalen så kommer du känna dig säkrare med tiden. Det kan ta lite tid men oh vad du kommer tjäna tid i slutändan och få en bättre förståelse för många saker inom kod när du blir kompis med terminalen.
Vill du hitta en lista att skriva ut och ha framför skrivbordet så kan du leta på internet efter termen Command line cheat sheet så finns det massor med resurser. Här finns några av de vanligaste samlade som kan vara bra att öva på till att börja med.
Kommandon att köra
ls -lia
Listar allt i ditt directory med rättigheter, storlek, datum, etcls -a
Listar allt i ditt directory och de dolda mapparna (de som börjar med .directory)mkdir
Skapa en ny mapptouch
Skapa en ny filvim {filename}
Om du vill testa Vim så gör det här kommandot samma sak, skapar en ny fil (för att komma ur Vim kör ESC :q!)pwd
Print working directorycd
Change directory/Byt mappcd .
Change directory men när du lägger till punkten så stannar du kvar i samma mappcd ./
Samma sakcd ..
Change directory till parent directory (parent är den mapp som nuvarande mapp befinner sig i)cd ../
Samma sakcd /
Gå till root directorycd ~
Gå till din hemmappls *
* är ett wildcard som hjälper dig att söka efter det du är ute efter. Så ex ls *.pdf så hittar du alla filer som innehåller .pdfls *ordet*etttillord
Så har du lagt på två wildcards på samma kommando och narrows down ditt sökandeman
Manualen för command line, här finns alla kommandonman {kommando}
Kör du man och ett specifikt kommando som ex ls så får du upp instruktioner och flaggor som går att använda med det kommandotcat {filename}
Lista det som finns i filencat /~/Users/filename
Lista det som finns på just den här pathenrm
Ta bort det här directory eller filenrm -r
Ta bort det här directory eller filen recursive (med innehåll och allt). Värt att nämna är att vara lite försiktigt med det här kommandot, då du kan råka ta bort mer än du anar och att användarm -r /
är inte alls bra 😅
Trygg nog och vill lära dig mer?
Det går att skriva egna kommandon som en kan köra. Det kallas bash script och något som jag själv är väldigt ny på så kan inte hela bakgrunden, men det är bra att öva på även om en inte förstår allt kring det. (Det får en att känna sig som en riktigt hacker 🤓)
- Använd Terminalen och ta dig till ditt directory Documents
- Skapa ett nytt directory med
mkdir scripts
- Skapa en ny fil med
touch first_script.sh
- Bra att känna till är att en ska använda .sh som ändelse när du skapar en fil för att skriva ditt script i
- I filen så kan du nu på valfritt sätt skriva en serie med Terminalen kommandon som kommer utföra en serie instruktioner åt dig. Så du kan exempelvis skriva som här nedan och spara din fil.
- För att köra ditt script så att instruktionerna utförs så kör du
sh first_script.sh
i Terminalen och se vad som händer 🥳
cd .
mkdir script_second
cd script_second
touch second.sh
Vill du också vara med på en workshop om Terminalen?
Hör av dig till mig så kan jag hålla en workshop om Terminalen om det känns roligare och ni är ett gäng som vill lära er samma saker - Alltid kul att möta nya människor och lösa problem tillsammans 🥳
Let's have a chat
Did you find anything especially interesting about this post, or do you have feedback to us? We are always open for discussion and eager to hear your thoughts and ideas!
Write us a comment to get in touch 👋🏼