• Configurar Bash Prompt con Powerline-Shell-Master

    por  • 21 diciembre, 2016 • Desde Linux • 0 Comentarios

    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.

    El artículo Configurar Bash Prompt con Powerline-Shell-Master aparece primero en Configurar Bash Prompt con Powerline-Shell-Master.

    Artículo original: Configurar Bash Prompt con Powerline-Shell-Master

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *