Config ASH Prompt (user@host:path)

Status
Für weitere Antworten geschlossen.

wrybit

Benutzer
Mitglied seit
21. Jan 2008
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hy,

ich habe leider wenig Erfahrung mit der Almquist-Shell (ash),
daher finde ich auch nicht raus wie ich den Prompt der Console
verändern kann.

Im Ordner /root habe ich die ".profile" folgender massen angepasst:

DEFAULT:
PS1="`hostname`> "

Mein Wunsch:
root@cubestation:volume> cd ..

Was geht:
PS1="`whoami`@`hostname`> "

Mein Versuch:
PS1="`whoami`@`hostname`:`pwd`> "

Leider erstellt letzteres einen statischen Zustand der nur beim Login einmal
erstellt wird und danach nicht mehr geupdatet. :(

Daher meine Frage: Hat einer von Euch dafür schon einen Lösungsansatz?
Oder: Wie kann ich eine andere Console (Bash) einsetzen?

Ich arbeite auf einer CS-407 (BusyBox 1.1.0 // Linux CubeStation 2.6.15 #518)

Vielen Dank schon mal im Vorraus.
 

Simon Hufnagel

Benutzer
Mitglied seit
22. Mrz 2007
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Hi!

ich habe genau das gleiche Problem!

der Prompt ist immer statisch, selbt wenn man im .profile File PS1="`pwd`> " eingibt, funnktioniert es nicht, dass der aktuelle Pfad als Prompt angezeigt wird...

wirklich keiner ne Idee?

MfG
 

moebi

Benutzer
Mitglied seit
23. Mai 2010
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Mögliche Lösung per Skript in ~/.profile

Ich habe folgendes in meine ~/.profile geschrieben:

Rich (BBCode):
# Update der PS1-Umgebungsvariable bezgl. aktuellem Verzeichnis
update_ps1() {
        cur_user=$(whoami)
        cur_pwd=$(pwd)
        ech="\$"
        if [ $cur_user = "root" ]; then
                ech="#"
        fi
        if [ $cur_pwd = $HOME ]; then
                cur_pwd="~"
        fi
        PS1="$cur_user@`hostname`:$cur_pwd$ech "
}

# Initialisierung PS1
update_ps1

# Autom. PS1 updaten bei Verzeichnis-Wechsel mit cd
alias cd=my_cd
my_cd() {
        chdir $@
        update_ps1
}

Das Resultat funktioniert soweit ganz gut:

Rich (BBCode):
BusyBox v1.1.0 (2010.04.19-13:35+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

root@DiskStation:~# cd /volume1/homes/admin
root@DiskStation:/volume1/homes/admin# cd /root
root@DiskStation:~#

cd wird jetzt durch chdir implementiert, denn ash scheint builtin cd nicht zu verstehen; Keine Ahnung, ob das Unterschiede machen kann...

Ach ja, mein erster Post ... hallo, Welt! ;)
 

coolhot

Benutzer
Mitglied seit
01. Mrz 2009
Beiträge
926
Punkte für Reaktionen
0
Punkte
0
Willkommen im Forum und herzlichen Dank für den ersten, sehr interessanten Beitrag. Werde ich gelegentlich testen.

@Moderation: Bitte Threadtitel ändern (Prompt) damit er auch gefunden werden kann.
 

coolhot

Benutzer
Mitglied seit
01. Mrz 2009
Beiträge
926
Punkte für Reaktionen
0
Punkte
0
@moebi: Ich habe dein Script gerade an /root/.profile angehängt. Hat sofort bei der nächsten putty-Verbindung funktioniert.

Dankeschön.
 

salami739

Benutzer
Mitglied seit
19. Jun 2011
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
Pfade mit Leerzeichen Problem

Das Script funzt so nicht wenn man in Pfade mit einem oder mehreren Leerzeichen wechseln möchte. Hier eine korrigierte Version:

Rich (BBCode):
update_ps1() {
  cur_user="`whoami`"
  cur_pwd="`pwd`"
  ech="\$"
  if [ "$cur_pwd" = "root" ]; then
    ech="#"
  fi
  if [ "$cur_pwd" = "$HOME" ]; then
    cur_pwd="~"
  fi
  PS1="$cur_user@`hostname`:$cur_pwd$ech "
}
# Initialisierung PS1
update_ps1
alias cd=my_cd
my_cd() {
  chdir "$@"
  update_ps1
}

Ansonsten ist die Idee mit dem Script sehr gut, wenn man keien bash über ipkg installieren kann.
Hoffe damit weitergeholfen zu haben.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
und wies nicht einfach
Code:
PS1="\u@\h:\w"
\u ist der User \h der Servername und \w das aktuelle Verzeichnis mit home als ~
 

salami739

Benutzer
Mitglied seit
19. Jun 2011
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
weil die PS1 Variable unter /bin/ssh (Standard Synology Shell) nur einmal ausgewertet wird, nicht beim Verzeichniswechsel.
Wenn man eine Bash hat, dann geht auch PS1 setzen.

Siehe /etc/passwd für die Login-Shell.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
mit der aktuellen Firmware wird PS1 auch bei jedem Verzeichniswechsel aktualisiert. Funktioniert mit /bin/ash und /bin/sh. Ab welcher Firmware das geändert wurde weiß ich allerdings nicht.

Gruß Götz
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Könnte es jetzt auch nicht genau sagen, aber sich seit DSM3 habe ich das bei mir so am laufen und die Verzeichnisse aktualisieren sich
shell.jpg
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Das mit der roten Schrift kann man kaum lesen ... ich würde dir da etwas Kontrastreicheres empfehlen :)
 

salami739

Benutzer
Mitglied seit
19. Jun 2011
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
seit DSM-3.1-1742 auf einer DS211J läuft auch die PS1-Variante (PS1 im ~/.profile bzw /root/.profile setzen).
Also können wohl alle User mit einer aktuellen Firmware tatsächlich auf die Aktion mit dem Script verzichten.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
seit DSM-3.1-1742 auf einer DS211J läuft auch die PS1-Variante (PS1 im ~/.profile bzw /root/.profile setzen).
Also können wohl alle User mit einer aktuellen Firmware tatsächlich auf die Aktion mit dem Script verzichten.

ich denke, dass man es auch mit früheren Versionen probieren sollte, denn ich habe definitiv die 1618, mit der das auch geht ...

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wie gesagt seit DSM 3.0 geht es sicher. Ich meine auch es habe vorher schon irgendwann geklappt.
@itari
Die rote Schrift heisst nur: "Hei User pass auf du bist als root unterwegs. Denke zweimal bevor du enter drückst." ;-)
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Hat das jemand schon mit der DSM 4 beta getestet?
Scheint als wäre es wieder broken?
Hier aktualisiert sich leider nichts.

bei mir auf der DS2411+ geht es:

Rich (BBCode):
BusyBox v1.16.1 (2012-01-13 21:19:34 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ds2411> PS1="\u@\h:\w "
root@ds2411:~ cd /
root@ds2411:/ cd /var
root@ds2411:/var uname -a
Linux ds2411 2.6.32.12 #2166 SMP Fri Jan 13 21:14:41 CST 2012 x86_64 GNU/Linux synology_x86_2411+

Hervorhebung ist von mir, damit man die Firmware-Version auch sieht

Itari
 

mattadms

Benutzer
Mitglied seit
11. Feb 2012
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hoppla.. mit den Variablen gehts.
Vielen Dank!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat