Wir arbeiten bei makandra alle auf Linux-Betriebssystemen und bedienen im DevOps- & Cloud-Bereich primär Kunden, die ebenfalls auf Linux als Ziel-System setzen.
Entsprechend benötigen wir tiefgehendes Wissen über Linux.
In diesem Kapitel lernst Du alles zum Hintergrund und ein wenig Theorie zu Prozessen, Speicher, Konfiguration und viel praktisches zur Konfiguration, Ressourcenüberwachung und abschließend eine Anleitung zur Performance-Analyse von Unix-basierten Systemen in 60 Sekunden.
Falls du mit Linux noch nicht vertraut bist, lernst du in dieser Card die Basics zu einem Ubuntu System.
Inhalte / Übungen
Du musst nicht alle Quellen vollständig durchlesen. Vor allem die Bash Reference Manual ist hierfür viel zu umfangreich. Verwende solche Inhalte zum nachschlagen von spezifischen Themen.
- The linux command line for beginners Show archive.org snapshot
- Installiere
tldrmit dem Befehlsudo apt install tldr. Damit kannst du dir Beispiele für die Befehle Anzeigen lassen. Zum Beispieltldr ssum Beispiele für denssBefehl anzeigen zu lassen. - Learn Enough Command Line to be Dangerous Show archive.org snapshot (du findest das in unserer Bibliothek => Google Drive Show archive.org snapshot )
- Linux file permissions explained Show archive.org snapshot
- The Beginner’s Guide to Shell Scripting: The Basics Show archive.org snapshot
- Bash Reference Manual Show archive.org snapshot
Wenn du dich noch mehr für Features in der Shell begeistern möchtest, kannst du dir in unserer Mediathek den Talk pimp my shell Show archive.org snapshot ansehen. Achtung: Für Fortgeschrittene. Vielleicht willst du erst mal ein weing mit Linux arbeiten.
Finde heraus was der man Befehl macht und finde mit der Hilfe von tldr und man heraus was die unten gezeigten Befehle machen. Versuche diese auch testweise zu verwenden.
-
man(Get a more colorful output for man pages) topcatlessdpkg -l-
apt search <text>orapt-cache search <text> apt update-
apt full-upgradeorapt-get dist-upgrade apt install <package-name>-
apt policyundapt-cache policy sudo <command>-
sudo -iorsudo su df -hdu -h .ss --listening --tcpln -stouchenv-
grep(use with|) -
gzipundgunzip zgrep <needle> log/*.log*chmodchown
Wie Paketmanagement in Ubuntu funktioniert
Lies dir Package management Show archive.org snapshot durch.
Verstehe wie und warum man Paketquellen (Repository) hinzufügt und schau dir an, was bei dir in /etc/apt konfiguriert ist. Schau dir mit apt policy diverse Pakete an. So kannst du sehen, aus welchem Repository ein Paket / eine Paketversion installiert wird.
Du solltest auch verstehen, was es Sicherheitstechnisch bedeutet weitere Paketquellen hinzuzufügen.
Bash
Du solltest die folgenden Dinge kennen und verstehen:
cd ~cat ~/.bashrccd ..ls .- Was ist STDOUT und STDERR?
- Was ist
|? - Was ist der Unterschied zwischen
echo foo > /tmp/txtundecho foo >> /tmp/txt? - Was ist eine ENV Variable und wie kann ich diese setzen?
- Für was benötige ich den
exportBefehl? - Was ist der Unterschied zwischen
'und"? - Was ist ein
Job? - Was ist ein exit code?
- Was ist die
PATHUmgebungsvariable? - Was ist ein
alias?
Konfigurationsdateien
Finde heraus für was die ~/.bashrc da ist.
Beachte bitte, dass Änderungen an der ~/.bashrc sich nicht auf bereits geöffnete Shells auswirken.
Terminal editor
Wenn du im Terminal Dateien bearbeiten musst / möchtest, musst du einen Terminal Editor verwenden.
- Wähle einen Editor: (
vim
Show archive.org snapshot
oder
nano
Show archive.org snapshot
)
- Wenn du
vimverwendest, lerne wie du den Editor beendest Show archive.org snapshot :-
:qEditor beenden -
:wqEditor beenden und die Datei speichern -
:q!Editor beendet und die Datei nicht speichern
-
- Wenn du
- Stelle deinen gewählten Editor als Standard ein: $EDITOR Show archive.org snapshot :
# Example with vim
# open the configuration file
vim ~/.bashrc
# navigate to the end of the file,
# press "i" to switch to insert mode
# then type out the line you want to add
export EDITOR=vim
# persist your changes
# press ESC and write the following and then press ENTER
:wq
Note
vimist ein sehr mächtiger Editor, der viele Shortcuts hat um Text effizient zu bearbeiten. Zum Beispiel kann man imCOMMANDmodedt5eingeben, um alle Zeichen bis zum nächsten Zeichen5zu löschen. Es kann sich also lohnen, sich ein wenig mitvimzu beschäftigen. Das ist allerdings nicht Teil dieser Card.
Terminal Shortcuts
Verstehe was die folgenden Shortcuts in der Bash-Shell tun:
- Up-arrow
TabCTRL+R-
CTRL+Z/jobs/fg/bgShow archive.org snapshot
Datei Berechtigungen
Verstehe Zugriffsrechte für Dateien:
- Was bedeutet "ownership" bei Dateien?
- Kannst du
read,writeundexecutableFlags für Dateien erklären? - Wie funktioniert die oktale Schreibweise für Berechtigungen?
- Was bedeutet die Aufteilung
user,groupundworld? - Warum brauchen Verzeichnisse
executablePermissions?
Shell Scripting
- Was ist eine
shebang? - Was ist eine
function? - Was ist die bash parameter expansion?
- Schreibe ein Shell Script, das als Parameter einen Pfad zu einem Verzeichnis entgegen nimmt. Zum testen erstellst du dir selbst ein neues Verzeichnis, in dem du diverse Dateien anlegst. Einige der Dateien sollen world readable sein.
- Das Script muss prüfen, ob es sich dabei wirklich um ein Verzeichnis handelt.
- Es wird eine Datei erstellt mit dem Namen
world-readable-files-<Verzeichnispfad_mit_underscores_statt_/>-<jahr>-<monat>-<tag>-<stunde>-<minute>-<sekunde>.txt - In die Datei wird eine Liste aller Dateien in dem angegebenen Verzeichnis geschrieben, welche world readable sind. Es sollen keine Unterverzeichnisse in dieser Liste sein. Nur Dateien! Schau dir dazu den
findBefehl an. - Schreibe auch die Informationen wie Owner und die ganzen Permissions zu den gefundenen Dateien in die world-readable-files-Datei.
- Installiere dir
shellcheckund wende es auf dein Script an und fixe die Probleme. - Führe dein Script mit
bash -xaus. Was bringt der Parameter-e?- Du kannst diese Parameter innerhalb vom script mit z.B.
set -xsetzen
- Du kannst diese Parameter innerhalb vom script mit z.B.