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.

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...