Tips & trix Unix & Emacs Filsystem Lösenord och säkerhet Konton med lösenord som är lätta att knäcka kan användas för att knäcka andra lösenord, lokalt och på andra system. Lösenord med 6 tecken knäcks idag lätt med brute force. 8 tecken rekommenderas. Ett ord plus en siffra knäcks direkt. Aletta Nylén @ Välja nytt lösenord Minst 7 tecken Minst 2 bokstäver och ett annat tecken Lösenordet ska inte vara ett ord i något språk. Tips: Blanda stora och små bokstäver Filsystem Sökväg Anger var i filträdet en viss fil eller katalog finns Beskriver vilken väg man ska gå för att hitta en katalog eller fil Varje steg i sökvägen avskiljs med ett s k slash / Adressering Absout adressering fullständig sökväg från rot till fil Relativ adressering utgår från den plats i filstrukturen där du för tillfället är Aletta Nylén @ Aletta Nylén @ What s in a name Under Unix kan filer heta vad som helst men Undvik konstiga tecken i filnamn Ex. &, mellanslag,, å, ä, ö Låt filnamnet spegla vad som finns i filen Använd filändelser för att visa filens typ Ex. recept.txt, program.sml, report.old.ps, portrait.gif, kameler.html, mitt.tar.gz Där du har dina filer Hemkatalog Skriv sökvägen till din hemkatalog på 3 sätt! /home/<användarnamn> ~<användarnamn> ~ (om det är din egen hemkatalog) Aletta Nylén @ Aletta Nylén @ 1
Terminalfönstret Ett fönster i vilket det körs ett program som läser dina kommandon och utför de tjänster du begär Här kan du Titta på dina filer Skapa nya filer Starta program, t ex emacs, web browser, nytt terminalfönster, spel, etc Andra namn: kommandotolk, shell, bash, xterm, Terminalfönstret, forts. Prompt, ex: zeppo> rudbeck$ ~/temp> Om prompten plötsligt byter utseende > > Tryck Ctrl-c exit stänger terminalfönstret Aletta Nylén @ Aletta Nylén @ Att skriva in kommandon <kommando> <flaggor> <argument> Argument (ett eller flera) Ex. cd vill att du anger vilken katalog du ska gå till Flaggor (växlar) Oftast ett minustecken följt av en eller flera bokstäver. Ex. ls -l Avsluta med <enter> eller ; Vad är ett kommando egentligen? Om inte shell/xterm tar hand om det ett körbart program Aletta Nylén @ Aletta Nylén @ Hur tittar jag på filträdet och mina filer? Kommandon: ls list files cd change directory pwd print working directory cp copy mv move (används även för rename) rm remove mkdir make directory rmdir remove directory cd ls ~... / Bra att veta förflyttar dig till din hemkatalog listar din hemkatalog nuvarande katalog katalogen ovanför rotkatalogen Aletta Nylén @ Aletta Nylén @ 2
Referensmanual För att titta på manualsidorna för ett kommando använder du kommandot man <kommando> Till exempel så ger kommandot man ls information om kommandot ls. Uppgift: Ta reda på hur ls fungerar med flaggorna a, -l och R! Snabbare kommandon och för att bläddra mellan tidigare använda kommandon Enter för att utföra Om kommandot är nästan rätt stega med och, ändra där det behövs TAB för att fylla i resten Aletta Nylén @ Aletta Nylén @, Ctrl-p, Ctrl-n, Ctrl-b, Ctrl-f Ctrl-a Ctrl-e Markörförflyttningar rad upp, tidigare kommandon rad ner, senare kommandon gå bakåt gå framåt början av raden slutet av raden Fungerar i terminalfönstret, i emacs och på en del andra ställen Grafiskt gränssnitt vs xterm Fördelar med xterm: Kommandohistoria Completion Kunna skriva script senare Ex. latex exempel.tex; latex exempel.tex; dvips o exempel.ps exempel.dvi; gv exempel.ps & Aletta Nylén @ Aletta Nylén @ Filskydd Filskydd ändra rättigheter zeppo> ls l -rw------- 1 sanna csd 2240 Aug 29 12:32 F1.ppt Syntax: chmod [ugoa][+/-/=][rwx] <fil> User Group Others Read Write execute Default: Alla kan läsa (vid skapandet av nya filer) Bara du kan läsa din hemkatalog Exempel: chmod ugo-rwx * (Obs! Inte bra ) chmod go-rwx dagbok.txt chmod a+r public_html (Katalog) -rw-rw-rw- foo.txt Chmod u=x foo.txt ---xrw-rw- foo.txt Aletta Nylén @ Aletta Nylén @ 3
Filskydd - kataloger Länkar i filsystemet Alla som har skrivrättighet i en katalog kan radera den Om man inte har accessrättighet (x) i en katalog kan man gå ner i den Hemlig katalog man kan titta i baz om man vet att (var) den finns foo [rwxr-xr-x] -- bar [rwx x x] -- baz [rwxrwx---] Sparar diskutrymme Hårda: samma fil på hårddisken nås från två namn (markeras I ls av siffra) Mjuka: ett namn i filträdet pekar på ett annat namn (markeras I ls med @) ln s <fil- el. katalognamn> <länknamn> Aletta Nylén @ Aletta Nylén @ Kommandon med in- och utdata Indata t ex en text att bearbeta Hämtas vanligen från standard input om inget annat (vanligen en fil) anges Utdata t ex bearbetad version av texten Skrivs till standard output (skärmen) om inget annat anges Omdirigering (redirection) för att ändra vanligt beteende Output till fil kommando > filnamn Ex. ls ~ > hemkatalog.txt Filen hemkatalog.txt nyskapas, eventuell gammal fil skrivs över. Kommando >> filnamn Ex. cat new_res.txt >> ack_res.txt Filen new_res.txt läggs till sist i filen ack_res.txt Aletta Nylén @ Aletta Nylén @ Kombinera kommandon Utdata från ett kommando blir indata till ett annat. Pipe: Exempel: psnup -2 uppsats.ps lp ls l grep.txt (= ls l *.txt) Exempel: Sortera ord Random_words innehåller 1000 oordnade ord. Sortera dem i bokstavsordning. cat random_words sort > sorted_words Aletta Nylén @ Aletta Nylén @ 4
Användbara exempel cat > fil.txt Mata in text direkt från tangentbordet till fil. Avsluta med C-d. echo $PRINTER Skriver ut värdet av shellvariabeln PRINTER. Processer Process (jobb) = ett program under körning. PID process id ps listar processer ps -u <anv.namn> - en användares processer jobs listar jobb processer som startats i aktuellt shell top listar processer i storleksordning u - en användares processer k <PID> - tar bort en process? Listar övriga kommandon Aletta Nylén @ Aletta Nylén @ Ta bort processer 1. Avsluta så snällt som möjligt så får programmen en chans att städa upp efter sig! 2. Program som väntar på inmatning kan ibland avslutas med Ctrl-d (end of file). 3. Program som kör kan oftast stoppas med Ctrl-c. 4. Annars kan du prova kill <PID> eller kill <jobnr> 5. Extra elakt: kill -9 <PID> Om inte ens det fungerar Ibland hänger sig datorn så att man inte kan ge kommandon. Då kan man 1. Logga in på annan dator 2. Koppla dig till din dator 3. Använd kill Eller: -Hej! Kan jag få låna ett shell av dig en kortis? >ssh l aletta yxan.it.uu.se >whoami >ps u aletta >kill <PID> >exit >whoami -Tack så mycket för lånet! Aletta Nylén @ Aletta Nylén @ Foreground och background program & programmet startas som en fristående process i bakgrunden Låser inte terminalen den startats från Ctrl-z pausar processen (suspend) fg <jobnr> startar pausad process i förgrunden (nu blev shellet låst igen) bg <jobnr> startar pausad process i bakgrunden (dvs som en & process) Bra kommandon cat, more, less echo grep, ps, top, kill, touch, who, whoami, finger, Vad gör dessa kommandon? Aletta Nylén @ Aletta Nylén @ 5
Emacs - Editing MACroS "the extensible, customizable, self-documenting real-time display editor" "a text editor and more" Varför emacs? Vi vill att det ska vara lätt att skriva kod snabbt skriva snygg, lättläst kod söka i koden ändra i koden Aletta Nylén @ Aletta Nylén @ I emacs kan man Editera text (programkod) Söka i texten Indentera c, sml, html, osv Förflyttningar i texten, copy, paste Macron (t ex om man behöver göra samma sak många gånger)... men inte Skriva text med olika typsnitt Göra snygga utskrifter då man skriver uppsats (Lösning: LaTeX) Emacs är ingen ordbehandlare. Aletta Nylén @ Aletta Nylén @ Starta emacs Skriv något av följande I terminalfönstret emacs emacs & emacs filnamn emacs filnamn1 filnamn2 & eller klicka på ikonen på skrivbordet Emacs fönster Menyrad Markör Statusrad Minibuffert Aletta Nylén @ Aletta Nylén @ 6
Fil - buffert En fil finns på disken En buffert skapas i Emacs En kopia av filen du editerar När bufferten sparas ändras filen Tänk på detta om fler ska kunna jobba med samma fil! scratch är en buffert som inte är kopplad till någon fil. Menyer vs kortkommandon Menyer Enkelt Långsamt Kortkommandon Svårt I början Snabbt Står på menyerna! Viktiga tangenter Control (Ctrl) - C Meta (Esc, ) - M Aletta Nylén @ Aletta Nylén @ Kortkommandon Oftast logiska namn (ex C-f, C-b etc.) En del kräver två tangenttryckningar eller fler. Ex: C-x C-b (list buffers) jmf C-x b. Alla kortkommandon har dessutom namn. En del saker kommer man åt med M-x <funktionsnamn> Tutorial finns i emacs och startas med C-h t Kör den! Aletta Nylén @ Aletta Nylén @ C-x C-f Titta i minibufferten tab space? Två filer med samma namn foo.txt<2> Man kan läsa filer även om man inte har skrivrättighet Öppna filer C-x C-s C-x C-w Titta på status raden: ----- --**- Spara Aletta Nylén @ Aletta Nylén @ 7
Avsluta C-x C-c Äldre version: foo.txt~ Autosave: #foo.txt# Backupfiler Aletta Nylén @ Aletta Nylén @ Arbeta i flera fönster Emacsfönstret kan delas så att fler buffertar syns samtidigt. Allt man gör appliceras på den i det fönster där markören är. Dela det aktuella fönstret: C-x 2 eller C-x 3 Flytta markören till nästa fönster: C-x o Ta bort aktuellt fönster: C-x 0 Ta bort alla fönster utom det aktuella: C-x 1 Vissa funktioner öppnar extra fönster, t ex C-h och C-x C-b (list buffers). Arbeta i flera ramar Man kan arbeta i flera Emacsramar (frames) som delar buffertar. Öppna ny ram: C-x 5-2 Flytta markören till nästa ram: C-x 5-o Ta bort aktuell ram: C-x 5-0 Aletta Nylén @ Aletta Nylén @ Markörförflyttningar Mus Piltangenter Samma snabbkommandon som i terminalfönstret (Vilka var de?) Ett ord fram eller bak, en mening fram eller bak,... Kör Emacs tutorial! Klippa ut, flytta och kopiera text C-k (kill-line) klipper ut resten av raden C-space (set-mark) börjar markera text C-w (kill-region) klipp ut M-w (kill-ring-save) kopiera C-y klistra in M-y klistra in äldre Aletta Nylén @ Aletta Nylén @ 8
Söka och ändra C-s (search-forward) sök efter en sträng C-r (search-backward) sök baklänges M-% (query-replace) sök och ersätt med fråga för varje förekomst M-x replace-string sök och ersätt Om något går fel Ångra (kan upprepas): C-_, C-x u Avbryta pågående saker (ex i minibufferten): C-g Aletta Nylén @ Aletta Nylén @ Modes Emacs hjälper dig med vanliga uppgifter men på olika sätt beroende på vilken typ av text du skriver Nya funktioner/kommandon Nytt utseende (färgläggning) Nya beteenden (bryter rader, indenterar etc) Kan ändra hur vanliga tangenter beter sig (t ex TAB) Hur får man ett mode? Filens namn när man öppnar. Ändras inte med namnet (save as), men kan sättas om. (Därför viktigt att välja rätt namn från början.) M-x <modenamn> Aletta Nylén @ Aletta Nylén @ Major modes Huvudsakligt beteende Alltid en, exakt en, major mode Typexempel: Fundamental mode (enklast, kan inte mycket) Text mode (skriva text: kan centrera rad/ mening, radbrytningar) Lisp Interaction (köra Lisp) SML-mode (skriva SML-kod) Minor modes Kan vara på eller av (oavsett major mode och avsett varandra) Flera minor modes kan vara på samtidigt Styr detaljer, t ex: auto-fill-mode, overwrite-mode, auto-save-mode Slås av och på med samma kommando ( toggla ) Aletta Nylén @ Aletta Nylén @ 9
Hjälp Svårt att veta vad som finns, vad man kan göra Väl utbyggt hjälpsystem Användbart: Describe key beskriver kortkommandon och menyval Describe function beskriver varje funktion (dvs sådant man kan köra med M-x och sådant man får från Describe key Describe mode visar alla mode-specifika kommandon (för den major mode man kör). Command apropos Bra när man inte vet namnet på det man letar Om att skriva ut... Skrivare Olika filformat Aletta Nylén @ Skrivare Namn: pr+rumsnummer Ex: pr1515, pr1413 Kolla att den skrivare du tänker använda finns och att du kommer åt den! Textfiler lp filnamn lp -dskrivare filnamn Skrivare behöver oftast inte anges. Systemet är smart och listar ut vilken skrivare som är närmast. Kontrollera att filen verkligen är en textfil (och inte en bild) med t ex cat. Snyggare utskrift (halva sidor, filnamn, datum): a2ps Aletta Nylén @ Aletta Nylén @ Postscript Filnamn slutar på.ps lp fungerar! Kolla att filen ser bra ut med gv Två sidor bredvid varandra (i halv storlek): psnup -2 filnamn lp Gissa vad följande rad gör! psnup -6 -l filen.ps > ny_fil6.ps Andra utskrifter Från Emacs: File Print buffer File Postscript Print Buffer (snyggare) Se till att stå i rätt buffert! Från Firefox Använder postscript, psnup kan användas! Aletta Nylén @ Aletta Nylén @ 10
Var kommer utskriften? Oftast till skrivaren i rummet Överkurs: Till den skrivare som är specificerad med PRINTER eller LPDEST Kolla med echo $PRINTER Ändra med export PRINTER=pr1515 Skicka till annan skrivare: lp -dpr1413 filnamn a2ps -Ppr1413 filnamn Är pappret slut? Fyll på! Titta på skrivarkö: lpstat skrivarnamn lpq skrivarnamn Om det inte fungerar Om din utskrift inte kommer ut, ta bort den från skrivarkön! cancel utskrift-nr Prova en annan skrivare Aletta Nylén @ Aletta Nylén @ CVS Arkiv LaTex Praktiska verktyg CVS concurrent versions system version control system record the history of your source files Groups of developers insulating different developers from each other every developer works in his own directory, and CVS merges the work when each developer is done. Aletta Nylén @ Aletta Nylén @ CVS forts. Arkiv Filer sparas i centralt repository För att arbeta: Checka ut lokal kopia Gör ändringar Checka in ny version, ta hand om ev konflikter tar [cxtzf ] zip, unzip gzip, gunzip Manualer finns på nätet! Aletta Nylén @ Aletta Nylén @ 11
Typsättningsprogram LaTex Ett exempel... \[\int_{x=0}^{10}x^2+3x-5\] Ju snyggare en avhandling är, desto sämre är den förutom om den är skriven i LaTex Man skriver LaTex-kod som kompileras Bra t ex för att skriva matematik Aletta Nylén @ Aletta Nylén @ 12