einführung in unix · dämonen und zombies ein demon ist ein programm, das im hintergrund läuft...
Post on 24-Mar-2020
3 Views
Preview:
TRANSCRIPT
Das Bild kann nicht angezeigt werden. Dieser Computer verfügt möglicherweise über zu wenig Arbeitsspeicher, um das Bild zu öffnen, oder das Bild ist beschädigt. Starten Sie den Computer neu, und öffnen 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.
Einführung in UNIX 182.711 Betriebssysteme UE
Armin Wasicek SS 2012
Inhalt
- UNIX Systeme Login Prozesse Signale Files & Directories Shell Kommandos
2 07.03.12 Einführung in UNIX
Aufbau eines UNIX Systems (1)
Hardware • Computersystem
(CPU, Speicher) • Peripheriegeräte
(zur Eingabe, Ausgabe)
Software • Betriebsystem
(Kernel + Gerätetreiber) • Benutzerprogramme
(Shell, Compiler, Browser, etc.)
3 07.03.12 Einführung in UNIX
Aufbau eines UNIX Systems (2)
UNIX ist ein Mehrbenutzer und Mehrprozess Betriebssystem. .
4
UNIX unterstützt die gemeinsame Benutzung der BetriebsmiAel durch mehrere Benutzer
07.03.12 Einführung in UNIX
Aufbau eines UNIX Kernels (3)
P roces s management c omponent
S ignal handling
P rocess/Thread creation/termination
C PU S cheduling
Memory management c omponent
Virtual memory
P aging page replacement
P age cache
IO and networking c omponent
S ockets
Network s tacks
Network device drivers
Terminals
line
discipline
C haracter devices drivers
F ile systems
Generic block layer
B lock device drivers
IO scheduler
Virtual file system
S ystem call interface
Interrupts D ispatcher
5 07.03.12 Einführung in UNIX
Was ist ein Betriebssystem?
a) Erweiterte Maschine
Abstraktion zur Verringerung der Komplexität der Hardware
Bereitstellen von Schnittstellen und APIs für Applikationen (Systemcall Interface)
b) Ressourcen Manager Aufteilen (Multiplexen)
und verwalten von Ressourcen
Über Zeit: Rechenzeit, Netzwerkzugriff
Über Raum: Speicher, Ein-/Ausgabegeräte (z.B. Fenster am Monitor)
07.03.12 6 Einführung in UNIX
Geschichte von UNIX (1)
AGer Silbermann, 2006
7 07.03.12 Einführung in UNIX
Geschichte von UNIX (2)
Source: http://de.wikipedia.org/wiki/Geschichte_von_Unix See also: hAp://www.levenez.com/unix/ 07.03.12 8 Einführung in UNIX
Inhalt
UNIX Systeme - Login Prozesse Signale Files & Directories Shell Kommandos
9 07.03.12 Einführung in UNIX
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
10 07.03.12 Einführung in UNIX
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“)
11 07.03.12 Einführung in UNIX
Wie findet man ein fremdes Passwort 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
12 07.03.12 Einführung in UNIX
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/ 13 07.03.12 Einführung in UNIX
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 einem Bindestrich
$ Befehl [Optionen] [Files] ... $ ls –l test.c a.out $ cd /tmp $ pwd
14 07.03.12 Einführung in UNIX
Inhalt
UNIX Systeme Login - Prozesse Signale Files & Directories Shell Kommandos
15 07.03.12 Einführung in UNIX
Prozesse
Ein 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:
16 07.03.12 Einführung in UNIX
Prozesshierachien (pstree) init─┬─acpid
├─ahc_dv_0
├─ahc_dv_1
├─bash
├─clock-applet
├─crond
├─cups-config-dae
├─cupsd
├─2*[dbus-daemon-1]
├─dbus-launch
├─dhcpd
├─gdm-binary─┬─gdm-binary─┬─X
│ │ └─gdmgreeter
│ └─gdm-binary───gnome-session───ssh-agent
├─2*[sendmail]
├─sesam_server─┬─sesam_server
│ └─sesam_server───9*[sesam_server]
├─smbd───5*[smbd]
├─sshd─┬─sshd───sshd───bash───pine-secure.sh───pine
│ ├─sshd───sshd───bash───pine
│ ├─3*[sshd───sshd───bash]
│ └─sshd───sshd───bash───xterm───bash───pstree 17
Dämonen und Zombies
Ein Demon ist ein Programm, das im Hintergrund läuft und Dienste 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 der aufrufende Prozess (Elternprozess) den Status abfragt
Alternativen dazu sind Adoption und Eliminierung
07.03.12 18 Einführung in UNIX
Task Liste
Der Kernel hat eine Liste von aktiven Prozessen, die “Task List“ .
Jeder Prozess existiert - im Kernel space (process
descriptor) und im - User space (Datensegment,
Programm Code).
Ausgeben mit Befehl ‘ps‘
[armin@apps1 ~]$ ps PID TTY TIME CMD 7232 pts/0 00:00:00 bsp1 7233 pts/0 00:00:00 bsp2 7277 pts/0 00:00:00 ps 31297 pts/0 00:00:00 bash
19 07.03.12 Einführung in UNIX
Datenstrukturen zur Prozessverwaltung
Prozesstabelle in Linux besteht aus Einträgen der task_struct Struktur
Tabelle hat einen Eintrag pro laufendem Prozess
Immer resident
VerkeAet Prozesse in - Queues (z.B. run queue) - Eltern‐Kind Hierachien
struct task_struct { volatile long state; /* ‐1 unrunnable, . . . 0 runnable, >0 stopped */ struct list_head run_list; struct task_struct *next_task, *prev_task; . . . /* task state */ int exit_code, exit_signal; pid_t pid; . . . /* pointers to (original) parent process, etc.*/ struct task_struct *p_opptr, *p_pptr, . . . *p_cptr, *p_ysptr, *p_osptr; /* open file information */ struct files_struct *files; . . . /* signal handlers */ struct signal_struct *sig; }
07.03.12 20 Einführung in UNIX
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)
Neuer Prozess erbt Rechte/Resourcen vom aufrufenden Prozess.
21 07.03.12 Einführung in UNIX
Scheduling
Wenn sich mehrere Prozesse eine CPU teilen, wählt das Betriebssystem den auszuführenden Prozess für die nächste Zeitscheibe aus.
Dieser Teil des Betriebssystems heißt Scheduler.
Wie die Auswahl getroffen wird bestimmt der Scheduling Algorithmus.
Ziel des Scheduling ist es, die Rechenzeit des CPU optimal auszunutzen.
22 07.03.12 Einführung in UNIX
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 Shell sinnvoll, für den Scheduler sind alle Prozess gleich!
Alle von einer Shell aufgerufenen Prozesse sind in deren jobs Liste.
$ emacs & [1] 20847 $ ps PID TTY TIME CMD 1820 pts/6 00:00:00 bash 20847 pts/6 00:00:00 emacs 20848 pts/6 00:00:00 ps
23 07.03.12 Einführung in UNIX
Terminals
Der Kernel enthält eine Menge an physischen und virtuellen Terminals.
Jeder Prozess ist über pipes zu einem Terminal verbunden, entweder lokal (ttyX) oder remote (ptsX).
Die Verbindung ist die Standard Ein-/Ausgabe.
24 07.03.12 Einführung in UNIX
Standard Ein-/Ausgabe
Standardeingabe (stdin, 0) üblicherweise mit der Tastatur verbunden; Umleitung mit „<“
Standardausgabe (stdout ,1) üblicherweise mit dem Bildschirm verbunden; Umleitung mit „>“
Standarderror (stderr, 2) üblicherweise mit dem Bildschirm verbunden; Umleitung mit „2>“
Prozess stdin stdout
stderr
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
Unnamed Pipes
Verbinden Prozesse mit einem unidirektionalen FIFO Kanal
Werden mit dem ‚|‘ Operator instanziiert:
Exkurs: Design pattern pipes-and-filters kommt oft in Scripts vor
Filter: Ein Filter ist ein Verarbeitungsschritt. Eingehende Daten 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
Inhalt
UNIX Systeme Login Prozesse - Signale Files & Directories Shell Kommandos
28 07.03.12 Einführung in UNIX
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 Prozesstabelleneintrag hinterlegt („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.
Signale (kill –l) Signaltyp Bedeutung S
RAnwendung Nr
SIGKILL uncatchable terminabon
T Dient zum Prozessabbruch (z.B. ab Kommandozeile mit Befehl »kill«). Nur Standardreakbon möglich!
9
SIGTERM catchable terminabon
T Wie SIGKILL, jedoch sind auch andere Reakbonen als die Standardreakbon zulässig.
15
SIGSEGV segmentabon violabon
C Wird erzeugt, wenn ein unerlaubter Speicherzugriff versucht wird (Schutzverletzung)
11
SIGPIPE broken pipe T Wird erzeugt, wenn in Pipe geschrieben wird, deren Ausgang geschlossen ist (keine Leser vorhanden)
13
SIGCHLD child stopped or terminated
I Wird erzeugt, wenn ein Kindprozess terminiert oder gestoppt wird (geht an Elternprozess)
17
SR = Standardreakbon: C für Terminierung mit Core Dump, T für Terminierung ohne Core Dump, I für Ignorieren des Signals 30
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
31 07.03.12 Einführung in UNIX
Signale mit der Tastatur erzeugen
<Ctrl-Z> 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
<Ctrl-C> terminiert den aktuellen Vordergrundprozess
<Ctrl-D> erzeugt ein End-Of-File (EOF) Token (Kein Signal!)
Inhalt
UNIX Systeme Login Prozesse Signale - Files & Directories Shell Kommandos
33 07.03.12 Einführung in UNIX
Files & Directories
Filenamen bis zu 255 Zeichen lang Filenamen „formatfrei“ (nicht wie in DOS .com
oder .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 34 07.03.12 Einführung in UNIX
Aufbau des Filesystems Hierarchische Struktur
von Dateien
Verschiedenste Dateitypen in einer gemeinsamen Verzeichnisstruktur: „everything is a file“
- plain files (stream of characters) - directories (Interpretabon durch das OS) - character‐, block special files (Geräte; z.B. Terminal, FestplaAe) - named pipes - sockets (z.B. TCP/IP sockets, UNIX domain sockets) - symbolic links (Verweise)
35
/bin /dev /etc /var commands devices startup and
configurabon files
/lib /man /local
/
/usr
07.03.12 Einführung in UNIX
Mounten von Dateisystemen
36
Zusammenfassen mehrerer File‐Systeme in einer Verzeichnisstruktur Eingebundenes Dateisystem ist entweder:
- lokal verfügbar (z.B. untersch. Parbbon oder FestplaAe, Wechseldatenträger),
- verfügbar via Netzwerk (z.B. über NFS),
- oder befindet sich selbst in einem File (z.B. loop device für ISO‐Images)
Vorteil: untersch. Filesysteme gleichzeibg verwendbar
07.03.12 Einführung in UNIX
Virtuelles Filesystem (VFS) > 15 physikalische Dateisysteme unter Linux in Verwendung
- Kompabbilität zu anderen Systemen (z.B. NTFS, FAT)
- Sicherheit, Zuverlässigkeit der Daten (z.B. Ext3, ReiserFS)
- Performance (z.B. XFS)
Einführung einer zusätzlichen Abstrakbonsebene - einheitliche SchniAstelle (super block, inode, Verzeichnisse, Dateien) - transparentes Mounten verschiedener physikalischer Dateisysteme (Parbbonen) in eine
Directory‐Struktur
37 07.03.12 Einführung in UNIX
Struktur einer Parbbon
Der Superblock enthält die grundlegenden Informabonen zum Dateisystem.
Jede ParAAon (FestplaAe) enthält ein Dateisystem, dieses Dateisystem wiederum enthält eine Art Inhaltsverzeichnis, die Inode Liste.
Die einzelnen Elemente der Inode‐Liste sind die Dateiköpfe, also diese Strukturen enthalten DateiaGribute, Größe usw. gespeichert sind.
Die einzelnen Inodes verweisen direkt bzw. indirekt auf die Speicherblöcke im Datenbereich.
38 07.03.12 Einführung in UNIX
Inodes und stat
Der Systemcall stat ruG den Inodeinformabon einer Datei ab (man [1|2] stat)
Die Struktur (struct stat) enthält nur einen Teil des Inodes (struct inode)
Aufruf der Inode Nummer: ls ‐i
struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device type (if inode device) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for filesystem I/O */ blkcnt_t st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last status change */ };
struct inode { struct super_block *i_sb; struct list_head i_list; struct file_operations *i_fop; unsigned long i_ino; umode_t i_mode; unsigned int i_nlink uid_t i_uid; gid_t i_gid; ... }
07.03.12 39 Einführung in UNIX
Beispiel: Ext2 Inode ähnliche Informabon wie in VFS i‐nodes (Zugriffsrechte, Größe, …) zusätzlich Zeiger auf Datenblöcke der Datei
direkte Zeiger, indirekte Zeiger und zweifach indirekte Zeiger
40 07.03.12 Einführung in UNIX
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 aktuellen Verzeichnisses an
← Wechselt ins Verzeichnis ‚Mydir‘ ← Zeigt aktuelles Verzeichnis an
41 07.03.12 Einführung in UNIX
Filenamen Absolute
Dateinamen beginnen mit / und beziehen sich auf das Root Directory
Relative Dateinamen beginnen nicht mit / und beziehen sich auf das aktuelle Directory
42
$ more /etc/printcap $ cat /etc/profile
$ more test.c $ cat ../../tmp/tmp00
07.03.12 Einführung in UNIX
Hinweis: Autovervollständigen auf der Kommandozeile mit <tab>
Zugriffskontrolle (1)
3 Klassen von Personen - Besitzer (Erzeuger)
(user) - Gruppe
(group) - Andere
(other)
3 Arten von Zugriffen - Lesen
(read) - Schreiben
(write) - Ausführen
(execute)
43
Diese können unabhängig voneinander vergeben werden (nur vom Besitzer bzw. root)
07.03.12 Einführung in UNIX
Zugriffskontrolle (2)
Zugriffsmatrix:
d rwx rwx rwx Directory User Group Others
$ 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
44 07.03.12 Einführung in UNIX
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
45 07.03.12 Einführung in UNIX
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.
46 07.03.12 Einführung in UNIX
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ümers und nicht des Aufrufers ausgeführt
setgid (set group id) bit: Programm wird mit Rechten der Gruppe und nicht des Aufrufers ausgeführt
In gemeinsam genutzten Verzeichnissen darf nur der Eigentümer einer Datei oder des Verzeichnisses Dateien eines Users löschen/bearbeiten
Ein Prozess unter dem User oder der Gruppe der aufgerufenen Programmdatei ausgeführt
47 07.03.12 Einführung in UNIX
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 oder einen Backslash „\“ davorstellt
48 07.03.12 Einführung in UNIX
Wildcards (2)
$ ls Hugo hugo2 proG.c prog.c prog t1 t2 t3 t4 test1 test1.c
wird 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
49 07.03.12 Einführung in UNIX
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 $FILE
50 07.03.12 Einführung in UNIX
$ export FILE=/tmp/dummy.txt
$ ls /tmp dummy.txt dummy.txt.bak $ rm $FILE ${FILE}.bak
$ echo $FILE
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
51 07.03.12 Einführung in UNIX
Inhalt
UNIX Systeme Login Prozesse Signale Files & Directories Shell Kommandos
52 07.03.12 Einführung in UNIX
Shell Befehle
Program Typical use
cat Concatenate files to stdout
chmod Change file protecbon mode
cp Copy files
grep Search file for some paAern
ls List directory
gcc Compile files to build a binary
ipcs Provide informabon on IPC
53
Program Typical use
make Manage several soure files
mkdir Make a directory
ps List running processes
pstree List running processes in a tree
rm Remove a file
rmdir Remove a directory
sort Sort a file of lines
07.03.12 Einführung in UNIX
Online Manual
Manualseiten gibt es auch online! $ man 3 printf $ man 3 intro
$ apropos editor
Sections: 1. Commands 2. System Calls 3. Library Functions 4. Special Files (kaum
wichtig)
5. File Formats 6. Spiele (leider) nicht installiert 7. Miscellaneous information 8. System maintenance
Mit man n intro bekommt man eine Übersicht über die Section n.
54 07.03.12 Einführung in UNIX
mv und cp
Mit cp kann man Files kopieren.
55
$ ls PROGS a.out test.c $ mv a.out PROGS/test $ mv test.c PROGS $ ls PROGS $ ls PROGS test test.c
$ ls PROGS $ ls PROGS test test.c $ cp PROGS/test.c . $ ls PROGS test.c
Mit mv Files und directories umbenennen bzw. verschieben.
07.03.12 Einführung in UNIX
ln und ls
Mit ln wird ein link auf ein File oder Directory gemacht
56
$ 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 PROGS drwxr-x--- 3 s0126123 700 8192 Jan 30 12:43 PROGS
Mit ls kann der Inhalt eines Directories angezeigt
07.03.12 Einführung in UNIX
mkdir und rmdir
57
$ mkdir dirname $ ls PROGS a.txt $ mkdir MeineCProgs $ ls MeineCProgs PROGS a.txt
$ ls MeineCProgs PROGS a.txt $ rmdir PROGS rmdir: File exists $ rmdir MeineCProgs $ ls PROGS a.txt
Mit mkdir wird ein Directory erzeugt
Mit rmdir wird ein Directory gelöscht
07.03.12 Einführung in UNIX
rm und cat Mit rm wird ein File
gelöscht
Vorsicht! $ rm ${VAR}*
58
$ ls PROGS a.txt $ rm a.txt $ ls PROGS
$ ls Gemuese.txt Obst.txt $ cat Obst.txt Apfel; Birne; Kirsche;
Mit cat kann man den Inhalt einer (Text) Datei auf dem Bildschirm ausgeben
Scrollen mit “…| more“ oder “…| less“.
07.03.12 Einführung in UNIX
Editoren
emacs Emacs benutzt Metataste (strg, esc) um
Kommandos 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
59 07.03.12 Einführung in UNIX
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?
60 07.03.12 Einführung in UNIX
ENDE
Danke für die Aufmerksamkeit!
07.03.12 61 Einführung in UNIX
top related