Prozesse, RegEx, Textverarbeitung, vi - Hausaufgabe
-
Arbeite
vimtutorbis Kapitel 5.3 durch -
Wieviele Benutzer haben
/bin/bashals Loginshell auf deinem System?:grep /bin/bash /etc/passwd grep /bin/bash /etc/passwd | wc -l -
Bereite die Ausgabe von
ls $HOMEfür den Druck vor. Die Auflistung soll in 3 Spalten dargestellt werden:ls ~ | pr -3 -
Lasse dir die ersten 30 Zeichen der Datei
/etc/issueanzeigen: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+F1sudo tail -f /var/log/messages -
Alt+F2logger Hallo -
Alt+F1>> Mar 06 11:29:15 hostname user: Hallo
-
-
Lasse dir eine Textdatei mit allen darin enthaltenen Steuerzeichen anzeigen:
cat -Acat -vET -
Wieviele Zeilen enthält deine
/etc/inputrc?:c -l /etc/inputrc -
Sortiere die Datei
/etc/passwdnummerisch nach GruppenID (Spalte 4):sort -t : -n -k 4,4 /etc/passwd -
Filtere alle Zeilen aus der Datei
/etc/inittabaus, 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.txtoder 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/nullmit 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/nullCTRL+z[1]+ Stopped nice -n 19 dd if=/dev/zero of=/dev/nullbg[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:
viCTRL+zman df -
Schicke nun auch die Handbuchseite in den Hintergrund. Wechsele dann wieder zum Editor zurück:
CTRL+zfg 1 -
Warum ist das beenden eines Prozesses via
kill -9 $prozessmit 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/nullim 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…