Wer sich auf der die Shell der Toppoint einloggt,
bekommt die von der
GNU Software Foundation
programmierte Shell bash. Dort gibt es auch die komplette
Anleitung
zur bash.
Die bash kennt mehrere Konfigurationsdateien, die in einer bestimmten Reihenfolge eingelesen werden:
Die beiden userabhängigen Konfigurationsdateien findet ihr in eurem Homedir und die könnt ihr auch selbst verändern. Dazu kommt noch eine besondere TP-spezifische Datei .tp/options in eurem Homedir, in der einige Umgebungsveriablen für die Shell gesetzt werden können.
Die Terminal-Emulation ist wichtig, damit sich der SSH- oder Telnet-Client, über den du dich eingeloggt hast, richtig mit der Shell unterhalten kann. Bei falscher Terminal-Emulation funktionieren z.B. besondere Tasten (z.B. Umlaute, Cursor-Tasten, Backspace, Delete, …) nicht korrekt. Gängige Terminal-Emulationen sind:
Das zu benutzende Terminal wird beim Einloggen auf die Shell automatisch abgefragt (siehe Zeile 04)
01 Linux yoda 2.4.23 #1 Mon Dec 1 22:29:28 CET 2003 i686 unknown 02 No mail. 03 Last login: Fri Oct 10 13:40:20 2003 from hdlc-kln24.ki.netzservice.de 04 Terminal type [vt102] (10 Sekunden timeout): 05 Terminal is vt102 06 ~ (ce@yoda) 501 >
Nach dem Doppelpunkt in Zeile 04 kann man ein andere Terminal-Emulation einstellen, gibt man 10 Sekunden nichts ein oder drückt nur die RETURN-Taste, so wird die in "[]" genannte Terminal-Emulation eingestellt. Diese Standard-Emulation kann man in der Datei .tp/options ändern, indem man in der Zeile TERMINAL= eine andere Emulation einträgt.
APPL=tcsh EDITOR=vi TERMINAL=vt102 PAGER=less SHELL=tcsh
Die derzeitige Terminal-Einstellung kann man sich ansehen oder auch für die aktuelle Shell einfach ändern:
~ (calle@yoda) 504 > echo $TERM vt102 ~ (calle@yoda) 507 > export TERM=xterm ~ (calle@yoda) 508 > echo $TERM xterm ~ (calle@yoda) 510 >
Wenn man die Terminal-Abfrage beim Einloggen nicht mehr haben will, so kann man sie in der Datei .profile in seinem Homedir deaktivieren, indem man alle folgenden Zeilen mit einem "#" in der ersten Ziele auskommentiert - oder die Zeilen komplett löscht.
# comment the following 17 lines, if you don't want the terminal-question
echo -n "Terminal type [$TERM] (10 Sekunden timeout): "
line=`readtimeout 10`
if [ `expr "$line" : ".*WinSCP"` -gt 0 ]; then
# WinSCP-Client
echo
line=`echo $line | sed -e 's/"//g'`
$line
else
if [ "x$line" = "x" ]; then
line=$TERM
fi
TERM=$line
export TERM
echo Terminal is $TERM
fi
Die bash speichert eine History der zuletzt eingegebenen Befehle in der Datei .bash_history in jedem Homedir eines Users. Diese History dient u.a. dazu, dass man die eingetippten Befehle durch Drücken von CURSOR-UP bzw. CURSOR-DOWN wiederholen kann. Sie hinterläßt aber auch Spuren, an denen man Nachvollziehen kann, was ein User auf der Toppoint gemacht hat.
Diese History-Datei enthält per Standard 500 Einträge, die man über die Umgebungsvariable HISTFILESIZE auf einen anderen Wert setzen kann.
~ (calle@yoda) 503 > wc -l .bash_history
500 .bash_history
~ (calle@yoda) 504 > echo $HISTFILESIZE
500
~ (calle@yoda) 505 > export HISTFILESIZE=5
~ (calle@yoda) 506 > bash --login
~ (calle@yoda) 6 > wc -l .bash_history
5 .bash_history
~ (calle@yoda) 9 >
Möchte man dies dauerhaft ändern, so muss man in die Datei .profile die folgende Zeile ergänzen:
export HISTFILESIZE=5Ein Wert von 0 deaktiviert das Speichern der History komplett.