ICT-Infrastruktur für Bildungsaufgaben
1. Wiederholung TPDCS1
Thomas Leitner <thomas.leitner@univie.ac.at>
Fakultät für Mathematik, Universität Wien Sommersemester 2013
Letzte Änderung: 2013-09-20 20:46:17 +0200
Inhalt
Betriebssystem Linux Bash
Dateisystem Prozesse Speicher
Reguläre Ausdrücke Befehle
Betriebssystem Linux
Kernel (u.a. Prozessverwaltung, VFS, Speicher, Netzwerk), Shell (Bash), Systemprogramme (z.B.
GNU coreutils)
Multi-User (Benutzer, Gruppen, Rechte) und Multi-Tasking
Bash – Allgemeines
Interaktiver Kommandozeileninterpreter
Text wird vom Benutzer eingegeben, von der Shell interpretiert, die dann einen oder mehrere Befehle ausführt
POSIX-kompatibel, einige nützliche Erweiterungen (z.B.
[[ ... ]]
)Tips zur Bedienung:
Befehls-History: Pfeiltaste rauf & runter
History-Search:
Strg-r
sucht rückwärts in der History Navigation in der Zeile:Strg-Links
/Alt-b
→ Cursor ein Wort nach linksStrg-Rechts
/Alt-f
→ Cursor ein Wort nach rechtsStrg-a
/Strg-e
→ Cursor zum Anfang/Ende der Zeile Tabulator-Taste zum VervollständigenHilfe zu Befehlen, Konfigurationsdateien in den Manpages!
Umgebungsvariablen (
PATH
,HOME
,USER
, …)Bash – Konstrukte
Pipes (
befehl1 | befehl2
)Listen (
befehl1; befehl2 && befehl3 || befehl4 &
)Verbundbefehle (Ausführung in Sub-Shell, arithmetischer/logischer Ausdruck)
Eingabe-/Ausgabe-Umleitung (
befehl1 <file.txt
bzw.befehl_1 > file.txt
)Auswertungsunterdrückung (Maskierungszeichen Backslash –
\
– bzw. einfache/doppelte Anführungszeichen)Pfadexpansion (
rm datei*.txt
)Variablenexpansion (
echo ${PATH/:/ - }
)Variablenexpansion (
echo ${PATH/:/ - }
)Befehlssubstitution (
VAR=$(cut -d: -f1 /etc/passwd)
)Bash Programmierung
Tests (
test
,[
,[[ ... ]]
)Verzweigungen (
if
,case
)Schleifen (
for
,while
)Funktionen (
function name () { do_something; }
)Stellungs- und spezielle Parameter (
$1
,$@
,$#
,$?
)Dateisystem
Virtuelles Dateisystem VFS (Abstraktionsschicht im Kernel, eine Sicht auf verschiedene Dateisysteme)
Dateiattribute (Änderungsdatum, Besitzer, Gruppe, Berechtigungen, …) Berechtigungen (RWX, Benuzter/Gruppe/Rest, SUID, Sticky-Bit) Harte und weiche Links
Prozesse
Kernel kann ELF-Binärprogramme, Skripts (Shebang!) und andere Binärprogramme mittels
binfmt_misc
Kernelmodul direkt ausführenProzess = laufende Instanz eines Programmes (PID, PPID, UID, EUID, …) fork-Modell:
Prozess A ruft
fork()
auf → Kindprozess B entsteht als Kopie des Prozesses A (Optional) Im Kindprozess B mittelsexec()
anderen Programmcode ausführenProzess A warte auf Kindprozess B mittels
wait()
→ Rückgabewert! – oder Kindprozess wird zu Zombie und vominit
-Prozess entsorgtInterrupts (von Hardware über CPU an Kernel oder über Kernel an Prozess; Scheduling!) Signale (von Prozess an anderen Prozess; HUP, INT, KILL, TERM, …)
Speicher
Virtueller Speicher für Prozess (vom Kernel verwaltet, unabhängig von wirklich Ort) Dynamisches Laden von Daten in den RAM mittels Page Fault
Swap-Dateien bzw. Swap-Partitionen
Reguläre Ausdrücke
Zeichenklassen (
\d
,\w
,[a-z0-9]
)Quantoren (
*
,+
,?
,{n,m}
)Gruppen und Referenzen Alternativen (
|
)Anker (
^
,$
,\b
)Für Befehle wie
sed
undgrep
, Texteditoren, Programmiersprachen, …Befehle
whoami
,id
,script
,less
cat
,head
,tail
,sort
,cut
,uniq
,nl
,wc
echo
,printf
,read
,alias
,source
,export
,sleep
,timeout
pwd
,cd
,ls
,mkdir
,rm
,mv
,cp
,find
,touch
,stat
,file
,df
,du
,chmod
,chown
,chgrp
,umask
,ln
,readlink
,ps
,kill
,pgrep
,top
,nice
,free
,swapon
,swapoff su
,sudo
Copyright und Lizenz
Copyright: Thomas Leitner thomas.leitner@univie.ac.at Lizenz: Creative Commons CC BY-NC-SA
„Namensnennung-Keine kommerzielle Nutzung-Weitergabe unter gleichen Bedingungen 3.0 Österreich.“ - http://creativecommons.org/licenses/by-nc-sa/3.0/at/