Cygwin-Eingabeaufforderung ändern

23341
Cristian

Die standardmäßige Cygwin-Eingabeaufforderung von "user@computer path \ n $" ist für mich zu lang. Ich möchte den Weg behalten.

Ich will es werden:

Pfad $

Gibt es eine Konfigurationsdatei, die ich ändern kann?

16
Mögliches Duplikat von [Ist es möglich, den Aufforderungstext für das Terminalfenster zu ändern?] (Https://superuser.com/questions/287669/isit-possible-to-change-my-terminal-window-prompt-text) phuclv vor 6 Jahren 0
[So ändern Sie das Format der Bash-Eingabeaufforderung] (https://unix.stackexchange.com/q/386404/44425) phuclv vor 6 Jahren 0

4 Antworten auf die Frage

26
Greg Hewgill

Die PS1Umgebungsvariable steuert die Eingabeaufforderung:

PS1='\w $ ' 

Weitere Informationen zu diesem und anderen Eingabeaufforderungskonfigurationsthemen erhalten Sie, man bashindem bashSie (unter der Annahme, dass Ihre Shell verwendet wird) eingeben und im Abschnitt "PROMPTING" nachschlagen.

Um diese Änderung dauerhaft zu machen, bearbeiten Sie Ihre ~/.bashrcDatei, um die obige Zeile hinzuzufügen.

~ / .bashrc wird für eine Login-Shell nicht ausgeführt. Aktualisieren Sie stattdessen ~ / .bash_profile. Ich verwende die folgende Eingabeaufforderung, die einige nützliche Informationen enthält, nicht nur den Pfad: PS1 = '\ [\ e [32m \] \ t \ [\ e [33m \] \ w \ [\ e [31m \] \! \ [\ e [0m \] \ $ ' bobmcn vor 15 Jahren 1
Vergessen Sie nicht, dass normalerweise .profile-Quellen .bashrc verwendet werden, so dass eine Login-Shell mit demselben Inhalt wie eine Nicht-Login-Shell _plus_ initialisiert wird, die in .profile enthalten ist. Wenn dies der Fall ist, töten Sie mit Ihrer neuen Ansage in .bashrc zwei Fliegen mit einer Klappe. vor 10 Jahren 0
1
jr00n

Eine Login-Shell ist eine, deren erstes Zeichen das Argument Null ist - oder eines, das mit der Option --login gestartet wurde. Wenn bash als interaktive Login-Shell oder als nicht interaktive Shell mit der Option --login aufgerufen wird, werden zuerst Befehle aus der Datei / etc / profile gelesen und ausgeführt, sofern diese Datei vorhanden ist. Nach dem Lesen dieser Datei sucht sie in dieser Reihenfolge nach ~ / .bash_profile, ~ / .bash_login und ~ / .profile und liest und führt Befehle aus dem ersten vorhandenen Befehl aus, der lesbar ist. Die Option --noprofile kann verwendet werden, wenn die Shell gestartet wird, um dieses Verhalten zu verhindern. Wenn eine interaktive Shell gestartet wird, die keine Login-Shell ist, liest und führt bash Befehle aus ~ / .bashrc aus, falls diese Datei vorhanden ist.

Es kommt also darauf an ... Ich verwende das --login nicht, also muss ich es zu ~ / .bashrc hinzufügen

1
skeetastax

Nicht sicher, warum weniger Kontext besser ist als mehr ... Die Tatsache, dass die Eingabeaufforderung eine neue Zeile enthält, bedeutet, dass die Länge der Eingabeaufforderung kein Problem sein sollte. Versuchen Sie jedoch Folgendes:

PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] ' 

oder

export PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] ' 

Dies gibt Ihnen eine farbige Eingabeaufforderung:

/full/path/to/current/folder $your command text here 

Auf diese Weise sehen Sie immer Ihren vollständigen Ordner-Kontext, erhalten jedoch immer eine vollständige Zeile für die Eingabe von Text. (Ich habe das übliche Leerzeichen nach dem '$' weggelassen, da es aus Gründen der Klarheit farbig ist).

Colours are: 1. '/full/path/...' = yellow; 2. '$' (on next line) = cyan; 3. 'your command text...' = light grey. 

Für diejenigen, die auch den Kontext "Benutzer @ Hostname" möchten:

PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] ' 

oder

export PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] ' 

Dies gibt Ihnen eine farbige Eingabeaufforderung:

user@hostname /full/path/to/current/folder $your command text here 

Das ist meine Präferenz.

Colours are: 1. 'user' = (light) green; 2. '@' = pink; 3. 'hostname' = (light) green; 4. '/full/path/...' = yellow; 5. '$' (on next line) = cyan; 6. 'your command text...' = light grey. 

(Nein, es gibt keine Schreibfehler in diesem Beitrag - Queen's English;))

0
Sandeep

Setzen Sie dies in Ihre ~ / .bashrc. Gibt eine farbige Eingabeaufforderung aus und speichert den Status in einer einzelnen Zeile.

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ "