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.
© Copyright 2024 ExpyDoc