Slide 1

Slide 1 text

Terminalbruk Tech-kveld 2009-10-13

Slide 2

Slide 2 text

Mål for kvelden Kurere terminalskrekk. Å få et ekstra verktøy i verktøykassa. Å få et grunnlag for videre utforskning og læring.

Slide 3

Slide 3 text

Agenda 16:30 Pizza 16:45 Introduksjon 16:50 Komme i gang 17:00 Grunnleggende filhåndtering 17:20 Tilgangskontroll 17:45 Søk etter filer 18:00 Søk etter innhold (med regexp) 18:20 Kombinering av kommandoer 18:30 Eksekvering 18:45 Prosesskontroll 18:55 Spørsmål

Slide 4

Slide 4 text

Hvorfor terminal? Tilgjengelighet Et kraftig verktøy Mer effektivt enn pek og klikk Ofte nødvendig for deployment Enkelt å dokumentere fremgangsmåte

Slide 5

Slide 5 text

Hva er en "terminal"? Programmet du kjører på din maskin Terminal i Mac OS X PuTTY i Windows Kommandogrensesnittet til maskinen Terminalen kjører et "shell"

Slide 6

Slide 6 text

Hva er et "shell"? Programmet som tolker kommandoene dine Finnes ulike varianter Mye felles funksjonalitet "bash" er det mest vanlige

Slide 7

Slide 7 text

Komme i gang De fleste kommandoer støtter "--help" som argument De fleste kommandoer har mer dokumentasjon i "man " Oppgave: Logg inn på login.iterate.no med SSH Finn enlinjersbeskrivelsen til kommandoen "cat"

Slide 8

Slide 8 text

Grunnleggende filhåndtering Path ls (-l, -a, -h, -d) (~, .., /etc, ./etc) pwd Kataloger mkdir (-p) Filer cat less Felles mv cp (-r, -v) rm (-r, -f, -v)

Slide 9

Slide 9 text

Grunnleggende filhåndtering Oppgave: Bruk kommandoen "pwd" til å finne arbeidskatalogen din. Lag mappen "terminalkurs" på hjemmeområdet ditt. Bytt navn på mappen fra "terminalkurs" til "public_html". Gå inn i mappen. List innholdet i mappen.

Slide 10

Slide 10 text

Tilgangskontroll Alle filer/kataloger har en eier, en gruppe og rettigheter Rettigheter gis til eier, gruppe og røkla Rettigheter gis for å lese (r), skrive (w) eller eksekvere (x) Fire viktige kommandoer: chown: endrer bruker (og evt. gruppe) chgrp: endrer gruppe chmod: endrer rettigheter ls -l: viser alle tilgangsdetaljer

Slide 11

Slide 11 text

Tilgangskontroll Rettigheter angis ofte som bitmasker til "chmod": "750" eller "rwxr-x---" gir: Eier: lese, skrive, og eksekvering (4 + 2 + 1 = 7) Gruppe: Lese og eksekvering (4 + 0 + 1 = 5) Røkla: Ingen tilgang (0 + 0 + 0 = 0) "755" er vanlig på kataloger lesbare for alle "644" er vanlig på filer lesbare for alle "777" er aldri rett løsning

Slide 12

Slide 12 text

Tilgangskontroll "chmod" støtter også følgende: u+rw: Lese- og skrivetilgang til eier (user) g+rx: Lese og eksekvering for gruppe o-rwx: Ingen tilganger til røkla (others) a+r: Lesetilgang til eier, gruppe og røkla Se "man chmod" for mer detaljer.

Slide 13

Slide 13 text

Tilgangskontroll Oppgave: Gi røkla eksekveringstilgang på hjemmekatalogen din.

Slide 14

Slide 14 text

Søk etter filer Oppgave: Bruk kommandoen "find" til å liste alle filer i "/etc" som har "ldap" i filnavnet sitt.

Slide 15

Slide 15 text

Søk i innhold (med regexp) "grep" returnerer linjer som matcher en streng "egrep" returnerer linjer som matcher en regexp Regexp, eller RE, eller regular expressions er "regulære uttrykk" som bl.a. er nyttige for å matche mønstre i innhold Eksempel på regexp: "\d?" matcher null eller ett heltall. "\s+" matcher ett eller flere tegn. "\w*" matcher null eller flere ord. "[0-2]{3,4}" matcher tre eller fire siffer med verdi 0, 1 eller 2 "(a|b)*b" matcher en streng med vilkårlig antall "a" og "b" som slutter på "b" (aaaab, b, babababab, men ikke abba)

Slide 16

Slide 16 text

Søk i innhold (med regexp) Oppgaver: Finn alle linjer i "/etc/services" som inneholder "http" Finn hvilke filer under "/etc/init.d" som inneholder "http"

Slide 17

Slide 17 text

Kombinering av kommandoer Output (stdout) fra en kommando kan brukes som input (stdin) til neste ved hjelp av pipe ("|"): curl http://www.iterate.no/ | grep integrasjon | tee result. txt find . -type d | xargs chmod a+x Stdout kan redirectes til en fil: echo "hello, world" > hello.txt Stdout kan appendes til en fil: echo "hello, world" >> hello.txt

Slide 18

Slide 18 text

Kombinering av kommandoer Semikolon kjører en rekke kommandoer sekvensielt: cd /etc; ls; cd /home; ls Dobbel ampersand kjører en rekke kommandoer sekvensielt, men kun dersom forrige kommando avsluttet uten feil: cd /etc && ls && cd /home && ls cd /finnes/ikke && ls && cd /home && ls

Slide 19

Slide 19 text

Eksekvering En fil som er eksekverbar kan kjøres i shellet med ". /filnavn" Dersom det er et script fremfor et binært program må filen ha en "shebang"-deklarasjon på første linje. "shebang"-linjen forteller hvordan filen skal eksekveres. Eksempel: #! /bin/bash #! /usr/bin/env python Oppgave: Lag "helloworld.sh" og kjør den som "./helloworld.sh"

Slide 20

Slide 20 text

Prosesskontroll ps: Lister kjørende prosesser, prøv "ps auf" og "ps auxf" top/htop: Lister kjørende prosesser interaktivt kill : Avslutter prosessen med prosess-ID killall : Avslutter alle prosesser med navn pkill : Avslutter prosesser basert på diverse kill -9 : Avslutter prosessen øyeblikkelig Program kan kjøres i bakgrunnen ved å kjøre "program &" Program som allerede kjører kan flyttes til bakgrunnen ved å trykke CTRL+Z Program som er i bakgrunnen kan hentes frem med "fg"

Slide 21

Slide 21 text

Prosesskontroll Kommandoen "screen" kan brukes til å ha program kjørende selv om du logger ut av terminalen. Trykk CTRL+A+D for å koble fra screenen (deattach). Neste gang du kobler til maskinen kan du koble til screenen og programmet igjen med "screen -r" (reattach).

Slide 22

Slide 22 text

Spørsmål?