Linux Kommandoer, her få du de viktigste

 

 

 

 

Hvis man i et tidligere liv har arbeidet mye med DOS vil man være bedre rustet for å komme i gang med Linux' kommandobaserte grensesnitt. Disse sidene er ment for å gi en enkel innledning til de vanligste kommandoene/operasjonen i Linux. Skallet som benyttes er Bash - et skall er et program som mottar kommandoer fra deg og utfører dem. Dette kan sammenlignes med Command.com under DOS eller Explorer i Windows. Hvis man var/er en litt avansert DOS-bruker vet man kanskje at det også finnes andre skall til DOS - f.eks 4DOS. Det finnes mange skall til Linux, men Bash er det mest aktuelle.

Siden RedHat for tiden ser ut til å være den mest aktuelle distribusjonen for nybegynnere tar jeg utgangspunkt i dette - forskjellene på dette nivået vil uansett være ubetydelig mellom de forskjellige distribusjonene. Noen av eksemplene som skal vise "screenshots" har en tekstoppstilling som er litt mer rotete enn det du vanligvis vil finne i Linux - dog tror jeg ikke dette skal være noe problem i praksis.

Navigasjon

Å kunne navigere rundt i filsystemet gjøres på samme måte som i DOS. Filsystemet er bygget opp av en trestruktur av kataloger - i hvertfall kan det virke som. Noe som ser ut til å være en katalog i Linux trenger ikke være en katalog, men kan også være en annen partisjon eller harddisk, evt. en link til katalog (en slik snarvei, men ikke det samme som en snarvei - mer om det senere).

[clas@thewall clas]$

Kommandolinjens "prompt" er bygget opp av bl.a brukernavnet ditt og navnet på maskinen. I eksemplet ovenfor er det snakk om brukeren clas på maskinen "thewall" - og i gjeldende katalog er brukerens (clas) hjemmekatalog (altså: bruker@maskin katalog). Som sagt snakker man om filsystemet var organisert i en trestruktur - altså med mapper som kan forgrene seg ut i flere undermapper. F.eks roten av filsystemet på systemet vi bruker i disse eksemplene:

[clas@thewall /]$ ls
C                   bin        etc         lost+found     proc tmp        wwwroot
CD-ROM     boot     home       mnt root        usr
Zip-Drive      dev       lib          opt sbin         var
[clas@thewall /]$

Ganske mange kataloger uten "forståelige" navn... vel, så oss først se på kommandoen "ls". Kommandoen "ls" brukes for å liste ut innholdet i en katalog - slik som dir-kommandoen i DOS (dir fungerer gjerne i Linux også, men gjør ikke noe annet enn det samme som ls, dog..). ls-kommandoen har også en rekke parametre for "formatering" av utskriften av filer og filinformasjon. F.eks kan man bruke kommandoen "ls -la" for også å få utlisting av filrettigheter, størrelse, eier av filen, dato m.m. F.eks:

[clas@thewall /]$ ls -la
total 88
drwxr-xr-x  21 root     root         1024 Mar  4 21:16 .
drwxr-xr-x  21 root     root         1024 Mar  4 21:16 ..
drwxr-xr-x   2 root     root         1024 Oct 11 08:25 .automount
drwxr-xr-x  17 root     root        16384 Jan  1  1970 C
drwxr-xr-x   2 root     root         1024 Mar  4 19:22 CD-ROM
drwxr-xr-x   2 root     root         1024 Mar  4 19:08 Zip-Drive
drwxr-xr-x   2 root     root         2048 Mar  4 19:16 bin
drwxr-xr-x   2 root     root         1024 Mar 16 07:45 boot
drwxr-xr-x   3 root     root        21504 Mar 16 06:45 dev
drwxr-xr-x  28 root     root         3072 Mar 16 06:45 etc
drwxr-xr-x  10 root     root         1024 Mar  5 19:45 home
drwxr-xr-x   4 root     root         2048 Mar  3 22:12 lib
drwxr-xr-x   2 root     root        12288 Mar  3 19:52 lost+found
drwxr-xr-x   5 root     root         1024 Mar  3 21:58 mnt
drwxr-xr-x   3 root     root         1024 Mar  4 21:16 opt
dr-xr-xr-x   5 root     root            0 Mar 16 07:45 proc
drwxr-x---  13 root     root         1024 Mar  6 23:19 root
drwxr-xr-x   3 root     root         2048 Mar  3 22:12 sbin
drwxrwxrwt  10 root     root         1024 Mar 16 07:11   tmp
drwxr-xr-x  21 root     root         1024 Mar  3 19:55 usr
drwxr-xr-x  17 root     root         1024 Mar  3 19:58 var
[clas@thewall /]$

