Prozesse, RegEx, Textverarbeitung, vi - Hausaufgabe
-
Arbeite
vimtutor
bis Kapitel 5.3 durch -
Wieviele Benutzer haben
/bin/bash
als Loginshell auf deinem System?:grep /bin/bash /etc/passwd grep /bin/bash /etc/passwd | wc -l
-
Bereite die Ausgabe von
ls $HOME
für den Druck vor. Die Auflistung soll in 3 Spalten dargestellt werden:ls ~ | pr -3
-
Lasse dir die ersten 30 Zeichen der Datei
/etc/issue
anzeigen:head -c 30 /etc/issue
-
Folge als Benutzer ‘root’ der Datei
/var/log/messages
. Rufe dann parallel in einer anderen Shell folgendes Kommando auf:logger Hallo von der Kommandozeile
:-
Alt+F1
sudo tail -f /var/log/messages
-
Alt+F2
logger Hallo
-
Alt+F1
>> Mar 06 11:29:15 hostname user: Hallo
-
-
Lasse dir eine Textdatei mit allen darin enthaltenen Steuerzeichen anzeigen:
cat -A
cat -vET
-
Wieviele Zeilen enthält deine
/etc/inputrc
?:c -l /etc/inputrc
-
Sortiere die Datei
/etc/passwd
nummerisch nach GruppenID (Spalte 4):sort -t : -n -k 4,4 /etc/passwd
-
Filtere alle Zeilen aus der Datei
/etc/inittab
aus, die mit einem ‘#’ beginnen (Kommentare). Wieviele Kommentarzeilen sind in der Datei enthalten?:grep -v '^#' /etc/inittab grep '^#' /etc/inittab | wc -l
-
Was passiert bei folgender Kommandozeile und warum?
sed -e 's/foo/FOO/g' text.txt > text.txt
-
Eigentlich sollte jedes ‘foo’ durch ‘FOO’ im Text ersetzt werden, jedoch ist die Umleitung falsch
- Resultat: leere test.txt
-
-
Wie könnte man trotzdem die Datei direkt editieren?
- mit
text.txt > neuertext.txt
oder mitsed -i
- mit
Das Trennzeichen in sed kann auch anders gewählt werden:
sed -i -e 's//etc/issue//etc/foo/g' test.txt sed -i -e 's/etc/foo|g' test.txt
-
Lasse dir alle Dateien in
/usr/bin anzeigen
, die mit einem ‘b’ beginnen, dann einen beliebigen Buchstaben enthalten, dann einmal ein ‘c’ bzw. kein ‘c’ enthalten:ls /usr/bin | grep ^b.c ls /usr/bin | grep ^b.[^c]
-
Starte das Kommando
dd if=/dev/zero of=/dev/null
mit niedrigster Priorität. Schicke es nach dem Start in den Hintergrund (CTRL+z
) und lasse es danach im Hintergrund weiterlaufen. Beende das Programm, indem du das ‘Terminate’ Signal an den Prozess schickst:nice -n 19 dd if=/dev/zero of=/dev/null
CTRL+z
[1]+ Stopped nice -n 19 dd if=/dev/zero of=/dev/null
bg
[1]+ nice -n 19 dd if=/dev/zero of=/dev/null &
kill -9 %nice
-
Starte den Editor ‘vi’. Schicke Ihn in den Hintergrund. Nun schau dir die Handbuchseite zum Befehl ‘df’ an:
vi
CTRL+z
man df
-
Schicke nun auch die Handbuchseite in den Hintergrund. Wechsele dann wieder zum Editor zurück:
CTRL+z
fg 1
-
Warum ist das beenden eines Prozesses via
kill -9 $prozess
mit Vorsicht zu genießen?- Offene Dateien werden nicht zu Ende geschrieben..
- Alle Unterprozesse von sterben mit (und werden Zombieprozesse)
-
Starte das Kommando
dd if=/dev/zero of=/dev/null
im Hintergrund. Lasse das Programm dann ‘netter’ zu den anderen sein, indem du dessen Nice-Wert auf 10 erhöhst:dd if=/dev/zero of=/dev/null & renice -n 10 2342
-
Darfst du den Nice-Wert eines Prozesses nach dessen Start erniedrigen?
- Normalerweise nicht
-
Was ist die höchste Priorität, die ein Prozess haben kann, wenn er von einem unpriviligierten User ausgeführt wird?
- je kleiner der Wert, umso weniger ‘nice’ ist der Prozess zu anderen…
- root darf von -20 bis 19
- user darf nur von 0 bis 19
- je kleiner der Wert, umso weniger ‘nice’ ist der Prozess zu anderen…
last update: 2024-01-28 17:42:17 +0100