• Keine Ergebnisse gefunden

Wiederholung TPDCS1

N/A
N/A
Protected

Academic year: 2021

Aktie "Wiederholung TPDCS1"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Foliensatz 1

Wiederholung TPDCS1

Inhalt

• Betriebssystem Linux

• Bash

• Dateisystem

• Prozesse

• Speicher

• Reguläre Ausdrücke

• Befehle

Betriebssystem Linux

• Kernel (u.a. Prozessverwaltung, virtuelles Dateisystem, 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 links

• Strg-Rechts / Alt-f → Cursor ein Wort nach rechts

• Strg-a / Strg-e → Cursor zum Anfang/Ende der Zeile

• Tabulator-Taste zum Vervollständigen

• Hilfe zu Befehlen und Konfigurationsdateien in den Manpages!

• Umgebungsvariablen (PATH, HOME, USER, …)

ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2014 | Version: 2014-03-06 09:09 Seite 1 von 3

(2)

Bash – Konstrukte

• Reihenfolge der Verarbeitung einer Eingabezeile

• Auswertungsunterdrückung (Maskierungszeichen Backslash – \ – bzw. einfache/doppelte Anführungszeichen)

• Pipes (befehl1 | befehl2)

• Listen (befehl1; befehl2 && befehl3 || befehl4 &)

• Verbundbefehle (Ausführung in Sub-Shell, arithmetischer/logischer Ausdruck)

• Klammernexpansion (echo a{d,b,{1..3}}c)

• Pfadexpansion (rm datei*.tx?)

• Variablenexpansion (echo ${PATH/:/ - })

• Befehlssubstitution (VAR=$(cut -d: -f1 /etc/passwd))

• Bash-History-Expansion (echo !-1:$)

• Eingabe-/Ausgabe-Umleitung (befehl1 <file.txt bzw. befehl_1 > file.txt)

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 bzw. allgemeine Schnittstelle für Ein- und Ausgabe)

• Dateiattribute (Änderungsdatum, Besitzer, Gruppe, Berechtigungen, …)

• Berechtigungen (RWX, Besitzer/Gruppe/Rest, SUID, SGID, Sticky-Bit)

• Harte und weiche Links

Prozesse

• Kernel kann ELF-Binärprogramme, Skripts (Shebang!) und andere Binärprogramme mittels binfmt_misc Kernelmodul direkt ausführen

• Prozess = 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 mittels exec() anderen Programmcode ausführen

• Prozess A warte auf Kindprozess B mittels wait() → Rückgabewert! – oder Kindprozess wird zu Zombie und vom init-Prozess entsorgt

• Interrupts (von Hardware über CPU an Kernel oder weiter über Kernel an Prozess; Scheduling!)

• Signale (von Prozess an anderen Prozess; HUP, INT, KILL, TERM, …)

ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2014 | Version: 2014-03-06 09:09 Seite 2 von 3

(3)

Speicher

• Virtueller Speicher für Prozess (vom Kernel verwaltet, Prozess kennt den tatsächlichen Ort von Daten im RAM nicht; erhöht Sicherheit und Flexibilität)

• 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 ((?:...), \1)

• Alternativen (|)

• Anker (^, $, \b)

• Für Befehle wie sed und grep, Texteditoren, Programmiersprachen, …

Befehle

• whoami, who, w, last, id, script, less, which, locate, xargs

• pwd, cd, ls, mkdir, rmdir, rm, mv, cp, find, touch, stat, file, chmod, chown, chgrp, umask, ln, readlink

• ps, pstree, kill, pgrep, pkill, top, nice, renice, free, swapon, swapoff

• cat, split, head, tail, sort, cut, paste, uniq, nl, wc, expand, unexpand, tee

• echo, printf, read, alias, unalias, source, export, sleep, timeout, set, unset, shift, shopt, exec

• mount, umount, df, du

• 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/

ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2014 | Version: 2014-03-06 09:09 Seite 3 von 3

Referenzen

ÄHNLICHE DOKUMENTE

Wenn es den beiden Kandidatinnen allerdings gelingt, die Unzufriedenheit der Bevölkerung zu bündeln und die Pro- testbewegung für sich einzunehmen, ist nicht ausgeschlos- sen, dass

Es wird empfohlen, das Allgemeine Schulpraktikum (9 CP / 2 SWS; nur für Studierende mit Berufziel Lehramt) im vierten Semester, frühestens aber nach dem dritten Semester zu belegen

Der dort dargelegten Auffassung folgend werden im Rahmen der niedersächsischen Aufnahmeanordnung abgegebene Verpflichtungserklärungen für weitere syrische Angehörige

(2) Alle Wahlberechtigten, das Präsidium, die Wahlleitung sowie der Wahlausschuss können die Gültigkeit einer Wahl innerhalb von zwölf Vorlesungstagen nach der

Jedes Gerät, das über das Internet mit anderen Geräten kommunizieren will, braucht eine eindeutige IP-Adressen (Notiz am Rande: Es gibt auch Möglichkeiten, das zu umgehen, z.B.

Eine Regel besteht dabei aus einer oder mehreren Bedingungen und einem Ziel, das angibt, was mit einem passenden Paket gemacht werden soll.. Es gibt sehr viele Bedingungen, die

Damit ein Client weiß, wie der zu nutzende Server heißt, muss man in der Hauptkonfigurationsdatei im Block agent die Variable server auf die IP-Adresse (oder den DNS-Namen)

Auch wenn man natürlich nicht alles selber beeinflussen kann, schadet es bestimmt nicht, sich immer wieder mal Rechenschaft darüber abzulegen, wie stimmig die Arbeit