RSS

Personalizar mi linux 1: Prompt

29 Ago

Siendo un usuario Linux, es imposible que evites la consola para siempre. Si eres un usuario Linux de corazón sabrás que hay muchas cosas que son más rápidas y efectivas si las haces en una terminal. En todo caso, el uso de una terminal o consola virtual será muy frecuente, así que porque no hacerlo ameno y personalizar la linea de comandos también para sentirse cómodo trabajando con ella.

Empecemos con lo básico, la terminal es un acceso a la linea de comandos de Linux, ésta sirve para poder ejecutar comandos que no tienen un entorno gráfico, para hacer administración de recursos o sistema de una manera más rápida y eficiente o simplemente para obtener credenciales de root de una manera fácil y rápida sin tener que esperar por entornos gráficos lentos, engorrosos o que simplemente ocultan las acciones que toma un programa mientras está en ejecución.

Para acceder a esta terminal hay varios métodos: terminales tty, terminales virtuales, por ssh (comando que se usa mayormente por terminal) etc. A nosotros nos interesa por lo pronto solo tty y terminales virtuales.

Tty son las 12 terminales que nos ofrece el sistema Linux al estar ya instalado y corriendo de manera efectiva y se puede acceder a ellas con la combinación de teclas <Control> + <Alt> + <teclas de función> (las teclas de función son F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11 y F12). Por cada tecla de función se otorga una consola diferente, las teclas de función de la 1 a la 6 son para modo texto o terminales y de la 7 a la 12 son consolas designadas para entorno gráfico (la consola F7 es el entorno gráfico por defecto, de la F8 en adelante están desactivadas pero pueden activarse con configuraciones avanzadas).

Cada consola puede darte un login o entrada al sistema y al momento de logearte (iniciar sesión) a alguna, lo primero que hace es cargar el archivo .bashrc que se encuentra en tu directorio personal (es archivo oculto ya que está precedido por un punto) . Si al logearnos desde una consola el archivo no existe, buscará el archivo general .bashrc en tu sistema. Para saber esto es fácil, se inicia sesión en la consola que sea tecleando el nombre de usuario seguido presionamos la tecla Enter o Intro, esto nos cambiará de renglón pidiendo que tecleemos la contraseña del usuario (en caso de haber), tecleamos la contraseña (no se mostrará en la pantalla) seguido presionamos la tecla Enter o Intro. Si lo hemos hecho correctamente debe aparecer el prompt, esto es, una serie de caracteres que nos indica que podemos empezar a teclear comandos y ejecuciones. Después de estos caracteres aparece el cursor (un bloque cuadrado que parpadea, en windows es el equivalente del guión bajo parpadeante).

En fin, lo que aparece antes del cursor es el prompt, este debe ser algo así:

[ Usuario@localhost ~ ]$

Usuario es el nombre de tu usuario, localhost es el nombre que le diste a tu computadora, si no especificaste el nombre aparecerá la palabra localhost y la pequeña ~ (llamada tilde) es tu localización actual, en este caso es tu directorio personal (simplificado con una ~ )

Ahora, si tu prompt es parecido quiere decir que tienes tu archivo .bashrc personal, de lo contrario hay que buscarlo. Para hacerlo teclea el siguiente comando:

locate .bashrc <Enter>

Si te aparece un error que no tienes la aplicación o comando no encontrado, hay que instalar el comando locate con el siguiente comando:

Si usas Debian, ubuntu o algún derivado:

apt-get install mlocate <Enter>

Si usas Fedora

yum install mlocate <Enter>

Si usas Archlinux

pacman -S mlocate

Cada uno de estos comandos deben ser ingresados con credenciales de super usuario, es decir antecedidos con el comando sudo o con el administrador de paquetes gráfico de tu preferencia.

Una vez encontrado el archivo bash.bashrc lo copiamos en nuestro directorio personal y cambiamos su nombre a .bashrc y ahora ya tenemos archivo de preferencias y configuración para la consola.

Ahora abrimos el archivo con nuestro editor de textos favorito y veremos muchas lineas que no entendemos, no importa si las entendemos o no, vamos a personalizarlo.

Primero localizamos la linea que diga PS1, OJO: al inicio puede que haya una linea que diga:

[ -z "$PS1" ] && return

Esa no es la linea, buscamos la que diga algo más o menos así:

PS1='[\u@\h \W]\$ '

Esta linea es la que nos dice como se va a ver nuestro prompt y lo que dice es mas o menos así:

PS1                                                                       =                                   ‘[\u@\h \W]\$’
Crea la variable PS1, si ya existe úsala y asígnale el valor ‘[\u@\h \W]\$’

