Terminal vad det är vad man kan göra med den

Relevanta dokument
Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Datorintroduktion 2009 Föreläsning 1. Dieter Larsen (IT-chef Matematiska vetenskaper)

open_ports.sh Vet du vad din dator gör på nätet? tisdag den 19 oktober 2010

Tips och tricks. Några bra tips. Lägg till sökvägar

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Datorintroduktion 2010 Föreläsning 1. Dieter Modig

Olika shell. Skalprogrammering. Pipor och omdirigering av strömmar

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Lab 7, 48 steg till ett bättre liv i Unix-labbet

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, Raphael Corsoski, Erik Eliasson, Christian von Schultz, 2008.

Övning Installation av Gentoo och/eller Arch Linux

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande

Unix design. Unix är ett operativsystem från mellan 1969 och 1972, beroende på hur man räknar. Unix utvecklas fortfarande.

HI1025 Operativsystem, KTH Haninge, VT2012

Föreläsning 1 Unix. Datorer och datoranvändning Föreläsningar 2018/19. Operativsystem. Unix

1.#Bakgrund# En#kort#introduk+on#+ll#Unix# Klassiskt#första#bemötande# Håkan#Jonsson# Ins+tu+onen#för#systemteknik# Luleå#tekniska#universitet#

1. Log on to the system using the user ide and password ide. 2. Copy the file /etc/ca-certificates.conf to the home directory of the user.

Referensarkitektur: T-boken, RIV-TA och tjänstekontrakt Referensimplementationen av T-boken: SKLTP

UNIX verktyg. Användbara kommandon Fil och informationssökning Tags Versionshanteringssystem

Linuxadministration I 1DV417 - Laboration 4 Nätverk, DHCP, säkerhetskopiering, processhantering, Samba och NFS

Lathund för Linuxkommandon

Raspberry Pi hallonpaj Kom igång med Raspberry Pi

Avancerad Linux. Copyright (c) 2003 Marcus Rejås

Textbearbetning i skalet och man-sidor

Lathund för UNIX och Emacs

Övningar för del I av kursen

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Processhantering, demoner, schemalagd körning, backup. Linuxadministration I 1DV417

Möte 9: Relationer mellan körande processer - (PI)

Operativsystem och användargränssnitt

Din egen webserver med Apache

HI1025 Operativsystem, KTH Haninge, VT2012. Tillf. 11 (F): Systemadministration samt något om kompilering och interpretering

BASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA)

1284_omslag.qxd :13 Sida 1 ECDL START OFFICE 2003 Allmän IT Windows XP Word 2003 Outlook 2003

Linux tips. Korta tips

U N I X G R U N D K U R S Ö V N I N G S U P P G I F T E R

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

kommando -fl argument

Ett X i någon av rutorna anger att kommandot fungerar på det systemet. Ett [nummer] anger att det finns en notis efter tabellen om kommandot.

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

For att fa information om kommandon eller program sa nns det manualsidor. Dessa

Kom igång med Windows 8.1

Tillämpad UNIX. Laborations-PM Christian von Schultz, Programpaket och processhantering

awk, sed och grep awk döpt efter Aho Weinberger Kernighan (1977) sed en stream editor grep sed g/re/p bygger i viss mån på ed line editor

Steg 4 b. Molntjänster Onedrive Office 365 Windows 10. Mars -16 Liljedalsdata.se. Liljedalsdata Molntjänster En del av steg 4 Sida 1

SUNET:s Box-tjänst. SUNET-veckan Malmö

Introduktion till processer

Installationsanvisning för kursens programvara på egen dator

Konfigurera Xenta från Point

Introduktion till Linux

Tfn Telephone. Kontr Checked. Skapa PDF-filer i Windows

awk, sed och grep ed kommandon grep Standard unix editor tidig 70-tal program < 8Kbyte awk döpt efter Aho Weinberger Kernighan (1977)

LABORATIONSRAPPORT Operativsystem 1 Linux

Introduktion till datormiljön och Python

MS-DiskOperativSystem Sammanfattning och Övningar

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Unix. För en systembeskrivning se: För en systembeskrivning se:

