Linux kommandon
Linux kommandon⌗
Syfte⌗
Kommandon i Linux har varit samma under lång tid. Det man lärt sig under 90-talet används än idag och fungerar på samma sätt. Så om man lär sig dessa kommandon och hur man använder terminalen i Linux så är det färdigheter som kan användas på många ställen
Terminalen⌗
Terminalen i linux är ett textbaserat fönster som har direkt koppling mot kärnan i linux som styr datorn. I terminalen kan man endast använda tangentbordet och det finns många snabbkommandon. Terminalen brukas också kallas shell, alltså skal på svenska och detta är för att man brukar känneteckna det som ett skal utanpå kärnan i operativsystemet.
Det finns många olika skal, det populäraste är bash (Bourn Again SHell). Andra populära alternativ är:
- fish
- zsh
I terminalen har man alltid en prompt som kan se ut såhär:
alex@5CD218325F:/dev$
Prompten talar om viktig information, så här är det upplagt:
alex | @ | 5CD218325F | : | /dev | $ |
---|---|---|---|---|---|
användare | avdelare | datornamn | avdelare | plats i filsystemet | tecken som visar att jag är inloggad |
Plats i filsystemet visar alltid var man “står” i filsystemet för linux. Filsystemet i linux skiljer sig från windows i hur det är uppbyggt, det går att läsa mer om det här. Så om man till exempel skapar en fil eller mapp, så skapas det i den mapp där man står.
Exempel:
alex@5CD218325F:/home/alex/test$ mkdir testmapp
Detta kommando skapar en mapp som heter “testmapp” i mappen “test”.
Programmering⌗
I terminalen så kan man skriva in olika kommandon för att åstadkomma olika saker. Styrkan med detta är allt görs med text, och text går att köra om och om igen för att få samma eller olika resultat. Det är vanligt att när man har gjort en funktion, så förevigar man den med hjälp av ett skript. Man kan säga att man sparar ner olika kommandon i en viss ordning så att man enkelt kan köra det igen. Om man till exempel vill skapa en mapp och sen gå in i mappen, kan man göra det med hjälp av ett script, och då blir det som en genväg. Exempel på script:
#!/bin/bash
# Fråga användaren efter mapp namn
echo -n "Skriv in mapp-namn:"
read mapp_namn
# Skapa mapp
mkdir "$mapp_namn"
# Gå in i mappen
cd "$mapp_namn"
Växlar⌗
I princip alla kommandon har “växlar” som påverkar hur kommandot fungerar. Det kan vara att man vill ha extra information från programmet, det kan också vara att man vill att kommandot påverkar en viss fil. Ett enkelt exempel är “ls” kommandot som listar filer i mappen man står i:
ls
Detta kommando kör ls och visar vilka filer som finns där du “står”. Om vi lägger till växeln -l
ls -l
som står för “long” får vi en utförligare utskrift av filerna. Om vi lägger till växeln h
ls -lh
får vi en lång utskrift med ändelser för kilo, mega och giga-byte.
I princip alla kommandon har en hjälp sida där alla växlar finns förklarade. Kör
ls --help
för att få upp hjälpen. Tänk på att det är två stycken bindestreck.
Historik⌗
Såna som jobbar med terminalen skriver sällan in samma sak om och om igen utan istället använder man historiken i terminalen. Om ni kör kommandot history så får ni ut de kommandon ni kört tidigare:
history
1307 cat index.html
1311 nano index.html
1312 cat index.html | grep mi
1313 man less
1314 less index.html
1315 top index.html
1316 head index.html
1317 man head
1318 tail -f /var/log/messages
1319 journalctl
1320 journalctl | tail
1321 ls /var/log
1322 tail /var/log/boot.log
1323 sudo tail /var/log/boot.log
1325 cd ~
1326 clear
Per default printas de 10 senaste kommandona ut. Vill man se längre bak i historiken får man skriva hur många kommandon man vill printa ut:
history 50
Nu printas de 50 senaste kommandona ut.
Vill man köra ett kommando från historiken är det enkelt. Alla kommandon har en siffra kopplad till sig till exempel
1311 nano index.html
Har siffra 1311. Vill jag köra det kommandot
!1311
Så är det bara att sriva utropstecken och sen siffran.
Om man vill söka i historiken så får man använda en pipe och grep, kommer gå igenom mer [här]({{ <ref “linux_kommandon_text.md#Pipes”> }}).
history | grep nano
Söker efter all historik som innehåller ordet nano