Copyright (c) 2004 Rejås Datakonsult, Svenska Linuxföreningen



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

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

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

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

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

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

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

Linux på skrivbordet - Myt eller möjlighet

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

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

Linux på skrivbordet - Myt eller möjlighet

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

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

Svenska Linuxföreningen. Presentationens namn 1(24) Copyright 2004 Marcus Rejås

Programmering i C++ Kompilering från kommandoraden

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

FÖRORD. Version 2017 av detta läromedel är omskrivet för Windows 10. Jan-Eric Thelin, september 2017.

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Svenska Linuxföreningen. Fri programvara Mycket mer än gratis 1(24) Copyright 2005 Marcus Rejås

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

Övningar för del I av kursen

Övning Installation av Gentoo och/eller Arch Linux

Avslutning. Kapitel Komprimering av filer

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

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

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

LABORATIONSRAPPORT Operativsystem 1 Linux

Raspberry Pi hallonpaj Kom igång med Raspberry Pi

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

Jobbschemaläggare. Morgan N. Sandquist Utvecklare: Gary Meyer Granskare: Lauri Watts Översättare: Stefan Asserhäll

Allmänt om programvaror och filer i Windows.

Tfn Telephone Kontr Checked. Revisionshistoria Revision history Rev Namn Name Datum Date Ändring Change

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

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

Open Source - Eller som vi säger, Fri programvara

Open Source - Eller som vi säger, Fri programvara

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

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

Open Source - Program och hur man väljer

Hur man ökar säkerheten i linux

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

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

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

GitHub for Windows och GitShell

Introduktion till processer

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

Handbok KBackup. Martin Koller

Linuxadministration I 1DV417 - Laboration 2 Filsystemet och kickstart. Marcus Wilhelmsson

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

Linux tips. Korta tips

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

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.

Linuxadministration I 1DV417 - Laboration 1 Installation. Marcus Wilhelmsson 15 januari 2013

Installation av Virtualiseringsplattform

Svenska Linuxföreningen. Fri programvara Mycket mer än bara gratis 1(29)

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.

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna

Laboration 2 Datorverktyg vid LiU

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

Uppstart Agda PS Hosting

Kapitel 11. Program Att köra program Skript Interpreterande och kompilerande programspråk Att kompilera program

Kör som root handbok. Geert Jansen Översättare: Stefan Asserhäll

Kapitel 12. Mer om program Att rapportera buggar och problem make

Programvaror - Jo, tack, det vill vi ha...

Windows Server containers och Hyper-V containers

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås

Parallella jobb ctrl-z emacs & more README ctrl-z jobs. %<jobnr>

Föreläsning 2. Operativsystem och programmering

Datorintro för elektro på Solaris

SUSE Linux Enterprise Desktop 10

DIG IN TO Dator och nätverksteknik

Kapitel 11. Program Skript Att köra program Interpreterande och kompilerande programspråk

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

Inledning LAMP Perl Python.

Din egen webserver med Apache

Filbindningar. Mike McBride Översättare: Stefan Asserhäll

Arbetsuppgift 1: På virtuell maskin med Ubuntuserver, skapa katalog och skapa Dockerfile. Skapa ny katalog i din hemmakatalog, med namnet webbserver.

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

Skapa din egen MediaWiki

Storegate Pro Backup. Innehåll

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#

Föreläsning 3. Programmering, C och programmeringsmiljö

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

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning

Automatisk start. Anne-Marie Mahfouf Översättare: Stefan Asserhäll

Beställning av certifikat för anslutning till BankID (RP certificate) Version

Unix för Linuxanvändare

Program. Kapitel make Program Interpreterande och kompilerande program

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

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

LEX INSTRUKTION LEX LDAP

Ingenjörsfirman Stéen Linux Sysadmin 1 Sida 1 av 7

Praktiska saker... Om Laboration 1. Studietips. Praktiska saker. Att studera hemifrån på PC. Seminarier & Lektioner & Handledning & Hemsida

Beställning av Förlitandepart-certifikat Version

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

