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

Cambiando el tamaño por defecto del Terminal en Ubuntu

viernes, 21 de agosto de 2009

Hola! Esta ves vamos al ataque con el seteo del tamaño por defecto de la terminal en Ubuntu (gnome-terminal). ¿No te ha sucedido que en incansables ocasiones has cambiado el tamaño de la terminal, y que cuando la vuelves a abrir aparece nuevamente pequeña? Y ni hablar de encontrar la opción para cambiar el tamaño por defecto.

He visto en algunos foros que se hace mención a la modificación del disparador (acceso directo) agregándole el parámetro "--geometry=132x24", pero en mi caso, soy un fanático del teclado y disparo la consola con una combinación de teclas. A tal efecto, esa solución no me resultó viable.
Investigando un poquito más encontré lo siguiente: si se modifica el archivo de configuracion "xterm" se puede asignar el ancho y alto por defecto para la consola; esto funcionará tanto si se la ejecuta desde un disparador, o como en mi caso, desde una combinación de teclas.

Vamos a poner manos a la obra. Abrimos una terminal y tipeamos:

# sudo cp /usr/share/vte/termcap/xterm /usr/share/vte/termcap/xterm.backup


Con eso hacemos un backup de la configuración del terminal, por las dudas. Luego lo editamos con:

# sudo gedit /usr/share/vte/termcap/xterm


Buscamos en el editor una línea similar a esta (suele estar cerca de la línea 10):

:co#80:it#8:li#24:\


Donde dice 80 lo reemplazamos por el ancho en columnas, y donde dice 24 por el alto. Hay que cerrar todas las instancias de las terminales que estén abiertas ¡Y listo! Tenemos nuestra terminal en el tamaño que queremos por defecto. En mi caso, quedo así:

:co#132:it#8:li#24:\


Espero que les haya sido útil. Hasta la próxima.

Links de interés:
http://www.codealpha.net/36/how-to-change-the-gnome-terminal-default-size-ubuntu/

Uso de proxy desde la consola

Por cuestiones de configuración en el entorno donde estoy trabajando con mi portátil, no puedo "salir" directamente a internet, dado que un ISA server requiere de una serie de validaciones para pasar a travez del proxy.

Resulta que configurar el proxy desde el FireFox, por ejemplo, es una tarea simple. ¿Pero que sucede cuando quiero utilizar el proxy desde los comandos de la terminal? Estuve indagando un poco en el tema, y encontré que si se setea una variable de entorno con los datos del proxy, la mayoría de las aplicaciones de la terminal "detectan" el proxy en cuestión y lo utilizan. Esta variable de entorno se corresponde al estándar POSIX (y Dios lo tenga en su gracia).

La variable se setea de la siguiente manera:

# export http_proxy="http://nombre_del_proxy:puerto_del_proxy"


En un ejemplo:

# export http_proxy="http://192.168.100.2:8080"


A partir de ahora todas las conexiones saldrán a travéz del proxy para la consola. Pero que sucede si el proxy requiere de usuario y contraseña? no hay problema, se soluciona de la siguiente manera:

# export http_proxy="http://usuario:password@192.168.100.2:8080"


Y listo! A partir de ahi se pueden usar herramientas como el wget o scripts en perl directamente desde la consola haciendo uso de un proxy.

Un abrazo y espero que les haya servido.

PD: les paso los links que utilice como referencia:
http://www.linuxforums.org/forum/redhat-fedora-linux-help/40287-using-internet-terminal-configuring-proxy.html
http://curl.haxx.se/mail/archive-2003-10/0000.html

Canalizadores (Pipes) desde el bash

jueves, 8 de mayo de 2008

Como es de común conocimiento y experiencia, a todas las almas que alguna vez han dado con GNU/Linux nos toca acceder a la terminal de texto... nuestro querido bash. Amado por muchos, esta pequeña ventanita (para los agraciados que disponen del X) suele ser la navaja suiza de todas las soluciones. Ya sea para tirar un listado de procesos, acceder a un archivo de configuración o iniciar/detener algún daemon, nuestra vieja terminal de texto es la solución "rústica" a la mayoría de los problemas. En mi caso, las primeras distribuciones de GNU/Linux que tuve instaladas carecían de una interfase gráfica, con lo cual el manejo de los comandos del bash fue siempre un menester.
Ahora bien: es casi mágico y hasta criptográfico intentar entender que son aquellas líneas jeroglíficas que vemos en docenas de guías, tutoriales y how-to's que rondan la red para resolver esos problemas desde la terminal. Para el usuario avanzado no es más que un lenguaje cotidiano, pero para gente nueva suele ser todo un desconcierto. Pero es bueno destacar que la potencia de la terminal (y un poco de tiempo de práctica de por medio) hacen que un comando bien tirado y parametrizado resuelva tareas que manualmente son tediosas y llevan mucho tiempo en realizarse. Por eso, tímidamente intentare explicar que es un canalizador (pipe) de una forma simple (espero que la gente avanzada no se enoje...) con ejemplos puramente prácticos.

