Mostrando las entradas con la etiqueta PS1. Mostrar todas las entradas
Mostrando las entradas con la etiqueta PS1. Mostrar todas las entradas

sábado, 30 de marzo de 2013

Como colorear la shell de Bash

La terminal de Linux/BSD o cualquier Unix que use Bash,tiene la capacidad de darnos un tono mas colorido y agradable,en algunos sistemas he visto que esto no viene por defecto y aquí un sencillo tutorial de como hacerlo:

Mas que nada esto lo he visto en modo root:

Antes:

Despues:

Bien aquí el "truco" es que el comando ls,usa una variable de env que se llama :

LS_COLORS

Esta variable de entorno es la que llama ls al usar :

ls --color
Lo unico que tenemos que hacer que ls sea ls --color por defecto,para eso usaremos un alias:

Podemos desde la shell:

alias ls="ls --color=auto
Y listo

O desde el .basrc

echo 'alias ls="ls --color=auto"' >> ~/.bashrc && source ~/.bashrc
 Y listo :D

Como dije,usa una variable de entorno,asi que podriamos usar solamente


echo 'alias ls="ls --color"' >> ~/.bashrc && source ~/.bashrc
Pero necesitamos exportar primero los colores,podemos hacerlo automáticamente con dircolors:

dircolors -b
O podemos hacerlo manualmente incluso creando nuestras combinaciones de colores,por ejemplo yo uso este en Gentoo:



Copiamos y pegamos tal cual el codigo de arriba en la shell,o creamos uno y lo exportamos

export LS_COLORS

Si queremos modificar los colores,nos basamos en los colores del $PS1 y $PS2

Tutorial $PS1
Tutorial $PS2 

Y de esta manera tenemos modificado nuestro $PS1

Nuestro $PS2

Y ls,para navegar en el sistema:

Eso es todo,totalmente coloreada nuestra shell,creo :D

Leer más...

viernes, 1 de febrero de 2013

Ver estado de batería desde Terminal Linux

Ya no había escrito últimamente bueno 3 días pero no había hecho eso nunca así que aquí un pequeño tutorial de como ver la hora desde la terminal de nuestro sistema Linux o FreeBSD, también les mostrare como añadirlo a nuestro PS1 para ver el estado siempre que usemos la terminal :D

Bien el programa que usaremos se llama acpi

Así que lo instalamos,en terminal

En mi caso Gentoo

emerge acpi

En ubuntu/derivados

sudo apt-get install acpi
Y para otras distribuciones googlen,como instalar

Bien ahora para ver el estado de la batería:

acpi -b

o

acpi

Para ver la temperatura

acpi -t
Eso es todo,ahora para añadirlo a la terminal solo hay que usar el PS1

Así que le damos una ojeada al tutorial de PS1 de Tiempo de Tux como yo en esta imagen







Tutorial
En ese tutorial no mostré como usar comandos del sistema pero solo se usa esta sintaxis:

\$(comando)

Por ejemplo:

En el ~/.bashrc,al final escribe:

nano ~/.bashrc # Para escribir en el bashrc

PS1="\$(acpi -b)\n\h \w \$ " # Escribe esto

source ~/.bashrc # Para recargar la configuración

O en un solo comando:

echo 'PS1="\$(acpi -b)\n\h \w \$ "'  >> ~/.bashrc && source ~/.bashrc

Y tendrán un resultado como este:


En este caso no le estamos dando colores(el que se muestra es el que tengas configurado para terminal)

Si queremos algo mejor podemos usar colores y pipes:

Y dejar algo como esto



PS1 :


PS1="\[\033[35m\]Carga \$(acpi -b |  cut -d, -f2) \[\033[36m\] \$(acpi -b |  cut -d, -f3) \[\033[39m\]Path \[\033[32m\]\w\n\[\033[31m\]\h \$ \[\033[39m\]"
También se puede cambiar lo que dice en ingles por Restante,cargando o lo que se nos ocurra,pero se tienen que añadir estructuras selectivas y queda muy largo el código,si tienen una idea comenten,por ejemplo con sed:

 sed 's/until charged/Cargando/g'

Eso es todo,de todas formas se ve bien en ingles :D


Leer más...

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:


Leer más...