Presentation laddar. Vänta.

Presentation laddar. Vänta.

1 shell cancelcplpodrmdir cat echolspgsh cd filemailpsstty chmodfindmkdirpwdwc chownkillmvrmwrite > &|

Liknande presentationer


En presentation över ämnet: "1 shell cancelcplpodrmdir cat echolspgsh cd filemailpsstty chmodfindmkdirpwdwc chownkillmvrmwrite > &|"— Presentationens avskrift:

1 1 shell cancelcplpodrmdir cat echolspgsh cd filemailpsstty chmodfindmkdirpwdwc chownkillmvrmwrite > &|

2 2 shell Ett shell är ett program som bl a tolkar och vidarebefodrar användarens kommandon user shell tolk kernel OS H/W

3 3 C-shell är liksom Bourneshell och Kornshell ett program och kan startas på samma sätt C-shell som loginshell via ett annat shell

4 4 C-shell C-shell använder sig inte av filen.profile utan vid inloggning.login utloggning.logout vid varje nytt C-shell.cshrc C-shellets promt är %

5 5 C-shell För att C-shell skall visa aktuellt kommandonummer ges följande kommando % set promt=”\!%”

6 6 C-shell C-shell har en history-funktion I variablen HISTSIZE anger man hur många kommandon c-shell skall lagra Upprepning med ett kommando sker med ! och kommandonummer eller ! och början av kommandonamnet !! föregående kommandorad utförs !$ sista argumentet i föregående kommando

7 7 C-shell I C-shell finns det möjlighet att redigera kommandon %6 !4:p find / -name demo -print (kommandot utförs ej) %7 ^demo^motd find / -name motd -print

8 8 C-shell, alias C-shell alias funktion ger möjlighet att ”byta”namn på kommandon Permanent lagring kan ske i filen.login 8% alias h history 9% h history...

9 9 Kornshell Kornshell har det bästa av Bourneshell och C-shell plus en mängd nya funktioner Kornshell är kompatibelt med Bourneshell Kornshell finns i SCO UNIX V.3.2 Xenix 2.3.4 och UNIX V.4

10 10 Kornshell För att Kornshell skall visa aktuellt kommandonummer och $ ges följande kommando: PS1=”!$”

11 11 Kornshell Aktuellt directory finns i variabeln PWD och föregående directory finns i variabeln OLDPWD Med kommandot cd - förflyttar man sig till föregående directory man arbetade i Med kommandot cd ~kim förflyttar man sig till kims homedirectory

12 12 Kornshell I Kornshell kan man använda en inbyggd editor för att redigera kommandoraden I Variabeln VISUAL anger man vilken editors kommandon man vill använda Detta kan även göras med kommandot set -o vi eller set -o emacs

13 13 Kornshell EscGå över till editeringsläge kSenaste kommando ccTar bort kommandot vvi öppnar en temporär fill med kommandot EnterUtför kommandot De flesta kommandon från editorn kan användas men ibland med motsatt betydelse ex. G = äldsta kommandot

14 14 Kornshell Kornshell har liksom C-shell en history- funktion. I variabeln HISTSIZE anger man hur många kommandon (default 128) Kornshell skall lagra i filen $HOME/.sh_history Kommandot history visar de lagrade kommandona 6 $ r f

15 15 Kornshell, alias Kornshell alias funktion ger möjlighet att ”byta” namn på kommandon Permanent lagring kan ske i filen.profile I Kornshell definieras alias med =

16 16 Standard error Omdirigering Standard input 0< Standard output 1> >> 2> Kommando

17 17 Omdirigering Omdirigering av standard output till standard error kan göras genom att lägga 1>&2 sist På samma sätt kan omdirigering av standard error ske till standard output med 2>&1

18 18 Utan pipe kunreg dkund dsort- kund kommando Med pipe Pipe

19 19 Processer Ett program/kommando kan bestå av en eller flera processer loginprocess = Parentprocess -sh who = Childprocess