Comandos, StdIn y StdOut

Para ejecutar algo desde la consola (de ahora en adelante el término consola y terminal se refieren a lo mismo) basta con tipear el nombre de un comando, posiblemente algun parámetro y darle un golpe a la tecla enter. Este comando procesará alguna tarea, y posiblemente retorne algun resultado. Por ejemplo, el comando "ls" da un listado de los archivos que se encuentren en el directorio actual. Se puede formatear la salida con algún parametro; vamos a ejecutarlo (el signo $ indica el prompt del bash):

$ ls -t -l


Un posible resultado:

total 88
drwxr-xr-x 2 kaleb kaleb 4096 2008-05-08 01:27 Imágenes
drwxr-xr-x 2 kaleb kaleb 4096 2008-05-08 01:21 Escritorio
-rw-r--r-- 1 kaleb kaleb 33476 2008-05-08 01:11 hs_err_pid6619.log
-rw-r--r-- 1 kaleb kaleb 23452 2008-05-06 23:24 template-6354707186372224906.xml
drwxr-xr-x 2 kaleb kaleb 4096 2008-04-29 22:00 Documentos
drwxr-xr-x 2 kaleb kaleb 4096 2008-04-29 22:00 Música
drwxr-xr-x 2 kaleb kaleb 4096 2008-04-29 22:00 Plantillas
drwxr-xr-x 2 kaleb kaleb 4096 2008-04-29 22:00 Público
drwxr-xr-x 2 kaleb kaleb 4096 2008-04-29 22:00 Videos
lrwxrwxrwx 1 kaleb kaleb 26 2008-04-29 18:41 Examples -> /usr/share/example-content

¿Simple, no? Aparte de ser algo bastante simple, hay dos mecanismos que entraron en juego de manera implícita: el StdIn y StdOut, abreviaturas de STAndard INput y STAndard OUTput, respectivamente. El StdIn representa la entrada estandar (por defecto) al comando; en este caso el teclado, dado que fue el periférico que utilizamos para tirar el comando a la terminal. Por otra parte, el StdOut es la salida estandar (por defecto) del comando; en este caso la pantalla, dado que el resultado del comando salió por la ventana donde estamos trabajando (en realidad no es tan así, pero vale como ejemplo). Expresado graficamente, el comando "ls" tiene una entrada y una salida, similar a esto:


El uso de los canalizadores (pipes)

El canalizador "pipe" es un caracter que permite encadenar varios comandos entre si, tomando la salida de uno para aplicarla como entrada de otro. Resulta un poco abstracto en principio, pero graficamente sería algo así:



Para verlo en un ejemplo, tomemos dos comandos al azar: "ps", el cual muestra un listado de procesos que corren en nuestro equipo, y "more", un curioso comando que recibe texto como entrada y realiza una pausa cada vez que la salida por pantalla supera una determinada cantidad de líneas evitando el "scroll" de las mismas. Si el comando "ps" se utiliza con el parámetro "-A" (mostrar todos los procesos), es posible que la salida sea tan grande que no nos alcance la pantalla para ver todo el resultado, así que la salida de este comando se la pasaremos como entrada al "more", para que este muchacho nos "pause" la salida y podamos leer con detenimiento. Para utilizar un pipe, se debe escribir el caracter "|" (sin las comillas :P, se escribe pulsando AltGr+1 en un teclado español) entre el primer y segundo comando, de esta forma:

$ ps -A | more


Si se realiza la prueba en una terminal, veremos felizmente como la salida se va pausando a medida que se "llena" la pantalla de texto. Otro ejemplo sería utilizar el comando "grep", el cual toma como entrada un texto y como parametro una cadena de texto y devuelve todas las lineas de la entrada que contienen la cadena especificada. Para el ejemplo con "ps", podriamos utilizar el combo de ambos para saber si hay en memoria algún proceso relacionado al gnome, por ejemplo, con lo siguiente:

$ ps -A | grep "gnome"


¿Y si la salida fuera muy extensa? ¿Muchos procesos con la palabra "gnome? No hay problema! Canalicemos!

$ ps -A | grep "gnome" | more


¿Ahora la cosa es interesante, no? Otros comandos para probar: cat, glxinfo (en este tutorial se utiliza), grep, more, ps, netstat, etc.

Finalmente invito al lector a probar el uso de pipes y descubirir el potencial que brinda el uso de la consola. ¡Hasta la próxima!