View
5
Download
0
Category
Preview:
Citation preview
Einführung in UNIX 182.711 Betriebssysteme UE
Armin Wasicek
WS 2011
Inhalt
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
2 24.10.2011 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 24.10.2011 Einführung in UNIX
Aufbau eines UNIX Systems (2)
UNIX ist ein
Mehrbenutzer und
Mehrprozess
Betriebssystem.
.
4
UNIX unterstützt die gemeinsame Benutzung der Betriebsmittel durch mehrere Benutzer
24.10.2011 Einführung in UNIX
Aufbau eines UNIX Kernels (3)
Process
management
component
Signal handling
Process/Thread
creation/termination
CPU Scheduling
Memory
management
component
Virtual memory
Paging page
replacement
Page cache
IO and networking component
Sockets
Network
stacks
Network
device
drivers
Terminals
line
dis
cip
line
Character
devices
drivers
File systems
Generic
block layer
Block device
drivers
IO scheduler
Virtual file system
System call interface
Interrupts Dispatcher
5 24.10.2011 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) 24.10.2011 6 Einführung in UNIX
Geschichte von UNIX (1)
After Silbermann, 2006
7 24.10.2011 Einführung in UNIX
Geschichte von UNIX (2)
Source: http://de.wikipedia.org/wiki/Geschichte_von_Unix
See also: http://www.levenez.com/unix/ 24.10.2011 8 Einführung in UNIX
Inhalt
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
9 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 Einführung in UNIX
Inhalt
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
15 24.10.2011 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 24.10.2011 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
24.10.2011 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 24.10.2011 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
Verkettet 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; }
10/24/2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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
R Anwendung Nr
SIGKILL uncatchable termination
T Dient zum Prozessabbruch (z.B. ab Kommandozeile mit Befehl »kill«). Nur Standardreaktion möglich!
9
SIGTERM catchable termination
T Wie SIGKILL, jedoch sind auch andere Reaktionen als die Standardreaktion zulässig.
15
SIGSEGV segmentation violation
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 = Standardreaktion: 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 (Interpretation durch das OS)
character-, block special files (Geräte; z.B. Terminal, Festplatte)
named pipes
sockets (z.B. TCP/IP sockets, UNIX domain sockets)
symbolic links (Verweise)
35
/bin /dev /etc /var commands devices startup and
configuration files
/lib /man /local
/
/usr
24.10.2011 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. Partition oder Festplatte, 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 gleichzeitig verwendbar
24.10.2011 Einführung in UNIX
Virtuelles Filesystem (VFS)
> 15 physikalische Dateisysteme unter Linux in Verwendung
Kompatibilitä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 Abstraktionsebene
einheitliche Schnittstelle (super block, inode, Verzeichnisse, Dateien)
transparentes Mounten verschiedener physikalischer Dateisysteme (Partitionen) in eine Directory-Struktur
37 24.10.2011 Einführung in UNIX
Struktur einer Partition
Der Superblock enthält die grundlegenden Informationen zum Dateisystem.
Jede Partition (Festplatte) 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 Dateiattribute, Größe usw. gespeichert sind.
Die einzelnen Inodes verweisen direkt bzw. indirekt auf die Speicherblöcke im Datenbereich.
38 24.10.2011 Einführung in UNIX
Inodes und stat
Der Systemcall stat ruft den Inodeinformation 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; ... }
24.10.2011 39 Einführung in UNIX
Beispiel: Ext2 Inode
ähnliche Information 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 24.10.2011 Einführung in UNIX
Beispiel zur Navigation
$ cd
$ pwd
/home/users/sysprog/702/s012
6123
$ ls
Mydir/ test.c
$ cd Mydir
$ pwd
/home/users/sysprog/702/s012
6123/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 24.10.2011 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
24.10.2011 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) 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 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 24.10.2011 Einführung in UNIX
Inhalt
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
52 24.10.2011 Einführung in UNIX
Shell Befehle
Program Typical use
cat Concatenate files to stdout
chmod Change file protection mode
cp Copy files
grep Search file for some pattern
ls List directory
gcc Compile files to build a binary
ipcs Provide information 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
24.10.2011 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 24.10.2011 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.
24.10.2011 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
24.10.2011 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
24.10.2011 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“.
24.10.2011 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 24.10.2011 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 24.10.2011 Einführung in UNIX
ENDE
Danke für die
Aufmerksamkeit!
24.10.2011 61 Einführung in UNIX
Recommended