unix 1 intro ss12

Upload: tomy-montana

Post on 07-Aug-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/20/2019 Unix 1 Intro Ss12

    1/61

    Das Bild kann nicht angezeigt werden. Dieser Computer verfügt möglicherweise über zu wenig Arbeitsspeicher, um das Bild zu ö! nen, oder das Bild ist beschädigt. Starten Sie den Computer neu, und ö! nen Sie dann erneut die Datei. Wenn weiterhin das rote x angezeigt wird, müssen Sie das Bild möglicherweise löschen und dann erneut einfügen.

    !"#$%&'(#) "# +,-./0123// 456'"57889865:5 +! 

     Armin Wasicek

    SS 2012

  • 8/20/2019 Unix 1 Intro Ss12

    2/61

    Inhalt

      UNIX Systeme

    Login!  Prozesse

    !  Signale

    !  Files & Directories

    Shell Kommandos

    1;32;

  • 8/20/2019 Unix 1 Intro Ss12

    3/61

     Aufbau eines UNIX Systems (1)

    !  Hardware•

      Computersystem

    (CPU, Speicher)•

      Peripheriegeräte(zur Eingabe, Ausgabe)

    !  Software

    • 

    Betriebsystem(Kernel + Gerätetreiber)

    • 

    Benutzerprogramme(Shell, Compiler, Browser, etc.)

  • 8/20/2019 Unix 1 Intro Ss12

    4/61

     Aufbau eines UNIX Systems (2)

    UNIX ist ein

    !  Mehrbenutzer  und

    Mehrprozess

    Betriebssystem.

    .

    =

    +,-. (#65'86%6>6 ?"5)5:5"#8@:5 45#(6>(#)

    ?5' 456'"578:"A5B ?('C&

    :5&'5'5 45#(6>5'

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    5/61

     Aufbau eines UNIX Kernels (3)

    !"#$%&&

    ()*)+%(%*,

    $#(-#*%*,

    ! "#$%& (% $)&"$#

    *+,-.//01(+.%)

    -+.%2",$02.+3"$%2",$

    4 *5 ! -(.)6&"$#

    .%(#"/

    ()*)+%(%*,

    $#(-#*%*,

    7"+26%& 3.3,+8

    *%#"$# 9%#.

    +.9&%-.3.$2

    *%#. -%-(.

    01 )*2 *%,3#"45*+ $#(-#*%*,

    ! ,-:.2/

    ;.2

  • 8/20/2019 Unix 1 Intro Ss12

    6/61

    Was ist ein Betriebssystem?

    a)  Erweiterte Maschine

     Abstraktion zurVerringerung derKomplexität derHardware

    !  Bereitstellen vonSchnittstellen und

     APIs für Applikationen(Systemcall Interface)

    b) Ressourcen Manager

     Aufteilen (Multiplexen)und verwalten vonRessourcen

    !  Über Zeit : Rechenzeit,

    Netzwerkzugriff!  Über Raum: Speicher,

    Ein-/Ausgabegeräte(z.B. Fenster am

    Monitor);32;

  • 8/20/2019 Unix 1 Intro Ss12

    7/61

    Geschichte von UNIX (1)

    FG5' H"B75':@##I 1;;E

    3;32;

  • 8/20/2019 Unix 1 Intro Ss12

    8/61

    Geschichte von UNIX (2)

    Source: http://de.wikipedia.org/wiki/Geschichte_von_Unix See also: &AJKLLMMM2B5N5#5>2CO:L(#"PL ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    9/61

    Inhalt

    !  UNIX Systeme

     

    Login!  Prozesse

    !  Signale

    !  Files & Directories

    Shell Kommandos

    Q;32;

  • 8/20/2019 Unix 1 Intro Ss12

    10/61

    Login

    Was passiert beim login?

     Anmeldung am System!   Authentifizierung des Benutzers durch

     

    Benutzernamen z.B. s0725845

     Passwort ****

    (geheim)

    ! Benutzer ist anwesend

    ! Sitzung beginnt, erstes Programm (Shell) startet/;;32;

  • 8/20/2019 Unix 1 Intro Ss12

    11/61

    Schlechte Passwörter

    !  Kein Passwort

    Kurze Passwörter („ich“)

    !  Leicht zu erratende Begriffe („sysprog“)

    Namen z.B. den eigenen, von Freunde, Bekannten

    (Schauspieler), Verwandten, Feinden!  Korrekt geschriebene Wörter

    Rückwärts geschriebene Wörter („ollaH“)

    //;32;

  • 8/20/2019 Unix 1 Intro Ss12

    12/61

    Wie findet man ein fremdesPasswort heraus?!  Über die Schulter schauen

    Keylogger Programme!  Login-Prozedur fälschen

    !  Fragen ( „social engineering“ )

    !  Standard Passwort

    Durchprobieren wahrscheinlicher Passwörter(manuell oder automatisiert)

    !  Durchsuchen des Mistkübels

    /1;32;

  • 8/20/2019 Unix 1 Intro Ss12

    13/61

    Gute Passwörter

    Verwenden:

    !

     

    Groß- und Kleinbuchstaben, Sonderzeichen, Ziffern!  Sinnlose aber leicht zu merkende Zeichenfolgen

    !  mindestens 8 Zeichen

    Wie merke ich mir das?

    Zb.: Akronyme:

     AmE:sadS: (Alle meine Entchen :schwimmen auf dem See: )

    Self Assessment: http://www.passwordmeter.com/ 

    /

  • 8/20/2019 Unix 1 Intro Ss12

    14/61

    Shell

    !  Nach dem Einloggen wird als erster Prozeß eine

    Shell gestartet.!  Die Shell liest und interpretiert Befehle.!  Befehle haben folgende Form:

    Konvention: Optionen beginnen mit einemBindestrich

    $ Befehl [Optionen] [Files] ...$ ls –l test.c a.out$ cd /tmp$ pwd 

    /=;32;

  • 8/20/2019 Unix 1 Intro Ss12

    15/61

    Inhalt

    !  UNIX Systeme

    Login

      Prozesse

    !  Signale

    !  Files & Directories

    Shell Kommandos

    /D;32;

  • 8/20/2019 Unix 1 Intro Ss12

    16/61

    ProzesseEin Prozess ist der Ablauf eines Programms:

    !  Speicherabbild des Programms

    Speicher für Programmdaten!  Kontext (Betriebssystem, Prozessor, Ressourcen)

    In einem UNIX System laufen viele Prozesse parallel ab

    Prozesszustände:

    /E;32;

  • 8/20/2019 Unix 1 Intro Ss12

    17/61

    Prozesshierachien (pstree) initacpidahc_dv_0

    ahc_dv_1

    bash

    clock-applet

    crond

    cups-config-dae

    cupsd

    2*[dbus-daemon-1]

    dbus-launch

    dhcpd

    gdm-binarygdm-binaryX

        gdmgreeter

      gdm-binarygnome-sessionssh-agent

    2*[sendmail]

    sesam_serversesam_server

      sesam_server9*[sesam_server]

    smbd5*[smbd]

    sshdsshdsshdbashpine-secure.shpine

      sshdsshdbashpine

      3*[sshdsshdbash]  sshdsshdbashxtermbashpstree /3

  • 8/20/2019 Unix 1 Intro Ss12

    18/61

    Dämonen und Zombies

    !  Ein Demon ist ein Programm,das im Hintergrund läuft undDienste zur Verfügung stellt

    !  httpd, crond, cupsd, sshd

    !  Läuft entkoppelt vom

    aufrufenden Prozess!  Direkter Kindprozess des

    Hauptprozesses init

    !  Windows: Systemdienste

    !  Ein Zombie ist ein Prozess,der zwar beendet ist, aber  trotzdem noch im System

    registriert ist.

    !  Das passiert solange bis deraufrufende Prozess

    (Elternprozess) den Statusabfragt

    !   Alternativen dazu sind Adoption und Eliminierung

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    19/61

    Task Liste!  Der Kernel hat eine Liste

    von aktiven Prozessen,

    die “Task List“ .

    !  Jeder Prozess existiert

     

    im Kernel space (processdescriptor) und im

     

    User space (Datensegment,Programm Code).

     Ausgeben mit Befehl ‘ps‘

    [armin@apps1 ~]$ ps

    PID TTY TIME CMD7232 pts/0 00:00:00 bsp17233 pts/0 00:00:00 bsp2

    7277 pts/0 00:00:00 ps31297 pts/0 00:00:00 bash

    /Q;32;

  • 8/20/2019 Unix 1 Intro Ss12

    20/61

    R@65#86'(S6('5# >(' T'O>588N5'M@B6(#)

    !  T'O>5886@75BB5 "# U"#(P

    75865&6 @(8 !"#6'V)5# ?5'

    !"#$%#!&'(! H6'(S6('!

     

    W@75BB5 &@6 5"#5# !"#6'@)

    J'O B@($5#?5: T'O>588

    !  -::5' '58"?5#6

    !  X5'S5A56 T'O>5885 "#  Y(5(58 Z>242 '(# [(5(5\

     

    !B65'#]^"#? _"5'@C&"5#

    #!&'(! !"#$%#!&'(! *+,-"!.-/ -,01 #!"!/2 34 56 '0&'00"7-/8

    9 9 9 : &'00"7-/8 ;: #!,

  • 8/20/2019 Unix 1 Intro Ss12

    21/61

    Starten von Programmen in UNIX 

    !   Aufruf indirekt über die Shell

     

    Eingeben des Programmnamens (Benutzer)

     

    Registrieren eines neuen Prozesses (Shell)

     

    Laden des Programmcodes (Kernel)

     Übergabe des Prozessors an den neuen

    Prozess durch den Scheduler (Kernel)!

     

     Aufruf direkt durch den system call (z.B. execve)

    ,5(5' T'O>588 5'76 `5C&65L`58O('C5# NO: @($'($5#?5# T'O>5882

    1/;32;

  • 8/20/2019 Unix 1 Intro Ss12

    22/61

    Scheduling

    !  Wenn sich mehrere Prozesse eine CPU teilen,

    wählt das Betriebssystem den auszuführendenProzess für die nächste Zeitscheibe aus.

    Dieser Teil des Betriebssystems heißt Scheduler .

    !  Wie die Auswahl getroffen wird bestimmt derScheduling Algorithmus.

    Ziel des Scheduling ist es, die Rechenzeit desCPU optimal auszunutzen.

    11;32;

  • 8/20/2019 Unix 1 Intro Ss12

    23/61

    Vorder- und Hintergrundprozesse

    Vordergrundprozess blockiert die Eingabe an der Shell

    Hintergrundprozess läuft transparent für den Benutzer!   Absetzen eines Hintergrundprozesses mit ‘&‘.

    !  Terminologie nur im Zusammenhang mit der Shellsinnvoll, für den Scheduler

    sind alle Prozess gleich!!

     

     Alle von einer Shellaufgerufenen Prozessesind in deren jobs Liste.

    $ emacs &

    [1] 20847$ psPID TTY TIME CMD

    1820 pts/6 00:00:00 bash20847 pts/6 00:00:00 emacs

    20848 pts/6 00:00:00 ps 

    1

  • 8/20/2019 Unix 1 Intro Ss12

    24/61

    Terminals!  Der Kernel enthält

    eine Menge an

    physischen undvirtuellen Terminals.

    !  Jeder Prozess ist über pipes zu einem Terminal verbunden,entweder lokal (ttyX ) oder remote ( ptsX ).

    !  Die Verbindung ist die Standard Ein-/Ausgabe.

    1=;32;

  • 8/20/2019 Unix 1 Intro Ss12

    25/61

    Standard Ein-/Ausgabe

    !  Standardeingabe (stdin, 0) üblicherweise mit der

    Tastatur verbunden; Umleitung mit „“

    Standarderror (stderr, 2) üblicherweise mit demBildschirm verbunden; Umleitung mit „2>“

    Prozessstdin stdout

    stderr

  • 8/20/2019 Unix 1 Intro Ss12

    26/61

    Umleitung von pipes

    Zeichen , 2>, >>

    Die Umleitung wird durch die Shell durchgeführt.

    $ ls > outfile$ cat < infile$ gcc 2> errorfile$ ls >> append_to_outfile

     

    $ sort < chaos > order 2> errors$ ls *.c >> c_files

     

  • 8/20/2019 Unix 1 Intro Ss12

    27/61

    Unnamed Pipes

    !  Verbinden Prozesse mit einemunidirektionalen FIFO Kanal

    !  Werden mit dem ‚|‘ Operator instanziiert:

    Exkurs: Design pattern pipes-and-filters kommt oft in Scripts vor

    Filter : Ein Filter ist ein Verarbeitungsschritt. EingehendeDaten werden umgewandelt und ausgegeben

    Pipes: Eine Pipe stellt eine Verbindung zwischen den

    einzelnen Verarbeitungsschritten

    $ cmd_1 file | cmd_2 | ... | cmd_n

    $ cat /etc/passwd | grep :: | sort

  • 8/20/2019 Unix 1 Intro Ss12

    28/61

    Inhalt

    !  UNIX Systeme

    Login!  Prozesse

      Signale

    !  Files & Directories

    Shell Kommandos

    10;32;

  • 8/20/2019 Unix 1 Intro Ss12

    29/61

    Signale!  Signale sind asynchrone Ereignisse und bewirken eine

    Unterbrechung auf des Programmablaufs.

    Ein unterbrochener Prozess kann auf ein Signal reagieren:

     

     Ausführen einer benutzerdefinierten Funktion

     

    Ignorieren des Signals

      Die voreingestellte Standardaktion verwenden

    !

     

    Signalnummer wird im entsprechenden Prozesstabelleneintraghinterlegt ( „pending signal“ ).

    !  Der Kernel stellt dem Prozess beim Scheduling das Signal zu

    !   Anhand einer Tabelle von Zeigern auf Funktionen wird überprüft,wie auf das Signal reagiert wird.

  • 8/20/2019 Unix 1 Intro Ss12

    30/61

    Signale (kill –l)!"#$%&'() +,-,.'.$# !

    /

    0$1,$-.$# 23

    H-a^-UU (#C@6C&@7B5

    65':"#@bO#

    W R"5#6 >(: T'O>588@77'(C& Z>242 @7 ^O::@#?O>5"B5

    :"6 45$5&B cS"BBd\2 ,(' H6@#?@'?'5@SbO# :e)B"C&f

    Q

    H-aW!`g C@6C&@7B5

    65':"#@bO#

    W h"5 H-a^-UUI i5?OC& 8"#? @(C& @#?5'5 `5@SbO#5#

    @B8 ?"5 H6@#?@'?'5@SbO# >(BV88")2

    /D

    H-aH!aX 85):5#6@bO#

    N"OB@bO#

    j h"'? 5'>5()6I M5## 5"# (#5'B@(765' HJ5"C&5'>()'"k

    N5'8(C&6 M"'? ZHC&(6>N5'B56>(#)\

    //

    H-aT-T! 7'OS5# J"J5 W h"'? 5'>5()6I M5## "# T"J5 )58C&'"575# M"'?I ?5'5#

    F(8)@#) )58C&BO885# "86 ZS5"#5 U585' NO'&@#?5#\

    /<

    H-aj_UR C&"B? 86OJJ5?

    O'

    65':"#@65?

    - h"'? 5'>5()6I M5## 5"# ^"#?J'O>588 65':"#"5'6 O?5'

    )586OJJ6 M"'? Z)5&6 @# !B65'#J'O>588\

    /3

    H` l H6@#?@'?'5@SbO#K j $%' W5':"#"5'(#) :"6 jO'5 R(:JI W

    $%' W5':"#"5'(#) O jO'5 R(:JI - $%' -)#O'"5'5# ?58 H")#@B8

  • 8/20/2019 Unix 1 Intro Ss12

    31/61

    Signale zum Beenden von Prozessen

    !  Normales Beenden mit SIGTERM

    !  Mit dem „Holzhammer“ wenn er sich weigert!

    !   Alle Kindprozesse einer Shell und die Shell selbst beenden:

    $ kill –TERM 1234$ kill –15 %1

     

    $ kill –9 1234$ kill –KILL %1

    $ exec kill –9 0 

  • 8/20/2019 Unix 1 Intro Ss12

    32/61

    Signale mit der Tastatur erzeugen

    !  stoppt den aktuellen Vordergrundprozess

     fg [%n] holt den n. Job in den Vordergrund

     

    bg [%n] setzt den n. Job im Hintergrund fort

     jobs zeigt alle gestoppten Jobs und alle

    Hintergrundprozesse an

    terminiert den aktuellen Vordergrundprozess

    erzeugt ein End-Of-File (EOF) Token(Kein Signal!)

  • 8/20/2019 Unix 1 Intro Ss12

    33/61

    Inhalt

    !  UNIX Systeme

    Login!  Prozesse

    !  Signale

      Files & Directories

    Shell Kommandos

  • 8/20/2019 Unix 1 Intro Ss12

    34/61

    Files & Directories

    !  Filenamen bis zu 255 Zeichen lang

    Filenamen „formatfrei“ (nicht wie in DOS .comoder .exe)

    !  Directories baumförmig organisiert

    „Root Directory“ heißt „/“

    Filenamen sind durch „/“ getrennt (nicht „\“)!  Directory Einträge zeigen auf sogenannte I-Nodes

    !  I-Nodes enthalten alle Information über das File,außer dem Namen

  • 8/20/2019 Unix 1 Intro Ss12

    35/61

     Aufbau des Filesystems!  _"5'@'C&"8C&5 H6'(S6('

    NO# R@65"5#

    !  X5'8C&"5?5#865 R@65"69J5#

    "# 5"#5' )5:5"#8@:5#X5'>5"C"886'(S6('K4!"!#$%&'() '+ , -.!/  

      JB@"# mB58 Z86'5@: O$ C&@'@C65'8\

      ?"'5C6O'"58 Z-#65'J'56@bO# ?('C& ?@8 nH\

     

    C&@'@C65']I 7BOCS 8J5C"@B mB58 Za5'V65o >242 W5':"#@BI p586JB@A5\

      #@:5? J"J58

      8OCS568 Z>242 WjTL-T 8OCS568I +,-. ?O:@"# 8OCS568\

      89:7OB"C B"#S8 ZX5'M5"85\

  • 8/20/2019 Unix 1 Intro Ss12

    36/61

    gO(#65# NO# R@65"89865:5#

    242 (#65'8C&2

    T@'bbO# O?5' p586JB@A5I

    h5C&85B?@65#6'V)5'\I

      N5'$%)7@' 7"% 2,';1,36 

    Z>242 %75' ,pH\I

      O?5' 75m#?56 8"C& 85B786

    "$ ,"$,< ="&, Z>242 "##$ %&'()& $%' -Hn]-:@)58\

    !  >53',"&? (#65'8C&2 p"B589865:5

    )B5"C&>5"b) N5'M5#?7@'

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    37/61

    X"'6(5BB58 p"B589865: ZXpH\!  r /D J&98"S@B"8C&5 R@65"89865:5 (#65' U"#(P "# X5'M5#?(#)

     

    ^O:J@b7"B"6V6 >( @#?5'5# H9865:5#

    Z>242 ,WpHI pFW\

     

    H"C&5'&5"6I q(N5'BV88")S5"6 ?5' R@65#

    Z>242 !P6(8V6>B"C&5# F786'@SbO#8575#5

     

    5"#&5"6B"C&5 HC"A865BB5 Z8(J5' 7BOCSI "#O?5I X5'>5"C"885I R@65"5#\

      6'@#8J@'5#658 gO(#65# N5'8C&"5?5#5' J&98"S@B"8C&5' R@65"89865:5 ZT@'bbO#5#\ "# 5"#5

    R"'5C6O'9]H6'(S6(' 

  • 8/20/2019 Unix 1 Intro Ss12

    38/61

    H6'(S6(' 5"#5' T@'bbO#

    !  R5' H(J5'7BOCS 5#6&VB6 ?"5 )'(#?B5)5#?5#

    -#$O':@bO#5# >(: R@65"89865:2

    s5?5 @%3AA5$ Zp586JB@A5\ ,$'BC&' 5"# R@65"89865:I

    ?"5858 D%',"E(E',5"C"8I ?"5 *+#%& ,(-.&2

    !  R"5 5"#>5B#5# !B5:5#65 ?5' *+#%&/,(-.& 8"#? ?"5

    D%',"6F)8,I @B8O ?"585 H6'(S6('5# ,$'B%&',$ D%',"%G3":.',I a'et5 (8M2 )58J5"C&5'6 8"#?2

    !  R"5 5"#>5B#5# -#O?58 N5'M5"85# ?"'5S6 7>M2 "#?"'5S6

    @($ ?"5 HJ5"C&5'7BeCS5 ": R@65#75'5"C&2

  • 8/20/2019 Unix 1 Intro Ss12

    39/61

    -#O?58 (#? 86@6

    !  R5' H9865:C@BB !"#" '(G ?5#

    -#O?5"#$O':@bO# 5"#5' R@65" @7

    ZD"0 F6GHI #!"!\

    !  R"5 H6'(S6(' Z#!&'(!

    #!"!\ 5#6&VB6 #('

    5"#5# W5"B ?58

    -#O?58 Z#!&'(!.0,=/\

    !  F($'($ ?5'

    -#O?5 ,(::5'K

    -# 5.

    #!&'(! #!"! *=/+%! #!%=/+2 34 =/+.(/ 43.0,%! #!%.0,2 34 .0,=/ 43D,=/%! #!%D,=/2 34 /"= .%-.#!2#!&'(! C.-/%,

  • 8/20/2019 Unix 1 Intro Ss12

    40/61

    45"8J"5BK !P61 -#O?5!  VB"C&5 -#$O':@bO# M"5 "# XpH "]#O?58 Zq()'"k8'5C&65I a'et5I u\

    !  >(8V6>B"C& q5")5' @($ R@65#7BeCS5 ?5' R@65"

    !  ?"'5S65 q5")5'I

    "#?"'5S65 q5")5' (#?!  >M5"$@C& "#?"'5S65 q5")5'

    =;;32;

  • 8/20/2019 Unix 1 Intro Ss12

    41/61

    Beispiel zur Navigation

    $ cd

    $ pwd

    /home/users/sysprog/702/s0126123

    $ ls

    Mydir/  test.c

    $ cd Mydir

    $ pwd/home/users/sysprog/702/

    s0126123/Mydir

    $ _  

    !  Wechselt ins home – Verzeichnis

    !  Zeigt akutelles Verzeichnis an

    !  Zeigt den Inhalt des aktuellenVerzeichnisses an

    !  Wechselt ins Verzeichnis ‚Mydir‘

    Zeigt aktuelles Verzeichnis an

    =/;32;

  • 8/20/2019 Unix 1 Intro Ss12

    42/61

    Filenamen!

     

    Absolute

    Dateinamen

    beginnen mit / undbeziehen sich aufdas Root Directory

    Relative

    Dateinamen

    beginnennicht 

     mit /und beziehen sichauf das aktuelleDirectory

    =1

    $ more /etc/printcap$ cat /etc/profile

    $ more test.c$ cat ../../tmp/tmp00

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    43/61

    Zugriffskontrolle (1)

    !  3 Klassen von

    Personen 

    Besitzer (Erzeuger)(user )

     

    Gruppe(group)

     

     Andere(other )

    !  3 Arten von Zugriffen

     

    Lesen(r ead )

     

    Schreiben(write)

     

     Ausführen

    (execute)

    =<

    Diese können unabhängig voneinander vergeben werden(nur vom Besitzer bzw. root)

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    44/61

    Zugriffskontrolle (2)Zugriffsmatrix:

    % 012 012 012

    3(0&).#04 0 -&0 10#5$ 2.6&0-

    $ ls –l Makefile-rw-r--r-- 1 s0126123 sys00 130 Feb 12 23:55 Makefile

    $ ls –l /bin/rm-rwxr-xr-x 2 bin bin 24576 Apr 12 1999 /bin/rm

    $ ls –ld privat

    drwx------ 1 s0126123 sys00 2804 Feb 1 17:15 privat

    ==;32;

  • 8/20/2019 Unix 1 Intro Ss12

    45/61

    Zugriffkontrolle (3)

    !   Ändern der Permissions mit chmod:

    $ chmod  permissions file [file ...]$ chmod 644 Makefile

    $ chmod 755 /bin/rm

    $ chmod 700 privat

    $ chmod u=r,go=rwx privat$ chmod u+rwx,g-rwx privat

    Nur der Eigentümer oder root kann die Permissions ändern!

    4 2 1

    r w x

    =D;32;

  • 8/20/2019 Unix 1 Intro Ss12

    46/61

    Zugriffskontrolle (4)

    Bedeutung rwx bei Directories:

    „read“: Liste der Einträge kann gelesen werden z.B.ls (nur wenn zusätzlich execute gesetzt ist).

    !  „write“: Im Directory können Files angelegt und

    gelöscht werden.

    !  „execute“: Zugriffe in dieses Verzeichnis sind erlaubt

    und das Wechseln in dieses Verzeichnis ist möglich.

    =E;32;

  • 8/20/2019 Unix 1 Intro Ss12

    47/61

    Zugriffskontrolle (5)!  Sticky bit (t). Historisch: ausführbare Programme bleiben im

    Speicher und müssen nicht bei jedem Aufruf neu geladen werden

    !

     

    setuid (set user id): Programm wird mit Rechten des Eigentümersund nicht des Aufrufers ausgeführt

    !  setgid (set group id) bit: Programm wird mit Rechten der Gruppeund nicht des Aufrufers ausgeführt

    In gemeinsam genutzten Verzeichnissen darf nur derEigentümer einer Datei oder des Verzeichnisses Dateien einesUsers löschen/bearbeiten

    !  Ein Prozess unter dem User oder der Gruppe der aufgerufenenProgrammdatei ausgeführt

    =3;32;

  • 8/20/2019 Unix 1 Intro Ss12

    48/61

    Wildcards (1)

    Wildcards sind Platzhalter für andere Zeichen, z.B. *  steht für eine beliebige Zeichenfolge (auch

    die leere Zeichenfolge) 

    ?  steht für ein beliebiges Einzelzeichen [xyz]  steht entweder für „x“ oder „y“ oder „z“[a-i]  steht für ein Zeichen aus {„a“, „b“, ..., „i“}

    !

     

    Die Interpretation der Metazeichen erfolgt durch die Shell!  Metazeichen können als normale Zeichen verwendet werden, wenn

    man sie in einfache oder doppelte Anführungszeichen stellt odereinen Backslash „\“ davorstellt

    =0;32;

  • 8/20/2019 Unix 1 Intro Ss12

    49/61

    Wildcards (2)$ ls

    Hugo hugo2 proG.c prog.c prog t1

    t2 t3 t4 test1 test1.cwird expandiert zu * (alle obigen files) t* t1 t2 t3 t4 test test.c

    t? t1 t2 t3 t4

    pr*.c proG.c prog.c

    t[12] t1 t2

    *[1-4].c test1.c 

    =Q;32;

  • 8/20/2019 Unix 1 Intro Ss12

    50/61

    Shellvariablen!  Es gibt nur den Typ String

    Werden durch die erste Zuweisung erzeugt

    $ export FILE=/tmp/dummy.txt[Kein Leerzeichen vor und nach „=“]

    $ ls /tmp

    dummy.txt dummy.txt.bak$ rm $FILE ${FILE}.bak

    !   Ausgeben einer Variablen mit

    $ echo $FILED;;32;

  • 8/20/2019 Unix 1 Intro Ss12

    51/61

    Systemvariablen$HOME Homedir

    $PATH Suchpfad für Programme

    $PS1 Prompt (meist $)$PS2 zweiter Prompt (meist >)

    $USER Benutzername

    $$ Prozeßnummer (für temp files)

    $? Status des letzten Kommandos

    env…Kommando zum Ausgeben aller Umgebungsvariablen

    D/;32;

  • 8/20/2019 Unix 1 Intro Ss12

    52/61

    Inhalt

    !  UNIX Systeme

    !

     

    Login!  Prozesse

    !  Signale

    !  Files & Directories

    Shell Kommandos

    D1;32;

  • 8/20/2019 Unix 1 Intro Ss12

    53/61

    Shell Befehle

    @35#3%< H()"I%& .E,

    C@6 jO#C@65#@65 mB58 6O 86?O(6

    C&:O? j&@#)5 mB5 J'O65CbO# :O?5

    CJ jOJ9 mB58

    )'5J H5@'C& mB5 $O' 8O:5 J@A5'#

    B8 U"86 ?"'5C6O'9

    )CC jO:J"B5 mB58 6O 7("B? @ 7"#@'9"JC8 T'ON"?5 "#$O':@bO# O# -Tj

    D<

    @35#3%< H()"I%& .E,

    :@S5 g@#@)5 85N5'@B 8O('5 mB58

    :S?"' g@S5 @ ?"'5C6O'9

    J8 U"86 '(##"#) J'OC58858

    J86'55 U"86 '(##"#) J'OC58858 "# @ 6'55

    ': `5:ON5 @ mB5

    ':?"' `5:ON5 @ ?"'5C6O'98O'6 HO'6 @ mB5 O$ B"#58

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    54/61

    Online Manual

    Manualseiten gibt es auch online!$ man 3 printf

    $ man 3 intro

    $ apropos editorSections:1.

     

    Commands2.

     

    System Calls3.  Library Functions4.  Special Files (kaum

    wichtig)

    5. 

    File Formats6.  Spiele (leider) nicht installiert7.  Miscellaneous information8.  System maintenance

    Mit man n intro bekommt man eine Übersicht über die Section n.

    D=;32;

  • 8/20/2019 Unix 1 Intro Ss12

    55/61

    mv und cp!  Mit cp kann man Files

    kopieren.

    DD

    $ lsPROGS a.out test.c$ mv a.out PROGS/test$ mv test.c PROGS

    $ lsPROGS$ ls PROGStest test.c 

    $ lsPROGS$ ls PROGStest test.c$ cp PROGS/test.c .

    $ lsPROGS test.c

    !  Mit mv Files unddirectories umbenennenbzw. verschieben.

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    56/61

    ln und ls

    !  Mit ln wird ein link auf einFile oder Directory gemacht

    DE

    $ ln quelle ziel

    $ ls

    PROGS a.txt

    $ ln a.txt b.txt$ ln –s PROGS P

    $ ls

    P PROGS a.txt b.txt

    $ ls –a

    . .. P

    Progs a.txt b.txt

    $ ls –ld PROGSdrwxr-x--- 3 s0126123 700

    8192 Jan 30 12:43 PROGS

    !  Mit ls kann der Inhalt einesDirectories angezeigt

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    57/61

    mkdir und rmdir

    D3

    $ mkdir dirname

    $ ls

    PROGS a.txt

    $ mkdir MeineCProgs

    $ lsMeineCProgs PROGS a.txt

    $ ls

    MeineCProgs PROGS a.txt

    $ rmdir PROGS

    rmdir: File exists

    $ rmdir MeineCProgs$ ls

    PROGS a.txt

    !  Mit mkdir wird einDirectory erzeugt

    !  Mit rmdir wird einDirectory gelöscht

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    58/61

    rm und cat!  Mit rm wird ein File

    gelöscht

    Vorsicht!

    $ rm ${VAR}* D0

    $ lsPROGS a.txt

    $ rm a.txt

    $ ls

    PROGS 

    $ lsGemuese.txt Obst.txt

    $ cat Obst.txt

    Apfel; Birne; Kirsche;

    !  Mit cat kann man denInhalt einer (Text) Dateiauf dem Bildschirm

    ausgeben

    Scrollen mit “…| more“ oder “…| less“.

     

    ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    59/61

    Editoren

    emacs

    !  Emacs benutzt Metataste (strg, esc) umKommandos auszuführen:C-X C-c # close down emacs [C=Strg] 

    !  Erweiterbar und anpassungsfähig

    vi [vim]!  Editor Modus und Kommando Modus:

    i # start editing 

    !  Kleine Größe, nur Textmodus

    http://en.wikipedia.org/wiki/Editor_war#Humor

    DQ;32;

  • 8/20/2019 Unix 1 Intro Ss12

    60/61

    Zusammenfassung!  Wie ist ein UNIX System aufgebaut?

    !  Was passiert beim Login?

    Was ist eine ‚Shell‘?

    !  Wie funktioniert die Zugriffskontrolle?

    !  Wie kann ich einem Prozess Befehle geben?

    Wie arbeite ich beim Entwickeln eines Programms?

    !  Welches ist der bessere Editor, vi oder emacs?

    E;;32;

  • 8/20/2019 Unix 1 Intro Ss12

    61/61

    ENDE 

    Danke für die

     Aufmerksamkeit!