Click to add a title

Studievaardigheden I&E
UNIX vaardigheden
Kristian Rietveld
10 september 2014
Leiden University. The university to discover.
Doel
- Bijbrengen UNIX vaardigheden.
- Waarom?
- Nodig gedurende de studie.
- Introductie Latex,
programmeermethoden bouwen hierop
voort.
Leiden University. The university to discover.
De Computer
- Belangrijkste onderdelen computer:
- Central Processing Unit (CPU)
- Random Access Memory (RAM)
• “Volatile memory”
- Secondary storage
• Harde schijf, flash geheugen (SSD)
• “Non-volatile memory”
Leiden University. The university to discover.
De Computer (2)
Bron: http://tazalink.blogspot.nl/2011/02/some-useful-parts-of-your-pc.html
Leiden University. The university to discover.
Leiden University. The university to discover.
Besturingssysteem
- Iedereen kan software schrijven voor een
computer.
- Moet iedereen code schrijven om
beeldscherm, toetsenbord, muis, harde
schijf, …, aan te sturen?
- => Niet erg productief.
- En wat gebeurt er als men verschillende
typen componenten heeft?
Leiden University. The university to discover.
Besturingssysteem (2)
- Oplossing: een tussenlaag, welke de
hardware weg “abstraheert”.
- Zorgt voor een generieke “interface” tot
de computer.
- Onafhankelijk van de componenten in de
computer.
Leiden University. The university to discover.
Besturingssysteem (3)
- Bij het programmeren “zeg” je
bijvoorbeeld “zet op het scherm!” en het
operating zorgt daarvoor of het nu een
laptop, workstation, tablet of cluster
computer is.
Leiden University. The university to discover.
Besturingssysteem (4)
- Niet de enige taak van een
besturingssysteem.
- Grofweg zijn de taken:
- Abstraction layer.
- Resource manager.
- Protection.
- Voor de laatste twee: denk multi-user!
Leiden University. The university to discover.
Besturingssysteem (5)
- Engelse term: Operating System
- Afgekort: OS
Leiden University. The university to discover.
Soorten OSsen
Leiden University. The university to discover.
UNIX
-
Focus op UNIX; waarom?
Populair onder academici (sinds '70).
Multi-user, multi-tasking.
Gemakkelijk te programmeren.
Robust.
Network ready.
Portable software.
Alle supercomputers draaien UNIX.
Helft van Internet servers draait UNIX.
Leiden University. The university to discover.
Interfaces naar het OS
- Hoe laten we het OS doen wat we willen?
- Hoe “interfacen” we met het OS?
- Grafisch (GUI)
- Command Line (CLI)
- Spraak
- Kinect
- ........
Leiden University. The university to discover.
CLI
- Vandaag richten we ons op CLI
- Command Line Interface
- Een programma dat een interface naar
een OS aanbiedt wordt vaak ook een
'shell' (schil) genoemd.
- Een shell kan natuurlijk ook grafisch zijn.
Leiden University. The university to discover.
CLI (2)
- Een CLI verschaft een invoerprompt
waarin commando's kunnen worden
ingevoerd.
- Commando's kunnen van alles zijn:
- Bestanden verplaatsen.
- Computer uitzetten.
- Programma opstarten.
- Apparaten aansturen.
- Enz ...
Leiden University. The university to discover.
CLI (3)
- Opmerking vooraf: net als er allerlei
verschillende OSsen zijn, zijn er ook
verschillende shells.
- Populair:
- bash
- tcsh
- zsh
- ksh
- De Linux machines van de universiteit
draaien Ubuntu met standaard 'bash'.
Leiden University. The university to discover.
CLI (4)
- Meeste UNIX CLIs hebben allerlei
handigheidjes:
- Editing
- Pijlen links en rechts
- Ctrl-a: begin regel, Ctrl-e: eind regel
- Ctrl-k op begin regel: alles weghalen
(kill, eigenlijk 'knippen')
- Ctrl-y: 'yank' (plakken)
Leiden University. The university to discover.
CLI (5)
- History:
- Pijl omhoog en omlaag: door
geschiedenis bladeren.
- Ctrl-r en intypen zoekterm: zoeken door
geschiedenis.
Leiden University. The university to discover.
CLI (6)
- Tab completion:
- Door op 'tab' te drukken zal de shell
proberen het huidige woord
automatisch aan te vullen.
- Handig als je iets niet meer uit je hoofd
weet.
- Of als je te lui bent alles in te typen ;)
Leiden University. The university to discover.
CLI (7)
- Job control:
- Met Ctrl-C breek je het huidige
programma af.
- Er zijn nog veel meer job control
trucs ...
Leiden University. The university to discover.
Organisatie secondary storage
- Secondary storage is “non-volatile”, laten
we zeggen persistente, opslag.
- We kunnen daar al onze bytes kwijt.
- Hoe organiseren / structureren we dat?
Leiden University. The university to discover.
Inspiratie
Ikea ERIK
Leiden University. The university to discover.
Directory structuur
- Volgt het principe van een 'filing cabinet'.
- Cabinet met laden (schijf)
- Folders (mappen, ook wel directories)
• Files (bestanden)
Leiden University. The university to discover.
Directory structuur (2)
- Dus: de opslag is georganiseerd in een
hiërarchie of boom.
- Dit begint bij de “root” directory (wortel).
Leiden University. The university to discover.
Bron: http://www.sal.ksu.edu/faculty/tim/unix_sg/nonprogrammers/file_sys/file_system.html
Leiden University. The university to discover.
Directory structuur (3)
- '/': separator
- /home/username/filename.txt
- '.': huidige directory
- '..': een directory hoger
- /home/username/../username/filename.txt
- '~': shortcut voor de homedirectory
- ~username → /home/username
Leiden University. The university to discover.
Navigeren
- ls (list): bekijk inhoud huidige directory
- ls <path> : bekijk inhoud opgegeven
directory
- ls -al : alle entries & long format
- ls /home
- Recursieve listing: ls -alR
Leiden University. The university to discover.
Navigeren (2)
- cd <path> : veranderen van huidige
directory
- cd /home/username
- cd ..
Leiden University. The university to discover.
Navigeren (3)
- cat <filename> : schrijf inhoud van
bestand naar het scherm
- Let op: bij binaire bestanden krijg je dus
de binaire inhoud
- Inhoud te lang? Gebruik een 'pager':
- cat langbestand.txt | less
Leiden University. The university to discover.
Navigeren (4)
- Zoeken naar een bestand:
- find . -name 'filename.txt'
Leiden University. The university to discover.
Veranderingen aanbrengen
- Directories maken en verwijderen
mkdir <naam>
rmdir <naam>
- Let op: om een directory weg te gooien
moet deze leeg zijn! Gebruik anders een
recursieve remove:
rm -rf <directory>
Leiden University. The university to discover.
Veranderingen aanbrengen (2)
- Bestanden verplaatsen:
mv <file1> <file2> … <filen> <dstdir>
mv <oudenaam> <nieuwenaam>
- Bang iets over te schrijven? Gebruik de
interactive mode: '-i'
mv -i <file1> <file2> … <filen> <dst>
Leiden University. The university to discover.
Veranderingen aanbrengen (3)
- Bestanden kopieren:
- cp <file1> <file2> … <filen> <dst>
- Ook hier werkt -i.
- Recursieve mode: -r
Leiden University. The university to discover.
Veranderingen aanbrengen (4)
- Bestanden verwijderen:
rm <naam>
- De recursieve mode hebben we al gezien:
rm -r <directory>
Leiden University. The university to discover.
Veranderingen aanbrengen (5)
- Bestanden maken:
touch <filename>
- Maakt een leeg bestand.
- Of met een editor:
- nano <filename>
- vi <filename>
- emacs <filename>
- Of grafisch: gedit, kedit, etc.
Leiden University. The university to discover.
Editors
- Er zijn net zo veel editors als varianten
van Linux en UNIX …
- (“Linux is about choice!!!”)
- Kies een editor uit en leer daar goed mee
werken.
- Mocht je vi willen leren gebruiken:
http://vim-adventures.com/
Leiden University. The university to discover.
Wildcards
- Wat nu als we meerdere bestanden
hebben?
- Wildcards (of “globbing patterns”):
- '*' shell mag 0 of meer karakters zelf
invullen.
- '?' shell mag precies 1 karakter zelf
invullen.
Leiden University. The university to discover.
Wildcards (2)
- file*.txt
- file1.txt, file.txt, file2.txt, fileA.txt
file1324.txt, filekadfasdf.txt, etc.
- file?.txt
- file1.txt, file2.txt, fileA.txt
- Veel meer mogelijk: laten we voor nu
achterwege.
Leiden University. The university to discover.
Wildcards (3)
- OPPASSEN!
- mv file*.txt
- Wat gebeurt hier?
- In geval onzekerheid: interactive mode.
Leiden University. The university to discover.
Linux vs BSD
- Opmerking voor de Mac gebruikers: de
Mac utilities zijn gebaseerd op “BSD”.
- De commando's hebben allemaal
dezelfde naam en hebben de basale
opties gemeen.
- Maar over het algemeen zijn de BSD
commando's een stuk minder flexibel dan
de GNU varianten gebruikt op Linux.
Leiden University. The university to discover.
Linux vs BSD (2)
- Voorbeeld: het volgende kan niet op Mac:
mv file1.txt file2.txt subdir/ -vi
- In het algemeen is het overigens netter
om de “switches” vooraan te zetten:
mv -vi file1.txt file2.txt subdir/
Leiden University. The university to discover.
Redirection
- We zagen dat cat output naar het scherm
stuurde.
- We kunnen dit ook “omleiden”
- Bijvoorbeeld naar een bestand:
cat file1.txt > file2.txt
Leiden University. The university to discover.
Pipes
- Met pipes kan output naar een ander
programma worden gestuurd.
- Hebben we al gezien met de pager:
cat file1.txt | less
Leiden University. The university to discover.
Pipes (2)
- Regels tellen:
cat file1.txt | wc -l
- Sorteren:
cat file1.txt | sort
- Duplicaten verwijderen:
cat file1.txt | sort | uniq
- Zoeken:
cat file?.txt | grep “zoekterm”
- Samen met redirection:
cat file1.txt | sort | uniq > uniek.txt
Leiden University. The university to discover.
Inpakken en uitpakken
- “ZIP” files.
- Op UNIX kan een hele directory structuur
in 1 bestand worden gebundeld met tar
(Tape ARchive).
- Daarna comprimeren met gzip (z), bzip2
(j) of xz (J).
Leiden University. The university to discover.
Inpakken en uitpakken (2)
- Voorbeeld inpakken:
- tar -czvf ingepakt.tar.gz <directory>
- c: create, z: zip, v: verbose, f: filename
- Resultaat heet een “tarball”.
Leiden University. The university to discover.
Inpakken en uitpakken (3)
- Voorbeeld uitpakken:
- tar -xzvf ingepakt.tar.gz
- Bekijken zonder uitpakken:
- tar -tzvf ingepakt.tar.gz
Leiden University. The university to discover.
Verbinden met andere systemen
- Inloggen op een andere machine, “remote
shell” of “secure shell”.
- ssh username@hostname
- Windows gebruikers: download Putty!
Leiden University. The university to discover.
Verbinden met andere systemen (2)
- Bestanden kopiëren naar (of van) andere
systemen:
scp file1.txt username@hostname:/home/username/file1.txt
- '-r' werkt ook.
- Meer dan een paar files: gebruik “sftp”.
- Windows gebruikers: bekijk eens
“winscp”!
Leiden University. The university to discover.
Al die commando's ...
- … dat kan toch niemand onthouden?
- Elk commando heeft een “manual page”.
man <commando>
- Geen idee naar welk commando je op
zoek bent?
apropos <zoekterm>
Leiden University. The university to discover.
Linux op je eigen computer
- Ok, dit wil ik thuis ook!
- Er zijn heel veel verschillende distributies
(“Linux is about choice”).
- Als je beginner bent, is Ubuntu aan te
raden: makkelijk te installeren en te
updaten.
Leiden University. The university to discover.
Linux op je eigen computer (2)
1) Ruimte maken op harde schijf voor extra
partitie; DVD of USB image downloaden
en zelf installeren.
2) “Wubi” zou bovenstaande allemaal
automatisch voor je kunnen doen.
3) Of gebruik Linux in een “Virtual Machine”
zoals VirtualBox of VMWare Player.
Mogelijk boven op zowel Windows als
Mac OS X.
Leiden University. The university to discover.
Vragen ?
Uitleg practicum
Leiden University. The university to discover.