eller Övningar i filhantering Tema: Mappar och filer i Windows samt Lagringsenheterna OBS! Endast för medlemmar i SeniorNet, Klubb Södertälje!

Hämta hem 2005 års installationspaket från Skatteverkets hemsida:

E-POST3 Ett lättanvänt e-postprogram med stöd för talsyntes

Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande

SMD 134 Objektorienterad programmering

Filers innehåll. Grundläggande databehandling. Representation av text. pffb = påhittat filformat för bilder

Introduktion till Unix

Unix. Dagens föreläsning. Unix. GUI/Textgränssnitt

Unix. Dagens föreläsning. Unix. GUI/Textgränssnitt. Syfte. Mål

7 Mamut Client Manager

Din manual HP COMPAQ EVO D310 MICROTOWER

Sed och Awk. Linuxadministration II 1DV421. Monday, August 8, 11

Hur man kompilerar och kör IT++-program med MinGW. 1 Sammanfattning. 2 Om dokumentet. 3 Om min konfiguration

Allmänt om programvaror och filer i Windows.

DD1310 Programmeringsteknik för Open1 och Med2 Laborationer läsåret 2014/2015

Välkommen till. UNIX Grundkurs. Aix/SCO/Linux/BSD

Installation OBS! Jag utgår från att alla diskar utom just systemdisken är fysiskt bortkopplade under installationen.

Kommunicerande system

Kommandotolken hittar du under Start->Program->Tillbehör->Kommandotolken

DATORINTRODUKTION 2010 LABORATION 1

Unix för Linuxanvändare

SNABBGUIDE för studenter windows. Utskriftshantering, Kopiering och Scanning

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

Matriks Automate 1.4 E-postmallar. Navision / Microsoft Dynamics NAV. Hur du gör e-postmallar för Matriks Automate. Joakim Hansson

Innehåll. Kurs i Windows

Evodev AB web epost Telefon Fax

Installation av Virtualiseringsplattform

Översikt. Texthantering med bl.a. kommandona cat, less och grep Omdirigering och piping Gnuplot. Linux 2 2 / 12

Kort-kort om utdelade användarkonton och datormiljön på NADA

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Övervakning med GnilronEye

Nyheterna i AutoCAD Architecture 2014

Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

Novell Filr 1.2 skrivbordsprogram för Mac snabbstart

BOOK-IT 6.0. Backup Solaris

DATORÖVNING 4: DISKRETA

Processhantering. Bildhantering med netpbm Överlevnadstricks för bash dbus. Linux-julbord. Andreas Ehliar & Kent Engström

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap

Programmeringsteknik med C och Matlab

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Transkript:

Terminal vad det är vad man kan göra med den

Touch Användbarhet Batchkörning WIMP CLI (Command Line Interface) sh ksh tcsh bash zsh (Windows, Icon, Menu, Pointer) Elektronrör 1940 1950 1960 1970 1980 1990 2000 2010 UNIX Macintosh Windows 95 OS X Linux

Touch Användbarhet Batchkörning WIMP CLI (Command Line Interface) sh ksh tcsh bash zsh (Windows, Icon, Menu, Pointer) Elektronrör 1940 1950 1960 1970 1980 1990 2000 2010 UNIX Macintosh Windows 95 OS X Linux

UNIX-historia:

Hur fungerar datorn? Applikationsprogram Kommandoskal API:er Operativsystem tangentbord hårddisk CPU skärm minne

Exempel #1 Problem: Ett antal kataloger i ett filträd saknade filen start.txt. Man kan lösa detta en katalog i taget, men det är manuellt arbetskrävande (och tråkigt) Lösning: Skriv en for-loop i bash och lös det direkt: for i in $(find. -type d) # i kan se ut så här:./servers/fyra_fem/dokumentation do if [! -f "$i/start.txt" ]; then echo "===== $(basename $i) =====" > ${i}/start.txt" chown _www:_www $i fi done