DC ++ o allt annat runt om! (en kom-i-gång guide..) Klicka på File Settings. Färdigt med konfigureringen!

DD1310 Programmering för OPEN1 LAB1: Laborationer i Python läsåret 2011/2012

Mer än bara gratis. Copyright (c) 2004 Marcus Rejås

Transkript:

Praktisk Linux Copyright (c) 2004 Rejås Datakonsult, Svenska Linuxföreningen Av: Marcus Rejås <marcus@rejas.se> Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet på något sätt främjar användandet av fri och/eller öppen programvara. Du kan alltså ta hela eller delar av detta arbete, du kan ändra det, du kan stoppa in det i ett annat arbete, du kan ta bort mitt namn, du kan hävda att du skrivit det, du kan göra vad du vill med detta arbete bara ovanstående uppfylls. Jag vill tacka Jenny för att hon alltid ställer upp på mig, mitt jobb och mina tidskrävande intressen. Denna presentation i ett format lämpligt för redigering finns på http://rejas.se/docs/praktisk-linux.sxi (OpenOffice) Marcus Rejås, Norrtälje 2004-07-04 http://se.linux.org/dokumentation/presentation/eskilstuna2 1(72)

http://se.linux.org/dokumentation/presentation/eskilstuna2 2(72) Praktisk Linux Eskilstuna 2004-07-21 Marcus Rejås <marcus@rejas.se>

http://se.linux.org/dokumentation/presentation/eskilstuna2 3(72) Svenska Linuxföreningen Även känd som SeLinux Ideell förening som verkar för främjandet av fri och öppen programvara och operativsystem > 1740 direkta medlemmar (jul 2004) Kostnadsfritt medlemskap, aktiv förening http://se.linux.org

http://se.linux.org/dokumentation/presentation/eskilstuna2 4(72) Om Marcus Rejås Driver ett litet företag specialiserat på fri programvara Utför bland annat utredningar om när och var fri programvara passar i en verksamhet Inför och underhåller fri programvara Utbildar http://www.rejas.se

http://se.linux.org/dokumentation/presentation/eskilstuna2 5(72) Inledning Bitvis kan det bli väldigt tekniskt. Säg till om ni inte förstår Avbryt med frågor när som helst (jag kan inte svara på allt :-)) Vi kommer att hoppa över bilder, ni kommer att få tillgång till alla sedan om ni vill gå tillbaka Vi kommer att testa det mesta i praktiken, det är det bästa sättet att lära sig

http://se.linux.org/dokumentation/presentation/eskilstuna2 6(72) Att lära sig Linux Ha ett öppet sinne, det är inte Windows, MacOS eller vad ni nu kan innan Om något verkar konstigt, ta reda på varför. Sätt upp konkreta mål För en loggbok Fråga om hjälp när du kör fast, men försök själv först och fråga på rätt sätt

Ämnen Eftersom det finns fler ämnen än tid kan det vara bra att prioritera... Linuxsystemet (kort) Uppstartsproceduren Filsystemet Användare Filrättigheter (vanliga och avancerade) Fönsterhanterare Kommandoskalet Processer Pipes Skalprogrammering (kort) Schemalägga med cron Installera program http://se.linux.org/dokumentation/presentation/eskilstuna2 7(72)

http://se.linux.org/dokumentation/presentation/eskilstuna2 8(72) Linuxsystemet Linux består av en mängd olika delar som fungerar oberoende av varandra Kärnan hålls så liten som möjligt Kärnan kan ändras under körning, med hjälp av moduler Varje program skall göra en sak, och göra den väl (Unixfilosofi) Allt är filer (Unixfilosofi)

http://se.linux.org/dokumentation/presentation/eskilstuna2 9(72) Uppstart av ett Linuxsystem Så snart man blir lite varm i kläderna vill man veta vad som händer när systemet startar Vi beskriver här lite kort hur det går till i sysvinit (baserat på System V's initdesign). Denna används i Debian, RedHat och alla derivat från dem Den andra skolan heter BSD som har en lite annorlunda startsekvens

