É possível alterar o texto do meu prompt de janela do terminal?

11

Meu texto de prompt padrão da janela do terminal ocupa muito espaço (acho que o nome do meu computador é muito longo).

Posso personalizar isso?

    
por user27449 23.05.2011 / 23:18

2 respostas

12

Sim, é personalizável com a variável de ambiente PS1 .

Você pode configurá-lo colocando algo assim em seu arquivo .bash_profile ou .profile :

PS1="your prompt"

Se você quer um prompt bash muito simples que não ocupa muito espaço (o que parece ser o que você está procurando), você pode configurá-lo apenas para mostrar o diretório atual, assim:

PS1="\w "

A \w é uma das muitas sequências de escape PS1 do bash . Este expande para o diretório atual.

    
por 23.05.2011 / 23:22
4

Este é o meu arquivo / etc / prompt, que eu compro de / etc / profile. Ele usa cores por nome, nome da máquina, nome da pasta, cores, dependendo do usuário, e é principalmente uma cópia descarada de algumas partes da manpage do 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 é o nome da minha máquina, substitua-a pela sua. É comum usar cores diferentes (vermelho para raiz) e prompts (> para usuário, # para raiz) para usuários normais e superusuários. Se você costuma usar ssh, o nome da máquina é útil e cores diferentes, se você usar apenas 2-3 hosts diferentes.

Eu tenho uma cor diferente para o usuário 'postgresql' ou 'oracle', mas não preciso mais dela.

    
por 24.05.2011 / 00:01

Tags