Stammtisch: Nachlese vom 21. Dezember 2006
LUG-Weihnachtsrätsel
Heute gab es ein kleines Weihnachtsrätsel für die Teilnehmer am Stammtisch. Unten findet ihr die Fragen.
- Zu welchem Programm gehört folgende Beschreibung aus der Man-Page: do nothing, unsuccessfully bzw. Nichts tun, erfolglos? Lösung: false.
- Welche der 3 folgenden Aufrufe zum Ändern der Gruppenrechte ist korrekt?
- chgroup root /etc/passwd
- chgroup /etc/passwd root
- chgrp -c root /etc/passwd
- Warum darf man den USB Stick nicht ohne Aufruf von umount vom Rechner abziehen? Lösung: Die Daten sind unter Umständen noch nicht auf dem USB-Stick geschrieben.
- Wie kann man trotzdem das Zurückschreiben der Daten erzwingen? Lösung: mittels sync.
- Was gibt das folgende Kommando aus:
eval `echo ghoatl | tr [\\\154,\\\164,\\\147] [i,m,w]`? Lösung: den Benutzernamen des aufrufenden Nutzers. - Was macht das Programm yes? Lösung: Es gibt yes bzw. den String, der als Option übergeben wurde, fortlaufend aus.
- Was macht das Programm no? Lösung: Das Programm existiert nicht.
- Was bewirkt das folgende Kommando:
Lösung: Der Text "Das ist ein schöner Tag wegen dem kleinem C und dem großen" wird in die Datei /tmp/tst.txt geschrieben.cat > /tmp/tst.txt << A Das ist ein schöner Tag wegen dem kleinem C und dem großen A - Wie kann man sich den Inhalt einer Textdatei mit Zeilennummern versehen ausgeben lassen? Lösung: nl oder cat -n.
- Wie kann man sich die Zahlen 1 bis 256 auf dem Bildschirm ausgeben lassen? Lösung: seq 256.
- Welches Programm verbirgt sich hinter [? Lösung: test.
- Was erschien vor 93 Jahren in der New York World? Lösung: Am 1913-12-21 wurde das erste Kreuzworträtsel der Welt abgedruckt.
- Wie muss die folgende Zeile verändert werden, um die Ausgabe von
STDOUT nach STDERR umzuleiten:
echo "darf nicht nacht stdout"| cat > /dev/geheim? Lösung:echo "darf nicht nacht stdout" >&2| cat > /dev/geheim. - Was ist der Unterschied zwischen den folgenden beiden Anweisungen:
? Lösung: Bei der ersten wird nach erfolgreicher Beendigung des ersten Kommandos das zweite ausgeführt. Im zweiten Fall wird der erste Befehl im Hintergrund ausgeführt und der zweite sofort ausgeführt.rm /tmp/test.txt && rm /tmp/test2.txt rm /tmp/test.txt & rm /tmp/test2.txt - Welche der folgenden Kommandos ist korrekt:
for i in 0 1 2 3 4 5 6 7 8 9 10; do echo $i; donefor ((i = 0; i < 11; ++i)); do echo $i; donefor i in `seq 0 10`; do echi $i; done
- Welche Möglichkeiten gibt es um in das Homeverzeichnis zu wechseln? Lösung: cd, cd ~ oder auch cd $HOME.
- Wie kann man eine Datei löschen wenn man nur deren Inode-Nummer kennt? Lösung: find / -inum 12345 -exec rm {} \;
- In der Datei liste.txt stehen die folgenden Dateinamen:
Wie kann man die aufgelisteten Dateien nach /tmp/remote/ kopieren? Lösung: cat liste.txt | xargs cp./tmp/datei1 /tmp/datei2 /tmp/datei3 /tmp/datei4 /tmp/datei5 /tmp/remote/ - Was macht der folgende Befehl: pinky -piff? Lösung: Er zeigt Benutzerinformationen ohne die Plandatei, den vollen Nutzernamen und Überschriften an.
- Wie kann man sich die Anzahl aller dem System bekannten Nutzer anzeigen lassen? Lösung: wc -l /etc/passwd oder getent passwd | wc -l.
- Wie kann man alle Vorkommen von Tabulatoren in der Textdatei daten.txt durch jeweils 2 Leerzeichen ersetzen? Lösung: expand.
- Wie kann man die Zeilen der Textdatei daten.txt nach 75 Zeichen umbrechen? Lösung: fold -w 75 daten.txt.
- Was bewirkt folgender Aufruf:
Lösung: Probieren. :-)bash -c 'set -f;g(){ read l&&(s=();for t in $l; do [[ $t<0 ]]&&s=($((${s[1]}$t$s)) ${s[@]:2})|||\verb|s=($t ${s[@]});done;echo $s;g)};g' - Welches koffeinhaltige Programm verwendet man zum duplizieren der Ausgabe eines Programms? Lösung: tee
- Wie kann man die Zeit der Ausführung der beiden Befehle dd if=/dev/zero of=/dev/null bs=512 count=1000; echo "foo" in Sekunden messen? Lösung: Umgebungsvariable SECONDS nutzen, SECONDS=0; $BEFEHLE; echo $SECONDS.
- Wie kann man die letzten 10 Befehle aus der Bash-History in einem Schritt erneut ausführen und gegebenenfalls noch nachbearbeiten? Lösung: fc 123 133.
- Was bewirkt folgender Aufruf: echo 'ls'| rev? Lösung: Ausgabe von sl.
- Was bewirkt folgender Befehl: :() { :& :& }; :? Lösung:
Nicht probieren!. Dies ist eine so genannte Forkbombe. Es wird ein
Befehl
:definiert. In der Definition wird dieser zweimal aufgerufen und die Prozesse in den Hintergrund verschoben. Ganz zuletzt wird das neu definierte Kommando aufgerufen. Dieser startet dann zwei neue Prozesse, die ihrerseits wieder zwei neue Prozesse starten, die ihrerseits wieder ... So ist binnen kürzester Zeit die Prozesstabelle voll und ihr könnt nichts mehr am Rechner machen.