13 votos

En el terminal, modifica el texto que precede a $

En la terminal siempre puedo ver en qué ruta estoy:

macbook-romeo:School romeovs$ echo "example command"

que me parece bastante útil. Sin embargo, también hay muchas cosas innecesarias: macbook-romeo no es útil ya que siempre estoy en mi macbook (duh). Por otra parte romeovs es bastante útil (este es mi nombre de usuario).

¿Hay alguna forma de editar lo que se muestra aquí? p. ej.

22:50 - School - Romeo$ echo "example"

donde 22:50 ¿es la hora actual? (Esto es sólo un ejemplo, por supuesto, no voy a necesitar la hora, me gustaría que el texto fuera un poco más minimalista).

11voto

eXtractor Puntos 172

Debe modificar el archivo .bashrc que se encuentra en su directorio personal .

Abra el terminal y haga lo siguiente:

  • cd ~
  • touch .bashrc
  • open .bashrc

Añada la siguiente línea al final de su archivo .bashrc

export PS1=' \t - \W - \u\ $ '

  • Guarde el archivo y cierre el editor
  • Vuelve al terminal e introduce el siguiente comando:

    fuente .bashrc

¡Boom! Ahora debería tener el mensaje deseado. (Si la pregunta deseada era su ejemplo dado)

0 votos

Cuando hice esto obtuve lo siguiente MBP-15:~ Daniel$ source .bashrc -bash: export: \=': no es un identificador válido -bash: export: \t - \W - \u$ ': not a valid identifier MBP-15:~ Daniel$

0 votos

@DanielCompton Gracias por señalarlo, he actualizado mi respuesta para que funcione :)

11voto

cmcculloh Puntos 11040

Este OSX Daily artículo tiene algunas instrucciones detalladas sobre cómo hacerlo. En resumen, usted necesita modificar su ~/.bash_profile y modificar la variable PS1.

A continuación encontrará una lista de las posibles variables que puede mostrar:

  • \d - Fecha actual
  • \t - Hora actual
  • \h - Nombre del host
  • # - Número de orden
  • \u - Nombre de usuario
  • \W - Directorio de trabajo actual (por ejemplo: Escritorio/)
  • \w - Directorio de trabajo actual, ruta completa (por ejemplo: /Usuarios/Admin/Escritorio)

4voto

mtnygard Puntos 141

Esto es controlado por la variable de shell $PS1

Puede establecer esta variable a lo que usted desea, ya sea temporalmente o de forma permanente con una .o el inicio de sesión .perfil de secuencia de comandos dependiendo de que tipo de shell que usted use.

Echa un vistazo a los siguientes ejemplos:

Last login: Fri Oct 21 21:59:28 on ttys000

Dans-MacBook-Air:~ stuffe$ echo $PS1

\h:\W \u\$

Dans-MacBook-Air:~ stuffe$ PS1="Hello World $"

Hello World $PS1=`date`

Fri 21 Oct 2011 22:03:23 BSTsleep 60

Fri 21 Oct 2011 22:03:24 BSTPS1="`date +%H:%M` $"

22:04 $PS1="\h:\W \u\$"

Dans-MacBook-Air:~ stuffe$

Las posibilidades son infinitas. Hay algo que se puede hacer con PS2 también, pero creo que sólo tiene efecto si son root - recuerdos son difusos, mi Unix es de hace mucho tiempo y basado en Solaris, no en Mac OS X, pero los fundamentos son los mismos.

Información adicional: Como se sugiere en otras respuestas, no están incorporados en banderas como \h \W etc usted puede utilizar, pero también puede utilizar la salida de casi cualquier comando también, mediante el uso de la "marca" (curioso solo citas utilizadas en mi fecha de ejemplo de arriba). Los comandos en el interior de la espalda, las garrapatas de conseguir ejecutar y el resultado sustituido, que permite incluir cualquier cosa, incluso si no hay una construida en la bandera, incluso aparentemente estúpidos, lo que usted puede pensar. Desea incluir el tiempo de la última entrada en un archivo de registro de error? Usar algo como:

PS1="`tail -1 $LOGFILE | awk '{print $1}'` $ "

(leer la última línea del archivo referenciado por $LOGFILE, y la impresión de la 1ª columna suponiendo un delimitador de campo predeterminado), etc, etc. Si usted puede ejecutar, que puede incluir.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X