Bash

Från Ubuntu Sverige

(Omdirigerad från Ovrigt/Terminalen)
Hoppa till: navigering, sök
Guiden testad på: Ubuntu 8.04


Bash


Innehåll


[redigera] Kom ihåg

När du arbetar med terminalen så är det några saker du bör komma ihåg:

1. Dolda filer markeras med en punkt i början av namnet. Vill du att en fil skall vara dold, så ändrar du namnet.
2. Med alla kommandon går det att använda sig av antingen en absolut sökväg, som börjar från / (root, början av filsystemet), eller en "relativ sökväg", som utgår från katalogen som man befinner sig i (börjar ej med /).
3. ~/ är användares hemmakatalog. Samma som /home/användare
4. Bash är känslig för versaler. BilDer är inte samma som bilder och behandlas som två olika filer.
5. Filer med mellanrum måste omges av klamrar, citationstecken eller, så måste mellanrummen föregås av ett backslash. Exempel på alla tre sätten:

'mina filer'
"mina filer"
mina\ filer

6. Sudo kan skada ditt operativsystem, använd varsamt.

[redigera] Filhantering

cd Byter katalog. Om inget anges efter, så hoppar cd till din hemmakatalog.

cd /usr/bin                (absolut sökväg, börjar på /)
cd .mozilla/firefox        (relativ sökväg, börjar ej på /)
cd ..                      (Går upp ett steg i katalogerna)
cd -                       (Går tillbaka till den katalog du stod i senast)

ls Listar filer och mappar. För att se dolda filer/mappar lägg till -a (ls -a). För att visa en detaljerad lista, lägg till -l (ls -l). För att visa storleken på mappar/filer på ett mer lättläst vis, lägg till -h (ls -lh).

pwd Visar absoluta sökvägen till där du befinner dig.

cp Kopierar en fil/mapp.

mv Flyttar en fil/mapp. Används även för att byta namn på en fil.

rm Tar bort en fil. För att ta bort en mapp (och allt i den), lägg till -dr (rm -dr mapp)

mkdir Skapar en tom mapp.

touch Uppdaterar tidsstämpeln på en fil eller skapar en ny tom fil

[redigera] Navigering på kommandoraden (bash)

Tangent Funktion
Home, ctrl+a Gå till början av raden
End, ctrl+e Gå till slutet av raden
Upp, ctrl+p Gå bakåt i kommandohistoriken
Ner, ctrl+n Gå framåt i kommandohistoriken
ctrl+d Sänd EOF (end-of-file), avslutar/loggar ut
ctrl+r Sök efter textsträng i tidigare kommando (upprepa för att söka igen)

[redigera] Rättigheter

Alla mappar/filer har rättigheter indelade i tre delar: **ägare-grupp-övriga**. Var och en av dessa kan ha olika rättigheter.

Rättigheterna är som följer: r=read w=write x=execute

Enbart en användare har tillgång till alla filer oavsett rättigheter, och det är root.
För att lista nuvarande rättigheter skriv ls -l (d i början står för directory, alltså en mapp. Kan någon förtydliga detta?)
För att utföra ett kommando som root används kommandot sudo. Sudo skrivs innan ett annat kommando, du kommer då få skriva in ditt lösenord (blir inga tecken i terminalen).

[redigera] chown

Med detta kommando kan du ändra ägare till en mapp och grupp.
För att ändringen skall gälla för undermappar läggs flaggan -R till.

chown root fil/mapp        #byter ägare till root
chown root:admin fil/mapp  #byter även grupp till admin
chown -R root mapp         #byter ägare på mapp och alla undermappar/filer

[redigera] chmod

Detta kommando ger möjlighet att ändra rättigheterna till en fil/mapp.
Kommandot är indelad i ett antal delar:

Grupp: är en eller flera av u/g/o/a (User Group Others All)
Kommando: är antingen + (lägg till) eller - (ta bort).
Rättigheter: sist kommer rättigheterna r/w/x (Read Write eXecute)

chmod ug+rw fil    #ger ägare och grupp läs- och skriv-rättigheter
chmod go-wx fil    #tar bort rättigheterna write och execute från gruppen och övriga.
chmod a+x fil      #Filen blir körbar för alla.

[redigera] Alternativ

Rättigheterna är ordnade i tur och ordning: user, group, others.
Skriver du ls -l så ser du filrättigheterna i den ordningen: drwxr-xr-x
Första biten säger enbart om det är en katalog eller inte. Resterande kommer i stycken om 3 (rwx r-x r-x). - Betyder att rättigheten saknas.

Istället för att använda ugoa +/- rwx så kan man använda siffror. Dessa består av tre siffror, en för varje grupp (user/group/others).

r = 4   w = 2   x = 1

Dessa siffror adderas för att få rättigheten, ex.

r-- = 4
rw- = 6
rwx = 7
r-x = 5        
--- = 0

Här ser vi olika användningar:

chmod 777 fil        #-rwxrwxrwx
chmod 774 fil        #-rwxrwxr--
chmod 740 fil        #-rwxr-----

[redigera] Användare, grupper och lösenord

[redigera] useradd/adduser & passwd

Dessa kommando används för att lägga till en användare och för att ändra lösenord. Kommandona kan med fördel användas med en del flaggor (se man useradd).

useradd -G <grupper> -m johndoe
passwd johndoe

