Um ein wenig Ordnung in die Ausgabe zu bekommen,
ich übersehe immer wieder den Prompt zb. „root@ffkbuu-cpt-meinrouter“ in der Ausgabe von „uci show|grep dingens“-Varianten,
kann man die Ausgabe, bzw wenigstens den Prompt im Freifunk-Router kolorieren?
Kann man steuern, Code entsprechend anpassen.
In die .profile
PS1='\[\033[35;1m\]\u\[\033[0m\]@\[\033[31;1m\]\h \[\033[32;1m\]$PWD\[\033[0m\] [\[\033[35m\]\#\[\033[0m\]]\[\033[31m\]\$\[\033[0m\] '
Oder (in /etc/profile) etwas reduziert für den Gluon root-User
...
17 case "$TERM" in
18 xterm*|rxvt*)
19 # export PS1='\[\e]0;\u@\h: \w\a\]'$PS1
20 export PS1='\[\033[31;1m\]\h \[\033[32;1m\]$PWD\[\033[0m\] \[\033[31m\]\$\[\033[0m\] '
21 ;;
22 esac
...
Schön…
„.profile“ existiert nicht, ins „home“… /root …?
Deshalb habe ich mich an /etc/profile getraut, und die Zeile
export PS1='\[\033[31;1m\]\h \[\033[32;1m\]$PWD\[\033[0m\] \[\033[31m\]\$\[\033[0m\] '
eingefügt, und bin glücklich.
…jetzt sieht es bei mir in /etc/profile so aus:
...
case "$TERM" in
xterm*|rxvt*)
# export PS1='\[\e]0;\u@\h: \w\a\]'$PS1
# export PS1='\[\033[31;1m\]\h \[\033[32;1m\]$PWD\[\033[0m\] \[\033[31m\]\$\[\033[0m\] '
export PS1='\[\033[35;1m\]\u\[\033[0m\]@\[\033[31;1m\]\h \[\033[32;1m\]$PWD\[\033[0m\] [\[\033[35m\]\#\[\033[0m\]]\[\033[31m\]\$\[\033[0m\] '
;;
esac
...
… mal sehen was schöner ist…
aahhh…
echo "PS1='\[\033[35;1m\]\u\[\033[0m\]@\[\033[31;1m\]\h \[\033[32;1m\]$PWD\[\033[0m\] [\[\033[35m\]\#\[\033[0m\]]\[\033[31m\]\$\[\033[0m\] '" >./.profile
… das kann man bestimmt auch mit ‚ssh‘ automatisieren… coool…
ssh root@meinffrouter 'echo "PS1='[\033[35;1m]\u[\033[0m]@[\033[31;1m]\h [\033[32;1m]$PWD[\033[0m] [[\033[35m]#[\033[0m]][\033[31m]$[\033[0m] '" >./.profile'
…will aber nicht…
ssh -t root@meinffrouter 'echo "PS1='[\033[35;1m]\u[\033[0m]@[\033[31;1m]\h [\033[32;1m]$PWD[\033[0m] [[\033[35m]#[\033[0m]][\033[31m]$[\033[0m] '" >./.profile'
auch nicht
ssh -t root@meinffrouter "echo "PS1='[\033[35;1m]\u[\033[0m]@[\033[31;1m]\h [\033[32;1m]$PWD[\033[0m] [[\033[35m]#[\033[0m]][\033[31m]$[\033[0m] '" >./.profile"
auch nicht
…habe ich mal in „unser“ Wiki geschrieben…
(ich bin offen für Kritik, vielleicht auch ins wiki.freifunk.net eintragen?)
Wenn du es per ssh mitgeben willst:
MYVAR='\[\033[35;1m\]\u\[\033[0m\]@\[\033[31;1m\]\h \[\033[32;1m\]$PWD\[\033[0m\] [\[\033[35m\]\#\[\033[0m\]]\[\033[31m\]\$\[\033[0m\] '
ssh user@example.org "PS1='${MYVAR}'; echo \\$PS1"
ssh cpt20 "PS1='${MYVAR}'; echo \\$PS1"
\[e]0
ash: u@h:: not found
ash: 32m]u@h[033[00m]:[033[01: not found
ash: 34m]w[033[00m]$: not found
und das mit dem $PWD klappt auch nicht so ganz…
root@ffkbuu-cpt20-46c896 /root [#]$ pwd;cd ..;pwd
/root
/
root@ffkbuu-cpt20-46c896 /root [#]$ ^C
und ich komme mit diversen Hochkommata und Backtiks durcheinander…
Wenn ich die Zeile
PS1='\[\033[35;1m\]\u\[\033[0m\]@\[\033[31;1m\]\h \[\033[32;1m\]$PWD\[\033[0m\] [\[\033[35m\]\#\[\033[0m\]]\[\033[31m\]\$\[\033[0m\] '
mit vi editiere / einfüge klappt das…
Aber ich möchte es natürlich etwas automatisiert, entweder mit echo oder mit ssh-command ausführen…
…das das (Ash/shell Prompt in Farbe - #7 von cptechnik) nicht funktioniert hat … es fehlten oft die backslashes…
…also irgendwie verträgt sich das echo nicht mit dem $PWD…
meist wird es durch den aktuellen Wert „/root“ ersetzt, und damit erscheint „/root“ immer im Prompt, egal wo man ist…
Erst wenn man mit vi die Variable $PWD in den String von PS1 einsetzt funktionierts…
hmmm
… weitere Ideen? (es mit echo oder ssh-command zu automatisieren?)
huiii… heureka… ichglaubichhabs…
echo "PS1='\[\033[31;1m\]\h \[\033[32;1m\]\$PWD\[\033[0m\] \[\033[31m\]\$\[\033[0m\] '" >/root/.profile
Wichtig… das \ vor dem $PWD …beim ECHO-Befehl…!
…jetzt nur noch das Problem mit dem SSH-Command lösen…
Sorry wenn ich euch so zutexte… und Ihr einfach nicht zu Worte kommt…
Habe jetzt ne lösung für ssh-command:
echo "PS1='\[\033[31;1m\]\h \[\033[32;1m\]\$PWD\[\033[0m\] \[\033[31m\]\$\[\033[0m\] '" >ffprofile;scp ffprofile freifunkrouter01:.profile
oder
echo "PS1='\[\033[31;1m\]\h \[\033[32;1m\]\$PWD\[\033[0m\] \[\033[31m\]\$\[\033[0m\] '" >/tmp/ffprofile
scp /tmp/ffprofile freifunkrouter01:.profile
scp /tmp/ffprofile freifunkrouter02:.profile
scp /tmp/ffprofile freifunkrouter03:.profile
Bestehend aus dem echo Befehl, der eine temporäre Datei erstellt (extra auch in /tmp), und die dann per scp auf den ff-router verschiebt.
…geht doch so einfach, oder?