20 20 Processer, PID nummer Varje process har ett unikt processnummer - PID nummer Kommandot ps -f ger utskrift av vilka processer som initierats från din terminal UID kim Användare PID 1254 Process- nummer PPID 1 Parent process- nummer TTY tty05 Port COMMAND -sh Initierat kommando

21 21 login process process med editorn vi Start av editering Telefon ringer och du behöver uppdatera din kalender Nästlade processer Start telnr sökning editera kalender Du vill söka efter ett telefonnummer prg som letar i telreg Sover logga ut eller fortsätt Väcker Processen dör editering klar Sover Väcker Processen dör editering klar Sover Väcker Processen dör telsök klar

22 22 Processer Förlopp vid exekvering av processer parent- process child- process (subshell) exec exit() wait

23 23 Fördröja exekvering Kommandot sleep n fördröjer programn antal sek Kommandot wait fördröjer program tills specifierad process terminerat

24 24 Job control Med kommandot jobs kan man i kornshell (ksh) lista alla jobb som användaren startat i bakgrunden

25 25 ctrl-z - Lägger till förgrundsjobb i bakgrunden Processen är stoppad tills man ger kommandot bg [n] bg %n - Återstartar jobb nr [n] i bakgrunden fg %n - Hämtar bakgrundsjobb nr [n] stop %n - Stoppar bakgrundsjobb nr [n] kill %n - Tvångsterminerar jobb nr [n] Job control

26 26 Sub-shell Flera kommandon kan sammanskrivas på samma rad cd / ; ls Detta ger exakt samma resultat som om dessa kommandon skrivits på varsin rad

27 27 Flera kommandon på samma rad Flera kommandon på samma rad med test ls filx > /dev/null || echo ”filen finns ej” Utförs om exitstatus ej = 0 ls filx > /dev/null && echo ”Filen finns” Utförs om exitstatus = 0

28 28 Parentes Om en parentes ( ) sätts omkring en kommandorad, kommer ett nytt shell att startas (ett sub-shell) och alla kommandon att utföra detta Sätts kommandon inom { } utförs de av aktuellt shell Skillnaden ligger i att ett sub-shell inte kan påverka parent-shellets miljö

29 29 eval Kommandot eval gör att shellet läser kommandoraden två gånger

30 30 Editorer Det finns flera editorer ed Radeditor som finns i alla UNIX- system ex Radeditor vars kommandon kan användas i editorn vi vi Skärmeditor med många funktioner

31 31 Editor vi,.exrc Editering av en fil med hjälp av vi sker genom att ange vi och filnamn Om filen ej finns skapas den Finns filen.exrc i ditt homedir läser vi intruktionerna i denna först

32 32 Starta editorn vi UNIX shell Kommando- läge Text- inmatning Esc aiArRoO ZZ vi filnamn

33 33 Editorn vi, förflyttning Förflyttning i texten tecken för tecken Om piltangenterna ej fungerar kan man förflytta sig runt i texten med hjälp av k j h l

34 34 Editorn vi, förflyttning w flyttar cursorn ord för ord framåt b flyttar cursorn ord för ord framåt G flyttar cursorn till sista raden 12G flyttar cursorn till rad 12 Ctrl dflyttar texten en halv sida upp Ctrl uflyttar texten en halv sida ned Ctrl bflyttar texten en hel sida upp Ctrl fflyttar texten en hel sida ned

35 35 Editron vi, kommandon Kommandon i vi aLägg till text efter cursorn ALägg till text i slutet av raden iInsätt text före curson rByt ut tecknet där cursorn står cwÄndra aktuellt ord oÖppna en ny rad under cursorn OÖppna en ny rad ovanför cursorn

36 36 Editorn vi, ta bort ddTa bort en rad dwTa bort ett ord xTa bort ett tecken

37 37 Editorn vi uUpphäv senaste ändringskommando

38 38 Editorn vi, avsluta zz eller :xLagra texten och lämna vi vi gör en kopia av filen du editerar i /tmp Du kan därför gå ur vi utan att lagra ändringarna du har gjort i filen med kommandot :q!

