[Die besten LINUX Tipps]


1. Sicheres Backup übers Netz
2. Postscriptdateien in Einzelbilder zerlegen
3. Dateitypen herausfinden
4. Zeit automatisch korrigieren
5. Get the Job done...
6. Zufällige Passwörter erzeugen
7. Schnelles Anzeigen von Dateien auf dem KDE Desktop
8. Man - Kommando richtig verwenden
9. Terminalfenster aufraeumen
10. X-Server Schnellstart
11. Mehr Tastenkombinationen mit Emacs
12. History-Funktion richtig verwenden
13. Binäre Dateien vergleichen
14. Schneller Zugriff auf die zuletzt gestarteten Kommandos
15. Sicherungskopien direkt Nutzen.
16. Rekursive Kommandos sicherer ausführen
17. Nerven schonen auf der Konsole
18. Logfile lesen - auf die Schnelle
19. Schau mal wer da horcht
20. Man-Pages - leider ohne blaettern
21. Probleme mit der Crontab
22. Partitionen und Mountpoints
23. Kontrolle ueber den FTP Zugang:
24. Versehentliches Ueberschreiben verhindern
25. Texte Vergleichen
26. Texte aktualisieren
27. RPM Integritaet pruefen
28. NetScape - Schrift zu klein
29. Man-Pages ausdrucken
30. Bash- Kommandoliste dynamisch durchsuchen:
31. KDE ohne Maus
32. Vertrauen ist gut, Kontrolle ist besser
33. Freistehender Text fuer GNOME Icons:
34. Files zu Paketen zuordnen - wer hats installiert?
35. Laufende Prozesse in der Uebersicht
36. Terminalfenster zu schmal ?
37. Systemweite Einstellungen fuer Screensaver
38. Kernel an Anwender: Schnelle Uebersicht ueber Meldungen
39. Löschen unmöglich: Dateien zuverlässig schuetzen
40. Übersichtlicher drucken
41. Dateitypen ermitteln
42. Ctrl-Alt-Del abstellen
43. IDE Festplatten beschleunigen
44. Bootdisk im Schnelldurchgang erzeugen
45. Keyboard Maus
46. Strom sparen
47. Bessere Kompression
48. Mehrere Swap Partitionen gleichzeitig nutzen
49. Anzeige von Dateien einschränken
50. Ausgabeumleitung nach Wunsch
51. Schreibzugriff auf Windows 95/98 Partitionen
52. Probleme beim Reboot beheben
53. Zu lange Kommandozeilen
54. Mehrsprachige Shell

1. Sicheres Backup übers Netz

Sollen Dateien ueber ein unsicheres Netz gesichert werden, so kann man dies mit tar und der secure shell ssh realisieren.

Der einfachste Aufruf lautet

tar -c * | ssh backupserver "cat - > /backups/backup.tar";

Das Tar Kommando schreibt die Daten in den Standard Ausgabe Kanal, der direkt an die Secure Shell weitergereicht wird. Auf dem entfernten Rechner wird die Standardausgabe dann mittels "cat" in die gewuenschte Datei geschrieben.

Handelt es sich um eine langsame Verbindung, so kann man auch ein

komprimiertes Tar File uebertragen:

tar -cz * | ssh backupserver "cat - > /backups/backup.tgz";

Alternativ verlaesst man sich auf die Komprimierung der SSH-Verbindung, die dauerhaft in der .ssh/config Datei mit den Zeilen

host backupserver

Compression yes

Compressionlevel 9

auf die maximale Kompressionsstufe eingestellt wird.

2. Postscriptdateien in Einzelbilder zerlegen

Hat man eine Postscriptdatei und moechte diese in Grafikdateien wandeln - zum Beispiel um sie auf einem anderen Rechner auszudrucken, auf dem kein Ghostscript installiert ist, so kann man Ghostscript anweisen entsprechende Dateien zu produzieren.

Im einfachsten Fall genuegt ein

gs -sDEVICE=pcxmono -sOutputFile=bild.pcx Datei.ps

um eine Seite zu rendern. Enthaelt die PS Datei mehr als eine Seite, so erzeugt

gs -dNOPAUSE -sDEVICE=pcxmono -sOutputFile=bild%d.pcx Datei.ps

fuer jede Seite eine eigene Datei (bild1.pcx bis bildN.pcx). Der Parameter NOPAUSE sorgt dafuer, dass nicht jede Seite mit Return bestaetigt werden muss. Die Bilder haben eine Aufloesung von 72 DPI. Die gewuensche Aufloesung kann man aber mittels "-r" einstellen. Soll die Konvertierung voellig ohne Usereingaben erfolgen, zum Beispiel in einem Script, so sieht die Zeile folgendermassen aus:

gs -dNOPAUSE -dBATCH -r300 -sDEVICE=pcxmono -

sOutputFile=bild%d.pcx Datei.ps

Hier mit einer Aufloesung von 300 DPI und ohne jegliche Interaktion.

3. Dateitypen herausfinden

Das File Kommando leistet gute Dienste, wenn es darum geht den Typ einer unbekannten Datei zu ermitteln. Allerdings hat es seine Grenzen, so sind spezifische Informationen meist nicht zu erfahren. Dies ist auch kaum moeglich, da ansonsten das Program einen nicht mehr zu bewaeltigenden Umfang haette. Fuer Grafikdateien gibt es das spezialisierte Program "identify". Dieses Tool liefert nur Infomationen ueber Bildformate, gibt dafuer allerdings erschoepfende Auskunft.

Ein moegliches zweistufiges Vorgehen bei einer unbekannten Datei waere:

file example1

example1: TIFF image data, little-endia

Es handelt sich also um ein Bild im Tiff Format. Weitere Informationen liefert

identify example1

example1 256x256 DirectClass 256kb TIFF 1s

Wem das immer noch nicht reicht, der kann sich mit der Option "- verbose" alle zu ermittelnden Informationen anzeigen lassen:

identify -verbose example1

TIFF Directory at offset 0x40008

Image Width: 256 Image Length: 256

Resolution: 72, 72 pixels/inch

Bits/Sample: 8

Compression Scheme: None

Photometric Interpretation: RGB color

Extra Samples: 1<assoc-alpha>

FillOrder: lsb-to-msb

Document Name: "/home/pas/example1"

Image Description: "Created with The GIMP"

Orientation: row 0 top, col 0 lhs

Samples/Pixel: 4

Rows/Strip: 8

Planar Configuration: single image plane

Image: example1

format: TIFF (Tagged Image File Format)

type: true color with transparency

class: DirectClass

matte: True

colors: 53140

geometry: 256x256

resolution: 72x72 pixels/inch

depth: 8

filesize: 256kb

interlace: None

background-color: gray74

