Home / LinuxUser / 2000 / 01 / Dr. Linux

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Der Nächste bitte

Dr. Linux

01.01.2000 Komplizierte Organismen, wie Linuxsysteme 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.

Finden!

Meine Textbestände sind eher chaotisch sortiert. Kann ich unter Linux große Textbestände nach bestimmten Dateien durchsuchen? Und wie lassen sich Textstellen in Dateien anzeigen?

Dr. Linux: Das Kommando find kann nach bestimmten Dateien suchen. Je nach Pfadangabe durchsucht es Verzeichnisse einschließlich der Unterverzeichnisse. find ist sehr mächtig; es gibt Optionen, die beinahe Alles und Jedes abdecken. Dementsprechend umfangreich ist auch die Manpage. Zum Glück braucht man nicht ständig alles, sondern kommt schon mit ein paar Optionen gut um die Runden. Wenn der Name der gesuchten Datei bekannt ist, kann das Kommando find -name eingesetzt werden.

user$ find -name Leuchtkeks

findet die Datei Leuchtkeks im aktuellen Verzeichnis und in dessen Unterverzeichnissen. Dies bedeutet, dass Sie zunächst in das Verzeichnis wechseln müssen, in dem die Datei gesucht werden soll.

user$ find / -name Leuchtkeks

durchsucht alle Verzeichnisse und Unterverzeichnisse nach Leuchtkeks. / steht für das Wurzelverzeichnis. In Verbindung mit dieser Angabe wird find sämtliche Verzeichnisse und Unterverzeichnisse nach der Datei durchsuchen. Das Kommando find / sollte deshalb nicht in Netzwerken eingesetzt werden, da es ein System zu stark belasten kann.

user$ find ~ -name ´*zip´

listet alle Dateien im Homeverzeichnis und untergeordneten Verzeichnissen auf, an deren Namensende sich die Buchstaben zip befinden. Mit dem Jokerzeichen ~ können Sie sich die Pfadangabe für Ihr Home-Directory ersparen, es wird geradewegs durch /home/Ihr_Name (oder wie Ihr Heimatverzeichnis auch immer heißt) ersetzt.

user$ find ~ -name ´*zip*´

zeigt alle Dateien im Homeverzeichnis auf, in deren Namen das Suchmuster zip vorkommt. Dieser Befehl listet als Ergebnis sowohl .zip-Archive auf, als auch Dateien wie beispielsweise bzip2recover, ziptool oder zipfelmütze. Sollten Sie ein DOS- oder Windowsverzeichnis in ihrem System gemountet haben, können Sie gezielt Dateien in diesen Verzeichnissen finden, wenn sie -fstype vfat bzw. -fstype msdos als Option mit find verwenden.

user$ find / -fstype msdos -name *.zip

listet beispielsweise nur .zip-Dateien auf, die sich auf einer MS-DOS-Partition befinden.

user$ find / -fstype vfat -name *.txt

hingegen führt nur .txt-Dateien von einer Windows-Partition auf.

Die Eingabe man find liefert auf mehr als zehn Seiten einen Blick über weitere Möglichkeiten von find. Wenn Ihnen die Kommandozeile noch nicht ganz geheuer ist und Sie mit KDE arbeiten, können Sie für Ihre Sucherei auch das Programm kfind benutzen. Es befindet sich in der Menüleiste und lässt sich mit dem Eintrag Dateien suchen aufrufen.

Abbildung 1: kfind vereinigt die Funktionalität von find und grep in sich.

Um Textstellen oder Stichworte im aktuellen Verzeichnis zu finden, bietet sich das Kommando grep (engl.: "get regular expression pattern") an.

user$ grep Gartenzwerg *.tex

listet beispielsweise alle Zeilen aus .tex-Dateien im aktuellen Verzeichnis auf, die das Suchmuster Gartenzwerg enthalten.

user$ grep -l Gartenzwerg *.txt

spuckt hingegen die Namen aller .txt-Dateien im aktuellen Verzeichnis aus, die das Wort Gartenzwerg enthalten. Es muss aber nicht immer gleich ein ganzes Bündel Dateien sein:

user$ grep "Overkill" Gartenzwerg.txt

führt alle Zeilen mit dem Suchmuster Overkill in der Datei Gartenzwerg.txt auf. man grep gibt einen Überblick, welche Optionen wie mit grep eingesetzt werden können.

Kill and go!

Wenn ein Programm oder die Konsole hängen bleibt, muss ich dann einen Neustart des Systems durchführen?

Dr. Linux: Nein, mit dem Betriebssystem Linux ist ein Reset nicht nötig. Ganz im Gegenteil sollte ein Drücken der Reset-Taste immer vermieden werden, denn es kann zu Datenverlusten führen. Erste Hilfe in einem solchen Fall ist das Drücken der Tastenkombination Ctrl-C alias Strg-C: Die meisten Befehle/Kommandos lassen sich damit abbrechen. Eine ganze Reihe Programme fangen diese Tastenkombination allerdings ab, insbesondere, wenn sie selbst etwas anderes mit diesem Shortcut vorhaben. In diesem Fall hilft der Befehl kill. Er wird zusammen mit einer Prozess-ID (PID) eingesetzt. Eine solche wird an jeden Prozess vergeben.

Falls nötig, ist zunächst ein Wechsel der Konsole mit Alt-F1(F2...F6) angebracht. Benutzer des X-Window-Systems können ihre grafische Oberfläche durch die Tastenkombination Strg-Alt-F1 (F2...F6) ebenfalls verlassen. Auf der unblockierten Konsole setzen Sie das Kommando ps ("Prozess-Status") ab. Diese Eingabe erzeugt eine Tabelle:

user$ ps
PID TTY STAT TIME COMMAND
170   4 S    0:00 login -- userinnen
479   1 S    0:00 grep Leuchtkeks
480   4 R    0:00 ps

Der Befehl, der zum Stillstand des Terminals geführt hat, wird leicht an seinem Eingabekommando in der Spalte COMMAND erkannt, es handelt sich in diesem Beispiel um eine unvollständige grep-Eingabe. Er befindet sich auf Konsole 1 (TTY) und hat die Prozess-ID (PID) 479. Die Eingabe

user$ kill 479

terminiert den Prozess, und nachdem Sie mit Alt-F1 (F2...F6) auf die Konsole (resp. TTY – "Teletype Terminal", ein Begriff aus der Großrechnerzeit) zurückgeschaltet haben, ist das Terminal wieder voll einsatzfähig. Sollte die Eingabe von kill PID nichts bewirkt haben (nachzuprüfen mit einem neuen ps in der Spalte STAT), so ist die Eingabe von kill -9 PID tödlich für alle Prozesse. STAT zeigt den Prozessstatus an:

  • S = schlafend
  • R = running (laufend)
  • T = terminiert
  • Z = Zombie

ps kann mit verschiedenen Optionen eingesetzt werden:

  • ps a listet alle aktiven Prozesse auf.
  • ps x weitet die Auflistung auf Prozesse aus, die mit keinem Terminal verbunden sind.
  • ps u erweitert die Ausgabe um den Benutzernamen und die Startzeit.
  • Wenn Sie diese Optionen spannend finden, probieren Sie doch auch noch ps f, das die Prozessfamilien als Bäume darstellt.

Die Optionen können auch alle gleichzeitig eingegeben werden. Allerdings wirkt ps aux auf Einsteiger zunächst recht unübersichtlich. Wer mit einer grafischen Oberfläche arbeitet, kann sich zum "Abschießen" eines hartnäckigen Programms auch des Kommandos xkill, eingegeben in einer Befehlszeile, bedienen. Der Cursor wandelt sich in ein Zielkreuz, mit dem das bockige Fenster "um die Ecke gebracht" werden kann. Allerdings ist xkill mit Vorsicht anzuwenden; es besteht bei unvorsichtigem Einsatz die Gefahr des Verlusts ungesicherter Daten.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

330 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...