(I exemplet användes passwd för att ge användaren ett lösenord, men det kan även användas till att ändra lösenord.)

Det finns även ett annat, enkelt sätt att skapa en användare. Skriv enbart adduser i terminalen. Då körs en liten "wizard" som hjälper dig skapa den nya användaren.

[redigera] gpasswd

Kommandot används för att lägga till/ta bort användare från grupper.

gpasswd -a <användare> <grupp>    #lägger till användaren
gpasswd -r <användare> <grupp>    #tar bort användaren


För att se vilka grupper användaren är i används kommandot groups.

[redigera] Information

[redigera] Filinformation

df -h Visar storlek på monterade partioner.

du -h Visar totala storleken för vald mapp.

file Identifierar en fil utifrån dess innehåll.

cat Visar hela innehållet i en fil.

less Visar hela innehållet i en fil, men sida för sida. Bra för att bläddra i filer.

tail Visar de sista 10 raderna i en fil. Flaggan -f (som i follow) gör att tail först visar de 10 sista raderna och sedan väntar på mer text i filen, väldigt bra för att visa t.ex. loggfiler medan de uppdateras.

[redigera] Övrig information

man Visar mer info om ett kommando. Skriv man följt av ett kommando.

apropos Söker igenom en databas, med filer som kort beskriver system kommandon, efter angivet nyckelord. Bra för att hitta program.

whatis Visar beskrivningen av de filer som apropos söker igenom efter nyckelord. Ex.

whatis ls
ls         (1)  - list directory contents

top Visar de processer som körs på systemet.

date Visar nuvarande datum.

cal Visar en kalender. Flaggan -3 visar även månaden innan och efter.

whoami Visar vem du är.

who Visar inloggade användare.

dmesg Visar bootup-medelanden och laddning i kerneln. Pluggas t.ex. en webbcam in så kommer det synas sist i dmesg medelandet.

uname -a Visar all systeminformation

ifconfig Visar info om ditt nätverk.

free -m Visar ram och swap.

[redigera] Övriga kommandon

clear Rensar terminalfönstret

echo Printar efterföljande text i terminalen. Kan användas för att skriva valfri information till filer (se //output/input//).

eject Matar ut cd/dvd

factor Givet ett tal, så printar kommandot ut primfaktorer.

grep Printar de rader från ett kommando/fil som innehåller ett angivet sökord (för användnng se //pipelines// nedan)

mount Monterar en enhet. Kan vara en hårddisk, partion, iso-fil etc. För att montera iso-filer använd mount -o loop fil.iso /plats_att_montera

umount Som mount, fast avmonterar.

shutdown Stänger ner systemet på ett säkert sätt. Använd shutdown -h now för att stänga av datorn och shutdown -r now för att starta om den.

sleep Används för att skapa ett avbrott på angivet antal sekunder. Kan vara bra för att starta saker bestämda tider efter varandra i sessioner.

[redigera] Alias

Alias är användbara då du ofta använder samma kommandon. Du kan då göra förkortningar som du kan skriva i terminalen.
För att skriva ett alias så redigerar du filen ~/.bashrc och lägger till följande rad: alias förkortning='kommando' Här följer några exempel:

alias ls='ls -la'
alias installera='sudo apt-get install'
alias montera='sudo mount -o loop'

[redigera] Wildcards

Tänk dig att du vill flytta alla ogg filer i en mapp, eller kanske lista alla filer med ordet linux i sig. Det är här wildcards kommer in, med dessa kan du bestämma exakta utryck.

* Från noll till ett oändligt antal tecken.
 ? Enbart ett tecken.
[fqv] Ett utav tecknena f,q eller v.
[!fqz] Ett tecken, utom ett utav f,q eller v.
[f-l] Ett tecken i intervallet f-l.
[!f-l] Ett tecken, förutom de i intervallet f-l.
{jpg,png} Ett utav orden jpg eller png.
ls *.jpg             #Listar alla jpg filer i en mapp
ls [A-H]*{jpg,png}   #Listar filer som börjar på A-H och slutar på jpg, eller png.

[redigera] Informationsflöde

[redigera] Pipelines

I bash kan du kombinera kommandon för att få önskat resultat. Till detta ändamål används en så kallad pipeline **|** (altgr+<). Pipelinen skickar infon från ett kommando till ett annat kommando. free -m | grep Swap Kommandot free -m visar information om använt minne. I exemplet skickar vi denna info till kommandot grep, som i sin tur visar den/de rader som innehåller ordet Swap. dmesg | tail Kommandot visar de sista 10 linjerna från kommandot dmesg. Kan vara användbart då man vill se om en usb pluggats in korrekt.

[redigera] Output/Input

Ibland vill man även spara informationen från ett kommando i en fil. Till detta ändamål används tecknet > date > info Kör man kommandot igen så skrivs filen över. Ibland vill man lägga till information i slutet av filen. Till detta används >> date > info dmesg | tail >> info

Självklart kan vi använda informationen från en fil,och vad vore mer naturligt än det omvända tecknet < dmesg | tail > info grep ACPI < info Först sparas de sista tio raderna av dmesg till info. Därefter skickar vi informationern från filen info till kommandot grep, som i sin tur visar de rader som innehåller ACPI. Lägg märke till ordningen kommandona skrivits.

[redigera] Resurser

Personliga verktyg