我的终端窗口默认提示文本占用了太多空间(我猜是我的计算机名太长了)。
我可以定制这个吗?
答案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”设置了不同的颜色,但我不再需要它了。