Kommandoen ls har mange parametere som kan benyttes, og i den forbindelse kan man bare med en gang fortelle om kommandoen "man" - dette er nok en kommando du garantert kommer til å få brukt form. De fleste kommandoer har en manual tilgjengelig hele tiden. F.eks hvis man skriver "man ls" vil man få opp informasjon om hva denne kommandoen gjør, hvilke parametre som finnes, eksempel på bruk etc. Kort sagt; en manual for programmet/kommandoen - som er tilgjengelig på en veldig enkel måte.

linux_man.gif (19313 bytes)

For å bevege seg opp og ned i teksten benytter man piltastene (space benyttes for å hoppe en side ned).

Kommandoen "man" fungerer på så å si alle kommandoer og programmer. Hvis et program ikke har noen manual vil man få opp melding om det:

[clas@thewall /]$ man netscape
No manual entry for netscape
[clas@thewall /]$

Det finnes også en annen type hjelpefunksjon for en del kommandoer. F.eks ved å sette "--help" som parameter til kommandoen får man opp en kort hjelpetekst. F.eks "mkdir --help".

Dog, noe av det viktigste er jo også å kunne navigere mellom kataloger (husk, en katalog er i Linux ikke alltid en katalog, men kan f.eks også være en annen harddisk...eller noe...). For å gå mellom kataloger bruker man samme kommando som under DOS - "cd <katalognavn>". F.eks:

[clas@thewall /]$ ls
C          bin     etc     lost+found  proc   tmp    wwwroot
CD-ROM     boot    home    mnt         root   usr
Zip-Drive  dev     lib     opt         sbin   var
[clas@thewall /]$ cd home
[clas@thewall /home]$ ls
celica     conan   httpd       testbruker
knut       clas  lost+found  samba
[clas@thewall /home]$ cd httpd
[clas@thewall httpd]$ ls
cgi-bin    html    icons
[clas@thewall httpd]$

Nå var jeg allerede i roten av filsystemet (/) og gikk inn i katalogen "home". Videre gikk jeg fra katalogen "home" inn i katalogen "httpd". Sagt at jeg viste hvilken katalog jeg skulle inn i videre kunne jeg også ha skrevet "cd home/httpd" direkte. Skal jeg nå tilbake til katalogen home kan jeg skrive "cd .." - altså cd etterfulgt av to punktum. Hvis du tidligere har brukt DOS må du legge merke til at det skal være mellomrom mellom "cd" og "..". Som man ser viser "prompt" bare navnet på katalogen man står i. Hvis man er usikker på hvilken katalog man står i finnes det en kjekke kommando:

[clas@thewall Xconfigurator]$ pwd
/usr/X11/share/Xconfigurator
[clas@thewall Xconfigurator]$

Altså forteller kommandoen "pwd" stien til katalogen jeg står i. Videre kan man se på litt mer avansert bruk av "cd"-kommandoen. Sagt at jeg stod i katalogen fra siste eksempel og ville til katalogen /usr/X11/include - enkleste måte for meg å komme til denne katalogen ville være å skrive "cd ../../include" - seriene med ".." forteller at man skal gå to hakk tilbake i kataloghierarkiet. En annen ting DOS-brukere bør være oppmerksom på er at man bruker vanlig skråstrek (/) isteden for bashslash (\). Ønsker man å gå til roten av filsystemet benyttes "cd /". F.eks kan man stå langt ut i en katalogstruktur og ønsker å gå til katalogen "bin" som ligger helt i bunnen kan man skrive "cd /bin" - / forteller altså at det er utgangspunkt i roten av filsystemet. Skriver man "cd /" vil man komme til selve roten.

