Linux_LPI-101_03

Linux_LPI-101_03

Linux_LPI-101_03


Roger Aschwanden
Diese Karteikarten decken fortgeschrittene Linux-Befehle und Prozesse für die Berufslehre ab. Sie konzentrieren sich auf das Arbeiten mit Dateien, Prozessen, Variablen und regulären Ausdrücken, wobei Befehle wie `kill`, `ps`, `cut`, und `sed` im Mittelpunkt stehen. Sie eignen sich für IT-Profis und Administratoren, die ihre Fähigkeiten in der Linux-Systemverwaltung vertiefen möchten, um effizienter mit Systemressourcen und Prozessen umzugehen.
Cartes-fiches
54
Utilisateurs
3
Langue
Allemand
Catégorie
Informatique
Niveau
Apprentissage
Créé / Mis à jour
22.11.2013 / 04.11.2019

Cartes-fiches

Ausgabe des 2-ten commands als input für erstes command verwenden. Bsp auflisten der aktuellen Kernelmodule mit ls und uname -r (2 Möglichkeiten)

ls /lib/modules/`uname -r` (listet die Modules des aktuellen Kernel aus, ls /lib/modules/$(uname -r) ist ebenfalls möglich)

Variable definieren, Gültigkeitsbereich, wie kann ich die Variable exportieren und wo ist diese nachher gültig? Kann eine Variable global definiert werden?

meineVariable=meinWert, $meineVariable ist nur in der aktuellen bash sichtbar. Exportieren mit "export $meineVariable", nun ist diese auch in Child-Prozessen sichtbar, z.B in einer neuen bash welche in der aktuellen gestartet wird. Wird eine komplett neue bash gestartet ist die Variable nicht sichtbar. Um diese global überall sichtbar zu machen muss ein config File verwendet werden, z.B. ".bashrc" oder "/etc/profile"

bereits verwendete commandos wieder verwenden

command history zeigt alle bereits verwendent commands an. Mit "ctrl + r" kann nach teilstücken in commands gesucht werden, nochmals "ctrl + r" blättert durch die Möglichkeiten durch.

warum können Befehle in einem Verzeichnis nicht direkt gestartet werden? Z.B. sind wir im Verzeichnis /sbin, können aber ifconfig nicht starten, nur "./ifconfig"

Sicherheitskonzept. Wenn wir z.B. als root in einem Userverzeichnis sind und den command ls eingeben. Würde, falls sich im Userverzeichnis ebenfalls ein command ls befindet, dieses als root gestartet werden.

command um Umgebungsvariablen auzugeben (ohne shell variablen)

env

command um einen Prozess oder command neu zu starten, keinen Child-Prozess erzeugen.

exec

command aktuelles Verzeichnis auszugeben

pwd (print working directory)

Umgebungsvariablen und shell Variablen/Funktionen ausgeben

set

command um variable "meineVariable" zu löschen

unset meineVariable (nicht "unset $meineVariable")

command um das Verhalten der bash zu ändern

set (meist in Shell Scripten geignet)

Hilfe zu command anzeigen

man "command", man -a "command" (öffnet nacheinander alle man pages zu diesem command). Hilfe dazu wie in einer man page gesucht werden kann unter "man less" (Anzeigeprogramm für die man pages)

prozess anhalten

Ctrl + z

angehaltenen Job wieder in den Vordergrund nehmen

fg -> evtl. muss auch noch die ProzessNr. Angegeben werden (Nr. mit command "jobs" ersichtlich, ohne Nr. wird Prozess mit einem + in der Jobliste gestartet)

angehaltenen Job im Hintergrund weiterlaufen lassen

bg -> evtl. muss auch noch die ProzessNr. Angegeben werden (Nr. mit command "jobs" ersichtlich, ohne Nr. wird Prozess mit einem + in der Jobliste gestartet)

command im Hintergrund ausführen

command & (am Enden des commands ein "&")

welche Status eines Prozesses gibt es bei der Ausgabe mit ps -ax

