Zmień wiersz Cygwin

Odpowiedzi:

26

PS1Zmienna kontroluje monit:

PS1='\w $ '

Aby uzyskać więcej informacji na temat tego i innych tematów szybkiej konfiguracji, wpisz man bash(zakładając, że bashto twoja powłoka) i zobacz sekcję „PROMPTING”.

Aby ta zmiana była trwała, edytuj ~/.bashrcplik, aby dodać powyższą linię.

Greg Hewgill
źródło
1
~ / .bashrc nie jest wykonywany dla powłoki logowania. zamiast tego zaktualizuj ~ / .bash_profile. Używam następującego ciągu zachęty, który zawiera kilka innych przydatnych informacji, a nie tylko ścieżkę: PS1 = '[\ e [32m] \ t [\ e [33m] \ w [\ e [31m] \! [\ e [0m] \ $ '
bobmcn
1
Nie zapominaj, że normalnie źródła .profile .bashrc, tak że w efekcie powłoka logowania jest inicjowana przy użyciu tych samych rzeczy, co powłoka niezalogowana plus to, co jest w .profile. W takim przypadku umieszczenie nowego znaku zachęty w .bashrc zabija dwa ptaki jednym kamieniem.
1

Powłoka logowania to taka, której pierwszym znakiem argumentu zero jest - lub rozpoczęty z opcją --login. Gdy bash jest wywoływany jako interaktywna powłoka logowania lub jako nieinteraktywna powłoka z opcją --login, najpierw czyta i wykonuje polecenia z pliku / etc / profile, jeśli plik ten istnieje. Po odczytaniu tego pliku szuka ~ / .bash_profile, ~ / .bash_login i ~ / .profile, w tej kolejności, i odczytuje i wykonuje polecenia z pierwszego, który istnieje i jest czytelny. Opcji --noprofile można użyć podczas uruchamiania powłoki w celu zahamowania tego zachowania. Gdy uruchomiona jest powłoka interaktywna, która nie jest powłoką logowania, bash czyta i wykonuje polecenia z ~ / .bashrc, jeśli plik ten istnieje.

Więc to zależy ... nie używam --login, więc muszę dodać go do ~ / .bashrc

jr00n
źródło
1

Nie jestem pewien, dlaczego posiadanie mniejszego kontekstu jest lepsze niż posiadanie większej liczby ... Fakt, że w wierszu polecenia jest nowa linia, oznacza, że ​​długość pytania nie powinna być problemem, ale spróbuj tego:

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

lub

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

To daje kolorowy monit:

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

W ten sposób zawsze widzisz pełny kontekst folderu, ale nadal masz pełną linię do wprowadzania tekstu. (Pominąłem zwyczajowe odstępy po „$”, ponieważ są kolorowe dla przejrzystości).

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

Dla tych, którzy chcą także kontekstu „użytkownik @ nazwa hosta”:

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

lub

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

To daje kolorowy monit:

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

To moja preferencja.

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.

(Nie, w tym poście nie ma błędów ortograficznych - angielski królowej;))

skeetastax
źródło
1

.bashrc nie działało dla mnie. Dodałem to na końcu pliku / etc / profile i zadziałało:

export PS1="\[\e[33m\]\w\[\e[0m\] \$ "

Używam Cygwin w wersji 2.11.2 (najnowsza wersja na dzień 18.12.2018).

Samuel
źródło
0

Umieść to w swoim ~ / .bashrc. Podaje kolorowy monit i utrzymuje status w jednym wierszu.

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ "
Sandeep
źródło