Exempel #2 Problem: Jag blev inte nöjd med filerna i förra exemplet och vill ta bort allihopa. Lösning: Hitta dem med find och radera dem direkt: find. -name start.txt -exec rm -rf {} \; Om jag i stället vill ändra rättigheterna på filerna så att alla får läsa filen gör man så här: find. -name start.txt -exec chmod ugo+r {} \; (u=user, g=group, o=other; r= read)

Exempel #3 Problem: Jag vet att en av mina filer innehåller texten Blittan Blattan. Var finns filen? Lösning: Leta i filinnehållet med grep: grep -r "Blittan Blattan" * På OS X kan man använda kommandot mdfind: mdfind "Blittan Blattan" Problem: Jag vet att jag har en fil som heter något med XYZ: Lösning: Leta i filinnehållet med find: find. -name *XYZ* (söker i befintlig katalog och nedåt i filträdet) Alternativt kan man använda locate: locate XYZ (söker i hela filsystemet)

Exempel #4 Problem: Jag kan inte avmontera en USB-tumme något program håller den. Vilket? Lösning: Använd kommandot lsof: lsof grep /Volumes/tumme Problem: Mitt program skriver något i en fil, men jag vet inte vilken! Lösning: Använd lsof för att ta reda på vilka filet mitt program har öppna: lsof -p $(pgrep "Programnamn")

Exempel #5 Problem: Jag undrar vilka datorer min dator kommunicerar med! Lösning: Använd lsof för att se vilka program som lyssnar ( LISTEN ) eller har en förbindelse igång ( ESTABLISHED ): lsof -i4 egrep "LISTEN ESTABLISHED" Kör du detta som dig själv kan du endast se dina egna förbindelser. Kör det som root i stället för att se alla förbindelser!

Exempel #6 Problem: Jag vill köra backup automatiskt hemifrån mot en dator på jobbet, utan att betala något för det Lösning: Använd kommandot rsync och gör hela backupkörningen i en enda rad ( oneliner ): ssh -p 22 computer.cs.lth.se 'echo "password" hdiutil attach / Volumes/Backup/Privat_backup.sparseimage -nobrowse' >& /dev/null ; / usr/local/bin/rsync -anhaxxv --protect-args --fileflags --force-change --rsync-path="/usr/local/bin/rsync" /Users paravel.cs.lth.se:/volumes/ Privat_backup/Users tail -n 3 grep bytes /Users/peterm/bin/ sendemail -f <mailto:peter.moller@comhem.se> Peter.Moller@comhem.se<mailto:Peter.Moller@comhem.se> -t <mailto:peter.moller@me.com> Peter.Moller@me.com<mailto:Peter.Moller@me.com> -u Backuprapport -s mail1.comhem.se -xu user -xp password ; ssh -p 22 computer.cs.lth.se hdiutil detach /Volumes/Privat_backup -quiet Förklaring: 1. Koppla upp mot min dator på jobbet (använder sparad ssh-nyckel) och montera den krypterade och lösenordsskyddade disk-imagen där backupen skall läggas 2. Kör rsync från min /Users till denna disk (med verbose på) 3. Ta en rad från utskriften på rsync och skicka till min mailadress så att jag får reda på att något har hänt 4. Koppla upp mig igen och avmontera disk-imagen

Exempel #7

UNIX-filosofin: Skriv program som gör en sak och gör den väl Skriv program som fungerar tillsammans Skriv program som arbetar med textströmmar, för det är ett universellt interface Doug McIlroy

Filsystem / roten /bin /boot /dev /etc /home /lib /opt /sbin /tmp /usr /var program boot-filer nödvänd. konfig- hemkata- bibliotek valfria nödvändiga tillfälliga plats för plats för för single (kärna etc) devices filer för loger för för prog. program system- filer normala filer som user mode systemet användare i /bin & /sbin program program ändras Notera att det finns många, många fler kataloger. Dessa är de grundläggande katalogerna! /bin /lib /local program bibliotek- program som för normal filer för användaren körning program har installerat i /usr/bin & /usr/sbin /lib /log /spool tillstånds- loggfiler katalog för information av olika temporära filer t.ex. data- slag från t.ex. skrivare baser etc. och e-postprogram

