Kommandoer
Terminalen - Linux' kraftværk

Dette kapitel giver en grundlæggende gennemgang af filsystemet, superbrugeren og terminalen (kommandolinien) og kommandostrukturen i Linux.

Anvendt installation

For at eksemplificere guiden, er der blevet oprettet en virtuel installation med VirtualBox med følgende Indstillinger:

RAM 8 Gb
Grafik hukommelse 128 MB og 3D-acceleration
Harddiske 2 x 100GB (SATA)
Netværk NAT

Harddiskpartitionering

Harddisk Drev Betegnelse Størrelse Anvendelse
Harddisk 1 (100 GB) /dev/sda1 / 50000Mb (92 Gb) System
/dev/sda2 Ingen 4096MB (8 GB) Swap
Harddisk 2 (100GB) Ikke konfigureret under installation

Hvad er en terminal

Terminalen er en tekstbaseret tilgang til Linux. Normalt ser vi en GUI (Graphical User Interface) som styresystemet, men det er reelt blot en skal hvor vi kan arbejde med programmer grafisk. På et UNIX-system som Linux, der er GUI reelt set en brugerflade der kører på Linux, hvor systemer som Mac og Windows ikke har den adskillese. Her er GUI'en reelt set styresystemet og kommandolinien noget der er bygget ovenpå.

Terminalen kan gøre systemarbejde hurtigere og mere effektivt, fordi man ved scripts og præcise kommandoer kan udføre noget som kræver mange klik i en GUI.

Tilgå terminalen

Terminalen kan tilgås på 2 måder. Igennem TTY (TeleTYpewriter) eller en session.

TTY

Når Ubuntu er startet op kører der 7 terminalsessions, som man kan logge ind på. Som standard starer man op i den 7 terminal som kører Ubuntu GUI.

Der kan altså mere end en bruger logget på systemet ad gangen. Men kun en af dem har adgang til en GUI. Man kan logge af en TTY, men lukker man for den, så lukker hele computeren. Fordelen ved dette er, at selvom en TTY låser pga et dårligt program, så kan man fixe problemet i en af de andre ... eller ultimativt genstarte maskinen.

Disser terminaler kan tilgåes ved hjælp af tastekombinationen Ctrl+Alt+F1F7, hvor F'taller angiver den konkrete terminal.Så længe du befinder dig i VirtualBox skal du anvende dennes interne tastekombination angivet i nedestående skema skema.

Terminaltype Rigtige genvej VirtualBox' genvej
Tekst Ctrl+Alt+F1F6 højreCtrl+F1F6
GUI Ctrl+Alt+F7 højreCtrl+F7

Terminalsession

Terminalsessions er forskellige fra TTY, da de kører ovenpå GUI'en. En session giver altså adgang til kommandolinien uden at man forlader sin GUI.

Hvis man har startet Ubuntu op kan man tilgå en terminalsession ved hjælp af tastekombinationen Ctrl+Alt+T. Det vil starte en termial op i et nyt vindue, og hvor din bruger er logget ind.

tj@tj-VirtualBox:~$ 






jo længere tid man bruger Linux - jo mere vil man anvende terminalen. Simpelthen fordi det er smartere og langt mere effektivt end at klikke sig frem.

Overblik

Når man er logget ind får aman følgende information fra kommandolinien

  1. Hvem man er,
  2. hvilken computer man sidder ved,
  3. hvor man står i filsystemet og
  4. Hvilken type bruger man er
tj@tj-VirtualBox:~$
tj @ tj-Virtualbox ~ $
brugernavn PC-navn Brugerens hjem Almindelig bruger

$ bliver erstattet af # hvis man er superbruger (root):

tj@tj-VirtualBox:~$ sudo su
[sudo] password for tj: 
root@tj-VirtualBox:/home/tj# 



De fleste kommandoer har tre sektioner:

[kommando] [optioner] [målet for kommandoen]

Eksempel

ping -c 4 www.dr.dk
Kommando Option Mål
ping -c 4 www.dr.dk
programmet Optionen (i dette tilfælde 4 gange) Målet kommandoen skal arbejde med
tj@tj-VirtualBox:~$ ping -c 4 dr.dk
PING dr.dk (159.20.6.38) 56(84) bytes of data.
64 bytes from 159.20.6.38: icmp_seq=1 ttl=63 time=13.0 ms
64 bytes from 159.20.6.38: icmp_seq=2 ttl=63 time=12.9 ms
64 bytes from 159.20.6.38: icmp_seq=3 ttl=63 time=13.3 ms
64 bytes from 159.20.6.38: icmp_seq=4 ttl=63 time=14.0 ms

--- dr.dk ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 12.966/13.342/14.017/0.423 ms

Hvis optionen -c 4 ikke tilføjes, kører kommandoen indtil den bliver afbrudt med tastekombinationen Ctrl+c (stop kommandoen) eller Ctrl+z (afbryd programmet).

Nogle kommandoer kan indlejrer – f.eks. time (finder tidsforbruget af en kommando)

