Kommandoar
Startsiden Opp

 

De vanligste kommandoer i Linux samnlikna med DOS.

Elementær navigering


 

Hvordan... Linux kommando DOS kommando
Elementær navigering
får jeg mer info om en kommando? man <kommando>
<kommando> --help
<kommando> /?
lister jeg filer i en katalog? ls dir
skifter jeg katalog? cd <katalog> cd <katalog>
vet jeg i hvilken katalog jeg er? pwd -
oppretter/fjerner jeg en katalog? mkdir/rmdir <katalog> mkdir/rmdir <katalog>
kopierer jeg en fil? cp copy
sletter jeg en fil? rm del
lager jeg en (tom) fil? touch -
flytter jeg en fil/endrer navn på fil mv move / ren
lister jeg innholdet i en fil? cat / more / less more
får jeg opp informasjon om diskbruk? df -
sjekker jeg hvor mye diskplass brukt? du -sh dir
sjekker jeg ledig minne? free mem
finner jeg en spesifikk fil? find / whereis <fil> ls /s <fil>
lager jeg en snarvei? ln -s <faktisk_fil> <snarvei> -
pakker jeg inn/ut filer? gzip/bunzip / tar pkunzip
     
Bruker-relaterte kommandoer
vet jeg hvem jeg er? ;) whoami -
logger jeg meg inn som root? su -
endrer jeg passord? passwd -
får jeg opp diverse info om systemet? w -
finner jeg ut mer om en bruker? finger -
endrer jeg rettigheter på filer? chmod -
endrer jeg eierskap på filer? chown -
legger jeg til bruker? useradd -
sletter jeg en bruker? userdel -
endrer jeg mitt shell? chsh -
     
Enkle nettverkskommandoer
sjekker jeg om en boks er på nett? ping ping
konfigurerer jeg nettverket? ifconfig netstat / "ipconfig /all"
bruker jeg traceroute? traceroute tracert
snakker jeg med andre som er innlogget? talk -
     
Mer avanserte kommandoer
finner jeg ut hvilken linux-ver jeg har? uname
cat /proc/version
ver
får jeg tilgang til andre disker? mount -
formaterer jeg en disk? mkfs format
sjekker jeg om en disk er skadet? fsck chdsk / scandisk
lister jeg alle prosesser? ps -
lister jeg alle prosesser i en fin tabell? top -
avslutter (dreper) jeg en prosess? kill -
slår jeg av boksen? shutdown -
partitionerer jeg en disk? fdisk fdisk
viser jeg all oppstarts-info? dmesg -
aktiverer jeg shadow passord? pwconv -
lister hvilke moduler som er lastet? lsmod -
     
Annet
sjekker jeg hvilket skjermkort jeg har? SuperProbe -
konfigurerer jeg X? xf86config -
     

 

Forklaring

Elementær navigering:

man <kommando>
En kommando som er godt å ha! Ved bruk av man, får du opp en mer utførlig beskrivelse om bruken av denne kommandoen. Eks: "man chmod", "man ls".

ls
Ved å skrive "ls" (list) får du en oversikt over filene i gjeldene mappe. Samme som "dir" kommandoen i DOS.
Ved å skrive "ls -l", får du opp mer informasjon om hver enkelt fil.
Ved å skrive "ls -a" vises alle skjulte filer. (Alle skjulte filer har en punktum først i filnavnet - eks. .bash_history eller .skjult_fil)

cd
Skifter til en annen katalog. Eks: cd test-katalog/

pwd
Viser i hvilken katalog som bruker befinner seg i.

$ pwd
/home/lars

mkdir/rmdir
Disse kommandoene oppretter/fjerner kataloger. NB! Katalogen må være tom før du får slettet den med denne kommandoen. Bruk "rm -r <katalog>" for å fjerne kataloger med innhold.

cp
Kopierer filer. "cp -r" kopierer hele kataloger.

rm
Sletter en fil. "rm -r" fjerner en hel katalog, med alt innhold.

mv
Denne kommandoen flytter filer. Vi flytter filen testfil1 til katalog1/

$ mv testfil katalog1/

Denne kommandoen endrer også navn på filer. Vi "flytter" filen til ett annet navn.

