GNU / Linux für Fachinformatiker / Systemintegration
Begleitmaterialien zum Kurs
https://learning.lpi.org/pdfstore/LPI-Learning-Material-101-500-de.pdf
https://learning.lpi.org/pdfstore/LPI-Learning-Material-102-500-de.pdf
Shellgame: Terminus (vom MIT)
FISI-Training: https://fisi-training.de/lpic1-101-500-pruefungsvorbereitung-1/
BIOS-Menü zur Ansicht: https://pranx.com/bios/
GNU GRUB Dokumentation: https://www.gnu.org/software/grub/manual/grub/grub.html
Folien u. Tafelbilder
Kernel Commandline Optionen: https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html
Befehle
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
Konfigurationsdateien
Systemweit
- /etc/passwd
- /etc/group
- /etc/shadow
Benutzer
- ~/.xsessionrc
- ~/.bashrc
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 Buchstabena
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 wiefoobar
(foobar)+
ist eine beliebig häufige Wiederholung des Wortesfoobar
foobar+
dagegen wäre eine beliebige Wiederholung des Buchstabenr
im Wortfoobar
- → Runde Klammern fassen eine Zeichenfolge zu einem Atom zusammen
(foobar|schnabbeldiwauwau)
steht für das Wortfoobar
oder das Wortschnabbeldiwauwau
Beispiel: ([gG]roß|[kK]lein)+
- Eine beliebige Folge der Worte Groß
und Klein
jeweils mit großem oder kleinem Anfangsbuchstaben.