Tag Cloud

Xandros (64) Ankündigung (60) Windows (51) Tipps+Tricks (46) Programme (44) Sonstiges (42) Bericht (32) Linux (31) Fotos (26) Hardware (26) Event (21) T91 (20) Urlaub 2009 (18) Urlaub 2008 (17) Skripte (7) Glossar (5) Neue Blogs (5) Netzwerk (4) Video (3) FAQ (1)

Donnerstag, 31. Juli 2008

Shell-Skripte erstellen 3. Teil

Booleans und Rückgabewerte
Für die Shell ist 0=wahr und alle anderen Werte stehen für falsch. Zusätzlich gibt jeder Befehl beim Beenden einen Integer-Wert (Ganzzahl) an die Shell zurück. Dieser Integer-Wert wird auch Rückgabewert, Return-Code oder Exit-Status genannt. Er kann über die Variable $? abgefragt werden.

/home/user>cat datei
Mein Name ist Hase und
weiß von nichts
/home/user>grep Hase datei
Mein Name ist Hase und <- Übereinstimmung gefunden

/home/user>echo $?
0 <- also wahr

/home/user>grep Igel
/home/user>echo $?
1 <- also falsch, da keine Übereinstimmung

test und [
Mit dem in die Shell eingebauten Befehl test können Boolsche Ausdrücke, die Zahlen und Strings enthalten können, ausgewertet werden.

/home/user>test 20 -lt 10 <- ist 20 kleiner als 10 (-lt=less-then=kleiner als)?

/home/user>echo $?
1 <- falsch

Einige Argumente für den Befehl test
Test für Dateien
-d NAME <- NAME ist ein Verzeichnis

-f NAME <- NAME ist eine Datei

-L NAME <- NAME ist ein symbolischer Link

-r NAME <- NAME existiert und ist lesbar

-w NAME <- NAME existiert und ist schreibbar

-x NAME <- NAME existiert und ist ausführbar

-s NAME <- NAME existiert und hat eine Größe von > 0

NAME1 -nt NAME2 <- die Datei NAME1 ist jünger als NAME2 NAME1

-ot NAME2 <- die Datei NAME1 ist älter als NAME2

Test für Strings
STRING1 == STRING2 <- die Strings STRING1 und STRING2 sind gleich STRING1

!= STRING2 <- die Strings STRING1 und STRING2 sind ungleich

-z STRING <- der String STRING hat die Länge

-n STRING <- der String STRING hat eine von Null verschiedene Länge

Numerische Tests (Integer)
X -eq Y <- X und Y sind gleich

X -ne Y <- X und Y sind ungleich

X -gt Y <- X ist größer als Y

X -ge Y <- X ist größer-gleich Y

X -lt Y <- X ist kleiner als Y

X -le Y <- X ist kleiner-gleich Y

test besitzt einen etwas ungewöhnlichen Alias, nämlich [, als Abkürzung mit Bedingungen und Schleifen. Bei Verwendung dieser Abkürzung muss als letztes Argument ] angegeben werden.

/home/user>[ 20 -lt 10 ]
/home/user>echo $?
1
Dieser Test ist mit dem obigen Beispiel identisch.
Nach [ und vor ] muss ein Leerzeichen stehen, da es sonst zu einem Fehler kommt.

wahr und falsch
bash hat die für Schleifen und Bedingungen eingebauten Befehle true und false. Durch diese Befehle wird der Exit-Status auf 0 bzw. 1 gesetzt.

Dienstag, 29. Juli 2008

Firefox updaten

Standardmäßig ist die Updatefunktion in Firefox deaktiviert (ausgegraut).
Um Firefox dennoch auf den aktuellen Stand zu bringen, mussen folgende Schritte ausgeführt werden:
  1. Zuerst die Konsole mit Strg + Alt + T öffnen.
  2. sudo firefox eingeben und Enter drücken.
  3. Nachdem Firefox gestartet ist kann man über Help -> Check for Updates... das Update anstoßen.
  4. Wenn es ein Update gibt und heruntergeladen wurde Firefox neu starten.
Falls Firefox nach dem Update nur noch Englisch "spricht", einfach die Erweiterung Locale Switcher installieren und nach einem erneuten Neustart über Tools -> Language (Extras -> Sprache) wieder Deutsch einstellen.

Montag, 28. Juli 2008

Sonderzeichen über die Tastatur eingeben

Nachfolgend eine Tabelle mit Sonderzeichen und mit welcher Tastenkombination man sie erzeugen kann:

Zeichen Tastenkombination
¬ AltGr + ^
¹ AltGr + 1
² AltGr + 2
³ AltGr + 3
¼ AltGr + 4
½ AltGr + 5
¬ AltGr + 6
{ AltGr + 7
[ AltGr + 8
] AltGr + 9
Geschweifte Klammer zu AltGr + 0
\ AltGr + ß
@ AltGr + q
ł AltGr + w
AltGr + e
AltGr + r
ŧ AltGr + t
AltGr + z
AltGr + u
AltGr + i
ø AltGr + o
þ AltGr + p
¨ AltGr + ü (ü zweimal drücken)
~ AltGr + +
` AltGr + # (# zweimal drücken)
æ AltGr + a
ß AltGr + s
ð AltGr + d
đ AltGr + f
ŋ AltGr + g
ħ AltGr + h
ĸ AltGr + k
ł AltGr + l
˝ AltGr + ö (ö zweimal drücken)
^ AltGr + ä (ä zweimal drücken)
« AltGr + y
» AltGr + x
¢ AltGr + c
AltGr + v
AltGr + b
µ AltGr + m
AltGr + ,
· AltGr + .
< Fn + y
¡ Umschalt + AltGr + 1
Umschalt + AltGr + 2
£ Umschalt + AltGr + 3
¤ Umschalt + AltGr + 4
Umschalt + AltGr + 5
Umschalt + AltGr + 6
Umschalt + AltGr + 7
Umschalt + AltGr + 8
± Umschalt + AltGr + 9
° Umschalt + AltGr + 0
¿ Umschalt + AltGr + ß
Ω Umschalt + AltGr + q
Ł Umschalt + AltGr + w
® Umschalt + AltGr + r
Ŧ Umschalt + AltGr + t
¥ Umschalt + AltGr + z
Umschalt + AltGr + u
I Umschalt + AltGr + i
Ø Umschalt + AltGr + o
Þ Umschalt + AltGr + p
˚ Umschalt + AltGr + ü (ü zweimal drücken)
¯ Umschalt + AltGr + + (* zweimal drücken)
˘ Umschalt + AltGr + # (# zweimal drücken)
Æ Umschalt + AltGr + a
§ Umschalt + AltGr + s
Ð Umschalt + AltGr + d
ª Umschalt + AltGr + f
Ŋ Umschalt + AltGr + g
Ħ Umschalt + AltGr + h
J Umschalt + AltGr + j
Ł Umschalt + AltGr + l
˝ Umschalt + AltGr + ö (ö zweimal drücken)
ˇ Umschalt + AltGr + ä (ä zweimal drücken)
< Umschalt + AltGr + y
> Umschalt + AltGr + x
© Umschalt + AltGr + c
Umschalt + AltGr + v
Umschalt + AltGr + b
º Umschalt + AltGr + m
× Umschalt + AltGr + ,
÷ Umschalt + AltGr + .
˙ Umschalt + AltGr + - (-zweimal drücken)
> Umschalt + Fn + y
¦ Umschalt + Fn + AltGr +y


Bei der Umschalt-Taste handelt es sich um die größere, auf der linken Seite der Tastatur. Es sind immer die Sondertasten (Umschalt, Fn, AltGr) gleichzeitig und in Kombination mit der jeweiligen Ziffern- bzw. Buchstabentaste zu drücken.

Hotspot bei McBurger

Ich sitze gerade in einem McBurger und genemige mir ein Kaltgetränk. Bei dieser Gelegenheit versuche ich etwas von meinen 300 Hotspot-Freistunden zu verbrauchen und schreibe daher diesen Blogeintrag.

Draußen in der Sonne herrschen 35°C - hier im McBurger lässt es sich aushalten. In der Beschallungsanlage läuft Ich&ich. Das Kaltgetränk war mal kalt, jetzt ist es lauwarm und ich freue mich schon auf den Backofen in meinem Auto.

Der Zeitzähler von T-Mobile läuft runter, aber es sind noch mehr als genug Stunden übrig. Die schaffe ich nie bis zum 25.12.08...

Die Empfangsqualität ist im gesamten McBurger ausgezeichnet.

Sonntag, 27. Juli 2008

Größe der SD-Karte im Datei-Manager ermitteln

Bei einem Rechtsklick auf D: und anschließendem Klick auf Eigenschaften werden nur wenige Bytes angezeigt.
Die 13 Byte sind die Größe des Links. Wenn man im Dateimanager genau hinschaut hat der Laufwerkbuchstabe unten einen kleinen Pfeil. Es handelt sich nur um einen Link/Verknüpfung.
  1. Ansicht -> Alle Dateisysteme anzeigen
  2. Dann den Zweig Alle Dateisysteme erweitern.
  3. Dort findet man /media/D:.
Läßt man sich hier die Eigenschaften anzeigen, sieht man die korrekten Werte.

Shell-Skripte erstellen 2. Teil

Beispiel:
Falsch:
#!/usr/bin/bash
cp$QUELLE $ZIEL <- Hier fehlt ein Leerzeichen nach cp (copy)

Richtig
#!/usr/bin/bash
cp $QUELLE $ZIEL

Falsch
prin <- Zeilenumbruch mitten im Befehl
tf "Hello World"

Richtig
printf "Hello World"

Variablen
Variablen werden durch Zuweisungen definiert:
/home/user>ALTER=20
Um auf den Wert der Variablen zuzugreifen setzt man ein $ (Dollarzeichen) vor den Variablennamen:
/home/user>echo $ALTER
20

Einige Variablen sind bereits vordefiniert:
DISPLAY <- der Name des X Window-Displays
HOME <- der Name des Home-Verzeichnisses
LOGNAME <- Login-Name
MAIL <- der Pfad zur Mailbox für eingehende Mails
OLDPWD <- das vorige Arbeitsverzeichnis der Shell
PATH <- Suchpfad der Shell. Verzeichnisse sind durch Doppelpunkte getrennt
PWD <- das aktuelle Arbeitsverzeichnis der Shell
SHELL <- der Pfad de Shell (z.B. /bin/bash)
TERM <- der Typ des Terminals
USER <- Login-Name

/home/user>printenv zeigt alle Variablen der Shell an.

Wenn man sich in einem Skript auf den Wert einer Variablen bezieht, sollte man den Variablennamen immer in doppelte Anführungszeichen setzen, um Fehler zu vermeiden.

/home/user>NAME="Max Mustermann" <- Leerstelle im Namen
/home/user>ls $NAME <- Versuch das Verzeichnis Max Mustermann aufzulisten
ls: Max: No such file or directory <- Ups
ls: Mustermann: No such file or directory <- Fehlermeldung
/home/user>ls "$NAME" <- korrekt
Max Mustermann

Wenn ein Variablenname neben einem anderen String benutzt wird, muss der Variablenname mit geschweiften Klammern umschlossen werden, um unerwartete Ergebnisse zu vermeiden.

/home/user>EIGENSCHAFT="toll"
/home/user>echo "Windows ist $EIGENSCHAFT und Xandros ist $EIGENSCHAFTer"
Windows ist toll und Xandros <- Es gibt keine Variable EIGENSCHAFTer
/home/user>echo "Windows ist $EIGENSCHAFT und Xandros ist ${EIGENSCHAFT}er"
Windows ist toll und Xandros ist toller <- Jetzt stimmt die Ausgabe

Ein- und Ausgabe
Eingaben werden mit dem Befehl read realisiert. read liest eine Zeile von der Standardeingabe (Tastatur) und speichert sie in einer Variablen.

/home/user>read OS
Xandros
echo "Ich verwende $OS"
Ich verwende Xandros

Ausgaben können mit den Befehlen echo und printf realisiert werden.

/home/user>echo "Hallo Welt"
Hallo Welt
/home/user>printf "Ich bin der Größte"
Ich bin der Größte

Startmenü im Easy Mode aktivieren


  1. Im Dateimanager versteckte Dateien anzeigen lassen.
  2. Im Homeverzeichnis das Verzeichnis .icewm erstellen.
  3. Aus dem Verzeichnis /etc/X11/icewm die Dateien menu und preferences in das neuerstellte Verzeichnis .icewm kopieren.
  4. Im Verzeichnis .icewm die Datei preferences im Editor öffnen.
  5. Den Eintrag TaskBarShowStartMenu=0 auf TaskBarShowStartMenu=1 ändern.
  6. Die Datei speichern und alle geöffneten Programme schließen.
  7. [STRG]+[ALT]+[BACKSPACE] drücken um die grafische Oberfläche neu zu starten.
  8. Unten links sollte jetzt das Startmenü zu sehen sein.
Um das Startmenü seinen eigenen Bedürfnissen anzupassen, muss man im Verzeichnis /home/user/.icewm die Datei menu anpassen. Ein neuer Menüeintrag, der die Einträge für Programme aufnehmen soll, ist folgendermaßen aufgebaut:

menu BEZEICHNUNG folder { }

BEZEICHNUNG ist der Eintrag so wie er im Menü erscheinen soll.
Zwischen die geschweiften Klammern werden dann die eigentlichen Programmaufrufe eingetragen. Der Aufbau eines solchen Eintrags ist

prog BEZEICHNUNG ICON PROGRAMM

prog muss vor jedem Eintrag stehen.
BEZEICHNUNG ist wieder der Eintrag so wie er im Menü erscheinen soll. Wenn dieser Eintrag aus mehreren Wörtern besteht muss er in Anführungszeichen gesetzt werden.
ICON gibt das Icon für den Menüeintrag an. Wenn das Programm selbst ein Icon mitbringt genügt an dieser Stelle der Programmname (z.B. bei kcontrol). Ansonsten muss zusätzlich der Pfad und das zu verwendende Icon angegeben werden.
Icons findet man z.B unter /usr/share/pixmaps.
PROGRAMM ist der eigentliche Programmaufruf. Hier muss eventuell auch der Pfad zur Programmdatei angegeben werden.

Menüs lassen sich auch Schachteln um Unterkategorien zu definieren. z.B. siehe unten unter: menu System folder.

Die erstellten Einträge werden nicht automatisch in alphabetischer Reihenfolge im Menü angezeigt. Daher muss man sich um die Reihenfolge der Einträge selber kümmern um die gewünschte Sortierung zu erhalten.


Leider sind die meisten Einträge nicht funktionsfähig. Da dies äufwändig und fehlerträchtig ist hier meine aktuelle Version der Datei:
# This is an example for IceWM's menu definition file.
#
# Place your variants in /etc/X11/icewm or in $HOME/.icewm
# since modifications to this file will be discarded when you
# (re)install icewm.
#
prog "Eingabeaufforderung" /usr/share/pixmaps/konsole.xpm konsole
prog "Dateien suchen..." /usr/share/pixmaps/kfind.xpm kfind
prog Konqueror /usr/share/pixmaps/konqueror.xpm konqueror
prog "Anti-Virus" xav xav --show --raise
prog Thunderbird /usr/share/pixmaps/thunderbird.xpm /opt/thunderbird/thunderbird
prog "Firefox" /usr/share/pixmaps/firefox.png firefox
separator
menu Anwendungen folder {
menu "Browser" folder {
prog "Firefox" /usr/share/pixmaps/firefox.png firefox
prog Konqueror /usr/share/pixmaps/konqueror.xpm konqueror
}
menu Editoren folder {
prog Xedit xedit xedit
}
menu "E-Mail" folder {
prog KMail /usr/share/pixmaps/kmail.xpm kmail
prog KNode knode knode
prog Thunderbird /usr/share/pixmaps/thunderbird.xpm /opt/thunderbird/thunderbird
}
menu Grafik folder {
prog Bitmap bitmap bitmap
prog "Foto-Manager" /usr/share/pixmaps/gwenview.xpm gwenview
prog mtPaint /usr/share/pixmaps/kolourpaint.xpm mtpaint
prog TuxPaint /usr/share/pixmaps/tuxpaint.xpm tuxpaint
prog XPaint xpaint xpaint
}
menu Mathe folder {
prog Funktionsplotter /usr/share/pixmaps/kmplot.xpm kmplot
prog Geometrie /usr/share/pixmaps/kig.xpm kig
}
menu OpenOffice folder {
prog "Aus Vorlage" oofromtemplate /usr/bin/oofromtemplate
prog Base /usr/binoobase /usr/bin/oobase
prog Calc oocalc /usr/bin/oocalc
prog Draw oodraw /usr/bin/oodraw
prog Impress ooimpress /usr/bin/ooimpress
prog Math oomath /usr/bin/oomath
prog Writer oowriter /usr/bin/oowriter
separator
prog "Kate Editor" /usr/share/pixmaps/kate.xpm kate
prog KWrite /usr/share/pixmaps/kwrite.xpm kwrite
prog Organizer /usr/share/pixmaps/korganizer.xpm korganizer
prog PIM /usr/share/pixmaps/kontact.xpm kontact
}
menu Spiele folder {
prog Hangman /usr/share/pixmaps/khangman.xpm khangman
prog Solitair /usr/share/pixmaps/kpat.xpm /usr/games/kpat
prog Kartoffelkopf /usr/share/pixmaps/ktubertling.xpm /usr/games/ktuberling
}
menu System folder {
prog KControl kcontrol kcontrol
prog "Control Panel" redhat control-panel
prog xload xload xload
prog xosview xosview xosview
menu "Window Managers" folder {
restart icewm - icewm
restart icewm-gnome - icewm-gnome
restart icewm-experimental - icewm-experimental
restart icewm-lite - icewm-lite
restart wmaker - wmaker
restart enlightenment - enlightenment
restart blackbox - blackbox
restart sawfish - sawfish
restart sawfish2 - sawfish2
restart metacity - metacity
restart fvwm2 - fvwm2
restart fvwm - fvwm
}
}
menu Utilities folder {
menu Dateimanager folder {
prog "File-Manager" /usr/share/pixmaps/kfm.xpm XandrosFileManager
}
menu "Diverses" folder {
prog "Font Auswahl" xfontsel xfontsel
prog KHexEdit /usr/share/pixmaps/khexedit.xpm khexedit
prog KTimer /usr/share/pixmaps/ktimer.xpm ktimer
prog Lupe xmag xmag
prog Uhr xclock xclock
prog Xeyes xeyes xeyes
prog Zeitplaner karm karm
}
menu Rechner folder {
prog "Taschenrechner 1" xcalc xcalc
prog "Taschenrechner 2" /usr/share/pixmaps/kcalc.xpm kcalc
}
prog "Acrobat Reader" /usr/share/pixmaps/AdobeReader.png acroread
prog Adressbuch /usr/share/pixmaps/kaddressbook.xpm kaddressbook
prog Haftnotizen /usr/share/pixmaps/knotes.xpm knotes
prog KMix kmix kmix
prog KSnapshot /usr/share/pixmaps/ksnapshot.xpm ksnapshot
prog KStars /usr/share/pixmaps/kstars.xpm kstars
prog Programmsuche /usr/share/pixmaps/kappfinder.xpm kappfinder
prog Web-Kamera /usr/share/pixmaps/purple/buddy_icons/qq/qq_1.png ucview
prog Weltzeituhr /usr/share/pixmaps/kworldclock.xpm kworldclock
prog XClipboard xclipboard xclipboard
prog "Zeichentabelle" /usr/share/pixmaps/kcharselect.xpm kcharselect
prog Zwischenablage xclip xclipboard
separator
prog Xkill bomb xkill
}
menu Video folder {
menu "AV-Manager" folder {
prog "Musik-Manager" amarok amarok
prog "Foto-Manager" /usr/share/pixmaps/gwenview.xpm gwenview
}
prog MPlayer /usr/share/pixmaps/mplayer.xpm gmplayer
prog SMPlayer smplayer smplayer
}
}
#menufile Toolbar folder toolbar
#separator
#menuprog "Gnome" folder icewm-menu-gnome2 --list /usr/share/gnome/vfolders
#menuprog KDE folder icewm-menu-gnome2 --list /usr/share/applnk

Systemschriften verkleinern


Ich habe die Systemschriften zum konfigurieren verkleinert. Das hilft auch bei anderen Einstelldialogen die nicht richtig runterskaliert werden und so teilweise Buttons oder Optionen auch durch verschieben des Dialogs nicht zu erreichen sind.

Vorgehen:

  1. Konqueror öffnen
  2. Auf Settings Desktop konfiguration klicken.
  3. Auf Erscheinungsbild klicken.
  4. Hier wieder auf Erscheinungsbild klicken.
  5. Auf Schriften klicken. (siehe Screenshot)
  6. Im Dialog die Schriften nach belieben anpassen.
  7. Mit OK bestätigen.

Bei bedarf die Änderungen nach erfolgter Konfiguration zurücksetzen oder beibehalten.

Namen im Kalender (PIM) ändern


Unter Einstellungen -> Kontact einrichten... -> Identitäten auf Ändern klicken.
Im folgenden Dialogfenster unter Ihr Name: die gewünschten Änderungen vornehmen.
Abschließend alle Dialogfenter mit OK bestätigen.

Shell-Skripte erstellen 1. Teil

Die Shell (bash usw.) hat eine eingebaute Programmiersprache, ähnlich aber wesentlich mächtiger als die Batch-Befehle in MS-DOS. Beim erstellen von Shell-Skripten stehen Variablen, Bedingungen, Schleifen, Ein- und Ausgaben und vieles mehr zum lösen von Aufgabenstellungen bereit.
Hier soll nur ein kleiner Einblick in die Skript-Programmierung gegeben werden. Eine vollständige Dokumentation findet sich in diversen Büchern oder mit der Eingabe von info bash in der Konsole.

Vorbemerkung
Variablennamen sind in Großbuchstaben geschrieben.

Wofür Shell-Skripte schreiben?
Die Shell ist der perfekte Baukasten für das Unix-Paradigma ‘small is beautiful’.
Die mitgelieferten Unix-Standardkommandos sind einfach gehalten, erledigen aber auf effiziente Weise die Arbeit für die sie programmiert wurden. Mit der Shell, bzw. dem Shell-Skript, wird aus dem Heinzelmännchen ein starker Riese. Shell-Skripte werden im Wesentlichen aus zwei Gründen geschrieben:
  1. Weil man so ständig wiederkehrende Kommandos zusammenfassen kann, die man dann mit einem einfachen Aufruf starten kann.
  2. Weil man so einfache 'Programme' schreiben kann, die relativ intelligent Aufgaben erledigen können. Zum Beispiel Datensicherung von der SSD auf USB-Stick oder USB-HD.
Wofür benutzt man Shell-Skripte nicht?
Ein Shell-Skript besteht aus einer Abfolge von System-Tool-Aufrufen. Das heißt, für jeden Schritt in einem Skript wird ein neuer Prozess gestartet. Das kostet eine Menge Systemzeit, die Skripte laufen also vergleichsweise langsam. Für komplexe, zeitkritische oder langwierige Aufgaben sollte man also besser zu Perl, Python oder in Extremfällen zu C / C++ greifen.

Leerstellen und Zeilenumbrüche
Beim Programmieren von Shell-Skripten muss man sehr genau auf Leerstellen und Zeilenumbrüche achten. Da die Befehle in den Skripten von der Shell ausgeführt werden sollen, müssen Befehle und Argumente von einem Leerzeichen getrennt werden. Ein Zeilenumbruch mitten in einem Befehl führt dazu das er nicht von der Shell als solcher erkannt werden kann.

Schriftgröße in Thunderbird anpassen (u.a. Dialogfenster)

1. Mit einem Editor (z.B. kate) über Datei -> Öffnen... die Datei userChrome.css im Verzeichnis /home/user/.thunderbird/iifttnnk.default/chrome öffnen.

Das Verzeichnis iifttnnk.default variiert im Bereich iifttnnk, da dieser Teil des Verzeichnisnamens bei der Erstinstallation von Thunderbird per Zufall erstellt wird.

Die Datei userChrome.css besteht standardmäßig nur aus den folgenden Zeilen:

   font-family: sans-serif !important;
font-size: 10pt !important;


2. In der Zeile font-size: 10pt !important; lässt sich die Schriftgröße anpassen. Bei 8pt sind in Verbindung mit dem Theme Littlebird 1.8.34 die Einstelldialoge vollständig zu sehen, wodurch jetzt z.B. die Server-Einstellungen (u.a. das Verzeichnis für das Postfach) komplett erreichbar sind. Nach allen Einstellarbeiten die Schriftgröße wieder zurück auf 10pt setzen, eine andere Schriftgröße ausprobieren oder die neue Einstellung beibehalten.