我可以更改我的终端窗口提示文本吗?

我可以更改我的终端窗口提示文本吗?

我的终端窗口默认提示文本占用了太多空间(我猜是我的计算机名太长了)。

我可以定制这个吗?

答案1

是的,它可以通过PS1环境变量进行定制。

.bash_profile您可以通过在或文件中输入类似这样的内容来设置它.profile

PS1="your prompt"

如果您想要一个非常简单的 bash 提示符,它根本不占用太多空间(这似乎就是您想要的),您可以将其设置为仅显示当前目录,如下所示:

PS1="\w "

\w是其中之一许多 bash PS1 转义序列. 这个扩展到当前目录。

答案2

这是我的 /etc/prompt 文件,来自 /etc/profile。它使用按名称、机器名称、目录名称、根据用户使用的颜色,并且大部分是 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

asux是我的机器名,请将其替换为您的。通常对普通用户和超级用户使用不同的颜色(红色代表 root)和提示(> 代表用户,# 代表 root)。如果您经常使用 ssh,机器名会很有帮助,如果您只使用 2-3 个不同的主机,则可以使用不同的颜色。

我为用户“postgresql”或“oracle”设置了不同的颜色,但我不再需要它了。

用户提示截图

相关内容