Hacer comandos de OS X Terminal escribo BOLD

11

Me gustaría hacer que los comandos que he escrito (entrada) en el terminal se destaquen de toda la salida.

Por ejemplo:

imac: ~ buster $ chmod -R gw myfolder
imac: ~ buster $ cd myfolder
imac: myfolder buster $ ls -l
total 0
drwxr-xr-x 9 root admin 306 abr 20 2010 bin
drwxr-xr-x 7 root admin 238 abr 20 2010 incluye
drwxr-xr-x 73 root admin 2482 18 de mayo 17:16 lib
drwxr-xr-x 6 root admin 204 abr 20 2010 man
imac: myfolder buster $ echo Go Giants!
¡Van los gigantes!

saltos audaces a la mente, pero aceptaría un color o incluso resaltar toda la línea ...

Estoy seguro de que hay una manera de hacer esto, pero no es obvio para mí ...

¡Gracias!

Meltemi
fuente

Respuestas:

9

Edite su ~/.bash_profileo ~/.bashrc(vea el comentario de Gilles a continuación) y agregue las siguientes líneas:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${OFF}\u@\h:\w \$${BOLD}"
PS2="> ${BOLD}"
trap 'echo -ne "${OFF}" > $(tty)' DEBUG

Mueva el ${BOLD}cursor para que parte de la solicitud también esté en negrita. Si el mensaje en sí no debe ser coloreado, necesita el ${OFF}prefijo PS1, de lo contrario, las líneas vacías (presionando enter sin tener algo escrito) harán que el siguiente mensaje aparezca en negrita (créditos a @Jay, ¡gracias de nuevo!)

Esto agrega una trampa de depuración para desactivar el formato en negrita, por lo que es un gran truco. Créditos (aunque funciona sin tty de grupo en OS X).

Es un truco, así que úsalo bajo tu propio riesgo.

Solo establecer sus PS1/ PS2avisos en negrita sería más fácil e igual de visible:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${BOLD}\u@\h:\w \$${OFF}"
PS2="${BOLD}>${OFF} "
Daniel Beck
fuente
1
No ~/.bash_profile, pero ~/.bashrc(o ambos, si no se obtiene .bashrcde .bash_profile). Esta configuración debe establecerse para cada instancia interactiva de bash, y .bash_profilesolo se lee mediante shells de inicio de sesión.
Gilles 'SO- deja de ser malvado'
Gracias, editaré mi respuesta. No tengo bashrc, así que usé lo que estaba allí.
Daniel Beck
2
Lo descubrí, puse un $ {OFF} al frente: PS1 = "$ {OFF} \ u @ \ h: \ w \ $$ {BOLD}"
Jay
1
@Daniel: No debería haber un guión bajo ~/.bashrc.
Pausado hasta nuevo aviso.
1
Si utilizo la flecha hacia arriba cuatro veces seguidas, para revisar el historial de comandos, los primeros 3 caracteres del comando anterior se convierten en parte de la solicitud y no hay forma de eliminarlos. No puedo eliminarlos con la tecla de retroceso.
Jay
2

Tuve un pequeño problema con las soluciones aquí mientras usaba El Capitan (especialmente en iTerm2 pero también en la vieja Terminal). Tengo dos tipos de errores:

  1. La capacidad de eliminar mi indicador de bash por completo simplemente presionando la barra espaciadora
  2. Caracteres no deseados que se abren paso en mi salida de bash, por ejemplo, la entrada pwddaría como resultado

    \[\]/Users/home/Directory

    o en

    \e[0m/Users/home/Directory

Propongo la siguiente solución, que en realidad es más de lo mismo.

    BOLD="\033[1m"
    OFF="\033[m"
    PS1="${OFF}\u@\h :${BOLD}"
    PS2="> ${BOLD}"
    trap 'echo -ne "${OFF}" > $(tty)' DEBUG
stpasta
fuente
¡Buen trabajo! Solo algunas diferencias menores, pero me alegro de que hayas descubierto una forma de que esto funcione con El Capitán.
DrZoo