Hvis man ønsker å gjenta kommandoer som man har gjort kan man bla i kommandoene man har utført ved hjelp av piltastene (pil oppover blar bakover i kommandohistorien).

Sagt at man har ganske mange filer i en katalog kan det være vanskelig å bare skrive "ls" og få opp en masse filer... sagt at man har en del filer som har endelsen .gif liggende i katalogen. Man kan da bruke "jokertegn", f.eks "ls *.gif". Eller si at man vil skrive ut alle filer som starter med bokstaven a: "ls a*". Jokertegn kan også brukes på en rekke andre kommandoer som er rettet mot filer (f.eks sletting av filer etc).

Før man gå noe videre kan det være greit å fortelle litt om de katalogene man vanligvis finner i et Linux-system - hvis vi tar utgangspunkt i / på systemet brukt i disse eksemplene og se på de viktigste katalogene.

[clas@thewall /]$ ls
C         bin      etc     lost+found  proc     tmp     wwwroot
CD-ROM    boot     home    mnt         root     usr
Zip-Drive dev      lib     opt         sbin     var
[clas@thewall /]$

Første katalog her er C - dog er dette ikke noe katalog, men en oppkobling (mounting) av harddisken som er C: i Windows. Hvordan man får tilgang til slike disker i Linux kommer jeg tilbake til. I samme slengen kan man også ta
med CD-ROM og Zip-Drive - dette er altså "katalogen" for disse enhetene.

I /bin finner man binær-filer - programmer...

I /boot finner man en del filer relatert til oppstarten av systemet.

I /dev henvises det til devices, eks. på en device er en harddisk/partisjon, SCSI-enheter, porter (seriell/parallell) etc.

I /etc finnes man filer som har med oppsett av maskin og programmer. Dette er gjerne ASCII-filer som kan editeres i en editor. F.eks kan man konfigurere LILO ved å redigere filen "lilo.conf" eller man kan sette opp aliaser i bashrc (dvs. hvis du f.eks skriver "win" så skal kommandoen "startx" kjøres.. kan være greit i en del tilfeller... en alias
jeg personlig alltid setter er at når jeg skriver "ls" så skal "ls --color" utføres - prøv å skriv "ls --color" selv og se hva som skjer).

I /home ligger hjemmekatalogen for alle brukerene. Dette er en brukers private område hvor f.eks hjemmeside ligger, e-post-filer, private dokumenter etc. Noe man kan merke seg når det gjelder navigering og home-kataloger: uansett hvilken katalog du står i kan du skrive "cd" for å komme tilbake til din egen hjemmekatalog. Hvis du f.eks skal inne i en annen brukers hjemmekatalog kan du skrive "cd ~<brukernavn>" (f.eks "cd ~ole" og komme til den aktuelle brukerens katalog. Dette er også greit å ta med seg når det gjelder kopiering av filer - man kan da også bruke ~<brukernavn> for å referere til katalogen isteden for å bruke /home/<brukernavn>

I /lib finnes bibliotekfiler som er relatert til programmer som ligger i /bin og /sbin - dette kan på en måte sammenlignes med .dll-filer i Windows.

/mnt benytter man få når man "mounter" opp disker midlertidig. Kommer tilbake til hva dette vil si.

/root er hjemmekatalogen til root-brukeren.

/sbin inneholder kjørbare filer som kun skal være tilgjengelig for root-brukeren + filer som benyttes av systemet.

/tmp - burde være grei..

/var er "litt av hvert". Bl.a brukes den til å lagre en del midlertidige filer, f.eks spool-filer og log-filer.

/usr inneholder store deler av systemet, f.eks installerte programmer, dokumentasjon, spill, manual-sider, X Windows

En mer komplett beskrivelse av hva de forskjellige katalogene er finner man på http://www.pathname.com/fhs/

Ok.. nå vet vi litt om katalogstrukturen og hvordan man navigerer i denne... la oss ta en titt på en del andre kommandoer... legg merke til at Linux er "key sensitive", dvs bruk av store og små bokstaver er ikke tilfeldig - heter en fil Bil.jpg så heter den det - ikke bil.jpg...

 

 

                                                                                                                           Neste side