Cómo tener la ruta completa del directorio siempre mostrada en la terminal de Mac (como la terminal de Linux)

71

En mi terminal ubuntu siempre he mostrado completamente el directorio actual. Solo así:

blabla @ blublu: ~ / music / my_album / classical / beethoven $

Pero en mi Mac (Mac OS X 10.6.5) el terminal no muestra la ruta completa y es así:

blabas-MacBook-Pro: clásico beethoven $

¿Hay alguna forma de que cambie el comportamiento del terminal mac para que actúe como terminal de linux?

Der Hochstapler
fuente
1
debe haber una pantalla en las preferencias de la aplicación Terminal. que puedes cambiar comportamientos.
1
Los terminales de Linux no muestran mágicamente la ruta completa; Depende de su configuración. Algunas distribuciones de Linux configuran cosas para mostrar la ruta completa de forma predeterminada, otras no. Todo depende de la variable $ PS1. (Ver la respuesta de Asmus.)
frabjous

Respuestas:

109

Para permitir que bash devuelva "user @ hostname: ruta / al / directorio $" como su solicitud, agregue la siguiente línea a su ~ / .bash_profile:

export PS1='\u@\H:\w$'

o

export PS1='\u@\H:\w$ '

si te gusta tener un espacio entre $ y el comando

Para que los cambios surtan efecto de inmediato, ejecute el siguiente comando en cada ventana abierta (o reinicie Terminal):

source ~/.bash_profile

EDITAR : se puede encontrar una lista de cadenas disponibles en el párrafo "PROMPTING" en la página de manual para bash ( man bash):

INCITACIÓN

  When executing interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the secondary 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 + patch level (e.g., 2.00.0)
          \w     the current working directory, with $HOME abbreviated with a tilde
          \W     the basename of the current working directory, with $HOME abbreviated with a tilde
          \!     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
Asmus
fuente
1
O simplemente ingrese esa PS1tarea en cada ventana abierta. Por cierto, el exportes innecesario.
Dennis Williamson el
66
En realidad, si no utiliza la exportación, estaría definiendo una variable de shell, no una variable de entorno, por lo que PS1 no se pasaría globalmente a todos los procesos.
Asmus
1
export com funciona como se sugiere y muestra la ruta completa, pero una vez que reinicio el terminal, solo muestra el directorio actual (no la ruta completa). ¿Cómo puedo mantener esto para siempre?
JiteshW
1
¿sería posible explicar lo que PS1, \u@\H:\w$significa?
Jas
44
@Jas He actualizado mi respuesta en consecuencia, no sé por qué no lo hice hace años ^^
Asmus
8

Hice que se viera muy similar al terminal centOS en mi Mac. Abra bash_profile, en la terminal

nano ~/.bash_profile

Agregue lo siguiente

# Show always fullpath on terminal
export PS1='\u@\H [\w]$ '

Reinicie Terminal y luego se verá así

[email protected] [/Applications/MAMP/htdocs]$ 
Andres Ramos
fuente
1

Solo cambio el / w a / W para hacer solo la carpeta actual

en terminal de color

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

sin terminal de color

    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '

Uso ubuntu 16.04 y cambio el archivo en ~ / .bashrc

Afrijal Dzuhri
fuente
0

Usé este comando. Esto funciona para mi.

primero,

vi ~/.bash_profile

luego, agregue estas palabras en una nueva línea.

`export PS1='\u@\H:\w$ '`

finalmente,

`source ~/.bash_profile`
Fank Zhou
fuente