Ist es möglich, den Eingabetext meines Terminalfensters zu ändern?

11

Der Standard-Eingabeaufforderungstext meines Terminalfensters nimmt zu viel Platz ein (ich denke, mein Computername ist zu lang).

Kann ich das anpassen?

user27449
quelle

Antworten:

12

Ja, es kann mit der PS1Umgebungsvariablen angepasst werden.

Sie können es einstellen, indem Sie so etwas in Ihre .bash_profileoder .profileDatei einfügen:

PS1="your prompt"

Wenn Sie eine sehr einfache Bash-Eingabeaufforderung wünschen, die überhaupt nicht viel Platz beansprucht (was anscheinend das ist, wonach Sie suchen), können Sie sie so einstellen, dass nur das aktuelle Verzeichnis angezeigt wird:

PS1="\w "

Das \wist einer von vielen bash PS1 - Escape - Sequenzen . Dieser wird in das aktuelle Verzeichnis erweitert.

Wuffers
quelle
4

Dies ist meine / etc / prompt-Datei, die ich aus / etc / profile beziehe. Es verwendet Farben nach Name, Maschinenname, Verzeichnisname und Farben je nach Benutzer und ist meist eine schamlose Kopie einiger Teile der Manpage von bash:

#
# PROMPTING
#       When  executing  interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the sec-
#       ondary prompt PS2 when it needs more input to complete a command.  Bash allows these prompt strings to be  customized
#       by inserting a number of backslash-escaped special characters that are decoded as follows:
#              \a     an ASCII bell character (07)
#              \d     the date in "Weekday Month Date" format (e.g., "Tue May 26")
#              \D{format}
#                     the  format is passed to strftime(3) and the result is inserted into the prompt string; an empty format
#                     results in a locale-specific time representation.  The braces are required
#              \e     an ASCII escape character (033)
#              \h     the hostname up to the first `.'
#              \H     the hostname
#              \j     the number of jobs currently managed by the shell
#              \l     the basename of the shell's terminal device name
#              \n     newline
#              \r     carriage return
#              \s     the name of the shell, the basename of $0 (the portion following the final slash)
#              \t     the current time in 24-hour HH:MM:SS format
#              \T     the current time in 12-hour HH:MM:SS format
#              \@     the current time in 12-hour am/pm format
#              \A     the current time in 24-hour HH:MM format
#              \u     the username of the current user
#              \v     the version of bash (e.g., 2.00)
#              \V     the release of bash, version + patchelvel (e.g., 2.00.0)
#              \w     the current working directory
#              \W     the basename of the current working directory
#              \!     the history number of this command
#              \#     the command number of this command
#              \$     if the effective UID is 0, a #, otherwise a $
#              \nnn   the character corresponding to the octal number nnn
#              \\     a backslash
#              \[     begin a sequence of non-printing characters, which could be used to embed a terminal  control  sequence
#                     into the prompt
#              \]     end a sequence of non-printing characters
#
#       The  command  number and the history number are usually different: the history number of a command is its position in
#       the history list, which may include commands restored from the history file (see HISTORY below),  while  the  command
#       number  is  the  position in the sequence of commands executed during the current shell session.  After the string is
#
# colors:
# \[...\]   needed, so the shell knows, that this isn't printable output, and newlines are placed at the right position.
#
# ANSI COLORS
CRE="\[
[K\]"
NORMAL="\[[0;39m\]"
# RED: Failure or error message
RED="\[[1;31m\]"
# GREEN: Success message
GREEN="\[[1;32m\]"
# YELLOW: Descriptions
YELLOW="\[[1;33m\]"
# BLUE: System messages
BLUE="\[[1;34m\]"
# MAGENTA: Found devices or drivers
MAGENTA="\[[1;35m\]"
# CYAN: Questions
CYAN="\[[1;36m\]"
# BOLD WHITE: Hint
WHITE="\[[1;37m\]"
#
# default:
# postgres, oracle
#
# PS1=$BLUE"asux]->"$NORMAL\\w"$BLUE ø $NORMAL"
PS1=$BLUE"asux]:"$NORMAL\\w"$BLUE > $NORMAL"
#
# root, stefan:
#
case "$UID" in
    '0')
        PS1=$RED"asux:"$NORMAL\\w"$RED # $NORMAL"
    ;;
    '1000')
    PS1=$GREEN"asux:"$BLUE\\w$YELLOW" > "$NORMAL
    ;;
#    default)
#    ;;
esac

asuxist mein Maschinenname, ersetze ihn durch deinen. Es ist üblich, verschiedene Farben (rot für root) und Eingabeaufforderungen (> für Benutzer, # für root) für normale Benutzer und Superuser zu verwenden. Wenn Sie häufig ssh verwenden, ist der Computername hilfreich, und verschiedene Farben, wenn Sie nur 2-3 verschiedene Hosts verwenden.

Ich habe eine andere Farbe für Benutzer 'postgresql' oder 'oracle', aber ich brauche sie nicht mehr oft.

Screenshot der Eingabeaufforderungen des Benutzers

Benutzer unbekannt
quelle