http://se.linux.org/dokumentation/presentation/eskilstuna2 10(72) Kärnan laddas (PC) Det första som sker är att BIOS-systemet på maskinen letar upp ett boot-block på hårddisken, disketten eller cd-rom (eller vad det nu kan vara) Där finns (nästan alltid) en boot-loader, till exempel Lilo eller Grub. Bootloadern vet var kärnan finns och laddar den i minnet och exekverar den.

http://se.linux.org/dokumentation/presentation/eskilstuna2 11(72) Kärnan startas När kärnan exekveras gör den en massa saker. Kollar vilken hårdvara som finns Laddar rot-filsystemet (styrs via parametrar) När allt är klart startas init (styrs via parametrar)

http://se.linux.org/dokumentation/presentation/eskilstuna2 12(72) Init Initprocessen har alltid PID 1 Initprogrammet heter oftast init Init är ett vanligt program med en konfigurationsfil som heter /etc/inittab Init är urförälder till alla processer i ett Linuxsystem, om en process dör före sina barn tas barnen om hand av init. Init gör olika saker beroende på vilken runlevel (körnivå) som gäller.

http://se.linux.org/dokumentation/presentation/eskilstuna2 13(72) Körnivåer, Runlevels 6 olika körnivåer 0 är halt 1 är Single-user mode 2-5 är Multi-user mode 6 är reboot 7 och 8 finns men skall inte användas Körnivån specas i /etc/inittab eller som argument till init.

http://se.linux.org/dokumentation/presentation/eskilstuna2 14(72) /etc/inittab Konfigurationsfil till init Bestämmer vad init skall göra i olika körnivåer Vanligtvis skall init starta getty för att man skall kunna logga in vid konsolen Init startar vanligtvis även skripten som tar upp resten av systemet Titta på inittab!

http://se.linux.org/dokumentation/presentation/eskilstuna2 15(72) Startskripten Vanligtvis i /etc/rc* /etc/rcs.d/* Körs först /etc/rc?.d/* Körs sedan,? är körnivån Skript med namn på S* körs med parametern start när systemet skartas och skript med namn på K* körs med parametern stop när systemet tas ned Skripten körs i bokstavsordning så S05keymap körs före S35quota Ofta samlar man alla skript i en katalog och symlänkar dit

Filsystemet Ett filsystem i Linux är väldigt standardiserat och ser ungefär likadant i alla stora distributionerna Filesystem Hierarchy Standard är en standard som de flesta distributioner följer I Linux finns inga enheter A:, C:, osv Man behöver bara veta ett filnamn och inte på vilken disk en fil finns Ett filsystem spänner oftast över flera diskar/partitioner http://se.linux.org/dokumentation/presentation/eskilstuna2 16(72)

http://se.linux.org/dokumentation/presentation/eskilstuna2 17(72) Filtyper Man kan urskilja 4 olika typer av filer (man kan särskilja filer på fler sätt men detta sätt är bra när man talar om filsystem) Statiska Icke statiska Delbara /usr /home Icke delbara /etc /var Detta kan vara bra att ha i åtanke när man planerar sitt filsystem så att man har filer i samma kategori på samma filsystem

http://se.linux.org/dokumentation/presentation/eskilstuna2 18(72) Montering Ett filsystem monteras ihop av flera olika små filsystem En katalog i ett filsystem blir en monteringspunkt för ett annat filsystem Alla delar i filsystemet utgår från roten / och kataloger åtskiljs med snedstreck / Ett exempel på ett filnamn är: /home/rejas/praktisk-linux.xsi

http://se.linux.org/dokumentation/presentation/eskilstuna2 19(72) Montering, princip Det blå är rotfilsystemet Det röda är ett filsystem på en annan disk Det gröna är filsystemet efter att det röda systemet monterats på /home /home kallas mount-point (monteringspunkt) Monterar gör man med mount och umount bin bin / etc home / usr kalle kajsa / etc home usr kalle kajsa

http://se.linux.org/dokumentation/presentation/eskilstuna2 20(72) Vanliga kataloger rotfilsystemet /bin (viktiga systemkommandon) /etc (systemkonfiguration) /dev (Enhetsfiler) /lib (delade bibliotek och moduler till kärnan) /sbin (systemkommandon)

http://se.linux.org/dokumentation/presentation/eskilstuna2 21(72) /usr Oftast på en stor volym Delbar och statisk Ungefär samma struktur som rotfilsystemet /usr/bin (Program som inte måste ligga i /bin) /usr/sbin (Systemkommandon som inte måste ligga i /sbin) /usr/lib (delade bibliotek) /usr/share (Platformsoberoende)

http://se.linux.org/dokumentation/presentation/eskilstuna2 22(72) /usr/local Är till för lokala program Skall vara tom efter det att operativsystemet installerats Din plats som systemadministratör Innehåller bin, sbin, lib osv. Man skall inte skapa /usr/local/program Glöm inte att backa denna

http://se.linux.org/dokumentation/presentation/eskilstuna2 23(72) /opt Ett filsystem för tilläggsprogram Varje program skall ligga i /opt/program Kommandot för att starta programmet bör ligga i /opt/program/bin/ Man kan skapa länkar till /opt/bin/program /opt/bin skall i övrigt vara tom

http://se.linux.org/dokumentation/presentation/eskilstuna2 24(72) /var Här samlas all föränderlig data (förutom hemmakataloger) Tänk på att göra den tillräckligt stor eftersom e-post, loggar, mm hamnar här /var/log (systemloggar) /var/mail (e-postfiler) /var/spool (skrivarköer och annat som köas) /var/run, /var/lock (Används av körande program för att hålla reda på pid, lås, mm)

http://se.linux.org/dokumentation/presentation/eskilstuna2 25(72) /home Denna katalog är helt frivillig. Har man inga användare så behövs den inte... Detta filsystem blir oftast väldigt stort Beroende på antalet användare så blir det olika komplext. /home/användarnamn /home/a/användarnamn /home/grupp/användarnamn... (upp till dig)

Filsystem I ett Linuxsystem kan man blanda flera olika filsysten Linux stödjer massor av filsystem, de vanligaste man använder är Ext2, linux standard-filsystem Ext3, den nyare versionen av ext2 med bland annat journalföring ReiserFS, journalförande filsystem från Namesys JFS, journalförande från IBM XFS, journalförande filsystem från SGI http://se.linux.org/dokumentation/presentation/eskilstuna2 26(72)

http://se.linux.org/dokumentation/presentation/eskilstuna2 27(72) Nätverksfilsystem Linux har även stöd för nätverksburna filsystem. De vanligaste är NFS, nätverksbaserat UNIX-filsystem Dela kataloger mellan Linux och andra Unixliknande operativsystem SMB, Windows NT nätverksfilsystem Installeras med SAMBA Delar kataloger och skrivare mellan Linux/Unix och Windowsmaskiner AFS, Andrew File System Avancerat, distribuerat och krypterat

http://se.linux.org/dokumentation/presentation/eskilstuna2 28(72) Användare En användare är en rad i filen /etc/password och en hemmakatalog Finns oftast kommandon som lägger till användare i systemet (useradd, adduser) Lösenordet ändras med passwd Oftast finns standardfiler för nya hemmakataloger i /etc/skel

/etc/passwd Information om alla användare Sju fält, separerade med : (kolon) Användarnamn Krypterat lösenord (eller x) en ogiltig sträng medför att man inte kan logga in. UID GID Gecos (Extra informationsfält) Hemmakatalog Standardskal http://se.linux.org/dokumentation/presentation/eskilstuna2 29(72)

http://se.linux.org/dokumentation/presentation/eskilstuna2 30(72) Skuggade lösenord /etc/passwd måste vara läsbar för alla Medför att alla kan se de krypterade lösenorden. Shadow password löser detta och lägger till andra finesser Ett x i lösenordsfältet betyder att lösenordet hämtas i /etc/shadow Shadowfilen är bara läsbar av root username:passwd:last:may:must:warn:expire:disable:reserved

http://se.linux.org/dokumentation/presentation/eskilstuna2 31(72) Grupper Specificeras i /etc/group Varje användare har en primär grupp som specas i /etc/passwd. En användare kan tillhöra flera olika grupper Grupplösenord används inte Exempel: cvs:x:102:rejas,johan,jonas,fredrik rejas:x:1000:

