Butschek.de

Warnung: Diese Seite ist eine statische Kopie eines früher betriebenen Blogs. Es findet keine Aktualisierung mehr statt. Kommentare und die Suche funktionieren nicht.

Linux, Server & Co

Archive for the ‘IT’ Category

Editor im Kontextmenü

leave a comment

Mir selbst geht es oft so, dass ich Dateien unter Windows mit einem Editor öffnen will, obwohl diese Datei laut Windows gar nicht für den Editor gedacht ist. Das trifft zum Beispiel auf Dateien mit der Endung .conf, .xml oder .dat zu.

Mit einem einfachen Registry-Eingriff läßt sich Windows dazu bewege, im Kontextmenü aller Dateien einen Eintrag anzuzeigen, der direkt zum bevorzugten Editor führt.

Im Bereich HKEY_CLASSES_ROOT ist der Schlüssel * (steht für ALLE Dateitypen) zu öffnen und dort sofern nicht schon vorhanden den Unterschlüssel ’shell‘ anzulegen. Darunter legt man nun einen Schlüssel mit dem Text an, der im Menü erscheinen soll, z.B. ‚Bearbeiten mit Editor‘ und darunter dann einen Schlüssel namens ‚command‘.

Die Hierarchie sieht dann so aus:

HKEY_CLASSES_ROOT -> * -> shell -> Bearbeiten mit Editor -> command

Den Standardschlüssel in ‚command‘ bearbeitet man dann durch Doppelklick und trägt dort den Pfad des Programms ein, gefolgt von eventuellen Parametern, wobei %1 als Platzhalter für den Dateinamen der zu öffnenden Datei steht. Beispiel:

notepad.exe %1

Das ganze kann man auch als Registry-File anlegen und per Doppelklick einfach importieren. Das würde dann so aussehen:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT*shellBearbeiten mit Editor]
@=""

[HKEY_CLASSES_ROOT*shellBearbeiten mit Editorcommand]
@="notepad.exe %1"

Das ganze geht natürlich nicht nur mit dem Notepad-Editor von Windows, hier läßt sich jeder beliebige Editor, Hex-Editor, Viewer oder sonstige Programme einbinden. Wichtig ist nur, dass ggf. der vollständige Pfad anzugeben ist.

Written by Michael Butschek

November 27th, 2009 at 12:52 pm

Posted in IT

Tagged with ,

Bash: Automatisches Logout

leave a comment

So, seitdem ich seit Mitte Juli nur Windows-Artikel veröffentlicht habe, hier auch mal wieder was für die Linux-Gemeinde:

Als Serveradmin kennt man ja das Problem, dass man gerne mal auf einem System angemeldet bleibt, weil man vielleicht später eh noch was sehen will. Doch manchmal wünscht man sich ein Auto-Logout, wenn man längere Zeit nichts macht, um nicht immer eine Session offen zu halten.

Die Bash wertet die Variable TMOUT aus. Enthält sie eine Zahl größer als Null, so wird nach so vielen Sekunden Inaktivität die Shell automatisch beendet. Dies läßt sich relativ leicht z.B. in der .bashrc setzen, so dass die Einstellung bei jedem neuen Login automatisch aktiv ist:

export TMOUT=1800   # 30m

Vorsicht ist bei niedrigen Werten geboten. Wer es dummerweise mit 5 Sekunden versucht muss sich beim nächsten Login beeilen, den Editor zu öffnen, bevor er rausfliegt :-)

Written by Michael Butschek

Oktober 22nd, 2009 at 10:01 pm

Posted in IT,LST

Tagged with , ,

Zufallszahlen mit Modulo auf der Shell erzeugen

one comment

Die Firewall aus dem letzten Artikel fand ich extrem lustig, doch die Methode der Zahlenermittlung fand ich sehr interessant. Eine IP-Adresse wurde hier wie folgt erstellt:

echo „$(($RANDOM%256)).$(($RANDOM%256)).[…]“

Die Variable $RANDOM gibt eine Zufallszahl zwischen 0 und 32767. Das Prozent-Zeichen (%) berechnet aus einer Zahl deren Modulo, also den Rest aus der Division zweier ganzer Zahlen. Einfach gesagt berechnet es den Rest einer Teilung der geraden Zahlen.

Grundschul-Beispiel: 100 durch 23 = 4, Rest 8
Das Ergebnis aus 100 mod 23 ist also 8.

Der Modulo eigenet sich gut, eine Zahl auf einem Wert zu kürzen, denn das Ergebnis liegt immer zwischen 0 und dem Divisor-1. Das ist auch logisch, denn der Rest-Wert einer Division muss unter dem Divisor liegen. Also eine zufällige Zahl mod 8 wird ganzzahlig sein und zwischen 0 und 7 liegen.

Der Syntax $(($RANDOM%256)) macht also nichts anderes als die Variable $RANDOM (Zufallswert zwischen 0 – 32767)  modulo 256 zu nehmen – womit ein Ergebnis zwischen 0 und 255 herauskommt.

Interessant gelöst fand ich auch diese Codestelle:

while true; do
sleep 1
echo -n .
if [ $(($RANDOM%13)) -eq 2 ]; then break; fi
done

Hier wurde durch $(($RANDOM%13)) eine zufällige Zahl zwischen 0 und 12 ermittelt und mit -eq 2 mit dem Wert 2 verglichen. Die 2 ist dabei nur eine beliebige Zahl, die if-Anweisung heißt übersetzt nichts anderes als  „In einem von 13 Fällen“ (0-12 = 13 Möglichkeiten!), die Bedingung wird also zufällig mit einer Wahrscheinlichkeit von 1/13tel erfüllt.

Übrigens: Wer Zufallszahlen zwischen 1 und … braucht, kann $((RANDOM % 9 +1)) nutzen. Der erste Teil erzeugt eine Zufallszahl zwischen 0 und 9, danach wird das Ergebnis +1 gerechnet, das ergibt also eine Zufallszahl zwischen 1 und 10.

Written by Michael Butschek

Juli 5th, 2009 at 10:00 am

Posted in IT,LST

Tagged with , , ,