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
Nos dirigimos a esta ruta y lo descargamos como en formato zip.
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
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
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
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.
Configurando el prompt del root
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
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.