http://se.linux.org/dokumentation/presentation/eskilstuna2 32(72) Accessrättigheter Kallas accessrättigheter eller filrättigheter men skulle kanske egentligen heta filskydd eller accessmöjligheter... Bestämmer vem som kan (inte får) göra vad med en fil Rättigheterna visas med till exempel ls -l eller en filhanterare Det finns tre sorters rättigheter Läsa (r) Skriva (w) Exekvera, köra (x)

http://se.linux.org/dokumentation/presentation/eskilstuna2 33(72) Accessrättigheter Accessrättigheterna representeras av 3 x 3 tecken: rwxrwxrwx De första tre (rwx) är ägaren De andra tre (rwx) är gruppen De sista tre (rwx) är alla andra Varje grupp om tre består av tecknen r, w och x (alltid på samma plats) visar vad den kategorin får göra. Ett (minus) visar att den behörigheten inte finns. Rättigheterna kollas från vänster till höger

Accessrättigheter, exempel rwxrwxrwx Alla kan läsa, skriva och exekvera rwx---r-x Ägaren kan läsa, skriva och exekvera Gruppen kan inte göra något De andra kan läsa och exekvera. ------rwx Bara de som inte tillhör ägare eller grupp kan läsa, skriva och exekvera http://se.linux.org/dokumentation/presentation/eskilstuna2 34(72)

http://se.linux.org/dokumentation/presentation/eskilstuna2 35(72) Filrättigheter med chmod chmod (CHange MODe) används för att ändra accessrättigheterna. chmod (vem)+-=(vad),... fil(er) chmod u+rwx,g-rwx,o=rx -> rwx---r-x chmod ugo+r -> Alla får r (+ vad de var innan) chmod a+r -> samma som ovan Visa exempel...

http://se.linux.org/dokumentation/presentation/eskilstuna2 36(72) Filrättigheter med siffror Ofta är det enklare att med siffror ange accessrättigheterna till en fil med siffor. r = 4 w = 2 x = 1 - = 0 Exempel: rxwrwxrwx = 777 rwxr-xr-x = 755 rw------- = 600 rw-rw---- = 660 r-------- = 400 r + w + x 4 + 2 + 1 = 7

http://se.linux.org/dokumentation/presentation/eskilstuna2 37(72) SUID Accessrättigheter, SUID Set User ID Om en fil med SUID satt exekveras kommer den att köras som den användare filen tillhör istället för den som den som kör filen tillhör. Exempel rwsr-x--- chmod u+s eller chmod 4nnn Naturligtvis farligt ur säkerherhetssynpunkt Visa exempel...

http://se.linux.org/dokumentation/presentation/eskilstuna2 38(72) SGID Accessrättigheter, SGID Set Group ID Om en fil med SGID satt exekveras kommer den att köras som den grupp filen tillhör istället för den som den som kör filen tillhör. Exempel rwxr-s--- chmod g+s eller chmod 2nnn Suid och sgid kan naturligtvis kombineras chmod ug+s eller chmod 6nnn Visa exempel...

Accessrättigheter, Sticky En fil kan markeras sticky. Eller som det brukar kallas ha sticky-biten satt. Detta innebär att filen inte, så långt det går, skall swappas ut från minnet. Detta används inte längre då minnen blivit både stora och billiga. chmod +t eller chmod 1nnn Stickybiten på filer ignoreras i Linux Dock används den på kataloger som vi skall titta på mer snart. http://se.linux.org/dokumentation/presentation/eskilstuna2 39(72)

http://se.linux.org/dokumentation/presentation/eskilstuna2 40(72) Accessrättigheter, Kataloger R och w fungerar ungefär som på filer X innebär att man har rätt att göra katalogen till aktiv katalog SUID innebär att alla filer man skapar i en katalog blir ägda av katalogens ägare. Skall inte användas och ignoreras av de flesta system (av säkerhetsskäl). SGID innebär att alla filer man skapar i en katalog kommer att tillhöra gruppens katalog. Mycket användbart.

http://se.linux.org/dokumentation/presentation/eskilstuna2 41(72) Kataloger, sticky Sticky hade ju oftast ingen funktion på filer men på kataloger har den det. Sticky på en katalog innebär att en användare bara får byta namn på eller radera sina egna filer Används på kataloger där alla får skriva, till exempel /tmp chmod 1777 /tmp

http://se.linux.org/dokumentation/presentation/eskilstuna2 42(72) Filtyper Det första tecknet i utdatat från ls -l är vilken filtyp en fil är. Följande sorter finns - Vanlig fil d Katalog l Symbolisk länk p Named Pipe, FIFO b Blockorienterad enhetsfil c Teckenorienterad enhetsfil

http://se.linux.org/dokumentation/presentation/eskilstuna2 43(72) Länkar I Linux kan man länka filer till varandra för att öka flexibiliteten. Man kan till exempel ge en fil två namn eller få den att finnas på flera ställen. Det finns två typer av länkar Hårda (eller vanliga) Symboliska eller mjuka (symlänkar)

http://se.linux.org/dokumentation/presentation/eskilstuna2 44(72) Hårda länkar Länkar Fungerar som ett extra namn till filen på disken. Ingen skillnad mellan länk och källa. Raderas den ena finns den andra kvar Fungerar inte på kataloger och mellan olika filsystem Symboliska länkar En egen filtyp Skillnad mellan länk och källa Tas filen bort blir länken kvar, trasig Fungerar mellan filsystem och på kataloger

http://se.linux.org/dokumentation/presentation/eskilstuna2 45(72) Fönsterhanteraren Till Linux (eller till X) finns det en mängd olika fönsterhanterare. Olika fönsterhanterare är bra på olika saker Visa några exempel Gnome och KDE (Kraftfulla mogna desktopmiljöer) Wmaker (Snabb, lätt att konfigurera) Ion (För de som helst jobbar i textläge) BlackBox (Snabb)

http://se.linux.org/dokumentation/presentation/eskilstuna2 46(72) Kommandoskalet Kommandoskalet är i många fall överlägset mycket snabbare än klick-klick-klick. Kommandon är lättare att dokumentera Kommandon är lättare att skripta och automatisera Kommandoskalet fungerar precis lika bra över nätet. Bli inte skrämd, du kan klicka i Linux med!

http://se.linux.org/dokumentation/presentation/eskilstuna2 47(72) Exempel: Byt ändelse på alla filer i en katalog Ändra filnamnet på alla filer i en katalog Skriv ut alla filer i en eller flera kataloger Var tar allt diskutrymme vägen? Skapa små rapporter

http://se.linux.org/dokumentation/presentation/eskilstuna2 48(72) Bash Standardskal i de flesta Linuxdistributioner Namnet är en förkortning av Bourne- Again SHell Är inspirerad av Bourne-shell (sh) men har influenser även av andra skal Mycket bra även som skriptspråk!

http://se.linux.org/dokumentation/presentation/eskilstuna2 49(72) Anpassning av skalet (bash) Efter uppstart läses flera filer om de finns Först /etc/profile Sedan den första som finns av: ~/.bash_profile ~/.bash_login ~/.profile Om skalet inte är ett login-skal körs ~/.bashrc Alla dessa filer är skript som kan innehålla kommandon och variabeldeklarationer.

http://se.linux.org/dokumentation/presentation/eskilstuna2 50(72) Processer (1/x) Processer är program eller delar av program som exekveras Visas till exempel med programmet ps En process kan dödas med kill <PID> Flera kan dödas med killall <namn> Init har alltid PID = 1

Processer (2/2) Varje process har en egen omgivning Alla processer (utom init) har en förälder Processer vars föräldrar dör, adopteras av init Innan en process avslutas måste den meddela sin förälder det. Att detta misslyckas är den vanligaste anledningen till så kallade Zombies Processträdet kan enkelt studeras med pstree http://se.linux.org/dokumentation/presentation/eskilstuna2 51(72)

http://se.linux.org/dokumentation/presentation/eskilstuna2 52(72) Processhantering Skalen kan enkelt hantera processer $ kommando & <- Startar i bakgrunden $ fg <- Tar till förgrunden Ctrl-Z <- Stoppar en process $ bg <- Skickar till bakgrunden Ctrl-C <- Avslutar en process

http://se.linux.org/dokumentation/presentation/eskilstuna2 53(72) Screen Mycket bra för dig som jobbar i terminalfönster Ha dina program körandes och redo på din maskin Ta upp din session var du än befinner dig Fönsterhanterare för textbaserade program Titta på hur screen fungerar

http://se.linux.org/dokumentation/presentation/eskilstuna2 54(72) Pipes/Rör En grundläggande filosofi i Unix är att allt består av filer och att alla program skall vara små, göra en sak och göra den väl Många små program kan kopplas ihop till ett större Små, kanske vid första ögonblicket meningslösa program blir helt plötsligt väldigt användbara.

http://se.linux.org/dokumentation/presentation/eskilstuna2 55(72) Exempel $ ps aux wc -l (Hur många processer) $ ps aux awk '{print $4" "$11}' sort -nr head -5 (De 5 mest minneskrävande programmen) $ ls -l *.doc wc -l (Hur många dokument i aktuell katalog) $ find. -name '*.doc' wc -l (I aktuell katalog och alla underkataloger) $ du -s * sort -nr head -5 (De 5 största katalogerna eller filerna) $ if! ping -c 2 10.0.0.1 >/dev/null; then echo Fixa; fi (echo Fixa är ett skript eller kommando som lagar internetuppkopplingen)

http://se.linux.org/dokumentation/presentation/eskilstuna2 56(72) Skalskript I princip allt du kan göra i textläge kan du skripta och autmatisera. Gör inget krångligt eller tråkigt flera gånger, skripta det! Skript är den ultimata dokumentationen Exekverbara dokument (Pragmatic Programmer)

http://se.linux.org/dokumentation/presentation/eskilstuna2 57(72) Skalskript De flesta skal är fullfjädrade programmeringsspråk Bash och sh är vanligast Finns variabler, vilkorssatser, loopar och det mesta annat du hittar i riktiga programspråk.

http://se.linux.org/dokumentation/presentation/eskilstuna2 58(72) Webgrep Enkelt skript som greppar efter något på en hemsida. #!/bin/sh if [ $# -ne 2 ]; then echo Usage: $0 url <Text string> exit fi wget -O - $1 2>/dev/null grep $2

http://se.linux.org/dokumentation/presentation/eskilstuna2 59(72) Tips & tricks Svårt att veta vilken terminal som är vilken? echo -e "\033]0;Någon Text\007" Sätter titelraden i de flesta terminalemulatorer Används med fördel med PROMPT_COMMAND i Bash. if [ "$DISPLAY" ]; then PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD} \007"' export PROMPT_COMMAND fi

http://se.linux.org/dokumentation/presentation/eskilstuna2 60(72) Schemalägga med cron Cron är ett system för att schemalägga saker Kan användas både för underhåll och av användare för att spara tid Utdata av kommandon skickas med e-post till användaren Du hanterar din shemaläggning med kommandot crontab crontab -l (lista dina schemalagda job) crontab -e (editera dina job)

http://se.linux.org/dokumentation/presentation/eskilstuna2 61(72) Crontab, syntax Crontabfilen har en kraftfull syntax. 6 kolumner: Minut [0-59] Timme [0-23] Dag [1-31] Månad [1-12] Veckodag [0-7] (Både 0 och 7 är söndag) Kommando

http://se.linux.org/dokumentation/presentation/eskilstuna2 62(72) Crontab, syntax Alla värden kan ha använda följande regler * (matchar alla) 1-9 (matchar 1,2,3,4,5,6,7,8,9) 1,2,4-7 (matchar 1,2,4,5,6,7) 0-2,4-6 (matchar 0,1,2,4,5,6) 1-6/2 (matchar 2,4,6) */2 (matchar alla möjliga värden som är jämt delbara med 2)

