¿Harto de complicadísimos prompts en la shell?
- EN
- ES
¿Harto de complicadísimos prompts en la shell? Yo sí 😡
Desde hace un tiempo parece haber una tendencia a tener prompts super complicados, con una barbaridad de información que la mayoría de veces es innecesaria, mil colores, scripts y plugines que hacen que sea lento de cojones, prompts multilínea… ¡¡prompts multilínea!! ¡¡Perop qué coj…!!
Por una cosa u otra paso bastante tiempo en la shell y me he preguntado qué es lo que realmente necesito.
Por defecto, lo normal es que el prompt contenga el nombre de usuario y el host. ¿Lo necesito? Posiblemente no, normalmente sé quién soy y dónde estoy.
Si estoy con otro usuario y otro host, lo más seguro es que la shell me dé esa información; pero la mayoría del tiempo voy a estar en mi maquinita y con mi propio usuario.
Hay unas cuantas cosas que sí me parecen útiles:
- ¿Qué hora es? Sí, ya sé que tengo un reloj en la barra superior del escritorio (y en la muñeca), pero me viene bien tenerlo en el prompt. Me ayuda a gestionar mejor el tiempo, no llegar con retraso a una reunión, a dejar de trabajar a ciertas horas… 👹
- ¿En qué directorio estoy? Claramente esto me viene muy bien
- Si tengo control de versiones (git), ¿en qué rama estoy? ¿Estoy al día? Tras muchas dudas he decidido que esto también me resulta útil.
Suficiente.
Esto es todo lo que necesito:
¿Cómo lo hago? Así:
$ cat ~/.bashrc
[...]
# bash simple prompt with git information
function parse_git_dirty {
[[ $(git status --porcelain 2> /dev/null) ]] && echo "*"
}
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/ (\1$(parse_git_dirty))/"
}
export PS1="\[\e[32m\]\A \[\e[96m\]\w\[\e[93m\]\$(parse_git_branch)\[\e[00m\] $ "
[...]
Hala, ¡disfruta de un bash prompt bien sencillito!