39 39 Editorn vi, sökning Sökning och upprepning avkommando /sökordSöker efter nästa förekomst av ordet ”sökord” ?sökordSöker efter närmast föregående förekomst av ordet ”sökord” nUpprepar senaste sökning.Upprepar senaste ändrings- kommando

40 40 Editorn vi, textförflyttning Textförflyttning När du tar bort en rad med dd lagras denna rad i en särskild buffert Du kan ta tillbaka denna rad genom att ge kommandot p Vill du endast kopiera raden till bufferten ger du kommandot yy

41 41 Editorn vi, :! !! :! Utför kommandot (t ex who) utan att lagra resultatet i filen du editerar !! Utför kommandot (t ex cat filx) och lagrar resultatet i filen du editerar

42 42 Editorn vi, global ändring Global ändring På alla raderByt utPå alla förekomster på raden :g /Jensen/s/208/356/g Byt ut 208 mot 356 på alla rader med ordet Jensen i filen

43 43 Editorn vi, skriv om skärmbilden Ctrl l Skriv om skärmbilden 5,24w nyfil Skapar nyfil med innehållet av rad 5 tom 24 vi +$ filorg Editera i slutet av filen filorg

44 44 Editorn sed Stream editorn sed utför endast globala kommandon sed sänder alla utskrifter till standard output, därför måste omdirigering ske om man vill lagra resultatet sed är inte en interaktiv editor och kan därför med fördel användas i script

45 45 Editorn sed sed -n ’12,23p’ prgfil –Skriv ut raderna 12 tom 23 i filen prgfil sed s/mje/Max Jensen/g brev > brev.kop –Byt ut mje mot Max Jensen i filen brev och lagra resultatet i filen brev.kop sed -n ’/Name/,/Syntax/p’ prgfil | lp –Skriv ut filen prgfil från raden med ordet Name till raden med ordet Syntax

46 46 Regular expressions Vissa tecken har en speciell betydelse för en del kommandon som grep, sed mfl. Några av dessa reguljära sökmönster är:.Ett godtyckligt tecken ^Början av rad $Slutet på rad *Noll eller flera förekomster av föregående reguljära uttryck [abc]Godtycklig bokstav a b eller c [0-9]Godtycklig siffra [^abc]Alla tecken utom a b eller c

47 47 Kommandoersättning Om det på en kommandorad finns tecken inneslutna mellan ` ` tas denna sträng som ett kommando cat brevlista max lisa kim mail `cat brevlista` < brev

48 48 Specialtecken I UNIX finns en del tecken som har en speciell betydelse. T ex $$ = processid, * = alla filer och | är pipetecknet Alla tecken inom ’ ’ tolkas utan någon speciell betydelse Det samma gäller tecken inom ” ” utom för specialtecknena ’ $ och \ \ framför ett tecken tar bort dess eventuella effekt

49 49 crontab Periodisk exekvering Kommandot crontab lägger upp tabeller för demonen cron 0,30 * * * * date > /dev/console timmemånad min.dagveckodag crontabb -l visar dina ”cronjobb” crontabb -rtar bort dina ”cronjobb”

50 50 at Exekvering vid viss tid Kommandot at utför ett jobb vid en viss tidpunkt och endast en gång at 22:10 backupscript ctrl d

51 51 Shell-script Kommandon kan lagras i en kommandofil och sedan exekveras shell-script –Textfil med kommandon –Lätta att göra och underhålla –Behöver inte kompileras

52 52 Kontroll av shellscript Linjär Vilkor Loop

53 53 Shellscript Kommandifil - shellscript cat lrkn echo ”Antal filer är \c ” ; ls | wc -l lrkn Antal filer är 16

54 54 Shellscript Normalt exekveras ett script av ett subshell. Vill man att det aktuella shellet ska exekvera scriptet sätter man en punkt och ett mellanslag framför filnamnet. filnamn