S=stopped, R=running, T=angehalten, Z=Zombie Prozess - wurde von Vaterprozess nicht beendet - kann mit kill nicht gelöscht werden, D=ähnlich wie S, warted meist auf IOs um automatisch weitermachen können(kann z.B. mit "dd if /dev/zero /tmp/nullen" hervorgerufen werden.

command um laufende/gestoppte Prozesse/jobs anzuzeigen.

jobs

command um Prozessbaum anzuzeigen

pstree

was bedeutet "load average" beim command "top"

Warteschlange der letzten [1] [5] [15] Minuten (0=Nichts los, 1=voll ausgelastet aber ok, 2=Es kommen doppelt so viele Anfrage als verarbeitet werden können.

Hilfe zu command "top" anzeigen (top wurde bereits gestartet)

h

command um den Prozessen Signale zu senden

kill

Welches Signal wir mit Kill Standarmässig gesendet, nur kill "prozessID"

15=TERM, beendet den Prozess

mittels Kill einem Serverprozess mitteilen die configDatei neu einzulesen

kill -1, kill -HUP, kill -SIGHUP (nicht für alle Konfigurationsanpassungen anwendbar)

mittels kill einen Prozess sofort aus dem Speicher nehmen, kein normales beenden

kill -9, kill -KILL

command um commands/programme im Hintergrund zu starten, werden z,B durch logoff nicht beendet.

nohup oder screen (nicht das gleiche, screen "sei" besser)

command freien Speicher anzeigen

free, free -m (-m=Werte in MB anzeigen)

command um anzeigen wie lange das system bereits läuft

uptime

command um mehrere Prozesse mit "ähnlichem Namen" gleichzeitig zu killen

killall, besser aber pkill oder pgrep verwenden.

command mit anderer Priorität starten

nice -n 5 "command"-> je höher umso tiefer die Prio (n, value -20 bis 19) falls negative prio -> "nice -n --1" (unter "top" mit "r" einem Prozess eine neue Priorität zugewiesen werden. Root Berechtigung nötig falls eine höhere Prio.)

command um Priorität eines laufenden Prozesses zu ändern

renice -n "PID" (Value -20 bis 19, root Berechtigung nötig. Falls höhere Prio)

commands um Zombie Prozess zu erzeugen

command1: "sleep 30 &" command2: "exec sleep 200"

regular expression: das Ende einer Zeile

$

regular expression: Sonderzeichen können in Konflikt mit Sonderzeichen der bash kommen, was tun?

regular expression' (in einfache Hochkommas setzen)

regular expression: start einer Zeile

^

regular expresson: ein beliebiges Zeichen

. (ein Leerzeichen ist davon nicht betroffen)

regular expresson: ein Platzhalter, Auswahl/Gruppe von Zeichen

[aeiou] oder [0-9] (Es muss einmal eines der genannten Zeichen vorkommen]

regular expresson: ein Platzhalter, Auswahl/Gruppe von Zeichen aber das GEGENTEIL davon.

[^aeiou] oder [^0-9] (Es darf keines der genannten Zeichen vorkommen]

regular expresson: Wiederholungszeichen

* -> null oder mehrmals des vorherigen Zeichens, vorsicht, + -> ein oder mehrmals des vorherigen Zeichens, {n} -> Der voranstehende Ausdruck muss exakt n-mal vorkommen, {min,} -> Der voranstehende Ausdruck muss mindestens min-mal vorkommen, {min,max} -> Der voranstehende Ausdruck muss mindestens min-mal und darf maximal max-mal vorkommen.

regular expresson: kann gerechnet werden? Zahl grösser als z.B. 1000?

Nein,

im /etc/passwd den Usernamen "nutzer16" durch "frank" ersetzen

sed 's/^nutzer16/frank/' /etc/passwd (sed -n 's/^nutzer16/frank/p' /etc/passwd -> es werden nur die geänderte Zeilen ausgegeben p=print, -n=nur geänderte Zeilen)

Étudier