Tipps und Tricks

Mehrere Dateien im Verzeichniss umbenennen
Mehrere Bilder im Verzeichniss verkleinern
Der Befehl "sort"
Alle Leerzeichen und/oder Kommentarzeilen aus einer Konfig
Ein ISO Image mounten
Ein ISO IMage erstellen
Dynamische zugewiesene IP vom Provider in ein File schreiben
Wie entferne ich die ^M Zeichen aus Microsoft-Textdateien
Welcher User blockert mein Device
PATH Variable bearbeiten
Große Files splitten und wieder zusammenfügen
Grub Hintergrundbild ändern
Wie schnell ist meine Festplatte
Wie schicke ich allen Usern auf die Console eine Nachricht?
Firefox mit Acrobat Reader Plugin

Alle txt Dokumente, die sich im Verzeichniss befinden drucken. Die zweite Zeile zeigt, wie man alle Dokumente in einen Druckjob verarbeiten kann. Es gibt natürlich auch andere Möglichkeiten um das gleiche Ergebniss zu erzielen.
for FILE in *.txt; do lpr $FILE; done
for FILE in *.txt; do more $FILE >> tmp.txt; done && lpr tmp.txt && rm -rf tmp.txt

Es können genauso leicht Bilddateien von einer Digitalkamera umbenannt werden. Jetztige Datei "img-001.jpg" auf "canada-2003-09-01-001.jpg".
for i in img-0* ; do mv $i canada-2003-09-01-${i#img-}; done
Erklärung: Bis zum ersten Strich-Punkt werden alle Dateien im Verzeichniss mit dem Anfang img-0* gelesen. Nach dem do nimmt er jede Datei und verschiebt diese mit neuen Namen. Das ${i#img-} ist ein Feature der Shell. Dieses Kürzel gibt nur den Dateinamen ohne img- zurück.

Alle Bilder in einen Verzeichniss verkleinern
for I in *.jpg; do /usr/bin/convert -geometry  160x120 $I 1$I; done

Sort: Erläuterung vom Befehl sort.
-t SEPARATOR		Es wird der angegebene SEPARATOR als Feldtrennzeichen verwendet. Standardmässig ist dies whitespace.
-k 2 	 		Sortierkriterium ist das 2. Feld, bis zum Ende der Zeile.
-k 2,2 			Sortierkriterium ist nur das 2. Feld.
-k 2,4 			Sortierkriterium sind die Felder 2 - 4.
-k 2.3,3.3       	Sortierkriterium ist das 3. Zeichen im 2. Feld, bis zum 3. Zeichen im 3. Feld.
-n			Es wird numerisch sortiert.
-r			Es wird in umgekehrter Reihenfolge sortiert.
Dieser Befehl sotiert die passwd. Der Benutzernamen wird nach dem Alphapet sotiert.
sort -t : -k 1 /etc/passwd

Wie bekomme ich aus einer Config-Datei alle Leerzeilen oder Kommentarzeilen raus. Ist manchmal sehr sinnvoll, wenn das Configfile sehr viele Kommentarzeilen aufweist, wie z.B. /etc/squid.conf. Beim letzten werden Leerzeilen und Kommentarzeilen entfernt.
sed -e '/^#/d' Configfile
sed -e '/^[ ]*$/d' Alte_Datei > Neue_Datei
sed -e '/^#/d' -e '/^[ ]*$/d' /etc/squid/squid.conf

Wie mount ich eine ISO Datei unter Linux?
mount -t iso9660 -o loop cdrom.iso /mnt

Es gibt zwei Möglichkeiten, wie ich unter Linux ein ISO Image erstellen kann.
dd if=/dev/cdrom of=IMAGENAME.iso bs=32k
mkisofs -J -r -T -o IMAGENAME.iso /mnt/cdrom

Wie komme ich günstig an meine dynamisch zugewiesene IP? Manchmal benötigt man die IP, die vom Provider zugewiesen wird. Um diese IP zu ermitteln, habe ich schon die wildesten Scripte gesehen, dabei geht es doch ganz einfach. Folgende Zeile ans Ende der /etc/ppp/ip-up schreiben:
# dynamische IP in eine Datei schreiben
echo "$4" > /tmp/dynamische_ip.txt
Und an /etc/ppp/ip-down hängen wir das:
# Datei mit dynamischer IP loeschen
rm /tmp/dynamische_ip.txt
Die kleine Textdatei läßt sich problemlos in jedem Script einfügen.
Wie entferne ich die ^M Zeichen aus Microsoft-Textdateien? Beim Dateitransfer mit FTP kann man den Modus "ascii" einschalten, der genau diese Wandlung durchführt (je nach Transfer-Richtung wird LF->CRLF oder LF->CRLF gewandelt). Auf vielen Systemen gibt es ein dos2unix- und unix2dos-Programm, dass das macht.
cat Windowstext.txt | tr -d '\r' > Unixtext.txt
tr -d '\015' dateiname> dateiname.ohne_crlf
perl -e 'while (<>) {s/\r//;print}' dateiname> dateiname.ohne_crlf

test Es soll die CDRom oder die Zip-Diskette umountet werden, aber das Medium weigert sich hartnäckig dagegen. Finden wir also heraus, wer da noch darauf zugreift:
lsof /mnt/flopppy
COMMAND  PID     USER   FD   TYPE DEVICE SIZE NODE NAME
vim   tester      512  cwd    DIR    3,2 1024 4081 /mnt/cdrom
AHA, der User tester befindet sich mit dem vi in einem Verzeichniss auf dem Medium. Entweder geht der User aus dem Verzeichnis heraus oder wenn das nicht möglich ist, wird der Prozess getötet:
kill -9 2324
So, jetzt müßte sich das Device unmounten lassen.
Wie füge ich einen Pfad in die Variable $PATH ein? Wenn es nur für meinen User gelten soll, dann schreib ich es in die .bashrc in meinen Homedirectory und wenn sie für alle User gelten soll schreib ich sie in die /etc/profile. Wenn ich die Variable nur Temporär brauche, setze ich ein Export davor.
PATH=/usr/local/gcc-3/bin:$PATH
export PATH

Ich habe in einem Forum gelesen, "Wie kann man Files splitten und wieder zusammenführen?". Es sind Anworten gekommen, unvorstellbar. Von den wildesten Scripten bis geht nicht war alles dabei. Nur keine kurze Antwort. Ich habe eine Lösung für dieses Problem. Die erste Zeile teilt das File in ein Megabyte große Files und die zweite fügt sie wieder zusammen. Achtung: Es ist darauf zu achten, das es nicht mehr als 676 Files werden, denn die Dateien bekommen eine Endung aa ab ac usw. (26*26)
tar -czf - file.mpg | split -b 1024k - file.mpeg.tar.gz.
cat file.mpg.tar.gz.* > file.mpg.tar.gz && tar -xvzf file.mpg.tar.gz

Um beim Bootloader Grub das Hintergrundbild zu ändern sind folgende schritte notwendig. Als erstes ein geeignetes Bild suchen und mit dem Befehl convert verkleinern. Danach braucht das Bild nur noch komprimiert und am besten in das Verzeichniss /boot/grub/ kopiert werden. Unter Fedora Core 3 heist das Standard Bild splash.xpm.gz, ich würde dem Bild einen anderen Namen geben und den Eintrag (splashimage) in der grub.conf ändern.
convert /home/bild.png -colors 14 -geometry 640x480! boot01splash.xpm
gzip boot01splash.xpm
cp boot01splash.xpm /boot/grub/

Mit dem Befehl kann ich herausfinden, wie schnell meine Festplatte ist. Ich habe bemerkt, dass meine Laptopplatte gar nicht so langsam ist.
# hdparm -t /dev/hda

/dev/hda:
 Timing buffered disk reads:   94 MB in  3.04 seconds =  30.89 MB/sec
#

Mit dem Befehl wall kann ich allen eingeloggten Usern über die Console eine Meldung schicken. Beim Neustart eines Rechners sehr sinnvoll.
# echo "Reboot in 5 minutes" | wall

Einfach nur das Acrobat Reader Plugin in den Plugin Folder vom Firefox verlinken und das geht so:
ln -s /usr/local/Adobe/Acrobat7.0/Browser/intellinux/nppdf.so $HOME/.mozilla/plugins/
Wenn man jetzt den FireFox neu startet und bei Adresse "about:plugins" eingibt, sollte der Adobe Acrobat Reader zu sehen sein.