border-color: gray74

matte-color: gray74

compression: None

runlength packets: 65288 of 65536

tainted: False

signature: 0186e815d347f3a836701beb48a50850

comments:

Created with The GIMP

Identify ist Bestandteil des ImageMagic Paketes, das bei den meisten Distributionen enthalten ist.

4. Zeit automatisch korrigieren

Auf unbeaufsichtigt laufenden Server stellt sich das Problem, dass die Uhrzeit bei laengerer Uptime immer weiter von der Realitaet abweicht. Vielfaeltige Methoden existieren um die Genauigkeit zu steigern. Eine besonders einfache, die keinerlei weitere Eingriffe in das System benoetigt ist die Verwendung des Programms "ntpdate". Dieses ist bestandteil des "ntp" Paketes, dass bei vielen Distributionen vorhanden ist. Das Paket liefert neben dem genannten Programmmoeglichkeiten einen lokalen Zeitserver aufzubauen, und so alle Rechner im LAN zu synchronisieren. Hat man nur einen Server, und genuegt eine Genauigkeit im Sekundenbereich, so reicht folgender

Aufruf:

ntpdate Zeitserver

Die lokale Uhrzeit wird nun automatisch mit der des Zeitservers abgeglichen. Eine Liste der frei verfuegbaren Zeitserver findet sich unter

http://www.eecis.udel.edu/~ntp/

Dort findet man auch die jeweils aktuellste Version des Paketes zum Download.

5. Get the Job done...

Programme die in der Shell ablaufen, lassen sich mit STRG-Z anhalten. Die Shell uebernimmt wieder die Kontrolle, und weitere Kommandos lassen sich starten. Moechte man, dass das Programm im Hintergrund weiterlaeuft, so kann man mittels

bg

die Ausfuehrung fortsetzen. Das Program verhaelt sich dann so, als waehre es im Hintergrund gestartet worden, also durch anhaengen des "&" Zeichens. Soll das Kommando im Vordergrund fortgesetzt werden, so genuegt ein

fg

und man kann weiterarbeiten. Etwas kniffliger wird die Sache, wenn man ein zweites oder drittes Kommando anhaelt. Eine Uebersicht ueber im Hintergrund angehaltene oder laufende Programme liefert

jobs

Jeden Job ist eine Nummer zugeordnet. Ueber diese Nummer lassen sich selektiv Programme in den Vordergrund holen aber auch gezielt beenden. Das "kill" Kommando der Shell interpretiert Zahlen normalerweise als Prozess IDs. Durch ein vorangestelltes "%" Zeichen wird die Zahl aber als Job ID verstanden.

6. Zufaellige Passwoerter erzeugen

Der folgende kleine Einzeiler liefert zufaellige Zeichenketten, die sich recht gut als Passwoerter eignen.

head -c6 /dev/random | uuencode -m - | sed -n '2s/=*$//;2p'

Wer laengere Zeichenketten benoetigt, kann die Anzahl der aus dem Random Device ausgelesenen Zeichen entsprechend vergroessern. Aber Achtung: Anwender freuen sich normalerweise nicht sehr ueber extrem lange und kryptische Passworte.

7. Schnelles anzeigen von Dateien auf dem KDE Desktop

KDE erlaubt es, Dateien auf dem Desktop abzulegen. Tatsaechlich befinden sich diese Dateien dann im "Desktop" Verzeichniss des jeweiligen Anwenders. Moechten man nun von der Bash aus auf eine solche Datei zugreifen so kann man sich mit dem Tildenzeichen "~" ein wenig Tiparbeit sparen. Der Befehl less ~/Desktop/text.txt zeigt die auf dem Desktop liegende Datei "text.txt" an. Hat ein anderer Anwender eine Datei auf seinem Desktop fuer andere Anwender freigegeben, so kann man mittels less ~username/Desktop/text.txt auf die Datei des anderen Users zugreifen.

8. Man - Kommando richtig verwenden

Unter Linux verwenden viele Programme Konfigurationsdateien - die Manpages von Kommandos sind allerdings nicht immer informativ, was das Format dieser Dateien betrifft. Die liegt daran, das der Aufruf von 'man' ohne Parameter nur den ersten gefundenen Eintrag - meist die Beschreibung aus Sektion 1 - liefert: Die ueber Konfigurationsdateien vorliegenden Informationen befinden sich aber in Sektion 5 der Manpages. Will man die Informationen aus einem anderen Kapitel als aus Sektion 1, so muss man die Nummer explizit angeben. Es liefert zum Beispiel man passwd die Informationen ueber das Program 'passwd'. Waehrend man 5 passwd die Beschreibung der Datei "/etc/passwd" liefert. Ob zu einem Wort mehrere Eintraege in unterschiedlichen Kapiteln vorhanden sind, kann man mit dem 'apropos' Kommando herausfinden: apropos passwd liefert z.B.

