Configurar Bash Prompt con Powerline-Shell-Master

Si al igual que yo, eres un amante de Bash y por cuestiones de costumbre o capricho, no te apetece usar zsh y oh my zsh para darle mas realce a tu terminal. Pues en hora buena, este tutorial te muestra como configurar paso a paso powerline-shell-master y darle una bonita apariencia a el prompt de tu shell bash. En resumida cuenta este tutorial te harรก un maestro de la Personalizaciรณn Bash Prompt

ยฟQuรฉ es bash?

Bash (Bourne again shell) es un programa informรกtico, cuya funciรณn consiste en interpretar รณrdenes, y un lenguaje de programaciรณn de consola. Estรก basado en la shell de Unix y es compatible con POSIX.

ยฟQuรฉ es prompt?

Se llama prompt al carรกcter o conjunto de caracteres que se muestran en una lรญnea de comandos para indicar que estรก a la espera de รณrdenes. ร‰ste puede variar dependiendo del intรฉrprete de comandos y suele ser configurable.

Descargando Powerline-Shell-Master

Powerline-Shell-Master es un proyecto libre y se encuentra en https://github.com/banga/powerline-shell

github powerline-shell

Nos dirigimos a esta ruta y lo descargamos como en formato zip.

Descarga PLS

Tambiรฉn podemos realizarlo desde la consola con el siguiente comando:

git cloneย https://github.com/banga/powerline-shell.git

Configurando PowerLine-Shell-Master

Una vez descargado el proyecto lo descomprimimos:

$cd /Descargas 
$unzip powerline-shell-master.zip
$cd powerline-shell-master

Editamos el archivo de configuraciรณn config.py.dist para cargar el tema basic

$nano config.py.dist
    En la ultima linea del archivo cambiar la linea THEME = 'default' por
    THEME = 'basic'
Salir y guardar los cambios

NanoEditPLS

Ejecutamos install.py para cargar los cambios de la nueva configuraciรณn:

$python install.py
  Debe arrojar la siguiente salida:
    Created personal config.py for your customizations
    powerline-shell.py saved successfully
  Si la ejecuciรณn fue satisfactoria notaremos tres archivos de mรกs:
    config.pyc, config.py y powerline-shell.py

InstallPLS

Ahora solo nos resta ubicar la carpeta donde debe de ir o deberia estar por comodidad y orden, movemos la carpeta a /home/user renombrandola como .power-line-shell-master, el punto precediendo el nombre es para ocultarla.

Si aun seguimos dentro del directorio retrocedemos:
$cd ..
$mv powerline-shell-master $HOME/.powerline-shell-master

mvPLS

Configurando Bash Prompt

Para configurar el prompt de bash es bastante simple ya que en el manual de powerline-shell viene la configuraciรณn adecuada para bash, mas sin embargo esta algo limitada, asรญ que les dejare la configuraciรณn del .bashrc para que solo la peguen en su archivo .bashrc tal cual, sustituyendo la configuraciรณn anterior.

Si aun seguimos en la ruta descargas nos dirigimos a la carpeta personal
$cd ~
Hacemos una copia de seguridad de nuestro archivo .bashrc
$cp .bashrc .bashrc_old
Abrimos el archivo .bashrc con un editor de texto para editarlo
$nano .bashrc
Ya abierto borramos su contenido y lo sustituimos por el siguiente:
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
ย ย ย  *i*) ;;
ย ย ย ย ย  *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
ย ย ย  debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
ย ย ย  xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
ย ย ย  if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
ย ย  ย # We have color support; assume it's compliant with Ecma-48
ย ย  ย # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
ย ย  ย # a case would tend to support setf rather than setaf.)
ย ย  ย color_prompt=yes
ย ย ย  else
ย ย  ย color_prompt=
ย ย ย  fi
fi

#config basic prompt
#if [ "$color_prompt" = yes ]; then
#ย ย ย  PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#else
#ย ย ย  PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#fi
#unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#ย ย ย  PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
#ย ย ย  ;;
#*)
#ย ย ย  ;;
#esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
ย ย ย  test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
ย ย ย  alias ls='ls --color=auto'
ย ย ย  #alias dir='dir --color=auto'
ย ย ย  #alias vdir='vdir --color=auto'

ย ย ย  alias grep='grep --color=auto'
ย ย ย  alias fgrep='fgrep --color=auto'
ย ย ย  alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
## Alias update the operative system
alias system-update="sudo apt-get update && sudo apt-get upgrade"