time ping -c 4 www.dr.dk
tj@tj-VirtualBox:~$ time ping -c 4 dr.dk
PING dr.dk (159.20.6.38) 56(84) bytes of data.
64 bytes from 159.20.6.38: icmp_seq=1 ttl=63 time=12.6 ms
64 bytes from 159.20.6.38: icmp_seq=2 ttl=63 time=13.9 ms
64 bytes from 159.20.6.38: icmp_seq=3 ttl=63 time=12.3 ms
64 bytes from 159.20.6.38: icmp_seq=4 ttl=63 time=14.6 ms

--- dr.dk ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 12.331/13.369/14.614/0.929 ms

real	0m3.041s
user	0m0.004s
sys	0m0.000s

Superbrugeren

Alle Linux har en superbruger (root), som har rettigheder til at gøre alt på maskinen. Denne bruger anvender man til at lave systemarbejde med f.eks. at konfigurere programmer og installere programmer. På Ubuntu er root-kontoen ikke aktiveret, men man kan "opgradere" sin bruger til at have administratorrettigheder ved hjælp af kommandoen sudo (superuser do). sudo kommandoen undersøger om man er medlem af sudo-gruppen og giver igennem denne gruppe adgang til at man kan udføre administrationsarbejde.

Superbrugren har følgende rettigheder/opogaver

  • Opdatering af systemet
  • Ændring af rettigheder på filer, mapper og drev
  • Ændring af systemets konfigurationsfiler
  • Ændring af netværksindstillinger
  • Tilføjelse og ændring af brugere

Se eksemplet herunder hvor jeg vil have informationer om den første harddisk (/dev/sda) ved hjælp af fdisk kommandoen fdisk -d /dev/sda:

tj@tj-VirtualBox:~$ fdisk -l /dev/sda
fdisk: kunne ikke åbne /dev/sda: Adgang nægtet
tj@tj-VirtualBox:~$ sudo fdisk -l /dev/sda
[sudo] adgangskode for tj: 
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf5fc72dc

Enhed      Opstart     Start      Slut  Sektorer Size Id Type
/dev/sda1  *            2048 192939547 192937500  92G 83 Linux
/dev/sda2          192942078 209713151  16771074   8G  5 Udvidet
/dev/sda5          192942080 209713151  16771072   8G 82 Linux swap / Solaris

Under første kørsel bliver det gjort med brugeren tj's rettigheder. Det medfører at fdisk ikke har ret til at kigge på harddiskens data. I det andet tilfælde "løfter" jeg rettighedsniveauet til root-niveau, som så giver mig de informationer jeg ønsker.

sudo Udfør kommandoen som superbruger
gksudo Starter GUI programmer op med superbrugerrettigheder. Det kommandoen reelt set gør er, at den ikke viser et terminalvindue. Bør ikke bruges

Noget om sikkerhed

Når man anvender sudo, så vil computeren huske kodeordet i et kort stykke tid. Derfor bør man altid afslutte en terminal når man er færdig med sit arbejde. Det gør man ved at køre kommandoen exit eller bruge tastekombinationen Alt+F4.

root-shell

Hvis der skal udføres meget administrationsarbejde vælger man ofte at bruge kommandoen sudo su. Denne kommando ændrer ens bruger til root, og man får adgang til root-shell:

sudo su Ændrer en til root bruger, så man ikke behøver at skrive sudo

Se eksemplet herunder.

tj@tj-VirtualBox:~$ sudo su
[sudo] password for tj: 
root@tj-VirtualBox:/home/tj# 

Hvis man skal lave systemarbejde kan det nogle gange være optimalt at anvende root-shell. Der er to ting man skal være opmærksom på.

  1. alt man opretter vil blive oprettet med root som ejer og gruppe.
  2. root kan alt ... Det betyder man skal tænke sig om, for man kan også komme til at lave ændringer som ødelægger.

Noget om sikkerhed

Man skal altid lukke en terminal-session ned når man er færdig med sit arbejde. Det gøres ligesom ovenfor ved hjælp af kommandoen: exit

root@tj-VirtualBox:/home/tj# exit
exit
tj@tj-VirtualBox:~$ 

Forsøger man at lukke den ned ved hjælp af Alt+F4, vil man få følgende fejlmeddelelse:

Det skyldes at root-shell kører ovenpå en terminal-shell. Klikker vi på Luk terminal, så afsluttes vores terminal-session

man pages

Til alle terminalens kommandoer er der skrevet en manual, og den kan man tilgå ved med kommandoen man [kommando] . Her kan man læse hvordan kommandoen bruges (Synopsis) og de optioner man kan tilføje (Descriptions). Herunder er de første linier af kommandoen man ls

LS(1)                            User Commands                          LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
     List  information  about  the FILEs (the current directory by default).
     Sort entries alphabetically if none of -cftuvSUX nor --sort  is  speci‐
     fied.

     Mandatory  arguments  to  long  options are mandatory for short options
     too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

Man scroller med piletasterne og afslutter med [q].

De kan også findes på Internettet. F.eks. kan man finde ls' online udgave ved at søge med ordene: ubuntu man ls. Herefter vælger man sin version af Ubuntu, og får den relevante mannualside.