passwd ( ** - change user password passwd ( ** - The password file

Die Zahl in Klammern gibt immer das Kapitel an, in dem sich die Information befinden.

9. Terminalfenster aufraeumen

Beim Arbeiten mit der Shell passiert es gelegentlich, dass der Bildschirm in einem unaufgeraeumten Zustand verbleibt. Befindet man sich direkt in der Shell, wartet also ein Prompt auf eine Eingabe, so kann man mit dem Kommando "clear" den Bildschirm loeschen, und den Prompt in die erste Zeile bringen. Alternativ kann man auch die Zeichenfolge "STRG-L" eingeben. Diese Tastenkombination funktioniert darueberhinaus auch in den meisten Textmodus Anwendungen. – so daß man auch dort schnell einen aufgeraeumten Bildschirm bekommt.

10. X-Server Schnellstart

Moechte man kurz einen alternativen XServer starten, zum Beispiel um einen anderen Windowmanager auszuprobieren oder eine Anwendung in einer anderen Bildschirmaufloesung oder Farbtiefe zu testen, so kann man mittels startx - -- :1 einen zweiten XServer starten. Dieser laesst sich dann normalerweise ueber "ALT-F8" von der Konsole bzw. mit "STRG-ALT-F8" von X aus erreichen. Die maximale Anzahl von XServern die gleichzeitig gestartet werden koennen ist auf 64 limitiert - allerdings geht den meisten Rechnern wohl schon deutlich vorher der Hauptspeicher aus.

11. Mehr Tastenkombinationen mit Emacs

Mit der Bash ist man in der Lage mittels Tabulator-Taste Kommandos und Dateinamen vervollstaendigen zu lassen. Einige weitere Tastenkombinationen erlauben noch weitere Moeglichkeiten. Diese sind allerdings nur gueltig, wenn die Shell mit den Standard Emacs Tastenkuerzeln betrieben wird. Diese Kombinationen sind im einzelnen: ESC-?: Listet alle in Frage kommenden Moeglichkeiten auf. ESC-TAB: Vervollstaendigung des Kommandos aus der History. ESC-/: Vervollstaendigung nach Dateinamen im Pfad. ESC-~: Vervollstaendigung ueber bekannte Usernamen des Systems ESC-$: Vervollstaendigung ueber bekannte Umgebungsvariablen ESC-@: Vervollstaendigung ueber bekannte Rechnernamen (/etc/hosts) ESC-!: Vervollstaendigung ueber Kommandos im Pfad.

12. History-Funktion richtig verwenden

Eine nuetzliche Funktion der Bash ist die History Funktion der Kommandozeile. Mittels Cursortasten kann man durch die zuletzt erfolgten Eingaben blaettern, und die Eingaben bleiben sogar nach Ab- und erneutem Anmelden erhalten. Benutzen mehrere Personen den selben Account, kann dieses Verhalten aber unerwuenscht sein, da jeder Anwender die Eingaben seines Vorgaengers dann bequem einsehen kann. Will man temporaer verhindern, dass die Eingaben in die History aufgenommen werden, so kann man durch die Eingabe von export HISTFILESIZE=0 das Abspeichern der Eingaben verhindern. Die im Speicher verwaltetet Liste bleibt davon unberuehrt: Lediglich die dauerhafte Speicherung wird unterbunden, und die 'zu versteckenden' Eingaben sind so vor den anderen Benutzern verborgen.

13. Binaere Dateien vergleichen

Mit dem "diff" Kommando koennen Unterschiede in Textdateien gefunden werden. Fuer binaere Dateien eignet sich das Kommando allerdings weniger. Hier bietet sich statt dessen das "cmp" Kommando an. Mit ihm werden Dateien byteweise verglichen und auf Wunsch Unterschiede angezeigt. Im einfachsten Fall lautet der Aufruf: cmp datei1 datei2 Als Resultat liefert dieser Aufruf lediglich die Position des ersten Unterschieds oder eine Meldung, wenn die Dateien identisch sind. Ueber den Parameter -c wird das Programm veranlasst auch die beiden unterschiedlichen Zeichen auszugeben. Mit dem –l Parameter werden alle Unterschiede ausgegeben. Gelegentlich weiss man vorher, dass sich zwei Dateien unterscheiden, zum Beispiel ist bei einer regelmaessigen Ausgabe die Zeitmarke jedesmal eine andere. Ueber den Parameter -i kann der Vergleich auf einen bestimmten Bereich der Datei beschraenkt werden. So vergleicht ein cmp -i 150 datei1 datei2 die Dateien erst ab Byte 151. Die ersten 150 Zeichen werden also uebersprungen.

14. Schneller Zugriff auf die zuletzt gestarteten Kommandos

Die Bash Shell verwaltet eine Liste der zu letzt gestarteten Kommandos. Diese Liste dient bei langen Suchpfaden dazu, den Zugriff zu beschleunigen, da nicht jedes mal erneut nach dem Programm gesucht werden muss. Verschiebt man Dateien innerhalb des Suchpfades schlaegt dieser Mechanismus allerdings fehl, und die Datei wird nicht mehr gefunden. Durch das Kommando hash -r leert man die Liste, und die Suche gelingt wieder. Dieser Fall tritt allerdings recht selten auf. Deutlich nuetzlicher ist es, dass auch Kommandos ausserhalb des Suchpfades in die Liste aufgenommen werden koennen. Ein hash -p /pfad/name name traegt das Program "name" in die Liste ein. In Folge kann die Pfadangabe weggelassen werden. Mit hash alleine wird die aktuelle Liste der gespeicherten Kommandos ausgegeben.

15. Sicherungskopien direkt nutzen.

Mit Hilfe des "dd" Kommandos lassen sich einfach Sicherungskopien von Diskette oder CD-ROMs erzeugen. Das Kommando dd if=/dev/fd0 of=FloppyImage legt ein exaktes Abbild der Diskette im Laufwerk A: in der Datei "FloppyImage" ab. Mit dem umgekehrten Kommando laesst sich das Image auf eine andere Diskette schreiben. dd if=FloppyImage of=/dev/fd0 Benoetigt man nun lediglich eine Datei aus einem solchen Image oder moechte man Dateien im Image aendern bevor man das gesammte Abbild wieder zurueckschreibt, kann man ueber das "loop" Device das Abbild mounten, als waehre es ein pysikalisches Medium. Um ein Abbild einer Diskette zu mounten genuegt bei einer MS-DOS Diskette das Kommando mount -o loop -t msdos FloppyImage /mnt Nun kann direkt auf den Inhalt zugegriffen werden.

16. Rekursive Kommandos sicherer ausfuehren

Einige Kommandos verfuegen ueber Optionen mit denen die Ausfuehrung nicht nur auf das aktuelle Verzeichniss, sondern auch auf alle Unterverzeichnisse ausgedehnt wird. Einige dieser Kommandos beruecksichtigen beim Durchlaufen des Verzeichnissbaumes auch symbolische Links. Zeigt nun ein solcher Link z.B. auf "/" so wendet man das Kommando auf das gesammte Dateisystem an. Ueber das "find" Kommando lassen sich rekursive Kommandos besser steuern und kontrollieren. Ein find . -type f -exec ls {} ; listet zunaechst alle regulaeren Dateien ab dem aktuellen Vezeichniss auf - Also keine Verzeichnisse oder Geraetedateien. Durch die Angabe von find . ! -type l -exec ls {} ; verhindert man das Beruecksichtigen von symbolischen Links (das "!" negiert das folgende -type l). Ueber den Parameter "-maxdepth n" kann man die Tiefe des Suchvorgangs auf "n" Verzeichnissebenen beschraenken. Ist man mit der Ausgabe der Dateinamen einverstanden, so kann man das "ls" Kommando durch das eigentlich gewuenschte ersetzen. Die Zeichenfolge "{}" wird jeweils durch den Namen der Datei ersetzt, bevor das Kommando aufgerufen wird.

17. Nerven schonen auf der Konsole

Wer gerne mit automatischer Vervollstaendigung der Kommandozeile arbeitet, zieht sich leicht den Zorn seiner Kollegen zu: Bei jeder Mehrdeutigkeit ertoehnt ein Beep aus dem Lautsprecher des Computers. Mit dem einfachen Kommando echo -ne '033[11;0]' sorgt man fuer Ruhe im Raum – ohne Kommandozeilenvervollstaendigung ohne beep.

18. Logfile lesen - auf die Schnelle

Zum Verfolgen von Logfiles bietet sich das Kommando 'tail -f' an: Es zeigt kontinuierlich immer das Ende einer Datei an - der Nachteil ist, dass einmal vom Bildschirm gescrollte Zeilen nicht mehr zurueckgeholt werden koennen. Alternativ kann auch das Pager Programm "less" die kontinuierlichen Aenderungen einer Datei anzeigen. Die Kommandozeile less +F Dateiname arbeitet genau wie "tail -f" allerdings kann man weiterhin auch nach oben blaettern. Hat man less bereits normal gestartet, so kann man ueber die Taste "F" den kontinuierlichen Modus nachtraeglich aktivieren.

19. Schau mal wer da horcht

Das netstat Tool liefert eine Liste aller offenen Netzwerkverbindungen. Mit ihm ist es moeglich sich einen raschen Ueberblick ueber das Geschehen auf einem gegebenen Rechner zu verschaffen. Netstat liefert die folgenden Informationen: netstat tcp 0 0 myip:1239 home.t-online.de:www ESTABLISHED Hier besteht eine tcp Verbindung mit leeren Warteschlangen zwischen dem eigenen Rechner und einer Homepage bei T-Online Ueber den Parameter "-a" liefert das Tool nicht nur bestehende Sockets sondern auch solche, die auf Verbindung warten: netstat -a tcp 0 0 *:printer *:* LISTEN Hier wartet ein Program auf Verbindungen ueber den "printer" Port. Bei einigen Zeilen will die Zuordnung allerdings nicht auf Anhieb gelingen. Der Parameter "-p" liefert dann zusaetzlich noch die Information, welches Program hinter einer Verbindung steckt: netstat -ap tcp 0 0 *:printer *:* LISTEN 173/lpd Die letzte Spalte liefert Prozessid (pid) und Name des Programms. Die pid kann man dann zum Beispiel bei einem "kill" Kommando verwenden.

20. Man-Pages - leider ohne blaettern

Manpages sind sehr nuetzlich, wenn man eine Anleitung zu einem bestimmten Kommando benoetigt - aber leider kann man in ihnen nicht blaettern. Sucht man Informationen zu einem bestimmten Schluesselwort, kann man sich aber mit dem "apropos" Kommand behelfen. Die Eingabe von apropos Schluesselwort liefert eine Liste aller Man Pages, die dieses Schluesselwort enthalten. Will man hingegen nur kurz wissen, was ein Kommando tut, ohne es ausfuehren zu muessen, so hilft der Befehl "whatis Kommando" weiter. Das 'Whatis' Tool liefert den Titel der entsprechenden Man Page fuer ein Kommando.

21. Probleme mit der Crontab

Ein Eintrag in der Crontab fuehrt dazu, dass ein Programm oder Kommando in regelmaessigen Intervallen ausgefuehrt wird. Da dies unbeaufsichtigt erfolgt, ist es nuetzlich sich die Ausgaben des Programms als Mail zuschicken zu lassen. Leider kann diese Mailzustellung nur fuer die gesammte crontab ein oder ausgeschaltet werden. Einzelne Kommandos, die eventuell haeufig ausgefuehrt werden, ueberschwemmen daher leicht die Mailbox mit wenig sinnvollen

Erfolgsmeldungen. Produziert ein Kommando aber keinerlei Ausgaben, so wird auch keine Mail verschickt. Das Umleiten aller Ausgaben an das Null-Device unterdrueckt schaltet also dessen Resultate aus. Beispiel: 0,15,30,45 * * * * /usr/lib/news/bin/input/newsrun 2>&1 > /dev/null Das Konstruckt "2>&1 > /dev/null" sorgt unter der Bash-Shell dafuer, dass sowohl die Standardausgabe als auch der Standardfehler unterdrueckt werden.

22. Partitionen und Mountpoints

Verwendetet man viele Partitionen so verliert man eventuell den Ueberblick darueber, welche Partition zu welchem Mount Point gehoert. (Spaetestens dann, wenn man von seiner Notfalldiskette booten muss und die Eintrage in der fstab nicht vorhanden sind.) Durch das setzen des Volume Labels auf den Namen des Mountpoints gelingt kann man die Zuordnung erleichtern. Das setzten des Labels erfolgt ueber das Kommando: tune2fs -L Name Partition Das aktuelle Label kann man z.B. mit "tune2fs -l Parition" erfragen. Neuere Versionen des "mount" Kommandos verstehen auch den Parameter "-L" der es ermoeglicht eine Partition unter Angabe ihres Labels zu mounten. Beispiel: mount -L label Mountpoint

23. Kontrolle ueber den FTP Zugang

Jeder eingetragene Benutzer kann sich, so ein FTP Server auf dem Rechner laeuft, zum Server verbinden und auf sein Homeverzeichniss zugreifen. In manchen Konfigurationen ist dieses Verhalten aber nicht wuenschenswert, zum Beispiel wenn der Account eigentlich nur fuer den Zugriff auf einen Samba Share eingerichtet wurde. Ein Eintrag des Usernamens in die Datei /etc/ftpusers verhindert den Zugriff. In dieser Datei sollten - im Interesse der Systemsicherheit - auch alle Konten eingetragen sein, die priviligierten Zugriff auf das System haben.

24. Versehentliches Ueberschreiben verhindern

Die Ausgabeumleitung der Shell ist eine praktische Moeglichkeit um Meldungen zur spaeteren Analyse zu sichern. Der Aufruf eines Kommandos mit: Kommando > Dateiname Sichert alle Ausgaben des Kommando unter der angegebenen Datei. Ein Kommando >> Dateiname haengt die Ausgaben am Ende der Datei an. Leider fragt die erste Variante nicht nach, sondern Ueberschreibt die Datei einfach mit den neuen Ausgaben. Der Eintrag set -C in der Startdatei ".bashrc" eines Anwenders, bzw. systemweit in der /etc/profile Datei fuer alle Anwender, verhindert ein versehentliches Ueberschreiben in solchen Faellen. Ist dieser Eintrag erfolgt, so funktioniert Kommando > Dateiname nun nur noch, wenn die Datei nicht vorhanden ist. Soll die Datei ueberschrieben werden, so benoetigt man Kommando >| Dateiname

25. Texte Vergleichen

Um Unterschiede zwischen Textdateien zu finden verwendet man das diff Kommando. Dieses Kommando findet die Unterschiede zwischen zwei Dateien und zeigt diese an. diff AlteDatei NeueDatei Die Ausgabe ist allerdings nicht sofort verstaendlich. Dafuer ist es moeglich diese Unterschiede abzuspeichern, und mit dem "patch" Kommando auf die alte Datei anzuwenden und so die alte Datei auf den Stand der neuen zu bringen. diff AlteDatei NeueDatei > Unterschiede patch AlteDatei Unterschiede Will man nur einen raschen Ueberblick ueber die Unterschiede, dann ist das "sdiff" Tool besser geeignet, denn es praesentiert die Unterschiede nebeneinander - Voraussetzung fuer die Uebersicht ist also ein breites Terminalfenster. sdiff Datei1 Datei2

26. Texte aktualisieren

Hat man eine grosse Anzahl an Textdateien, und hat sich ein Schluesselwort zum Beispiel eine URL in allen Dateien geaendert und muss nun aktualisiert werden, so kann man mit dem "tr" Kommando viel Zeit sparen. Das Kommand fuehrt ohne weiteres Rueckfragen eine Textersetzung durch. Das Schluesselwort muss daher eindeutig sein. cat AlteDatei | tr AltesWort NeuesWort > NeueDatei Der Inhalt der alten Datei wird mittels "cat" an das "tr" Kommando geschickt und unter dem Namen "NeueDatei" abgespeichert, dabei wird jedes Vorkommende alte Wort durch das neue ersetzt.

27. RPM Integritaet pruefen

Pakete im RPM Format sind sehr praktisch. Bei der Installation werden automatisch alte Dateien ersetzt und ueberfluessige entfernt. Leider darf im Verlauf eines Updates nichts schiefgehen, da sonst das System in einem instabilen Zustand zurueckbleiben kann. Bestehen Zweifel an der Integritaet eines RPM Pakets (Abgebrochener und Fortgesetzter Download, alte Disketten zum Transport usw.) so kann ueber das Kommando rpm --verify rpm-paket.rpm ein Test durchgefuehrt werden. Hierbei wird unter anderem eine MD5 Pruefsumme ermittelt und mit der im Archiv gespeicherten verglichen.

28. NetScape - Schrift zu klein

Bei vielen Webseiten werden im Netscape Navigator Schriften zu klein angezeigt. Die Vergroesserung der Standartschrift macht den Text dann zwar lesbar, sorgt aber dafuer, dass die restlichen Schriften zu gross darsgestellt werden. Alternativ traegt man die Zeile Netscape*documentFonts.sizeIncrement: 5 in der Datei .Xdefaults im persoenlichen Homeverzeichnis ein. Ein anschliessendes xrdb -load ~/.Xdefaults aktiviert die Aenderungen - und macht die Schriften sinnvoll lesbar.

29. Man-Pages ausdrucken

Man Pages sind immer noch eine der wichtigesten Informationquellen fuer den Linux Anwender. Einige dieser Seiten sind jedoch recht lang, und gelegentlich waehre es wuenschenswert einen Ausdruck der darin befindlichen Informationen zu erhalten. Zu diesem Zweck kann das 'man' Kommando ueber den Parameter "-t" angewiesen werden, eine Seite im Postscript Format auszugeben. Der Ausdruck gestalltet sich dann recht einfach, sofern man einen Postscript faehigen Drucker oder einen entsprechenden Druckerfilter wie zum Beispiel Apsfilter installiert hat. man -t [Kommandoname] | lpr

30. Bash- Kommandoliste dynamisch durchsuchen

Die Bash fuehrt eine Liste der letzten auf der Kommandozeile eingegebenen Befehle mit. In dieser Liste kann mit den Cursortasten geblaettert werden, allerdings ist dieser Vorgang recht muehsam, wenn das gewuenschte Kommando schon einige Zeit zurueckliegt. Das Suchen von Kommandos ist aber praktischerweise

auch moeglich, sodas auch aeltere Kommandos leicht aufgetrieben werden koennen: Durch die Tastenkombination CTRL-R schaltet die Bash in den inkrementellen Suchmodus. Folgende Eingaben werden nun direkt als Suchbegriff verwendet, und die jeweils am besten passende Zeile wird eingeblendet. Ist die

richtige Zeile gefunden, genuegt eine bestaetigung mit Return, und das Kommando wird erneut ausgefuehrt.

31. KDE ohne Maus

Auch wenn KDE ein Windowmanager ist - der eigentlich mit der Maus bedient werden will - so kann es dennoch recht praktisch sein, einige Kommandos mit der Tastatur auszufuehren. Die wichtigsten Tastaturkuerzel fuer KDE sind: Alt-F2: Oeffnet eine Kommandozeile Alt-F3: Oeffnet das Fenstermenue Alt-F4: Schliesst das aktuelle Fenster Alt-Tab/Alt-Shift-Tab: Vorwaerts/Rueckwaertsblaettern durch die Fenster Ctrl-F1-8: Direktes Springen zu einem anderen virtuellen Desktop Ctrl-Alt-Esc: Schliessen von Fenstern durch anklicken. Alt-Esc/Control-Esc: Oeffnet den Session Manager.

32. Vertrauen ist gut, Kontrolle ist besser

Die zentrale Datei zur Konfiguration der von aussen zugaenglichen Dienste eines Linuxrechners ist die Datei "/etc/inetd.conf". Fehler in dieser Datei koennen zu ueberraschenden Ergebnisse fuehren und sollten generell vermieden werden. Um einigermassen sicher zu sein, dass der Inhalt der Datei zumindest syntaktisch korrekt ist, verwendet man das Kommando 'tcpdchk'. Das Kommando untersucht die Konfigurationsdatei auf typische Fehler wie zum Beispiel falsche Pfade, fehlerhafte Optionen oder ungueltige Hostnamen. Mit der Option '-v' erfolgt eine ausfuehrlichere Ausgabe der Fehlermeldungen: Solche Meldungen sollte man nicht ignorieren.

33. Freistehender Text fuer GNOME Icons

Bei GNOME wird unter den den Icons auf dem Hintergrund ein rechteckiger Bereich in einer kontrastreichen Farbe eingefaerbt, damit der Text der Icons immer lesbar ist. Auf manchen Hintergrundbildern wirken dieser Bereich aber sehr stoerend oder sind voellig ueberfluessig, da der Kontrast des Textes selbst ausreicht. Darum lassen sich die rechteckigen Bereiche im Midnight Commander unter "Preferences - Desktop - Use shaped text" abschalten: Und schon ist der Desktop ein Schritt huebscher.

34. Files zu Paketen zuordnen - wer hats installiert?

Gelegentlich frag man sich woher eine bestimmte Datei eigentlich stammt: Sei es aus Neugierde oder weil man sie gerade geloescht hat und sie neu installieren moechte ist diese Information einfach sinnvoll. Ein schneller Weg ist es, die CD der Distribution einzulegen, in das Verzeichnis mit den RPM Dateien zu wechseln, und folgende Zeile zu Tippen: for i in *.rpm; do rpm -qpl $i | grep -q 'Dateiname' && echo $i ; done Das Rresultat des Befehls ist eine Liste mit allen RPM Paketen, in der die Datei enthalten ist.

35. Laufende Prozesse in der Uebersicht

Eine anschauliche Darstellung ueber momentane laufende Prozesse liefert der Befehl: pstree Im Gegensatz zu 'ps' werden Prozesse dabei nicht einfach nur aufgelistet, sondern ihre Verwandschaftsbeziehungen werden durch eine baumartige Struktur verdeutlicht. Man erfaehrt also, welche Subprozesse ein Program gestartet hat. Mit den Parametern '-ap' liefert das Program zusaetzlich die Prozessid und die Kommandozeile der Prozesse.

36. Terminalfenster zu schmal ?

Einige Programme liefert Ausgaben, die laenger als die Breite des Terminalfensters sind. Das Umleiten der Ausgabe in ein Pager Program (wie zum Beispiel 'less') schaft zwar Abhilfe wenn die Daten nur gelesen werden sollen, spaetestens beim Editieren oder Drucken der Zeilen taucht das Problem aber wieder auf. Abhilfe schafft hier das 'fold' Kommando. Der Aufruf fold Dateiname zeigt den Inhalt der Datei mit Zeilenumbruechen an Position 80 an. Andere Zeilenlaengen lassen sich ueber den 'width' Parameter angeben. So liefert fold --width=72 Dateiname eine Ausgabe mit entsprechend verkuerzter Zeilenlaenge. Handelt es sich um lesbaren Text, so ist der Parameter '-s' sinnvoll, da hier an Leerzeichen umgebrochen wird. Ohne diesen Parameter wird mitten im Wort umgebrochen.

37. Systemweite Einstellungen fuer Screensaver

Die Einstellungen fuer die dpms Powersaving Features lassen sich mittels xset einstellen. Allerdings funktionieren diese Einstellungen nur, wenn jemand eingeloggt ist. Resultat: Bei einem System, dass mittels XDM direkt nach X bootet bleibt der Bildschirm angeschaltet so lange niemand am System

angemeldet ist. Eine Alternative zu xset sind die "power_saver" Optionen des Xservers: Aktiviert wird die Option in der Datei "/etc/XF86Config" durch die Zeile: Option "power_saver" in der Sektion "Device" Die Zeiteinstellungen erfolgen in der Sektion "Screen" durch die Zeilen: BlankTime 5 SuspendTime 10 OffTime 30 In diesem Beispiel wird der Bildschirm nach 5 Minuten dunkel, nach 10 Minuten schaltet der Monitor in den Suspend Modus, und nach 30 Minuten schaltet er sich vollstaendig ab: Auch dann, wenn niemand angemeldet ist.

38. Kernel an Anwender: Schnelle Uebersicht ueber Meldungen

Tritt ein Fehler im System auf, so protokolliert Linux die zugehoerigen Meldungen in den Syslogdateien unter "/var/log" mit. Diese Dateien sind allerdings normalerweise nur vom Superuser zu lesen. Die letzten Meldungen des Kernels lassen sich jedoch trotzdem mit dem Befehl dmesg anzeigen. Ueber den Parameter "-n" lassen sich unwichtige Meldungen ausfiltern. Der Aufruf dmesg -n 1 zeigt zum Beispiel nur noch schwerwiegende Fehler (kernel panic) an. Die Meldungen bleiben allerdings nicht beliebig lange erhalten, da der Puffer nur 8 kB gross ist, und die jeweils aeltesten Eintraege ueberschrieben werden. Sollen Fehlermeldungen zur spaeteren Analyse aufbewahrt werden, so genuegt ein dmesg > meldungen.log um alle aktuellen Meldungen in der Datei "meldungen.log" zu sichern.

39. Loeschen unmoeglich: Dateien zuverlaessig schuetzen

Mit dem "chattr" Kommand koennen die Attribute des Ext2 Dateisystems einer Datei veraendert werden. Diese Attribute lassen sich nur vom Superuser veraendern, und werden normalerweise nicht angezeigt. Verwendet man das Kommando chattr +i Dateiname so ist die Datei Dateiname' vor Veraenderungen oder Loeschen geschuetzt - und auch der Superuser kann eine so geschuetzte Datei nicht loeschen, ohne vorher das Attribut mit chattr -i Dateiname zu entfernen. Die aktuellen Attribute von Dateien zeigt das "lsattr" Kommand an: Das ganze ist also so in normalerweise nicht verwendete Programme verpackt, das versehentliches arbeiten mit diesen Attributen praktisch unmoeglich ist.

40. Uebersichtlicher drucken

Zum Drucken einer Datein kann man anstelle vom lpr-Kommando das Kommando klpq verwenden. Der Ausdruck einer Datei erfolgt dann also mit dem folgenden Befehl: klpq Dateiname Klpq reicht beim Start die Datei automatisch an den Line Printer Daemon weiter und oeffnet ein Fenster, in dem alle aktuellen Druckauftraege aufgefuehrt sind. In diesem Fenster kann man Druckauftraege loeschen oder ihre Reihenfolge veraendern: Sehr praktisch, falls einmal etwas falsches gedruckt wird.

41. Dateitypen ermitteln

Kommandos die fuer bestimmte Dateitypen ausgelegt sind verlassen sich normalerweise auf die Dateierweiterung. Leider ist diese in vielen Faellen nicht eindeutig: Fuer JPG Dateien findet man zum Beispiel wahlweise "jpg", "jpeg", "JPG" oder "JPEG". Hat die Datei gar keine Erweiterung so scheitern der Ansatz ueber den Namen vollstaendig. Dieses Problem laesst sich aber loesen: Ueber das "file" Kommando lassen sich Dateitypen identifizieren. Das Kommando sucht dabei im Header der Datei nach eindeutigen Informationen und liefert den Dateityp zurueck.

Die bekannten Dateitypen sind in der Datei "/usr/lib/magic" abgelegt. (und zwar bereits von Haus aus mehr als 4000). Der Aufruf des Kommandos ist mit file Dateiname sehr einfach - Zurueckgeliefert wird der Dateityp der angegebenen Datei - zumindest dann, wenn er bekannt ist.

42. Ctrl-Alt-Del abstellen

Fuer Umsteiger von Windows ist es mitunter recht muehsam sich daran zu gewoehnen, dass ein Linux System nicht mehr ohne weiteres ausgeschaltet oder neu gestartet werden kann. Das Verhalten von CTRL ALT DEL loest normalerweise einen Neustart des Systems aus - Sollte das System noch von anderen Anwendern benutzt werden, so ist dieses Verhalten aber nicht gerade wuenschenswert. Die Aktion, die das System beim der Tastenkombination CTRL-ALT-DEL ausfuehrt laesst sich aber in der Datei "/etc/inittab" einstellen. Die Zeile

ca::ctrlaltdel:

bestimmt das Verhalten. Kommentiert man die Zeile mit einem "#" Zeichen aus, so wird die Tastenkombination vollstaendig ignoriert: Das ist meist das sinnvollste Verhalten.

43. IDE Festplatten beschleunigen

Linux verwendet beim Zugriff auf IDE Festplatten sehr konservative Einstellungen. Mittels des Kommandos

hdparm -v /dev/hda

kann man sich eine kurze Uebersicht ueber die momentanen Einstellungen anzeigen lassen. Erscheinen dort die Zeilen

using_dma = 0 (off)

I/O support = 0 (default 16-bit)

so verwendet der Festplattentreiber kein DMA und 16 Bit I/O. Die ist die langsamste Einstellung. Die aktuellen Uebertragungsraten kann man durch das Kommando

hdparm -t /dev/hda

bestimmen. Es erscheint eine Zeile der Form:

Timing buffered disk reads: 32 MB in 7.03 seconds =

4.55 MB/sec

Die Uebertragungsrate betraegt also 4.55 Megabyte in der Sekunde. Nach dem Einschalten von DMA Transfers mittels "hdparm -d 1 /dev/hda" betraegt die Uebertragungsrate im Beispiel immerhin schon 6.84 MB/sec. Aktiviert man nun noch den 32 Bit Zugriff mittels

hdparm -c 1 /dev/hda

so erhaelt man schliesslich den Wert 7.51 MB/sec. Die eingestellten Werte sind allerdings sehr fluechtig. Ein IDE Reset, den der Kernel unter gewissen Umstaenden auch im laufenden Betrieb durchfuehrt, zerstoert sie. Mittels

hdparm -k 1 /dev/hda

bleiben die Einstellungen aber auch ueber einen DIE Reset erhalten. Einen Rechnerneustart ueberstehen sie dann allerdings immer noch nicht: Erst ein Eintragen der entsprechenden Zeilen in ein Startscript, dass nach jedem Booten aufgerufen wird macht sie dauerhaft. Je nach Distribution ist dies allerdings eine andere Stelle. Bei Suse eignet sich zum Beispiel ein eigenes Script in "/etc/rc.d/rc2.d" auf Basis des mitgelieferten "skeleton" Beispiels.

44. Bootdisk im Schnelldurchgang erzeugen

Bei der Installation von Linux wird fuer gewoehnlich eine Bootdiskette erzeugt. Diese bewahrt man an einem sicheren Ort auf. Fuer den Fall das der Rechner nicht mehr von der Festplatte booten kann, liegt damit dann eine weitere Startoption vor. Aendert sich die Kernelversion zum Beispiel nach Erstellen eines eigenen Kernels ist es sinnvoll, eine neue Bootdiskette zu erzeugen. Der schnellste Weg um den aktuellen Kernel auf eine Bootdiskette zu bekommen ist das Kommando

dd if=/boot/mein.kernel of=/dev/fd0

Diese Kommando schreibt einfach das aktuelle Kernelimage (im Beispiel mit dem Namen "mein.kernel") auf eine Diskette. Sicherheitshalber sollte man anschliessend noch das Kommando

rdev /dev/fd0 /dev/bootpartition

absetzen - damit bootet der Kernel auch von der entsprechenden Partition.

45. Keyboard Maus

Gelegentlich benoetigt man fuer exaktes Arbeiten (zum Beispiel in einem Grafikprogram) eine sehr praezise Maussteuerung: Dies kann man mit der Tastatur erreichen: Durch gleichzeitiges Druecken der Tasten "STRG-SHIFT- NUMLOCK" schaltet X in einen Tastatur-Maus Modus um. In diesem Modus kann die Maus ueber das numerische Zahlenfeld bewegt werden. Die Taste "5" loest einen Klick aus, "+" einen Doppelklick. Ueber die Taste "0" kann ein dauerhaftes klicken aktiviert werden, dass fuer Drag und Drop Operationen erforderlich ist. Durch erneutes Druecken der drei Tasten wird der Modus wieder verlassen.

46. Strom sparen

Auch DPMS kann unter X benutzt werden. Das funktioniert mit dem X Programm 'xset' – am einfachsten indem man das Programm in der '.xinitrc' eintraegt - bzw. in der 'xsessionrc' falls X direkt gebootet wird. Um den Power-Spar Modus einzuschalten wird der folgende Aufruf verwendet:

xset dpms [sekunden bis standby] [sekunden till suspend] [sekunden bis 'off position']

Es muessen also 3 Zeitraeume in Sekunden spezifiziert werden.

47. Bessere Kompression

Neuere Versionen (ab Version 1.12) des Tar Programms koennen auch mit dem verbesserten Kompressionsprogramm "bzip2" umgehen. Um ein mit bzip2 komprimiertes Archiv zu erzeugen verwendet man - um zum Beispiel alle Dateien im aktuellen Verzeichniss in dem Archiv "foo.tar.bz2" zu sichern.- den folgenden Befehl:

tar -c -I -f foo.tar.bz2 *

Leider hat sich mit Version "1.13" von Tar der Parameter geaendert, so dass hier statt dessen der folgende Befehl erforderlich ist:

tar -c -y -f foo.tar.bz2 *

Die Aenderung betrifft aber nur den Parameter: Die erzeugten Archive sind natuerlich kompatibel. Die Version von Tar kann mittels des Befehls

tar --version

erfragt werden.

48. Mehrere Swap Partitionen gleichzeitig nutzen

Verwendet man mehrere Swap Partitionen, so koennen diese gleichzeitig benutzt werden. Der Kernel verwaltet sie dann automatisch ueber einen Raid Mechanismus und erziehlt so hoehere Performance beim auslagern. Damit dies gelingt, muessen die Partitionen allerdings mit der selben Prioritaet versehen werden.

Die Prioritaet einer Swap Partition stellt man in der Datei "/etc/fstab" ein. Hier befindet sich fuer jede Swap Partition ein Eintrag der Form:

/dev/hdx swap swap defaults,pri=n 0 0

Das "n" steht dabei fuer eine Zahl die angibt, in welcher Reihenfolge auf die unterschiedlichen Partitionen zurueckgegriffen wird. So kann eine "reserve" Swap Partition auf einer langsamen Festplatte bereitgehalten werden auf die erst zugegriffen wird, wenn die "schnelle" Swappartition voll ist.

Vergibt man hier nun fuer zwei Partitionen die selbe Prioritaet, so greift der Kernel "gleichzeitig" auf beide Parititionen zu.

49. Anzeige von Dateien einschraenken

Mit Wildcards ist es moeglich auszuwaehlen, welche Inhalte eines Verzeichnisses man sehen moechte - allerdings kann man mit ihnen auch angeben, was man nicht sehen will. Hat man ein Verzeichnis mit vielen Dateien, und will man nur solche Dateien sehen, die nicht mit einem bestimmten Buchstaben anfangen so kann man sich mit folgendem Wildcard behelfen:

ls -d [a-ln-z]*

Mit diesem Befehl werden alle Dateien angezeigt, die mit einem Kleinbuchstaben beginnen, allerdings nicht solche die mit "m" anfangen (a bis l und n bis z). Der Parameter "-d" sorgt dafuer, dass der Inhalt von Unterverzeichnissen nicht angezeigt wird. Das Intervall der Anfangsbuchstaben kann

zusammengesetzt werden. So fuehrt

ls -d [A-Za-ln-z0-9]*

zur Anzeige aller Dateien, die mit Zahlen oder Grossbuchstaben und allen Kleinbuchstaben bis auf "m" beginnen.

50. Ausgabeumleitung nach Wunsch

Die Ausgabe von Kommandos kann mit ">" in eine Datei umgeleitet werden. Moechte man die Ausgabe nicht sehen so gibt man im allgemeinen. "> /dev/null" an: Die Ausgabe des Kommandos wird dann in das "null" Device umgeleitet und nicht mehr angezeigt.

Von dieser Umleitung sind allerdings nur die "normalen" Meldungen betroffen: Fehlermeldungen werden weiterhin angezeigt. Moechte man die Fehlermeldungen umleiten so gibt man " 2> /dev/null" an und sollen alle Ausgaben umgelenkt werden so verwendet man " >& /dev/null"

Will man die Ausgaben eines Programmes anzeigen, lenkt man sie normalerweise in ein 'Pager' Programm (zum Beispiel less) um, damit man sie seitenweise durchblaettern kann. In diesem Fall ist es nuetzlich, Normale- und Fehlermeldungen zusammenzufassen, da sonst die Anzeige der Meldungen durch die Ausgabe der Fehlermeldungen ueberschrieben wird.

Beispiel:

find 2>&1 | less

51. Schreibzugriff auf Windows 95/98 Partitionen

Hängt man eine Windows Partition in das Linux Dateisystem ein, so steht man vor dem Problem, dass alle Dateien dem Superuser gehoeren und Schreibzugriffe nicht moeglich sind. Ueber den "umask" Parameter kann man dieses Verhalten abstellen. Der Befehl

mount -t vfat -o umask=000 Partition Mountpoint

sorgt dafuer, dass alle Dateien die Attribute "rwxrwxrwx" (777) haben - jeder Anwender darf alle Dateien schreiben. Fuer eine dauerhafte Speicherung dieses Verhaltens trägt man den Parameter in der Datei "/etc/fstab" ein.

Parition Mountpoint vfat umask=000 0 0

Ab jetzt wird jeder Mountvorgang automatisch mit dem entsprechenden Wert durchgefuehrt.

52. Probleme beim Reboot beheben

Manche Rechner fahren zwar bei Eingabe von "reboot" (bzw. "shutown -r") korrekt herunter, bleiben dann allerdings stehen und starten nicht automatisch neu. Wer nicht jedesmal eine Neustart ueber den Resetschalter ausloesen will, kann es mit einer anderen Reboot Methode versuchen.

Ein softwaregesteuerte Reset ist ein kniffliges Problem, deswegen haben die Linux Kernel Programmierer gleich vier verschiedene Methoden implementiert.

Zur Auswahl stehen "bios", "warm", "cold" und "hard". Als Vorgabewert wird ab Kernelversion 2.0 "cold" verwendet. Welche der Methoden auf dem jeweiligen Rechner zum Erfolgt fuehrt kann man einfach ausprobieren: In der Datei "/etc/lilo.conf" trägt man dazu die gewuenschte Methode ueber die Zeile

append="reboot=methode"

ein. Damit die Aenderungen wirksam werden, muss nach dem Editieren der Datei das "lilo" Kommando einmal gestartet werden.

53. Zu lange Kommandozeilen

Arbeitet man mit grossen Verzeichnissen, so erscheint irgendwann bei Kommandos mit Wildcards wie zum Beispiel ls *.txt die Fehlermeldung "Argument list too long". Der Grund liegt in der Verarbeitung von Wildcards. Diese werden nicht etwa vom jeweiligen Programm verarbeitet, sondern von der Shell. Das Programm erfaehrt also nicht von den Platzhaltern, sondern bekommt von der Shell bereits eine Liste mit expandierten Dateinamen. Wird diese Liste zu lang, so kommt es zu obiger Fehlermeldung.

Will man nur das einfache "ls" Kommando ausfuehren so kann man sich mit folgendem Trick behelfen: ls | grep ".txt"

Hier wird auf Wildcards verzichtet. Es findet keine Expansion statt. Das nachgeschaltete "grep" Kommando sucht nun die Dateien mit der passenden Erweiterung heraus. Will man die Dateienamen allerdings nicht nur anzeigen, sondern benutzen um ein Kommando mit ihnen auszufuehren bringt dieser Ansatz nicht weiter.

Abhilfe schaft das "xargs" Kommando. Dieses Tool liesst eine Liste von Dateinamen und zerteilt sie in kleinere Haeppchen die sich zur Weiterverarbeitung eignen.

Sollen beispielsweise alle ".txt" Dateien zu einem Tar Archiv zusammengefasst werden, so benutzt man folgendes Konstrukt:

ls | grep ".txt" | xargs tar -rf TextArchiv.tar

Das ls Kommando listet nun alle Dateien auf. Das grep Kommando filtert die Dateien mit der Erweiterung ".txt" heraus, das xargs Kommando zerteilt diese Liste in mehrere Bloecke und ruft mit jedem Block das Tar Kommando auf. Der Parameter "-r" des Tar Kommando sorgt dafuer, dass die Bloecke zu einem einzigen Archiv zusammengefasst werden.

54. Mehrsprachige Shell

Viele Programme unterstuetzen mittlerweile mehr als eine Sprache. Sehr nuetzlich ist diese Unterstuetzung z.B. in der Shell. Die Bash laesst sich ueber die Umgebungsvariable "LANG" auf eine andere Sprache umstellen.

Die aktuell eingestellte Sprache erfaehrt man mittels

set | grep "LANG"

Die moeglichen Werte fuer diese Variable kann man sich durch

locale -a

anzeigen lassen. Moechte man eine andere Sprache ausprobieren so stellt man in der aktuellen Shell die Sprache zum Beispiel mittels

export LANG=german

auf Deutsch um. Wem die bekannten englischen Meldungen lieber sind der stellt mittels

export LANG=english

zurueck. Fuer eine dauerhafte Speicherung traegt man die entsprechende Zeile in der Datei "~/.bashrc" ein.