Una vez que se asigna este valor, el interprete de comandos es el que usa esta variable (PS1) para determinar como se va a ver el prompt. El interprete de comandos tiene muchas variables a interpretar listadas a continuación:

d Muestra la fecha con formato “día de la semana mes y número de día”
h Muestra el nombre del host
H Muestra el nombre del host y el dominio
n Salto de linea
r Retorna al inicio de la linea
s Muestra el nombre del interprete de comandos
t Muestra la hora en formato de 24 horas
T Muestra la hora en formato de 12 horas
@ Muestra la hora en formato de 12 horas con indicador am o pm
u Nombre del usuario actual
v Versión del interprete de comandos
V Distribución del interprete de comandos
w Nombre del directorio actual
W Nombre del directorio actual recortado
! Número en el historial del comando tecleado
# Número de comando tecleado
$ Si eres superusuario muestra una # si no, muestra una $
\ Indica que el caracter siguiente es alguno de los anteriores, si no se precede cada caracter-comando de esta barra invertida, se toma como caracter normal y no como comando de codificación.
[ Indica que inicia una secuencia de caracteres no imprimibles
] Indica que termina la secuencia de caracteres no imprimibles
e[ Indica que iniciará codigo, solo usable entre los dos anteriores

Esos son los comandos; ahora, primero veamos que podemos cambiar por completo el prompt e insertar cualquier caracter que queramos con información o sin ella. Por ejemplo:

PS1='<\u>'

Esto solo nos aparecerá el nombre del usuario cada linea de comando nueva encerrado por los caracteres < y >. Haz tus combinaciones, puedes hacer prompt de más de 1 linea usando el caracter-comando \n en cada salto de linea.

Ahora que tenemos la secuencia de caracteres que queremos mostrar, podemos agregarle colores. Para esto, usamos el caracter para iniciar secuencia no imprimible, es decir \[ para iniciar y \] para terminar y entre estos dos ponemos el comando de color que queramos. un ejemplo sería \[\e[0;34m\]. Aquí indico que inicia una secuencia de caracteres no imprimibles, luego el \e[ es para indicar que insertaras cambio de color, seguido del código de color deseado y el cierre de la secuencia de caracteres no imprimibles. Esto indica que a partir de este cierre el color cambia al indicado por el código respectivo.

Codigos:

Negro       0;30     Gris oscuro    1;30
Azul        0;34     Azul claro     1;34
Verde       0;32     Verde claro    1;32
Cyan        0;36     Cyan claro     1;36
Rojo        0;31     Rojo claro     1;31
Púrpura     0;35     Púrpura claro  1;35
Marrón      0;33     Amarillo       1;33
Gris claro  0;37     blanco         1;37

Y pues ahí lo tienen, se puede personalizar aún más, si eres lo suficientemente paciente, hay un manual completo sobre personalización del prompt en el que puedes manipular hasta el comportamiento y movimiento del cursor en el sitio http://mipagina.euskaltel.es/iosus/linux/Bash-Prompt-HOWTO.html.

Para terminar, aquí les dejo los PS1 que yo he usado.

PS1='\[\e[0;34m\][\[\e[1;30m\]\u\[\e[0;0m\]@\[\e[1;30m\]\h\[\e[0;36m\] \W\[\e[0;34m\]]\[\e[0;0m\]\$ '
PS1='\[\e[0;30m\]>\[\e[0;34m\]>\[\e[1;34m\]>\[\e[1;36m\]>\[\e[0;0m\
]’

Nota final: Solo puede usarse un PS1 a la vez, así que el último PS1 en el archivo .bashrc será el que tome en cuenta la consola.

 
4 comentarios

Publicado por en 29 agosto 2010 en Linux, Tutoriales

 

4 Respuestas a “Personalizar mi linux 1: Prompt

  1. diegoxter

    21 marzo 2011 at 20:49

    ¡Mira un blog sobre linux!
    Esta bonito sabes? bueno, el tema no me gusta (se parece al mio xD) pero el contenido si ta bueno.
    Bash? u.u
    Zsh es el futuro!
    Sigue adelante vale

     
    • Angelux

      23 marzo 2011 at 17:23

      Je, pues me ha dado curiosidad por probar no solo zsh si no también kornshell, tal vez lo haga🙂

       
      • diegoxter

        13 abril 2011 at 21:50

        no se como sera kornshell, pero creo que esta viejito no?
        Normal, con probar dash y fishshell (curiosidad, lo juro <.<) me doy cuenta que zsh manda!

         
      • Angelux

        14 abril 2011 at 13:17

        😄 mira que me dí cuenta que ZSH es kornshell (KSH) mejorado

         

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: