Dr. Linux
Komplizierte Organismen, wie Linux-Systeme es nun einmal sind, haben so ihre ganz eigenen Wehwehchen. Dr. Linux beobachtet die Patienten in den Linux-Newsgruppen, stellt an dieser Stelle Rezepte für aktuelle Probleme aus und alternative Heilmethoden vor.
Stoppt root!
Ich unterbreche Programme, die ich auf einer Shell aufrufe, gern mit der Tastenkombination [Strg-z], um zwischenzeitlich weitere Befehle abzusetzen. Leider funktioniert das nicht, wenn ich mittels su als root Dateien editiere/konfiguriere. Gibt es einen anderen Befehl, um die von su erzeugte root-Shell temporär zu deaktivieren und sie später wieder hervorzuholen?
Dr. Linux: Ja, und zwar das Kommando suspend, das in der Bash (oder csh/tcsh) eingegeben wird. suspend ist ein sogenanntes Shell-Builtin [1], also ein Kommando, das zum Leistungsumfang der jeweiligen Shell gehört. Es unterbricht die Superuser-Anmeldung mit su in der gleichen Weise, wie es die Tastenkombination [Strg-z] mit "normalen" Programmen/Prozessen tut, d. h., die root-Shell wird schlafengelegt, und Sie bekommen stattdessen Ihre "Ausgangsshell" zurück, auf der Sie ganz normal neue Befehle absetzen können. Zuvor sehen Sie noch die Ausgabe Stopped mit dem Zusatz, welches Kommando gerade gestoppt wurde:
perle@maxi:~> su Password: Root-Passwort maxi:/home/perle # suspend [1]+ Stopped su perle@maxi:~> [Eingabe als User perle zu verrichtener Aufgaben]
Um zur root-Shell zurückzukehren, geben Sie das Kommando fg (englisch: "foreground", Vordergrund) ein. Jene verlassen Sie wie gewohnt mit dem Kommando exit:
perle@maxi:~> fg su maxi:/home/perle # [weitere, als root auszuführende Befehle] maxi:/home/perle #exit exit perle@maxi:~>
Wissen, was man tut
Ich starte Programme auf einer Konsole, indem ich deren Namen eintippe. Im Grunde ist mir aber häufig nicht klar, ob es sich um ein echtes, kompiliertes Programm oder zum Beispiel um ein Shell-Skript handelt. Ich möchte mein System besser kennenlernen und daher wissen, welche Art von Befehl ich gerade absetze. Wie geht's?
Dr. Linux: Mit der Shell-Funktion type plus Kommandoname lassen Sie sich anzeigen, welchen Ursprung Ihr gewähltes Programm hat:
perle@maxi:~> type suspend suspend is a shell builtin
suspend ist also ein eingebauter Befehl der Shell, während …
perle@maxi:~> type dir dir is aliased to `ls -l'
es sich bei dir um einen Alias für den Befehl ls -l handelt.
perle@maxi:~> type gimp gimp is /usr/bin/gimp
Dreht es sich stattdessen wie bei gimp um eine echte Datei (oder einen Link) im Filesystem, können Sie mit dem Kommando file weiter forschen. Genauso einfach wie type anzuwenden, identifiziert es (Ihnen unbekannte) Datei-Typen. Damit finden wir zum Beispiel heraus, dass es sich bei /usr/bin/gimp um ein echtes Binärprogramm handelt, während das Kommando groups ein ausführbares Shell-Skript ist:
perle@maxi:~> file /usr/bin/gimp /usr/bin/gimp: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped perle@maxi:~> file /usr/bin/groups /usr/bin/groups: Bourne shell script text
Wenn file nicht erkennen kann, um was für eine Datei es sich handelt (bzw. wenn die Datei nicht angezeigt werden darf), erhalten Sie in der Ausgabe das Schlüsselwort data. Eine besondere Information liefert type mit der Ausgabe
Kommando is hashed (Pfad/zum/Kommando )
Sie bedeutet, dass das entsprechende Kommando in der aktuellen Sitzung bereits ausgeführt und deshalb von der bash in der Hash-Tabelle gespeichert wurde:
perle@maxi:~> type gimp gimp is hashed (/usr/bin/gimp)



