lunes, 8 de octubre de 2012

Tutorial prompt bash PS1 Linux


Bueno si no sabes que es prompt es la configuración de nuestra terminal,que se ejecuta al abrirla,esta se guarda en el archivo .bashrc,se abran dado cuenta que en mis pantallasos aparece rara mi consola(colorida)



ya sea que les haya mostrado la de FreeBSD



,Geento,Archlinux,openSUSE o Ubuntu que es lo que hemos visto mas recientemente,bueno eso lo logro modificando la configuración de la variable PS1,guardada en el archivo .bashrc de nuestra carpeta home $HOME o ~/

Bueno en la mayoría de las paginas enseñan como configurar pero es algo avanzado ya que no dicen solo van al copy and paste  y yo les mostrare algo básico,como lo que hemos hecho en los cursos de bash.

Tutorial

Primero que nada usare vim pero les recomiendo gedit o kate dependiendo su entorno de escritorio,priemro editamos nuestro bashrc

Lo vemos con

cat ~/.bashrc

Nos saldra toda la informacion,ahora vamos a filtrar la variable PS1

grep PS1 ~/.bashrc

En Arch por ejemplo que use para hacer esta entrada me sale esto:

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

Bueno esto en español seria

Muestra el usuario,seguido del hostname también el lugar donde nos encontramos y por ultimo este simbolo $

Como se eso?,bueno esto significa esos códigos

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

PS1= # Es la variable que define el estilo de nuestra terminal

'' # Son las comillas donde ira todo el estilo de nuestra terminal

[] # Inicia y termina los comandos que son equivalentes a informacion (u,h,d,etc) estos son los comandos:

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 $

\u@\h \W # Muestra usuario@hostname espacio Ubicacion (debe llevar \ para ser leido correctamente)

$ # Lo que hace el comando $ explicado arriba

@ # Esto es tomado como texto y se imprime simplemente @

Bueno ya sabemos a lo que nos enfrentamos,vamos a hacer algo simple como lo que yo hago,ya que me gusta la simpleza cambiar este logo $

vim ~/.bashrc

Yo recomiendo no mover la variable PS1, así que si queremos la comentamos con # (no es necesario pero es mejor que .bashrc no la tome en cuenta si vamos a usar otra)

La copiamos y la pegamos hasta abajo

En mi caso de  Arch

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

Ahora que quede así

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

Con eso debe haber cambiado el estilo de la terminal :D

Ahora, vieron que hicimos esto

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

y no esto

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

Aque se debe? pues se debe a que este símbolo $ es un comando y realiza acciones por eso se toma en cuenta con \ ya que si quisiéramos ponerla como texto pero sin hacer nada (y de hecho no se vería cambio visual),seria así:

En todos los ejemplo borren la variable PS1 y pegen en vez el nuevo comando

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

Nota:$ No se tomara en cuenta hasta que realizara su debida acción

De hecho todo lo que valla dentro de '' es tomado y sera imprimido pero si lleva \ y es un comando sera tomado en cuenta si lleva \ y no es un comando dara error !!¡¡

Por ejemplo

PS1='Bienvenido'

A hora vean esto

PS1='Bienvenido \u'

O

PS1='Bienvenido \u son las \T comencemos'

Ahora usaremos los comandos mas usuales

PS1='Este es tu hostname: \h este es tu user: \u este es el directorio actual \W y son las \T comencemos'

Así se entiende un poco mas.

Bueno ahora veamos los colores

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

Hay mas prueben combinaciones de 0;xx 1;xx

Ejemplo:

PS1="\[\e[0;34m\]\h@\u\[\e[0;1m\] Directorio \W $ "

Para que se tome encuenta el color debe llevar \ al principio y ademas debe ir encerrado esta vez en "" en vez de '' ya que admite mas valores, también debe ir el color encerrado en [] al principio y al final

Esta es la sintaxis

PS1="\[\e[1;33m\]Esto es amarillo\[\e[0;33m\] Esto es marrón"

Esto de e viene de echo -e con colores de la SHELL de Unix

Y claro todo separado por \


PS1="\[\e[1;33m\]Esto es amarillo\[\e[0;33m\] Esto es marrón"



Veamos el ultimo ejemplo

PS1="\[\e[0;34m\]\T { \[\e[0;35m\]\\u\[\e[0;31m\] \W ( "

Bueno pues eso es todo,ese es el principio básico de esto,claro que hay personas extravagantes que usan códigos que ni siquira incluyen en el .bashrc,lo incluyen en otro lugar y lo llaman con una condicional o un exec,pero ami me gusta lo sencillo

Aquí unos ejemplo tomados de desdelinux.net

PS1='\[\033[0;32m\]┌┼─┼─ \[\033[0m\033[0;32m\]\u\[\033[0m\] @ \[\033[0;36m\]\h\[\033[0m\033[0;32m\] ─┤├─ \[\033[0m\]\t \d\[\033[0;32m\] ─┤├─ \[\033[0;31m\]\w\[\033[0;32m\] ─┤ \n\[\033[0;32m\]└┼─\[\033[0m\033[0;32m\]\$\[\033[0m\033[0;32m\]─┤▶\[\033[0m\] '

PS1="\[\e[0;1m\]┌─( \[\e[31;1m\]\u\[\e[0;1m\] ) - ( \[\e[36;1m\]\w\[\e[0;1m\] )\n└──┤ \[\e[0m\]"


PS1="┌─[\d][\u@\h:\w]\n└─> "

PS1="\[\e[0;1m\]┌─( \[\e[31;1m\]\u\[\e[0;1m\] ) » { \[\e[36;1m\]\w\[\e[0;1m\] }\n└──┤ \[\e[0m\]"

Realicen los suyos y compartanlos en los comentarios :D

Les dejo este sencillo que hice, un poco mejor que los ejemplos pero sencillo,como me gustan :D

PS1="\[\e[0;31m\]┌->|\[\e[0;32m\]Welcome \[\e[0;33m\][\u]\[\e[0;33m\]\[\e[0;31m\]\n└->\[\e[0;32m\][\w]\[\e[0;31m\]-{ "
Así se los deja:


3 comentarios:

  1. Muy buen tutorial y buena explicación
    http://1.bp.blogspot.com/-VJvrcHMde9o/UG-t_3PZQVI/AAAAAAAAAYk/_y6ONHV5YGM/s1600/Captura+de+pantalla+de+2012-10-05+22%253A48%253A11.png

    ResponderBorrar
  2. Respuestas
    1. Editas el .bashrc de root

      Abres root con

      su

      y igual solo que esta vez con nano o un editor de consola

      nano ~/.bashrc

      https://lh3.googleusercontent.com/-IIrnewk9dd8/UHXD2HTBlrI/AAAAAAAAAEg/Z8ayLCry8tQ/w604-h395-p-k/Screenshot%2Bfrom%2B2012-10-10%2B13%253A49%253A16.png

      Saludos

      Borrar

Los comentarios serán revisados antes de ser publicados.