linux2del1.mp4
(02:42) Demo: Manualsider
linux2del2.mp4
(04:02) Demo: Tidsbesparende triks i et Linux-shell
linux2del3.mp4
(03:08) Slides: Oppsummering om Linux-shellscript
linux2del4.mp4
(03:06) Demo: Absolutt og relativ path
linux2del5.mp4
(06:42) Demo: Flytte og kopiere mapper og undermapper
linux2del6.mp4
(04:57) Demo: Hvordan slette mapper og filer. Mer filbehandling.
linux2del7.mp4
(07:05) Demo: Filnavn, prosesser, Linux-hosts, Orientering
linux2del8.mp4
(03:35) Demo: Symbolske linker til mapper og filer
linux2del9.mp4
(10:29) Demo: Informasjon fra ls -l og filrettigheter
linux2del10.mp4
(04:03) Demo: Alternativ bruk av chmod. Umask og default rettigheter.
$ man date |
Manualsiden er vanligvis for lang til å vises på en side. Du kan manøvrere deg nedover en side av
gangen ved å taste space. Man søker ved å taste /søkeord
og så taste "n" fortløpende for flere
forekomster. Tast "q" for å avslutte.
Apropos: finner kommandoer relatert til et emne.
haugerud@studssh:~$ apropos compare [ (1) - check file types and compare values bcmp (3) - compare byte sequences bzcmp (1) - compare bzip2 compressed files bzdiff (1) - compare bzip2 compressed files cg_diff (1) - compares two Cachegrind output files cmp (1) - compare two files byte by byte comm (1) - compare two sorted files line by line diff (1) - compare files line by line haugerud@studssh:~$ man diff DIFF(1) User Commands DIFF(1) NAME diff - compare files line by line SYNOPSIS diff [OPTION]... FILES DESCRIPTION Compare FILES line by line. Mandatory arguments to long options are mandatory for short options too. --normal output a normal diff (the default) -i, --ignore-case ignore case differences in file contents |
Alt som er listet i [] er opsjoner som kan men ikke må tas med. Tast "q" for å avslutte.
studssh$ diff -i fil1 fil2 |
Og et google-søk med 'linux command line' eller 'linux bash' og det du ønsker å finne gir ofte raskt det du leter etter.
$ exit
og CTRL-d avslutter et shell.
(reverse-i-search)`': (reverse-i-search)`mitt': mv mitt.sh new |
Generelt kan man få skallet til å komplettere filnavn og kommandoer ved å trykke på TAB-tasten. Skal man f.eks. flytte til mappen kjempelangtnavn:
$ cd kj [TAB] $ cd kjempelangtnavn |
Hvis du også har en mappe der du står som heter kjiipt, piper det etter TAB
$ cd kj [TAB] [TAB] kjempelangtnavn/ kjiipt/ $ cd kje [TAB] $ cd kjempelangtnavn $ loc [TAB] local locale localedef locate lockfile |
Du kan også bruke TAB-tasten til å komplettere kommandoer du skal utføre. Skriver du
$ net |
og så trykker TAB-tasten to ganger vil du få alle kommandoer som begynner på "net".
$ net net netcat netkit-ftp netstat |
tast en "s" og TAB igjen og "netstat" fullføres av shellet.
Se mer om dette og andre tips under 'Nyttige tips om bruk av Linux' under Linux-help ikonet på kurs-siden.
Hvis du kjører Linux med grafisk brukergrensesnitt vil i noen tilfeller kopiering og lignende være litt anderledes enn i andre systemer:
+ | Raskt å lage. |
+ | Fint for små oppgaver. |
- | Langsomt i forhold til kompilert kode. |
- | Mangler avanserte datastrukturer. |
- | Kryptisk syntaks |
- | Vanskelig å feilsøke/debugge |
En meget nyttig måte å teste ut bash-script på er å bruke -x parameteren. Kjør scriptet ditt, som heter f. eks. mittscript, slik:
$ bash -x mittscript $ bash -x mittscript + '[' -f /etc/passwd ']' + echo Bra Bra og hver kommando som utføres blir skrevet til skjermen. |
$ pwd / $ cd home $ pwd /home $ cd etc <----- Relativ path bash: cd: etc: No such file or directory $ cd /etc <----- Absolutt path |
Alt I: Relativ path | AltII: Absolutt path |
---|---|
Fra / | Fra hvor som helst |
$ cd usr | $ cd /usr/bin |
$ cd bin | $ pwd |
$ pwd | /usr/bin |
/usr/bin | |
Begynner ikke med / | Begynner med / |
Linux-kommando | resultat |
---|---|
$ tree | viser den underliggende mappe-strukturen |
$ sudo apt-get install tree | Installerer programmet tree om det ikke finnes fra før |
$ mv dir1 dir2 | flytter mappen dir1 til mappen dir2 |
$ cp /bin/c* /tmp | Kopier alt som begynner på c i /bin til /tmp |
$ cp -R dir1 dir2 | Kopier dir1 med undermapper til dir2 |
Linux-kommando | resultat |
---|---|
$ rm fil1 | sletter fil1 (umulig å få tilbake) |
$ rmdir Mappe | kun tom mappe |
$ rm -R Mappe | sletter mappe og alle undermapper. Farlig |
$ rm -i fil2 | ber om bekreftelse først |
Linux-kommando | resultat |
---|---|
$ locate noe | finner alle filer og mapper med navn som inneholder tekststrengen “noe” |
$ find tmp -name fil.txt | finner alt under tmp med navn som inneholder fil.txt |
$ find . -name "*fil*" | finner alt under mappen du står som inneholder strengen "fil" i navnet |
$ more fil1 | skriv til skjerm; en side av gangen |
$ grep group /etc/passwd | skriv til skjerm alle linjer som inneholder strengen group |
$ wc -l /etc/passwd | tell antall linjer i /etc/passwd |
$ grep group /etc/passwd | wc -l | tell antall linjer som inneholder strengen group |
ps
ps aux
ps aux | grep root
man ps
top
ssh os@studssh.cs.oslomet.no os@studssh.cs.oslomet.no's password: [os]studssh:~$ |
Linux-kommando | Gir deg |
---|---|
$ whoami | brukernavn |
$ hostname | maskin-navn |
$ uname | Operativsystem (Linux, Solaris,.....) |
$ uname -a | OS, versjon, etc. |
$ who | hvem som er logget inn |
$ type chmod | hviklet program kjøres med chmod? |
$ history | tidligere kommandoer |
$ ln -s fil1 fil2 $ ls -l -rw------- 1 haugerud drift 20 Sep 4 18:44 fil1 lrwxrwxrwx 1 haugerud drift 4 Sep 4 18:43 fil2 -> fil1 $ cat fil2 Denne teksten står i fil1 |
$ pwd /home/min/dir1 $ ln -s /usr/bin mbin $ ls -l lrwxrwxrwx 1 haugerud drift 8 Sep 4 19:02 mbin -> /usr/bin |
$ cd mbin $ ls 822-date giftopnm nawk rcsmerge Esetroot giftrans ncftp rdist .......etc....... # alle filene i /usr/bin $ $ pwd /home/min/dir1/mbin # /bin/pwd gir path relativt til linken $ type pwd pwd is a shell builtin # kommandoen pwd er bygd inn i bash $ /bin/pwd # /bin/pwd gir absolutt path til der du er /usr/bin $ cd .. $ pwd /home/min/dir1 # ikke /usr |
$ ls -l -rwxrw-r-- 1 haugerud drift 7512 Aug 30 14:20 fil.exe |
- | fil (d = mappe, l = link) |
rwx | fileier sine rettigheter (r = read, w = write, x = executable) |
rw- | gruppens rettigheter (kan lese og skrive) |
r- - | alle andre sine rettigheter (kan bare lese filen) |
1 | antall hard links |
haugerud | eiers brukernavn |
drift | gruppen som filen tilhører (definert i /etc/group) |
7512 | antall byte |
Aug 30 14:20 | tidspunkt filen sist ble endret |
fil.exe | filnavn |
For mapper betyr x at man har tilgang til mappen. Er ikke x satt, kan man ikke gå dit. Og da kan man heller ikke liste filer der eller kopiere noe dit.
Rettighetene til eier, gruppe og andre er representert med kun tre
bit. Dette begrenser hvor mange forskjellige rettigheter man kan ha,
samtidig gjør det det enkelt å representere rettighetene som
tall og å regne ut rettigheter i hodet. Dette gjør man på
følgende måte:
Ved hjelp av disse tallene (og tallet 0) kan vi telle fra 0 til 7 ved
å kombinere dem på forskjellige måter. F.eks:
$ chmod 644 fil.txt <- gir rw-r--r-- $ chmod -R 755 dir <- gir rwxr-xr-x til dir og alle filer og mapper under dir |
Tallene betyr:
rwx | octal | tekst |
---|---|---|
000 | 0 | - - - |
001 | 1 | - - x |
010 | 2 | - w - |
011 | 3 | - w x |
100 | 4 | r - - |
101 | 5 | r - x |
110 | 6 | r w - |
111 | 7 | r w x |
![]() |
$ chmod a+xr fil.txt <- gir read og execute til alle (a) $ chmod g-w fil.exe <- fratar gruppen skriverettigheter |
umask
setter hva som skal være standard rettigheter
for nye filer og mapper.
$ umask 0022 $ mkdir dir $ touch fil $ ls -l total 1 drwxr-xr-x 2 haugerud drift 512 Aug 30 23:52 dir -rw-r--r-- 1 haugerud drift 0 Aug 30 2006 fil |
umask
er en 'maskering'. For hver brukergruppe settes rettighet
'111 minus mask' for mapper og '110 minus mask' for filer. Bit som er satt i
mask, settes alltid til null.
$ umask 027 $ mkdir dir2 $ touch fil2 $ ls -l total 2 drwxr-x--- 2 haugerud drift 512 Aug 30 23:53 dir2 -rw-r----- 1 haugerud drift 0 Aug 30 2006 fil2 |
Det er ikke så viktig å vite detaljene i hvordan umask virker, for man kan raskt
teste ut hva resultatet blir om man har en viss forståelse.
Slik beregnes rettighetene:
For mappe | 7 = 111 | 7 = 111 | 7 = 111 |
---|---|---|---|
minus mask | 0 = 000 | 2 = 010 | 7 = 111 |
resultat | 7 = 111 | 5 = 101 | 0 = 000 |
rettighet | 7 = r w x | 5 = r - x | 0 = - - - |
For fil | 6 = 110 | 6 = 110 | 6 = 110 |
---|---|---|---|
minus mask | 0 = 000 | 2 = 010 | 7 = 111 |
resultat | 6 = 110 | 4 = 100 | 0 = 000 |
rettighet | 6 = r w - | 4 = r - - | 0 = - - - |
-w-
(kun skriverettigheter) brukes i praksis aldri.