Wyświetlanie nowego wiersza w wierszu polecenia

53

Chcę dodać nową linię przy każdym znaku zachęty. Zamiast kursora wyświetlanego w linii jako name@machine:~$ _,

Chcę, aby był w następnym wierszu, na przykład:

name@machine:~$
_

Dzięki.

theTuxRacer
źródło

Odpowiedzi:

69
  • Otwórz plik ~/.bashrc(lub /etc/bash.bashrcjeśli powinien działać globalnie dla wszystkich użytkowników).

  • Znajdź zmienną o nazwie PS1.

  • Po prostu umieść \nna końcu wartości PS1zmiennej.

htorque
źródło
18
Najłatwiej to zrobić, dodając PS1 = "$ PS1 \ n" na dole pliku ~ / .bashrc.
Dennis VanMeter,
3
Chyba łatwiejsze w utrzymaniu - dlaczego nie uczynić go nową odpowiedzią? :)
htorque,
tak, zrobiłem to. było zbyt wiele wierszy, aby dodać \ n, więc utworzyłem nową zmienną.
theTuxRacer,
8

Wolę używać niestandardowego .bashrcpliku

Najpierw dodaj do ~/.bashrcpliku następujące wiersze :

##
## INCLUDE CUSTOM `.bashrc` CODE
##
if [ -f ~/.bashrc_custom ]; then
    . ~/.bashrc_custom
fi

Utwórz plik niestandardowy:

touch ~/.bashrc_custom`

Na koniec otwórz i wstaw następujące linie:

# File: $HOME/.bashrc_custom
# THIS FILE IS A USER-CUSTOM BASHRC FILE TO KEEP CLEAN THE DEFAULT ~/.barshrc FILE.
# PUT THERE ANY CUSTOM CODE MANUALLY ADDED BY YOU


# Add a new line at the end of the command prompt
#PS1=${PS1}\\n
PS1=${PS1%?}
PS1=${PS1%?}\n'$ '

Następna otwarta sesja powłoki będzie wyglądać następująco:

user@host:~
$ <your-next-command-will-be-rendered-here>
Rémi B.
źródło
4
Dlaczego zalecamy używanie niestandardowego pliku .bashrc? Czy nie jest dokładnie, dlaczego .bashrc w twoim katalogu domowym istnieje? Rozumiem, że możesz używać i modyfikować domyślnie generowany plik .bashrc, ale wtedy, gdy chcesz używać .bashrc w innych systemach operacyjnych, nie możesz tego zrobić, ponieważ polegasz na domyślnym pliku .bashrc i jeśli nie jest taki sam, może zachowywać się inaczej.
Michal Bernhard