GNU / Linux für Fachinformatiker / Systemintegration

Live-DVD

Begleitmaterialien zum Kurs

Folien u. Tafelbilder

Manuelle Installation

Kernel Commandline Optionen: https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html

Befehle

Navigation im Dateibaum

  • ls
  • pwd, cd
  • tree

Arbeit mit Dateien und Ordnern

  • touch
  • mkdir
  • mv
  • cp
  • rm, rm -r
  • rmdir
  • ln, ln -s

Zugriffsrechte

  • chmod
  • chown
  • chgrp
  • umask (Shell-Builtin)
ugo _u_ _g_ _o_
SST rwx rwx rwx
421 421 421 421
_______________Sonderbits (Feld ganz vorne)
SST   4   2   1
      S   S   T 

Basiswerkzeuge

  • cat
  • echo
  • man
  • less
  • printf, printf '%s\n'

Dateisysteme

  • mount
  • umount
  • lsblk
  • df, df -h

Prozesse / Jobkontrolle

  • pidof
  • bg, fg, jobs
  • kill
  • htop, top
  • ps, ps -e

Paketsystem / Softwareinstallation

  • synaptic
  • dpkg, dpkg --get-selections
  • dpkg-query -l
  • apt-get, apt-get update, apt-get upgrade, apt-get dist-upgrade
  • apt-get install ..., apt-get remove ..., apt-get autoremove
  • apt-mark showmanual, apt-mark showauto
  • dpkg-reconfigure ...

Systemadministration

  • sudo
  • su, sudo su
  • chroot

Variablen

  • env
  • export FOO="bar"
  • set

Benutzerkonten

  • adduser username, adduser username gruppe
  • groups
  • whoami
  • id

Netzwerk

  • ip address
  • ip route
  • ip neighbour, arp
  • dig, nslookup
  • ping
  • traceroute, mtr
  • telnet, netcat, nc, ncat
  • nmap
  • ncat -l ... ...
  • netstat -t

Konfigurationsdateien

Systemweit

  • /etc/passwd
  • /etc/group
  • /etc/shadow

Benutzer

  • ~/.xsessionrc
  • ~/.bashrc

Netzwerk

  • /etc/resolv.conf

Begriffe

Klammern

  • Geschweifte Klammern {} Braces
  • Eckige Klammern [] Brackets
  • Spitze Klammern <> Tags
  • "Normale" Klammern / Runde Klammern () Parentheses / "Parens"

Andere

  • Stammverzeichnis / Root-Verzeichnis / Wurzelverzeichnis

    • Vorsicht: Heimverzeichnis von Root != Root-Verzeichnis
  • Softlink / Symlink / Semantischer Link / Symbolischer Link
  • Permissions / Zugriffsrechte / (Datei-)Berechtigungen / Zugriffsmodus
  • Shared Object (.so) / Dynamically Linked Libraries (.dll) / Programmbibliotheken / Funktionsbibliotheken / Dynamische Libraries / Shared Libraries
  • Umgebungsvariable / Environment-Variable / "exportierte" Variable

    • zu unterscheiden von: Shellvariable

Shellexpansionen ("Parameter Expansion")

Hilfmittel zum Ausprobieren und Nachschlagen

  • printf '== %s ==\n' x y z foo bar schnabbeldiwauwau
  • man dash (für Basissyntax aller Shells)
  • man bash (dokumentiert auch einige Bash-Erweiterungen)

Shellglobs / Wildcard / Platzhalter

  • echo *
  • echo *[Ss]traße*
  • echo *.???

Brace Expansion (Bash Only!)

  • Schnabbeldi{wauwau,wuffwuff}, foo-{bar,qua,quux}
  • touch {1..100}

Reguläre Ausdrücke

Umgangssprache: Regular Expression / Regulärer Ausdruck / RegEx / RE

Plural: RegExes / RegExen (auch im englischen, idR. humoristisch)

Einzelne Zeichen

  • a, b, C, 0 usw. Buchstaben und Ziffern stehen einfach für sich selbst, a "matcht" den Buchstaben a usw.
  • <, ~, " Etliche Sonderzeichen haben keine spezielle Bedeutung und stehen wie Buchstaben und Ziffern für sich selbst.
  • . Der Punkt steht für ein beliebiges Zeichen
  • \. Mit einem vorangestellten Backslash ist es wieder einfach nur ein Punkt
  • \?, \+, \*, \\ Gleiches gilt für andere Zeichen, die sonst eine besondere Bedeutung erhalten
  • ^ steht (außerhalb von eckigen Klammern) für den Zeilenanfang
  • $ steht für das Zeilenende

Beispiel: Esel ist eine Abfolge von Buchstaben und trifft auf das Wort "Esel" zu. E.el trifft auf "Esel", "Egel", "Ekel" zu, aber auch auf Fantasieworte wie "Exel" oder "E%el".

Bracket Expressions

  • [abc] Ausdrücke in eckigen Klammern treffen auf ein beliebiges Zeichen aus der angegebenen Menge zu
  • [a-m], [A-Z], [3-9] Die Menge in eckigen Klammern kann auch als Zeichenbereich (Character Range) angegeben werden
  • [0-9a-z] Es dürfen mehrere Ranges auftauchen
  • [^0-9], [^aeou] Ist das erste Zeichen ein ^ (Circumflex), wir die Menge negiert, sie steht dann für ein beliebiges Zeichen, außer für die angegebenen
  • [-+*/] Enthält eine Menge ein Minuszeichen, muss dies am Anfang oder Ende stehen, so dass die Menge nicht als Range erkannt wird
  • [])}>], [^])}>] enthält eine Menge selbst eine schließende eckige Klammer (]) muss diese ganz am Anfang stehen
  • [*+^$] Innerhalb eckiger Klammern verlieren die meisten Sonderzeichen ihre besondere Bedeutung (so als stünde ein \ davor).

Quantifizierer und Grenzen (Bounds)

Ein Bound kann einem Atom (d.h. einem "Teil des Ausdrucks", einem Zeichen, einer Bracket Expression, etc. folgen) folgen (z.B. m+, oder [^a-z]?)

  • ? Das vorhergehende Atom kann einmal vorkommen, muss aber nicht
  • + Das vorhergehende Atom kann einmal oder mehrmals (beliebig oft) vorkommen
  • * Das vorhergehende Atom kann beliebig oft, oder gar nicht vorkommen
  • {5} Das Atom kommt genau fünfmal vor
  • {2,14} Das Atom kommt mindestens zweimal, höchstend vierzehnmal vor
  • {2,} Das Atom kommt mindestens zweimal oder beliebig viel häufiger vor
  • {,14} Das Atom kommt höchstens vierzehnmal vor, braucht aber gar nicht oder weniger häufig auftauchen

Unterausdrücke (Sub-expressions)

  • (foobar) ist zunächst einmal das gleiche wie foobar
  • (foobar)+ ist eine beliebig häufige Wiederholung des Wortes foobar

    • foobar+ dagegen wäre eine beliebige Wiederholung des Buchstaben r im Wort foobar
  • → Runde Klammern fassen eine Zeichenfolge zu einem Atom zusammen
  • (foobar|schnabbeldiwauwau) steht für das Wort foobar oder das Wort schnabbeldiwauwau

Beispiel: ([gG]roß|[kK]lein)+ - Eine beliebige Folge der Worte Groß und Klein jeweils mit großem oder kleinem Anfangsbuchstaben.