Um es einfach mal auszusprechen: Wenn es nicht in einem Terminal läuft,
dann ist es nichts wert :)
Nach fast 13 Jahren beruflichem Umgang mit FreeBSD und Linux bin ich
entgültig davon überzeugt das weniger mehr ist. vi, mutt, w3m, grep,
awk, sed und bash ist alles was man braucht. In den allermeisten Fällen
brauche ich nocht nichtmal screen. Alles andere lenkt nur von den relevanten
Dingen ab. Die Aufmerksamkeit wird sonst weniger von der Aufgabe und mehr von
der Bedienung der Werkzeuge belastet. Das ist schlecht ;)
Als Terminal-user reicht mir dann auch ein Debian in einem colinx auf einem
Intel Atom. Ich nutze blockdevices als Festplatten. Das macht das backup
einfach und die Rechenleistung ist mehr als ausreichend.
Man braucht ja schliesslich einen command-line interpreter. sh ist gut, aber
jede Bourne-ähnliche shell tut ihren Zweck. bash ist heute wohl die am
meisten verbreitete shell.
Neben der Fähigkeit Befehle auszuführen sind Makros bzw.
shell-Skripte sehr mächtig. Tatsächlich lassen sich sehr komplexe
Aufgaben mit Skripten bewältigen.
Ur-Uni* basiert auf dem Textformat. Es ist an sich nicht schwer zu verstehen.
Jeder beliebige Text besteht aus Zeilen und Spalten. Das ist auch eine
zweidimensionale Datenbank und damit kann man eine Menge anfangen.
Ein simples Beispiel ist der Befehl ls -l. das ergibt etwas wie:
-rwxr-xr-x 1 mague users 6471 2012-02-21 09:40 dodeauth
-rwxrwxr-x 1 mague users 10073 2012-02-21 09:40 dodns
-rwxrwxr-x 1 mague users 18566 2012-02-21 09:51 dodom
-rw-rw-r-- 1 mague users 3349 2012-02-21 09:41 lfnet-hm-tools-upd.tar.gz
Wir haben 4 Zeilen und 8 Spalten. Man kann nun die Dateigrösse aller
Dateien addieren und die Summe in Megabyte ausgeben.
ls -l | awk '{ SUM += $5} END { print SUM/1024/1024 }'
0,0366774
Man achte noch auf die pipe |. Damit lassen sich Texte durch mehrere Befehle
tunneln. Hier ein Beispiel in dem nur Dateien welche mit do beginnen addiert
werden.
ls -l | grep "do.*$" | awk '{ SUM += $5} END { print SUM/1024/1024 }'
0,0334835
Ob der Datenstrom von einem Befehl oder aus Dateien kommt ist egal. Man beachte
das man mit mehreren Dateien und Ordnern dreidimensionale Datenbanken abbilden
kann.
Zu erwähnen ist noch, dass man häufug verwendete Konstrukte in Makros
oder Skripten abgebildet werden koennen.
Grundsätzlich ist grep das zeilenorientierte Werkzeug und awk das
spaltenorientierte Werkzeug. Man beachte auch noch sed und find. Für all
diese Befehle gibt es man pages und sehr viel Informationen im Internet.
Da Un*x auf dem Textformat aufbaut braucht man einen Texteditor. Mir ist es
egal ob vi oder emacs. Aber ein Editor ohne shell Filter ist in diesem
Zusammenhang kein Editor !!
Ich gebe zu, es dauert eine Weile um von der WYSIWYG Denkweise wegzukommen.
Dann ist es aber um Welten besser.
Ich habe vim mit syntax highlightning versucht. Ich muss sagen, dass ätzt
!! Monochrom ist immer noch am Besten. Klasse ist aber eine Funktion zum
Prüfen der Klammern :)
Es gibt inzwischen einige revision control Systeme. SVN, git usw. Ich finde RCS
für Textdateien ist immer noch ausreichend. Es ist simpel, effektiv und
kann auch in bash Makros verwendet werden.
Jede Textdatei, seien es sourcen, TeX Vorlagen, Zonen von Nameservern oder
aufwendig gesammelte Daten, sollte ins RCS. Alles was versehentlich geloescht
werden kann oder sonst irgendwie versaut werden kann sollte ins RCS.
RCS ist in man pages wie auch im Internet ausreichend dokumentiert. Eine
weniger bekannte Funktion ist der Id tag. Man kann in eine Datei eine
auskommentierte Zeile mit dem Id tag schreiben. In einem bash Skript etwa so:
#!/bin/bash
#
# $Id$
#
Das siht nach dem ersten Ein- und wiedere Auschecken dann so aus:
#!/bin/bash
#
# $Id: myscript.sh,v 1.1 2013/02/07 15:29:44 mague Exp mague $
#
Das RCS pflegt die Id automatisch mit und man hat die Infos immer parat ohne
sich darum kümmern zu müssen.
mutt. Mehr gibts nicht zu sagen.
Ich empfehle dringend Maildir und nmzmail. nmzmail baut auf namazu auf und ist
schnell und mächtig. Zu namazu weiter unten mehr.
Wer keinen IMAP daemon laufen lassen will oder kann, der sollte procmail
ansehen. Duch die Syntax kann man damit eingehende Mails in Maildir
einsortieren.
MAILBOX=/home/mague/Maildir/INBOX
## Dann einen slash anhaengen und schon wird in Maildir einsortiert.
:0
*
$MAILBOX/
Es gibt einige Textbrowser. Soweit ich weiss ist elinks einer der
kompatibelsten. Ich komme nicht von w3m weg. Es ist der einzige Textbrowser
welcher das freie Bewegen des Cursors erlaubt.
Man muss nicht unbedingt das WWW damit absurfen. Aber ein Textbrowser ist sehr
gut fuer schnelle google Suchen, loakle Suchen, Dokumentationen lesen und fuer
( selbstgeschriebene ) Webinterfaces geeignet. Gutes Beispiel ist das
Webinterface einen VoiP Telefons. Auch braucht man einen textbrowser um HTML in
eMails anzeigen zu können. w3m kann z.B. auch HTML als TXT (ohne tags)
dumpen. Es gibt endlos viele Einsatzmöglichkeiten. Anwendungen.
Andererseits beweisst diese Seite das es moeglich ist HTML Inhalte so
aufzubereiten das sie in allen Browsern funktionieren. Selbst barrierefreise
Internet kommt mit dieser Siete klar. Das aktuelle Internet hat halt sehr wenig
mit Informationstechnologie zu tun.
Ganz klar erstmal netpbm. Es ist schoen old-school und erledig erstmal alle
Aufgaben. Wenn das nicht reicht, dann halt ImageMagick.
Neben Bildbetrachtern fuer X gibts noch fbi fuer die Konsole. Leider wird
nichts mehr fuer die SVGALib entwickelt. Teilweise fallen sogar Werkzeuge aus,
weil sie nicht mehr gewartet werden.
TeX ist eigentlich relativ alt, aber undurchschaubar und passt nicht zu
old-school Uni*. Ich wuerde es bloatware nennen. Daher groff. Das ist Uni* pur.
Die Lernkurve empfinde ich flacher als die von TeX und wenn man das wichtigste
verstanden hat gibt es keine Grenzen mehr.
Ein recht altes Werzeug waere noch udo. Das kommt noch aus der Atari ST Zeit
und wird tatsächlich noch etwas gewartet. Neben groff sind noch
die psutils, ghostview und xpdf zu nennen. Leider gibt es keinen SVGA port der
Dokumentbetrachter. Zumindest ist der aktuelle port von dvifb unter Debian
gebrochen. An einem minimalen X kommt man also nicht mehr vorbei. Es sei denn
man macht staendig Probedrucke.
Nach wie vor ist gnuplot ein gutes Werkzeug. Es ist sogar moeglich Graphen
direkt in ASCII auszugeben.
remind ist ein klassisches Werkzeug um Termine usw. zu verwalten. wyrd ist eine
recht komfortable Oberflaeche dafuer.
So lassen sich reminder per eMail versenden.
remind -z -k"echo %s | mail -s [REMINDER] username@irgendwo.de" /home/username/.reminders &
Wenn man doch mal etwas mehr Multitasking will oder einen Task auf einem
entfernten Rechner laufen lassen will ohne eingeloggt zu sein, dann braucht man
einen Terminal Mulitplexer.
Ein Multiplexer erlaubt es mehrere Fenster gleichzeitig zu nutzen und diese
Fenster noch in Panele aufzuteilen.
Diese session bleibt erhalten und kann spaeter wieder geladen werden. Man kann
also einen zeitintensiven task starten, sich ausloggen und spaeter zurueck
kommen. Der task laeuft in der Zwischenzeit weiter.
Bisher gab es screen fuer solche Aufgaben. tmux ist die modernere Version eines
Multiplexers.
coming soon..