Uno de mis consejos favoritos para el terminal Mac OS X consiste en agregar el último proceso en ejecución en el título del terminal usando el siguiente código en su .bashrc .
trap 'printf "\033]0; `history 1 | cut -b8-` \007"' DEBUG
Ahora estoy buscando personalizar mi solicitud Bash del valor predeterminado en algo más funcional. ¿Cuáles son algunos ejemplos útiles de indicador de shell?
linux
bash
mac-osx
command-line-interface
Dave K
fuente
fuente
Tengo un guion
~/bin/setprompt
que ejecuta my.bashrc
, que contiene:Esta secuencia de comandos establece la solicitud con el nombre de host seguido de
:)
si el último comando fue exitoso y:(
si el último comando falló.fuente
Este, sin embargo, es el más increíble que he visto:
Dale un tiro. Da buena información, ¡pero en realidad hará que la carga en sus cajas aumente simplemente presionando enter en un aviso!
fuente
Soy fanático del indicador predeterminado de Cygwin bash:
o sin colores:
parece:
fuente
Me gusta incluir el tiempo en el mío. Me da una especie de construido en
time
alrededor de mis comandos:Aunque después de ver algunos de estos, ¡me dan ganas de hacer que el mío sea un poco más inteligente!
fuente
Aquí está el mío (desplácese hacia la derecha para ver un poco más interesante):
Aquí está el resultado:
Cuando estoy dentro de un repositorio de Git :
Elijo usar múltiples saltos de línea y la "regla horizontal" para facilitar el escaneo de los buffers, y así los nombres de ruta largos no empujan el cursor demasiado a la derecha.
fuente
En ksh:
En mi .profile, configuré la siguiente var (por lo que esta var solo se establece una vez por sesión, sin importar cuántas sumas haga:
En mi .kshrc tengo:
Me convierto en root con el siguiente alias, en lugar de "su" (kroot es un usuario root con un shell ksh en lugar de sh (solaris) o bash (linux):
También he definido estas dos funciones:
y finalmente al final de .kshrc tengo:
Todo esto me da por defecto la configuración automática del final de mi solicitud para indicar si soy o no root (y, a su vez, si tengo un padre que era root), el directorio de trabajo actual, el nombre de host y el estado de salida del último proceso. sprompt elimina el nombre de host, reduce la ruta solo al nombre base y elimina espacios:
Los alias raíz / me provienen de la administración previa a sudo en Solaris y los viejos hábitos han muerto duramente. Dudo que alguien implemente exactamente lo mismo en estos días. Las funciones de cambio rápido y el estado existente siguen siendo muy valiosas para mí.
fuente
Tengo un mensaje que es simple, pero usa colores para dar información adicional:
El color del nombre de host (dibujable, en este caso) es diferente en cada máquina: cuando obtengo una nueva máquina en la que trabajo, elijo un color arbitrario para esa máquina. De esa manera, cuando tengo muchos terminales abiertos, es fácil saber en qué máquina están SSHed y reduce los errores que cometo al estar en la máquina equivocada. Además, cuando lo hago
sudo -s
, pongo el nombre de host en mayúsculas y coloreo los dos puntos de rojo, nuevamente, esto reduce los errores al dejar en claro que estás actuando como root. La ruta (mi directorio de inicio,~
en este caso) está en verde brillante, lo que ayuda a separar las líneas de salida; Si algo crea mucha salida, es fácil desplazarse hacia arriba y ver dónde comenzó la salida.fuente
No es un indicador de comandos de shell, pero es una personalización que puede ajustarse al espíritu de lo que está preguntando.
Establezco la siguiente variable de entorno:
De esta manera, si tengo múltiples terminales abiertas a través de la pantalla o lo que sea, no perderé el historial cuando se cambien entre sí.
fuente
Esto muestra:
Con 'hostname' en verde si el último código de retorno del comando ejecutado fue '0' y rojo si fue> '0'.
fuente
Similar a la respuesta del caos , me gusta
lo que me da
Al incluir el usuario / host en la primera línea, puedo copiar fácilmente esa línea de ruta completa cuando estoy usando SCP , o rsync para enviar algunos archivos a ese directorio.
fuente
Para bash me gusta
PS1 = "\ h \ d \ t \ w \ n \ u>"
lo que resulta en:
myserver lun sep 07 07:43:11 / u08
root>
Entonces obtienes el nombre de host, la fecha y la hora, la ruta completa y luego el nombre de usuario en una nueva línea, con el mensaje. Eso es para minimizar el ajuste de línea en los directorios. Estoy dentro y fuera de las cajas todo el día, así que todo lo que puedo hacer para mantenerlo en orden es bueno. También tengo masilla configurada para registrar todo. Puedo regresar y mirar los registros, y ver exactamente qué estaba haciendo cuando. También es útil para descubrir secuencias de eventos en varias ventanas de terminal a la vez.
fuente
Mi aviso normal es
Esto me da el usuario actual, el directorio actual del host actual ( sin reemplazar $ HOME con ~), la
screen
ventana actual y el último error devuelto. Como normalmente tengo 16 o más ventanas de pantalla abiertas, conocer la actual es útil.fuente
Mi indicador de zsh:
Normalmente, es rojo y blanco con el directorio actual en rosa. Si es root, entonces es gris más oscuro con el nombre de host en rojo. Si
$?
no es 0, el% final se muestra en rojo.fuente