![]() |
|
||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
Know-how für die Kommandozeile
von Andrea Müller
Die Shell unter Linux speichert praktischerweise alle Befehle, die der Benutzer ausführt. Mit [Pfeil hoch] und [Pfeil runter] blättern Sie in der Liste der schon einmal eingegebenen Kommandos hin und her. Zum Ausführen eines Befehls reicht dann ein Druck auf [Eingabe].
Wer sich den Rechner mit anderen Familienmitgliedern teilt, will vielleicht die History löschen um zu verhindern, dass sich jemand in einem unbeobachteten Augenblick an den Computer schleicht und die bereits von Ihnen eingegebenen Befehle durchstöbert. Selbst wenn Sie nichts zu verbergen haben, ist ein Löschbefehl praktisch: Manchmal versucht man vergeblich, hinter die Syntax eines Shell-Kommandos zu kommen und setzt beim Herumprobieren Befehle ab, die nicht funktionieren.
Mit einem einzigen Kommando tilgen Sie alle Einträge aus dem Elefantengedächtnis der Shell: Geben Sie einfach
history -c
ein. Das -c steht für clear (bereinige, lösche) und genau das tut die Shell: Sie löscht den Inhalt der Datei .bash_history in Ihrem Home-Verzeichnis, in der sie alle Kommandos speichert. Die .bash_history ist eine normale Textdatei, in die Sie mit jedem Editor hineinschauen können.
Auch dort können Sie den ganzen Inhalt oder nur einzelne Zeilen löschen, doch die Aktion wirkt nicht in dem laufenden Kommandozeilenfenster: [Pfeil hoch] fördert auch Befehle zu Tage, die Sie gerade im Editor gelöscht haben. Das liegt daran, dass die Shell nicht permanent in dieser Datei nachschaut, ob sich etwas geändert hat, sondern sie einmal zum Beginn einer Sitzung einliest. Damit die Befehle sofort verschwinden, verwenden Sie besser history -c.
Wollen Sie nicht die komplette History loswerden, sondern nur ausgewählte Befehle, scheint das auf den ersten Blick nur mit einem Text-Editor zu gehen. Doch auch für diesen Zweck hält das history-Kommando einen passenden Parameter bereit: -d für delete (zerstöre, lösche), gefolgt von der fortlaufenden Nummer des zu löschenden Kommandos.
In Abbildung 1 steht beispielsweise greo shell *.txt mit der Nummer 4 in der History. Das greo sollte eigentlich grep heißen und in allen Dateien mit der Endung .txt nach dem Wort shell suchen. Diesen durch den Tippfehler nutzlosen Eintrag löscht das Kommando
history -d 4
wie das danach erneut aufgerufene history zeigt.
Haben Sie sehr viele Einträge in der History, suchen Sie sich den zu löschenden Befehl und seine Nummer am besten mit einer Kombination aus history und grep heraus:
history | grep suchmuster
zeigt nur die Befehle der History an, die den Text suchmuster enthalten. Die passende Nummer des Löschkandidaten steht direkt am Anfang der Zeile (Abbildung 1).
Entpacken Sie .tar.gz-Archive auf der Kommandozeile [1] mit dem Befehl
tar -xzf archiv.tar.gz
landet deren Inhalt immer im aktuellen Arbeitsverzeichnis. Hätten Sie die enthaltenen Dateien lieber woanders, z. B. im temporären Verzeichnis /tmp/, müssen Sie nicht erst dorthin wechseln. Der Parameter -C, gefolgt vom Zielordner, ist das Kommandozeilenäquvivalent zum "Entpacke nach"-Button grafischer Packprogramme.
tar -xzf archiv.tar.gz -C /tmp/
befördert den Inhalt von archiv.tar.gz in das Verzeichnis /tmp/.
Ob Support-Mitarbeiter oder lokaler Linux-Crack: Bei der Frage, ob ein bestimmtes Gerät nicht vielleicht doch unter Linux funktioniert, wollen beide den Chipsatz der Hardware wissen. Der ist besonders bei so genannten Winmodems wichtig, von denen nur sehr wenige überhaupt mit Linux zusammenspielen. Um solche Einzelheiten herauszufinden, müssen Sie nicht etwa den Rechner aufschrauben: Das Kommando
/sbin/lspci
verrät alle Einzelheiten (Abbildung 2). Mit einer Ausgabeumleitung schreiben Sie die Hardware-Liste in eine Textdatei:
/sbin/lspci > meine_hardware.txt
Unter Mandrake Linux liegt der Befehl nicht im Verzeichnis /sbin, sondern im Ordner /usr/bin/. Nutzer dieser Distribution ersetzen daher das /sbin/lspci durch lspci.
Oft können potentielle Helfer anhand dieser Informationen herausfinden, ob ein Gerät unter Linux läuft. Alternativ nehmen Sie die Sache einfach selbst in die Hand und füttern eine Suchmaschine wie Google mit einer Zeile der lspci-Ausgabe und dem zusätzlichen Schlagwort Linux. Auch die Angabe der verwendeten Distribution schadet bei einer solchen Suche nicht. Sie finden so Erfahrungsberichte anderer Anwender, die Ihnen eventuell helfen, ein bockiges Gerät doch zur Mitarbeit zu überreden.
Mit der Kommandozeile finden Sie schnell heraus, wie viele Dateien in einem Ordner und dessen Unterverzeichnissen liegen: Die richtigen Werkzeuge dafür sind das Suchprogramm find [2] und das Tool wc, das je nach Aufrufparametern Zeichen, Wörter oder Zeilen zählt.
Um die Dateizahl zu erhalten, kombinieren Sie die beiden Anwendungen:
find /home/andi/music -type f | wc -l
gibt die Anzahl der Dateien in /home/andi/music und dessen Unterverzeichnissen aus. Die Option -type f weist das Suchwerkzeug find an, nur Einträge vom Typ f (für file=normale Datei) aufzulisten. So zählen Sie die Ordner nicht mit. find gibt jeden Treffer in einer einzelnen Zeile aus. Das Pipe-Symbol (|) leitet diese Ausgabe an wc, weiter. Durch den Parameter -l (für lines=Zeilen) zählt dieses Tool nur, wie viele Zeilen die Ausgabe von find enthält -- das Ergebnis ist die Anzahl der normalen Dateien in /home/andi/music und dessen Unterordnern.
Wollen Sie dagegen nur wissen, wie viele Textdateien sich in einem Ordner und dessen Unterverzeichnissen befinden, schränken Sie die Suche aus Tipp ## einfach mit einer weiteren Bedingung ein:
find /home/andi/easylinux -type f -name "*.txt" | wc -l
lässt find nur die Dateien finden, die vom Typ "normale Datei" sind (-type f) und außerdem die Dateiendung .txt haben (-name "*.txt"). Grafiken, MP3-Dateien und Sicherungskopien mit der Endung .bak oder ~ zählt dieses Kommando nicht mit.
Geht es Ihnen um einen Ordner, der auf einer Windows-Partition liegt oder den Sie von dort auf die Linux-Partition umkopiert haben, ist der Befehl
find /home/andi/easylinux -type f -iname "*.txt" | wc -l
noch besser geeignet. Mit dem Parameter -iname aufgerufen, sucht find ebenfalls nach einem bestimmten Namensmuster, unterscheidet dabei aber nicht zwischen Groß- und Kleinschreibung. Das Kommando findet daher sowohl report.txt als auch erinnerung.TXT. Da Windows nicht zwischen Groß- und Kleinschreibung unterscheidet, findet man dort öfters Dateien mit groß geschriebenen Endungen, die bei der ersten Befehlsvariante nicht mitgezählt würden.
Das Kommandozeilen-Tool ifconfig zeigt ohne Parameter aufgerufen alle Netzwerkschnittstellen des Systems an. So finden Sie nicht nur die numerische Adresse heraus, die Sie Ihrer Netzwerkkarte verpasst haben, sondern auch die IP-Adresse, die Ihnen Ihr Provider bei einer Internet-Einwahl zugeteilt hat.
ifconfig liegt im Verzeichnis /sbin, das nicht im Suchpfad normaler Benutzer liegt. Daher rufen Sie es mit Eingabe des vollen Pfades auf:
/sbin/ifconfig
In seiner Ausgabe listet das Programm untereinander alle Netzwerkschnittstellen auf: Eine Netzwerkkarte, die die Rechner im LAN verbindet, firmiert dort beispielsweise unter dem Namen eth0. Haben Sie gar zwei Netzwerkkarten eingebaut, gibt Linux der zweiten automatisch den Namen eth1, zählt also einfach eine Nummer hoch. Die Schnittstelle zum Internet ist bei einer Einwahlverbindung gewöhnlich ppp0, gehen Sie stattdessen über ISDN online, heißt sie ippp0. In der zweiten Zeile hinter inet Adresse: steht die IP-Adresse, die Sie vom Provider erhalten haben und mit der Sie im Internet unterwegs sind. (amü)
| Infos |
|
[1] Heike Jurzik: "Komprimierkünstler", EasyLinux 07/2004, S. 84 ff., http://www.easylinux.de/Artikel/ausgabe/2004/07/084-guru-tar/
[2] Elisabeth Bauer: "Meisterdetektiv", EasyLinux 01/2004, S. 72 ff., http://www.easylinux.de/Artikel/ausgabe/2004/01/072-find/ |
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite |
Datenschutz |
© 2012 Linux New Media AG |
Last modified: 2007-01-25 17:21
[Linux-Magazin]
[LinuxUser]
[Linux-Community]
[Admin-Magazin]
[Ubuntu User]
[Smart Developer]
[Linux Events]
[Linux Magazine]
[Ubuntu User]
[Admin Magazine]
[Smart Developer]
[Linux Magazine Poland]
[Linux Community Poland]
[Linux Magazine Brasil]
[Linux Magazine Spain]
[Linux Technical Review]