Processer UNIX har en familjelik processmodell: endast en existerande process kan skapa en ny process (förälder- och barnprocess). Detta ger ett familjeträd av relaterade processer Ett barn kan inte ha högre rättigheter än sin förälder: den första processen som startas vid systemstart är gud (init på Linux, launchd på OS X) Alla processer har: standard-in, standard-out, standard-err som alla är av typen text Man skapar en process genom att starta ett program (eller terminalkommando) Man övervakar processer med kommandot ps Man pausar, startar, stänger av processer o.s.v. med kommandot kill (TERM, SIGSTOP, SIGCONT, KILL m.m.)

program1 program2 program3 Pipe (rör) är ett sätt att koppla samman program i UNIX. StdOut från ett program används som StdIn för nästa: std 0 in 1 std out 2 std err På det viset kan man koppla samman flera kommandon i en kedja: 0 1 2 0 1 0 2 less fil.txt awk '{print $1} 1 0 2 sort 1 0 2 1 2 uniq -c sort -nr

Variabler Skalet är programmerbart: alla vanliga konstruktioner finns (lopar, if-satser, funktioner o.s.v.) och även variabler Systemet definierar ett antal variabler användaren kan definiera ytterligare efter sina egna behov Variabler är typlösa och kan konverteras efter behov Sätt variabler med: export VAR="Mitt värde" Här en tabell över några vanliga variabler från systemet: Variabel Förklaring Exempel $PATH Uppräkning över var binärer finns /usr/local/jdk/bin:/usr/local/bin:/usr/local/ bin/x11 $SHELL Vilket skal man kör /bin/zsh $PWD Vilken katalog befinner jag mig i? /h/d2/b/peterm $EDITOR Vilken är min default-editor? EDITOR=vi $LANG Vad är det för språkinställning? LANG=sv_SE.UTF-8 $0 Det körande scriptets hela rad /usr/bin/open_ports.sh -u $$ Körande processnumret 83975 $? Resultat från senaste kommando 0 $PS1 Promptens definition \e[37;41m\d \t \u@\h:\w$ \e[0m \[\e];\u@\h: \w\a\]

Ägare Alla processer och alla filer har en ägare Ägaren tillhör en grupp Tre nivåer finns: ägare (u), grupp (g), andra (o) För varje nivå finns i filsystemet tre rättigheter: läsa (r), skriva (w), köra (x) Titta på körande processer: login{peterm}: ps aux grep "[v]i " peterm 17642 0.1 0.1 240328 10324 pts/43 Sl+ 12:26 0:00 vi.profile Titta på filer: login{peterm}: ls -ls.profile 4 -rwx--x--x 1 peterm cs 3732 Jan 21 12:27.profile*

Hjälp!! Man får hjälp med kommandona med kommandot man: man ls visar manualsidan för hur man listar filer. Alla kommandon har optioner. Exempelvis gör -lst till kommandot ls att filerna visas i en lång listning men den nyaste överst och storleken uttryckt i kbyte. De flesta kommandon är s.k. POSIX-kompatibla och då kan man skriva optionerna i vilken ordning som helst. Även dessa webbsiter är bra att besöka: http://stackoverflow.com http://superuser.com http://www.commandlinefu.com

Nackdelar?? Konstruktionen med pipe gör kommandomiljön mycket kraftfull! MEN! Kommandona är ofta kryptiska fungerar enligt paradigmet Remember-and-type. Det finns många hundratals kommandon i ett normalt UNIX-system och det är en utmaning att minnas dem! Vill man se alla kommandon som finns [i ens PATH] men en kort förklaring kan man köra följande kommandosekvens [i Linux]: echo -n $PATH xargs -d : -I {} find {} -maxdepth 1 - executable -type f -printf '%P\n' sort -u xargs whatis 2> /dev/null egrep '\((1 1m 6 8)\)' För OS X kör man detta: echo ${PATH//:/ } xargs -J % find % -maxdepth 1 \( - type f -or -type l \) xargs basename sort -u xargs whatis 2> /dev/null egrep '\((1 1m 6 8)\)'