8 votos

¿Cuáles son algunos shell informativo y útil solicita? (Bash, csh, ksh, etc..)

Uno de mis favoritos de Mac OS X Terminal consejos consiste en añadir el último proceso que se ejecuta en el terminal de título utilizando el siguiente código en su .bashrc.

trap 'printf "\033]0;  `history 1 | cut -b8-`  \007"' DEBUG

Ahora estoy buscando para personalizar el prompt de Bash desde el valor predeterminado en algo más funcional. ¿Cuáles son algunos de los útiles de comandos de shell ejemplos?

7voto

Eddie Puntos 6779

Tengo un script ~/bin/setprompt que se ejecuta por mi .bashrc , que contiene:

RESET="\[\017\]"
NORMAL="\[\033[0m\]"
RED="\[\033[31;1m\]"
YELLOW="\[\033[33;1m\]"
WHITE="\[\033[37;1m\]"
SMILEY="${WHITE}:)${NORMAL}"
FROWNY="${RED}:(${NORMAL}"
SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"

# Throw it all together 
PS1="${RESET}${YELLOW}\h${NORMAL} \`${SELECT}\` ${YELLOW}>${NORMAL} "

Esta secuencia de comandos establece el indicador en el nombre de host seguido de :) si el último comando fue exitoso y :( si ha fallado el último comando.

6voto

Corin Blaikie Puntos 6223

Usar un revestimiento de dos simple:

[\w]\n\u@\h>

o

[\w]\n\u@\h#

Si root. Gente mírame como estoy loco por usar un indicador de dos líneas, pero odio ver sólo la última parte de la ruta actual, y trabajo con trazados demasiado largos para poner todo en la misma línea que el área de la entrada.

4voto

Glen Solsberry Puntos 572

Esto, sin embargo, es el más awesomest que he visto:

PS1='\[\033[0m\]\[\033[0;31m\].:\[\033[0m\]\[\033[1;30m\][\[\033[0m\]\[\033[0;28m\]Managing \033[1;31m\]\j\[\033[0m\]\[\033[1;30m\]/\[\033[0m\]\[\033[1;31m\]$(ps ax | wc -l | tr -d '\'' '\'')\[\033[0m\]\[\033[1;30m\] \[\033[0m\]\[\033[0;28m\]jobs.\[\033[0m\]\[\033[1;30m\]] [\[\033[0m\]\[\033[0;28m\]CPU Load: \[\033[0m\]\[\033[1;31m\]$(temp=$(cat /proc/loadavg) && echo ${temp%% *}) \[\033[0m\]\[\033[0;28m\]Uptime: \[\033[0m\]\[\033[1;31m\]$(temp=$(cat /proc/uptime) && upSec=${temp%%.*} ; let secs=$((${upSec}%60)) ; let mins=$((${upSec}/60%60)) ; let hours=$((${upSec}/3600%24)) ; let days=$((${upSec}/86400)) ; if [ ${days} -ne 0 ]; then echo -n ${days}d; fi ; echo -n ${hours}h${mins}m)\[\033[0m\]\[\033[1;30m\]]\[\033[0m\]\[\033[0;31m\]:.\n\[\033[0m\]\[\033[0;31m\].:\[\033[0m\]\[\033[1;30m\][\[\033[0m\]\[\033[1;31m\]$(ls -l | grep "^-" | wc -l | tr -d " ") \[\033[0m\]\[\033[0;28m\]files using \[\033[0m\]\[\033[1;31m\]$(ls --si -s | head -1 | awk '\''{print $2}'\'')\[\033[0m\]\[\033[1;30m\]] [\[\033[0m\]\[\033[1;31m\]\u\[\033[0m\]\[\033[0;31m\]@\[\033[0m\]\[\033[1;31m\]\h \[\033[0m\]\[\033[1;34m\]\w\[\033[0m\]\[\033[1;30m\]]\[\033[0m\]\[\033[0;31m\]:.\n\[\033[0m\]\[\033[0;31m\].:\[\033[0m\]\[\033[1;30m\][\[\033[0m\]\[\033[1;31m\]\t\[\033[0m\]\[\033[1;30m\]]\[\033[0m\]\[\033[0;31m\]:. \[\033[0m\]\[\033[1;37m\]$ \[\033[0m\]'

Darle un tiro. Da buena información, pero en realidad hará que la carga en sus cajas para aumentar sólo golpear escriba en un símbolo del sistema.

3voto

Kortuk Puntos 614

Yo soy un fan del prompt de bash de Cygwin por defecto:

PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '

o sin colores:

PS1='\n\u@\h \n\$ '

se parece:

username@hostname
$ ls -l

2voto

Campbell Puntos 2129

He aquí la mía (desplácese a la derecha para ver más interesantes bits):

'-------------------------------------------------------------------------------\n${debian_chroot:+($debian_chroot)}[\w]\n\u@\h\[\033[1;33m\]\[\033[0m\]($(__git_ps1 "%s")$(parse_git_dirty))$ 

Aquí está el resultado:

-------------------------------------------------------------------------------
[~]
user@host()$ 

Cuando estoy dentro de un Git repository:

-------------------------------------------------------------------------------
[~/path_to_repo]
user@host(master)$ 

Yo elija para el uso de varios saltos de línea y la "regla horizontal" para hacer más fácil la exploración de memoria, y siempre nombres de ruta de acceso que no se presione el cursor demasiado a la derecha.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: