Skripte, Programme und Anderes |
Übersicht |
An dieser Stelle sollen nützliche Skripte folgen, auf die teilweise im Buchtext verwiesen wird. Einige der Skripte sind bewusst einfach gehalten und verzichten zu Gunsten der Verständlichkeit auf umfangreiche Fehlerbehandlungen. Der Leser sollte diese leicht selbst ergänzen können.
Auch Themen, die nicht unbedingt in den Inhalt des Buches passen, finden ggf. hier ihren Platz.
crypt - Verschlüsselung von Passwörtern |
Das nachfolgend beschriebene Programm ist ein Ersatz für das Unix-Programm crypt, das den meisten Linux-Distributionen nur in Form einer Bibliotheksroutine beiliegt. Das Programm erwartet als Eingabe das zu verschlüsselnde Passwort und eine aus 2 alphanumerischen Zeichen bestehende Zeichenkette - das Salz in der Suppe. Mit Hilfe dieser beiden Zeichen wird die Arbeitsweise des Algorithmus auf eine von 4096 möglichen Arten modifiziert. Die Zeichen können beliebig gewählt werden.
Aber nun das Listing des Programmes:
#include <unistd.h> #include <stdio.h> int main (int argc, char** argv) { if ( argc != 3 ) { fprintf(stderr, "%s need two arguments to encrypt\n", argv[0]); return -1; } printf("%s", crypt(argv[1], argv[2] )); return 0; } |
Übersetzt wird das Programm mit:
user@sonne> cc crypt.c -o mycrypt -lcrypt |
Ein Aufruf sieht wie folgt aus:
user@sonne> ./mycrypt MyPassword X7 X7xe.8.ZuZ/PE |
Farbe für die Konsole |
Abbildung 1: Weiße Schrift auf schwarzem Grund...
Genug von Schwarz und Weiß? Dann gibt es mehrere Möglichkeiten, die Konsole ein wenig aufzupeppen...
Das Kommando ls kann mittels der Option --color zu einer farbigen Darstellung der Ausgabe überredet werden. Dazu verwendet ls die in der Datei /etc/DIR_COLORS angegebenen Informationen.
user@sonne> cat /etc/DIR_COLORS ############### gekürzte Datei ######################### # Configuration file for the color ls utility # This file goes in the /etc directory, and must be world readable. # You can copy this file to .dir_colors in your $HOME directory to override # the system defaults. # COLOR needs one of these arguments: 'tty' colorizes output to ttys,but not # pipes. 'all' adds color characters to all output. 'none' shuts colorization # off. COLOR tty # Extra command line options for ls go here. # Basically these ones are: # -F = show '/' for dirs, '*' for executables, etc. # -T 0 = don't trust tab spacing when formatting ls output. OPTIONS -F -T 0 # Below, there should be one TERM entry for each termtype that is colorizable TERM linux TERM console TERM con132x25 TERM con132x30 TERM con132x43 TERM con132x60 TERM con80x25 # EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output) EIGHTBIT 1 NORMAL 00 # global default, although everything should be something. FILE 00 # normal file DIR 01;34 # directory LINK 01 # symbolic link FIFO 40;33 # pipe SOCK 01;35 # socket BLK 40;33;01 # block device driver CHR 40;33;01 # character device driver # This is for files with execute permission: EXEC 01;31 # List any file extensions like '.gz' or '.tar' that you would like ls .tar 00;31 # archives or compressed (red) .tgz 00;31 .taz 00;31 .lzh 00;31 .zip 00;31 .z 00;31 .bz2 00;31 .jpg 01;35 # image formats .gif 01;35 .bmp 01;35 .xbm 01;35a |
Mit Hilfe des Kommandos echo lässt sich die Farbe für alle folgenden Ausgaben steuern:
Aufruf: echo -e "\033[<Flag>;<Farbe>[;<Farbe>]m" |
|
|
Die Eingabe user@sonne> echo -e "\033[01;33;41m"
erzeugt folgende Konsolenoptik:
Abbildung 2: Etwas Farbe für die Konsole
Druckversion der Linuxfibel |
Die Generierung der Druckversion der Linuxfibel übernimmt ein kombiniertes Awk- und Bash-Skript. Eine Diskussion des Skript selbst finden Sie im Abschnitt Bashprogrammierung, Komplexe Anwendungen.
user@sonne> cat printversion.sh #!/bin/sh linuxfibel_base=${1:-./} awk_script=/tmp/`basename $0`.$$ trap 'test -e $awk_script && rm $awk_script' 2 15 test -d $linuxfibel_base || { echo "Verzeichnis $linuxfibel_base existiert nicht"; exit 1; }
cat > $awk_script << EOF #--------- AWK-SCRIPT BEGINN -------------- #!/usr/bin/awk -f BEGIN { DoPrint="true" IGNORECASE=1 }
|