55 55 Shellscript, optioner Optioner till Bourneshell sh -e prg Scriptet prg avbryts om något kommando i filen misslyckas sh -v prg Alla rader i filen prg visas innan de exekveras sh -x prg Alla rader i filen prg visas med variablers innehåll efter exekvering sh -n prg Shellet läser filen prg utan att exekvera scriptet

56 56 Shellscript, exit Kommandot exit avbryter en shellprocedur exit 15 15 är ett tal man vill ha som exitstatus echo $? Skriver ut exitstatus för föregående kommando Konventionen är att alla tal över 0 indikerar ett fel 0

57 57 shellscript, # : Om en rad inleds med # eller : utförs inte denna rad # Används ofta för att skriva kommentarer : Ensamt på första raden innebär att scriptet exekveras av ett bourneshell #!/bin/ksh Ensamt på första raden innebär att scriptet exekveras av ett kornshell

58 58 Variabler Tilldelning av shellvariabler fil=/u/kim/kunfil namn=Jensen Anrop av en variabel sker genom att sätta $ framför variabelnamnet lp $fil (skriver ut filen /u/kim/kunfil) echo $namn Jensen

59 59 Standardvariabler HOME –Innehåller sökväg till ditt homedirectory PATH –Directories som shellet ska söka i efter kommandon TERM –Den terminaltyp du använder IFS –Anger vilka tecken som ska användas som fältseparator PS1 –Anger hur promten ska se ut PS2 –Anger hur sekundära promten ska se ut (>)

60 60 Variabler, export Om en variabel skall ”ärvas” till ett nytt shell, måste den exporteras med kommandot export TERM=vt220 export TERM

61 61 Varibler, tilldelning fil=filx mv $fil ${fil}org –Ändrar namn på filx till filxorg echo ${tmpdir:-/tmp} –Om variabeln tmpdir ej är satt sätts tmpdir till /tmp temporärt echo ${tmpdir:=/tmp} –Om variabeln tmpdir ej är satt sätts tmpdir till /tmp echo ${logname:?”Ej satt”} –Om variabeln logname ej är satt skrivs sh:logname Ej satt echo ${LOGNAME:+”LOGNAME SATT”} –Om variabeln LOGNAME är satt skrivs LOGNAME satt annars inget

62 62 Variablers innehåll Variablers innehåll kan kontrolleras med kommandona set och env set –rapporterar vilka variabler som är ”lokalt” satta env –rapporterar vilka variabler som är globalt satta Enskilda variablers innehåll kan skrivas ut med kommandot echo

63 63 Positionsparametrar Argument kan ges till ett kommando eller program med hjälp av positionsparametrar Varje argument har ett visst positionsnummer till kommandot 1-9 $0 namnet på proceduren $1argument nr 1 $2argument nr 2 : $9argument nr nr 9 $#antal argument $*alla argument som ett ord

64 64 Positionsparametrar, shift Kommandot shift används för att byta plats på positionsparametrars innehåll $1$2$4$9$10

65 65 Flera parametrar $$Nuvarande processnummer $!Senaste bakgrundsprocess $?Exit status 0 = sant allt annat = falsk

66 66 read Kommandot read är ett inbyggt kommando som tar ett namn på en variabel som argument read läser från standard input och tilldelar variabeln det inmatade värdet

67 67 test, filer Kommandot test ger möjlighet att utvärdera tex filstatus, numeriska uttryck eller textsträngars relationer test -f filnamn sant om filen finns test -s filnamn sant om filen finns och > 0 test -d filnamn sant om filen är ett dir test -r filnamn sant om filen kan läsas test -w filnamn sant om man kan skriva i filen test -x filnamn sant om filen kan exekveras

68 68 test [ ] Kommandot test kan skrivas på två olika sätt: test uttryck eller [ uttryck ]

69 69 test, numeriska tester Numeriska tester [ num1 xxx num2 ] test num1 xxx num2 -eqlika med -ne ej lika med -gt större än -ge större än eller lika med -lt mindre än -lemindre än eller lika med

70 70 test, teckensträngar Test av teckensträngar test ”$TERM” = ”vt220” ; echo $? 0 (om TERM=vt220) test teckensträng = teckensträng test ”$TERM” != ”vt220” ; echo $? 1 (om TERM = vt220)