# Add an "alert" alias for long running commands.ย  Use like so:
#ย ย  sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
ย ย ย  . ~/.bash_aliases
fi

#grep command color activation
GREP_OPTIONS=--color 

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
ย  if [ -f /usr/share/bash-completion/bash_completion ]; then
ย ย ย  . /usr/share/bash-completion/bash_completion
ย  elif [ -f /etc/bash_completion ]; then
ย ย ย  . /etc/bash_completion
ย  fi
fi

#Configuration powerline-shell-master
function _update_ps1() {
ย ย ย  PS1="$($HOME/.powerline-shell-master/powerline-shell.py $? 2> /dev/null)"
}

if [ "$TERM" != "linux" ]; then
ย ย ย  PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi

Al finalizar la configuraciรณn, si abres un terminal se visualizarรก de la siguiente forma.

finalPLS

Importante si quieres que tu prompt al loguearte como root, se visualice igual que en tu usuario debes enviar a la ruta /root el .bashrc que ya has configurado

Configurando el prompt del root

perspectivaRootPLS

Si leiste la alerta y le tomaste importancia, adelante vamos a configurar el propt del root, esto no sera tardado solo es copiar el archivo .bashrc previamente editado y mandarlo a la ruta /root.

Dentro de la ruta de nuestra carpeta personal
$sudo cp -f .bashrc /root/.bashrc
[sudo] password for (user):
Una ves echo esto comprobamos que el archivo /root/.bashrc tenga la misma configuraciรณn
$sudo cat /root/.bashrc

Personalizaciรณn Bash Prompt

Gracias por ver este tutorial, y si eres de los que lo llevo a la practica en hora buena me da gusto que asรญ sea, pues este manual o tutorial fue creado con la finalidad de ser รบtil. Se que para muchos esto no es un tema tan controversial pero aveces es tedioso trabajar con un terminal poco atractivo, jeje cuestiรณn de gustos.


Deja tu comentario

Tu direcciรณn de correo electrรณnico no serรก publicada. Los campos obligatorios estรกn marcados con *

*

*

  1. Responsable de los datos: Miguel รngel Gatรณn
  2. Finalidad de los datos: Controlar el SPAM, gestiรณn de comentarios.
  3. Legitimaciรณn: Tu consentimiento
  4. Comunicaciรณn de los datos: No se comunicarรกn los datos a terceros salvo por obligaciรณn legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu informaciรณn.

      Gerard dijo

    Hola buenas!!

    Me ha gustado mucho tu post, lo he probando en el nuevo Mint 18.1 y al cabar el resultado no ha sido el mismoโ€ฆ

    Parece ser que no cuento con las fuentes del sistema adecuadas para visualizar bien el prompt con las flechas, ya que los colores si se muestran correctamente.

    No se si alguien mas le pasa pero querrรญa saber si hay alguna soluciรณn, o alguna pรกgina de descarga de las fuentes adecuadas para que se muestre bien.

    Gracias!!

         Nexcoyotl dijo

      Hola amigo gracias por comentar, si en efecto se me olvido mencinar que se require de las fuentes adecuadas para mejorar la apariencia. Estas fuentes son Powerline Fonts y las encuentras en https://github.com/powerline/fonts

         Jesus dijo

      He tenido que cambiar en las preferencias del terminal, la opcion de ‘Codificaciones’ a ‘UTF-8 Unicode’ y resuelto tambiรฉn.

           Nexcoyotl dijo

        Si de echo yo tambiรฉn trabajo con la codificaciรณn ‘utf-8 unicode’, gracias por comentar ๐Ÿ˜€

      Cjencho9000 dijo

    Ohm, pues no solo queda bien si no facilita la lectura, buen Tuto.

      Paradox dijo

    Hola, muy buen post gracias, aunque a mรญ me ha pasado que me aparecieron todos los colores/segmentos de la barra en gris, y un prompt de este tipo xxxxxx ๎‚ฐ ๎‚ฐ ~ ๎‚ฐ $ ๎‚ฐ quรฉ tengo que hacer para arreglar eso? Muchas gracias excelente aporte, saludos

      chencho9000 dijo

    Lo intentรฉ y la consola funcionaba pero me quedรฉ sin prompt, menos mal que no fue nada grave y lo pude reparar.