# mv testfil nyttnavn

cat
Cat kommandoen er meget nyttig. Cat har flere funksjoner, men elementært, så leser den en fil og viser den til "standard output". Kort (og grovt) fortalt, kan vi si at kommadoen henter ett filformat og "kaster" den til riktig utgang. F.eks. kan vi "kaste" en musikk-fil til lydkortet (og dermed få lyd), eller en fil til printerporten (og printe ut noe). Prøve f.eks. å skrive:

$ cat /proc/cpuinfo

df -h
Viser hvor mye ledig diskplass som er ledig. Ved bruk av df -h gir det en litt mer leslig format (megabyte, kilobyte etc.). Eks:

$ df -h
Filesystem Size Used Use% Mounted on
/dev/sda1 20G 5G 25% /
/dev/sda2 9.1G 2.8G 32% /home
$

du -sh
Viser hvor mye plass denne katalogen (med underkataloger) tar av diskplass. Eks:
 

$ du -sh
2.1M
$

free
Viser hvor systemets bruk av minne. "free -m" viser minnebruken i megabytes.

find / whereis
Den første kommandoen, find, leter gjennom de kataloger som er eksportert til bash. Den andre kommandoen, whereis, er leter mer omfattende. Se også kommandoen, locate for mer avansert filsøking.

ln
Filer kan ha flere navn i UNIX/Linux. Dette gjøres ved kommandoen ln. Du oppretter da en snarvei til den faktiske filen.

$ ln /programmer/filen snarveien

Oppretter her en snarvei, kalt "snarveien", som peker på filen "/programmer/filen"

gzip / bzip2
For å pakke ned en fil, brukes kommandoen:

$ gzip en_fil

"en_fil" vil da bli pakket ned, og den pakkede filen får navn "en_fil.gz". Merk! "en_fil.gz" erstatter "en_fil"! Du får dermed kun en kopi av den pakkede filen!

$ gzip -9 en_fil

Ved å bruke -9, vil det si at vi bruker maksimal kompresjon. Ved å bruke lavere tall, vil det ta kortere tid å pakke ned, men den pakkede filen vil bli større.

For å pakke ut en fil brukes følgende kommando:

$ gunzip en_fil.gz

bzip2 er en forbedret utgave av gzip. Den bruker en litt annen komprimerings-algoritme, og får pakket ned filer bedre. Den bruke på samme måte som gzip/gunzip, bare at det er bzip2/bunzip2. De pakkede filene vil få navn som "en_fil.bz2". Se man sidene for mer avansert bruk av gzip/bzip2.

tar
Tar ble opprinnlig brukt til backup. Legger alle filer og kataloger i en stor fil, som det igjen ble tatt backup av. Det fine med tar, er at du kan pakke ned hele katalogstrukturer, noe som ikke går med gzip/bzip2. Ofte er tar brukt til først å pakke ned i en stor fil, også pakket med gzip. Dissse filene har ending .tar.gz, også kalt "tarball". Eldre slike filer kan også ha ending .tar.Z. Det er også .tar.gz2 filer, som pakket med tar og pakket ned med gzip. Kernelkildekoden er pakket på denne måten. Pakker ut en tarball med følgende kommando:

$ tar zxfv backupavfil.tar.gz

Igjen, for mer (masse) informasjon om bruk, se man sidene.

Bruker-relaterte kommandoer:

passwd
Gjør at du skifter passord. Denne kommandoen skifter kun passord på din lokale maskin. Merk! Hvis det er et nettverk, er det mest sannsynlig "yppasswd" ("yp on lan" eller "Yellow Pages on Local Area Network"). Root kan selvfølgelig skifte passord på hvem han selv måtte ønske ("passwd lars"). Bruk "man" for å lære mer om dette.

Root kan også stenge en konto ved å bruke følgende kommando:

# passwd -l lars

Passordet for denne kontoen settes da til noe ugjettbart :) For å låse opp denne kontoen bruker vi kommandoen:

# passwd -u lars

finger <en_bruker>
Er en kommando som kan brukes til å få opp informasjon om en bruker på systemet. Hvis brukeren har en .plan og/eller .project med utfyllende beskrivelse, kan en annen bruker få opp denne informasjonen ved å bruker finger <bruker>. NB! Denne tjenesten kan være utilgjengelig på enkelte systemer, dette fordi system-administratoren har gjort dette av sikkerhetshensyn. Prøv å skriv:

$ finger volkerdi@slackware.com

Som gjør at du får opp finger kommandoer om Patrick Volkerding; mannen bak Slackware.

eller

$ finger johnc@idsoftware.com

Med denne kommandoen får du opp informasjon om John Carmack - mannen bak alle grafikk-motorene til ID Software. Carmack pleier å ha mye oppdatert informasjon om grafikk-kort og fremtdige prosjekter til ID Software.

eller

$ finger larstra@ifi.uio.no

eller ...

chmod
Linux/Unix har et innfløkt (men logisk) system for filtildeling. Filtildeinger gis ved kommadoen chmod.

Først litt teori:
Eks: Ved å skrive ls -l kommer følgende opp:

$ ls -l
drwx------ 3 lars users
4096
Nov 11 19:49 Desktop/
-rw-r--r-- 1 lars users
489295
Nov 8 19:41 test.tar.gz
drwxr-xr-x 4 lars users
4096
Oct 28 21:43 ns_imap/
drwx------ 2 lars users
4096
Oct 28 21:41 nsmail/
$

Det er den første kolonnen som er interessant. Det står -rw-r--r--. Det første tegnet er "-", sier hva slags fil dette er (d - for kataloger, c - for enheter osv.). Videre er det 3 tegn (rw-) + 3 tegn (r--) + 3 tegn (r--) = 3 x 3. Tilsammen 10 tegn. La oss forklare hvert segment (farge).

Segment:
Blå - De første tre symbolene er filtildelingene for de som eier filene (i dette tilfelle "lars" som er meg :). Jeg tilhøerer også gruppe "users". Dette første segmentet kalles "u" for "user".
Rød - De neste tre symbolene er tilganger for gruppe (i dette tilfellet "useres" - Hvis jeg hadde vært i f.eks. gruppen "frisurf", så kunne jeg gitt tilganger til andre som var i min gruppe (dvs. "frisurf"). Andre grupper, f.eks. "total" ville ikke ha hatt de samme tilganger.). Kalt segment "g" for "group".
Grønn - De tre siste symbolene er tilganger for alle andre (dvs. hvemsomhelst). Kalles semgent "o" for "other".

Rettigheter:
Videre er det tre mulige rettigheter:
* r = read
* w = write
* x = execute (NB! For å få tilgang til kataloger, må de ha tilgang til å bli eksekverbare)

Eks: Se på filen "test.tar.gz

-rw-r--r-- 1 lars users
489295
Nov 8 19:41 test.tar.gz

La oss forstørre litt:
 

- r w - r - - r - -
  "users" "group" "other"

User (som er meg) kan både lese (r) og skrive (w) til filen. Alle som er i min gruppe (users) kan lese denne filen, det samme kan alle andre som er i systemet (other).

Hvordan endre rettigheter?
Du forandrere tilganger med kommandoen "chmod".

1, Du angir først hvem endringen skal gjelde for (enten user, group eller other).
2. Deretter + eller -
3. Tilslutt hva slags rettigheter som skal settes (som er read, write eller execute)

eks: chmod o+rw test.txt
Denne kommandoen vil gi lese (r) og skrive (w) til alle andre (other) for filen test.txt

eks2: chmod o-rw test.txt
Dette gjør det motsatte, nemlig å fjerne lese og skrive rettigheter for filen test.txt for alle andre (other).

eks3: chmod go-x lars/
Gjør at jeg sperrer katalogen lars/ for både min gruppe (group) og alle andre (other). Som bruker har jeg fremdeles mine tilganger inntakt (user).

Root har selvfølgelig tilgang til alle filer. Root = Gud ;)

chown <bruker> <fil/katalog>
Selv om rettighetene er i orden, så forutsetter det at bruker eier filen/katalogen. Merk! Det er kun root som kan skifte eierskap av filer/kataloger. Eks:
 

# chown brev.txt liuns

Jeg gir bruker "linus" eierskap til filen "brev.txt".

useradd
Kommando for å legge til brukere.

# useradd ola -p ola42 -d /home/ola -m

Legger til ola-bruker med passord "ola42", og med hjemmekatalog under /home/ola. Se man useradd for mer info. Ofte følger det med egne "useradd"-script for hver distribusjon; "adduser" i Slackware, "YaSt" i Suse osv. KDE har også ett eget grafisk bruker administrasjons program.

userdel
Fjerner bruker fra systemet.

# userdel -r ola

Fjerner brukeren ola fra systemet. Sletter samtidig hjemmekatalogen.

chsh
Hvis brukeren har lyst til å endre sitt shell, gjøres det med denne kommandoen. Ulike shell kan dekke ulike behov. Sjekk først hvilke shell som er tilgjenglig i filen "/etc/shells". Les mer om shell under ordliste.

Enkle nettverkskommandoer:

ping
Dette er noe av den enkleste nettverkskommandoen. Det denne kommandoen gjør, er å se om en annen burk på er på nettverket. Denne kommandoen kan også brukes for å se om du har nettverks-trafikk overhode. Prøve f.eks.

$ ping www.online.no

ifconfig
Denne kommandoen konfigurerer ett nettverks-"interface". Eks:

# ifconfig eth0 10.1.1.2 broadcast 10.1.1.255 netmask 255.255.255.0

Denne setter opp eth0, som er vårt første nettverkskort (og eneste, hvis vi kun har ett kort i boksen), til å bruke IP-adresse 10.1.1.2. Videre broadcaster den til hele 10.1.1 subnettet. Du kan nesten alltid bruke netmaske 255.255.255.0. Hvis du vil bruke andre instillinger, vet du nok allerede nok om denne slags konfigurasjonen :) Sjekk man sidene for mer informasjon.

Denne kommandoen kan også få opp generell informasjon om interfacet ved kun å skrive "ifconfig".

traceroute
Viser veien nettverks-pakkene må gå for å komme frem til en destinasjonen. Prøv f.eks.

$ traceroute www.uio.no

talk
talk <bruker>, åpen er en enkel snakke-kanal med en annne bruker. Den du prøver å snakke med må også skrive talk <bruker> for at forbindelsen skal oppnås.

Mer avanserte kommandoer:

mount
Avgjør hva som kan aksesseres. Alle harddisker blir mountet til filer (kataloger) under Linux. Faktisk så er alle enhetene i maskinen filer under Linux. Les mer om dette her. En harddisk, cd-rom, diskettstasjon, må "mountes" før de kan aksesseres. Det er to måter å mounte filsystemer på: vanskelig og enkel.
 

Vanskelig: Når en enhet mountes, må vi vite all relevant informasjon om filsystemet, som vi så plotter inn til en kommando.
Kommandoen blir noe slikt: mount <option> enhet <katalog>. La oss belyse med ett eksempel; mounting av en CD-ROM:

# mount -t iso9660 -o ro /dev/hdc /cdrom

Det å måtte tast inn dette hver gang vi skal ha tilgang til cdrom'en blir fort kjedelig, derfor ser vi nærmere på den enkle måten..

Enkel: En enkelt måte å slippe å gjøre dette hver gang vi skal få tilgang til cd-romen er å legge all denne informasjonen inn i /etc/fstab. Som det meste annet i Linux, er også denne filen en ren tekst fil. Slik kan en /etc/fstab fil se ut:

$ cat /etc/fstab
/dev/sda1 / ext2 defaults 1 1
/dev/sda2 /usr/local ext2 defaults 1 2
/dev/sda3 /home ext2 defaults 1 2
/dev/sda4 swap swap defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
/dev/fd0 /mnt/floppy vfat defaults 0 0
/dev/cdrom /cdrom iso9660 user, ro, noauto 0 0

Den første kolonnen viser hvilken "enhet" (device fil) det er snakk om. Neste kolonne viser hvilken katalog denne enheten skal mountes til. Det neste er hvilket filsystem som denne enheten har, i vårt tilfelle er det standard cdrom-format (iso9660). Så kommer kolonnen som viser diverse spesifikasjoner som kan brukes under mounting; "user" vil si at andre brukere enn root kan mounte denne enheten, den er kun lesbar "ro", og den skal ikke mountes under oppstart "noauto".

De to siste kolonnen er av mindre interesse, men det kan være greit å vite hva de står for: Den nest siste kolonnen, kalt "dump flag", sier om denne enheten skal det bli tatt backup av. Den siste kolonnen, "check sequence", avgjør hvordan systemet skal sjekke filsystemene under oppstart. Root disken skal alltid ha verdi 1, andre disker skal ha verdi 2. Swap og andre disker skal ha verdi 0.

På denne måten trenger vi bare å skrive:

# mount /cdrom

mkfs -t <filsystem> <enhet>
Brukes til å formatere en harddisk eller diskett. Eks. på formatering av diskett (1.4"):

# mkfs -t ext2 /dev/fd0 1440

fsck <disk>
Sjekker om en disk inneholder feil. Kan minne veldig om chkdsk eller scandisk i DOS. NB! Ikke kjør denne kommandoen på en disk som allerede er mountet! Hvis du trenger å sjekke en disk som mountes under oppstart (root "/" f.eks.), bør du startet opp Linux fra en oppstartdiskett og kjøre fsck fra den.

# fsck /dev/hdb1

ps
Viser en liste over alle prosesser som kjører. "ps ax | less" gir den komplette listen over prosesser som kjøres. For å finne ett spesifikt programs PID kan det f.eks. skrives: "ps -ax | grep netscape". Her er ett lite utdrag fra en "ps -ax" kommando:

$ ps -ax
PID TTY           STAT     TIME COMMAND

[.....]
  609 ?              S           0:00 /usr/X11R6/bin/xdm -nodaemon
  622 ?               S           0:44 /etc/X11/X -auth /usr/X11R6/lib/X11/xdm/authdir/authf
  873 ?               S           0:00 -:0                                                
 8099 ?               S           0:08 /local/ssh/sbin/sshd
 8123 ?               S          0:00 /local/X11R6/bin/xdm -config /local/X11R6/lib/X11/xdm
 8201 ?               S<         0:16 /local/sbin/xntpd -p /etc/xntpd.pid
 9237 ?               S           0:00 su
 9241 ?               S           0:00 bash
 9439 ?               S           0:00 mysqld
 9440 ?               S           0:02 mysqld
 9441 ?               S           0:00 mysqld
 9497 ?               S           0:00 /opt/apache/bin/httpd
 9498 ?               S           0:00 /opt/apache/bin/httpd
 9499 ?               S           0:00 /opt/apache/bin/httpd
[......]
 

kill <pid>
Hvis du vil avslutte ett program på en litt mindre human måte, kan det drepes ("killes"). For å kille ett program, må vi vite hva slags PID (Prosess ID) det har. Dette finner du v.h.a. kommandoen ps. Hvis ett program har sluttet å oppføre seg skikkelig (hengt seg el.l.) kan det drepes rått og brutalt: "kill -9 <pid>"

shutdown
Ett vanlig Linux-system skal aldrig bare slåes rett av. Den må "kjøres ned". Dette gjøres ved bruk av kommandoen shutdown. For å reboot en Linux maskin brukes kommandoen:

# shutdown -r now

For å slå av en Linux maskin brukes kommandoen:

# shutdown -h now

På en vanlig flerbruker server kan vi gi brukerene litt tid til å logge av maskinen:

# shutdown -h +60

På større systemer med mange brukere er det vanlig at melding om nedkjøring av en server gis flere dager i forveien. Du kan også legge melding om det i filen /etc/motd, på denne måten vil alle som logger seg inn få beskjed. Denne kommandoen har flere bruksmåter, se man sidene for mer informasjon.

fdisk <enhet>
Brukes til å partitionere om harddisk. Se "man fdisk" for mer om bruken av fdisk.

dmesg
Viser all informasjon som kernelen spyttet ut under oppstart. Prøve å skriv:

$ dmesg > oppstart

Vi har nå en fil kalt "oppstart", med all oppstarts-data som kernelen viste.

pwconv
Hvis shadow ikke er aktivert, er passordet (kryptert), lesbart for alle. Dette er som oftest ingen god idé. Ved å skjule passordet i den restriktige filen shadow, har vi sikret oss mot det. For å deaktivere shadow, bruker vi pwunconv.