71 71 Styrning av script, if ifkommandolista then kommandolista [else kommandolista] fi then kommando else kommando if test kommando false true

72 72 Styrning av script, for for namn in ord1 ord2 do kommandolista … done

73 73 Beräkningar, expr Kommandot expr används för att göra heltalsberäkningar a=20 expr $a + 10 30 a=èxpr $a - 5` echo $a 15 b=èxpr $a \*3` echo $b 45

74 74 Styrning av script, while while kommando do kommandolista done while-slingan utförs så länge $?(true) = 0 true är alltid = 0 true false while test- kommando utför kommando

75 75 Styrning av script, until until kommandolista do kommandolista done until-slingan utförs så länge $?(true) = 0 false är alltid = 0 false true until test- kommando utför kommando

76 76 break Kommandot break används för att bryta en loop

77 77 Kommandot continue används för att hoppa över instruktioner i en loop.

78 78 styrning av script,case case $ord in mönster) kommandolista ;; … *) kommandolista ;; esac kommando true false

79 79 funktioner En funktion är en form av kommandofil, med den skillnaden att funktionen inte körs i ett eget shell syntax: funktionsnamn () { kommandon }

80 80 avbrott När ett shellscript körs kan det avbrytas avsiktligt eller oavsiktligt De vanligaste avbrottssignalerna är: 0Shellexit t ex Ctrl d 1Linjen kopplas ned 2Interrupt-knappen (DEL, CTRL c) 9kill -9 15kill

81 81 trap Kommandot trap fångar upp alla avbrottssignaler och vidtar de åtgärder som anges –trap ”” 1 2 15 # ignorera signal 1 2 och 15 –signal 9 kan fångas upp men ej ignoreras –trap ”rm $tempfil ; exit 18” 0 1 2 9 15

82 82 awk (Aho, Weinberger och Kernighan) awk är ett verktyg för databearbetning –ta fram rapporter och summeringar –omforma data så att de kan användas i ett nytt kommando

83 83 awk, mönster och årgärd awk läser indata rad för rad jämför varje rad med ett mönster utför en åtgärd för varje rad som motsvarar mönstret awk -F: ’/usr/ { print $5 }’ /etc/passwd mönsteråtgärd

84 84 awk, avskiljare awk bearbetar inmatningen en rad i taget –Rad-avskiljare RS, är default radmatning (newline) –Fält-avskiljare FS, är default mellanslag eller tab –Fälten i en post kan anges med variablerna $1, $2, $3 … –$0 betecknar hela posten

85 85 awk, BEGIN END Förutom reguljära mönster finns även BEGIN och END BEGIN –genomförs före bearbetning av enskilda poster END –genomförs efter bearbetning av enskilda poster awk -F ’ /usr/{ print $1} END { print ”Filslut” }’ /etc/passwd

86 86 awk, mönster awk - mönster Jämförelseoperatorer ==lika med !=ej lika med <mindre än >större än !inte &&och ||eller

87 87 awk variabler NR –Numret på den bearbetade posten NF –Antal fält i den aktuella posten RS –Skiljetecken mellan poster i inmatningsfilen ORS –Skiljetecken mellan poster i utmatningsfilen FS –Skiljetecken mellan fält i inmatningsfilen OFS –Skiljetecken mellan fält i utmatningsfilen

88 88 räkneoperationer i awk Räkneoperationer i awk –Det finns möjlighet att tilldela variablervärden i awk –Det finns även möjlighet att göra räkneoperationerna + - * och / i awk awk ’{sum = sum + $3; print $sum}’ rfil –Flera instruktioner kan inkluderas i varje behandlingsuppmaning –Varje delinstruktion måste avslutas med ;


Ladda ner ppt "1 shell cancelcplpodrmdir cat echolspgsh cd filemailpsstty chmodfindmkdirpwdwc chownkillmvrmwrite > &|"

Liknande presentationer


Google-annonser