http://se.linux.org/dokumentation/presentation/eskilstuna2 63(72) Crontab exempel * * * * * touch /tmp/cron_running 0 3 * * * /usr/local/sbin/backup -inc 0 16 * * 5 echo Dags att göra helg 0 4 1 * * /usr/local/sbin/backup -full 0 * * * * ~/bin/hourly.job 0 0 * * * ~/bin/daily.job 0 0 1 * * ~/bin/monthly.job 0 0 * * 5 ~/bin/weekly.job

http://se.linux.org/dokumentation/presentation/eskilstuna2 64(72) Installera program Varför skall det vara så krångligt? Det är inte så krångligt Om man håller sig till paket för sin distribution så är det väldigt enkelt RedHat, m.fl. använder RPM (man rpm) Debian, använder deb och apt-get (man aptget) Om man letar efter programmet paketerat för sin distribution så är det enkelt att installera, det kan också enkelt uppdateras

http://se.linux.org/dokumentation/presentation/eskilstuna2 65(72) Installera från källkod (1/7) Linux är posix-kompatibelt I princip alla program för Linux och Unix kan installeras om de kompileras för din miljö Många fria program distribueras som källkod För att kunna kompilera källkod måste man ha en kompilator och alla de komponenter som programmet kräver Linuxdistributioner kommer vanligtvis med flera kompilatorer

http://se.linux.org/dokumentation/presentation/eskilstuna2 66(72) Installera från källkod (2/7) Packa upp filerna De flesta distribueras om ett gzippat tararkiv (.tgz eller.tar.gz) tar -tzf filnamn.tgz <- Listar filerna tar -xzf filnamn.tgz <- Packar upp filerna Är det ett.zip arkiv kan man använda unzip Är det ett bzip2 arkiv kan tar användas, byt ut x mot j. Eller använd bunzip2.

http://se.linux.org/dokumentation/presentation/eskilstuna2 67(72) Installera från källkod (3/7) Läs README och INSTALL I nästan alla paket finns en fil README och/eller en INSTALL. I dessa står det hur man bygger programmet och installerar det (säkert!) I dessa filer står det också om några speciella komponenter måste installeras. Till exempel grafiska program brukar behöva en mängd komponenter

http://se.linux.org/dokumentation/presentation/eskilstuna2 68(72) Installera från källkod (4/7) Anpassa för din miljö De flesta program använder någon som heter autoconf. Det gör det enkelt att anpassa för ditt system Kör./configure Andra program kan ha andra system eller inte behöva ändras alls Detta står i filerna vi nämnde tidigare...

http://se.linux.org/dokumentation/presentation/eskilstuna2 69(72) Installera från källkod (5/7) Kompilera Kompileringen görs oftast med make Detta kan ta lång tid. Vissa program genererar varningar under kompileringen dessa kan du, i de flesta fall, ignorera (men upphovsmannen borde bry sig om dem) Om allt går som det skall så kommer prompten tillbaka utan att det står error på raderna ovanför

http://se.linux.org/dokumentation/presentation/eskilstuna2 70(72) Installera från källkod (6/7) Kopiera till rätt kataloger Program vars utvecklare gjort rätt skall installera sig i /usr/local/* Vanligtvis make install, man måste som regel vara root för att kunna göra detta. Sedan skall det bara vara att provköra Nu kan du radera källkoden om du vill

http://se.linux.org/dokumentation/presentation/eskilstuna2 71(72) Installera från källkod (7/7) Sammanfattning Läs README och/eller INSTALL Packa upp (tar -xzf filnamn.tar.gz) Gör källkodskatalogen till aktuell (cd katalog) Konfigurera (./configure) Kompilera (make) Installera (make install) Klart :-)

http://se.linux.org/dokumentation/presentation/eskilstuna2 72(72) Slutsatser Förmodligen är ni helt slut efter detta virriga, krångliga föredrag Förhoppningsvis är ni även sugna på att utforska Linux nu när ni sett mer vad det kan göra Linux är väldigt spännande och kan göra det mesta du kan tänka dig... Lycka till med ditt Linuxande!!