Aquí dejaremos indicado algunos tip's de Debian, los que usaremos a
diario de este Sistema Operativo Debian.
Sin perjuicio de esto, los TIP's nunca reemplazarán a los manuales de la distribución, si no que simplemente pretende ser un recordatorio de comandos sabidos o de utilidades que nos harán la vida más fácil.
Hay veces que es necesario adaptar la consola que usamos a un tamaño adecuado para nosotros o disponer en ella algún tipo de modificación más allá de la que se entrega por defecto.
Dejaremos algunos parámetros que nos interesa modificar, con el siguiente comando:
$ wterm -fg white -bg black -cr green -tr -sr -geometry 172x64
Para ahorrar espacio en disco hay varias formas que indicaremos a continuación:
Una de estas formas es instalar locales & localepurge, que son dos aplicaciones que nos permite seleccionar nuestro idioma y su archivos asociados
#aptitude install locales localepurge
Esto nos instala ambas aplicaciones y sus dependencias, lo que permite configurar nuestro idioma con locales y posteriormente a ello deberemos de correr la aplicación localepurge la que nos elimina todos los archivos de idiomas que no han sido seleccionados en su configuración.
Una de las formas de realizar esta actividad es usando las herramientas que nos proporciona el sistema, en teste caso los apt-get y el caché se encuentra en /var/cache/apt/archives
#apt-get autoclean //elimina únicamente los paquetes inútiles #apt-get clean //elimina la totalidad de los paquetes del caché
Cuando un sistema se encuentra funcionando desde hace años y han habido un sin número de actualizaciones e instalaciones y desinstalaciones de paquetes y archivos de datos, es inevitable que existan duplicidad de archivos o lo que es peor archivos con el mismo contenido pero con distinto nombre.
Bueno para este complicado estado del sistema existe una salvación, que es la instalación de un analizador de contenidos, este es fdupes.
# aptitude install fdupes
Una vez instalado podemos ver el man de esta aplicación de consola y ejecutar el siguiente comando que analizará un directorio y dejara en un archivo el contenido del análisis.
$ fdupes -r -n -S ~/pdf > ~/duplicados.txt
Lo que hace este comando es analizar el directorio ~/pdf y genera un archivo duplicados.txt, que su contenido es el análisis de los contenidos de los archivos del directorio indicado.
Para obtener informacion de los paquetes y de sus nombres, debemos usar el siguiente comando:
# apt-cache search nombre_del_paquete --> Busca el nombre de un paquete # apt-cache show nombre_del_paquete --> Mayor info del paquete.
Parece un contrasentido, pero aún así hay formas de buscar un nombre de un paquete que se nos ha olvidado o no sabemos su nombre.
Uno de los caminos para conocer el nombre de un paquete es conocer el nombre de unos de los archivos importantes que lo componen, por ejemplo para conocer el nombre del paquete que ofrece “stdio.h” se puede ejecutar:
# dpkg -S stdio.h
Con la ejecución de este comando, nos entrega bastante info que podemos relacionar a la hora de buscar algo que desconocemos su nombre, en el ejemplo planteado la salida de este comando es:
sdcc-libraries-nf: /usr/share/sdcc/include/stdio.h libc6-dev: /usr/include/bits/stdio.h sdcc-libraries-nf: /usr/share/sdcc/include/pic16/stdio.h avr-libc: /usr/share/doc/avr-libc/avr-libc-user-manual/group__avr__stdio.html perl: /usr/lib/perl/5.10.0/CORE/nostdio.h avr-libc: /usr/share/doc/avr-libc/man/man3/stdio.h.3.gz libc6-dev: /usr/include/stdio.h avr-libc: /usr/lib/avr/include/stdio.h libstdc++6-4.3-dev: /usr/include/c++/4.3/tr1/stdio.h
Hay ciertas cosas que a los novatos en Unix le parecen marcianas y una de ellas es el uso de la consola de comandos, herramienta sumamente útil para otros y que su aprendisaje es altamente necesario….
Por ejemplo para saber que paquetes tenemos instalado en nuestro sistema, es simple por línea de comandos..
# dpkg -l --> Muestra todos los paquetes instalados. # dpkg -l | grep _nombre_--> Muestra la salida con filtro por _nombre_.
Hay ocasiones en que ya sea por una actualización o por cambio de versión o cualquier otra razón, se hace necesario replicar los mismos paquetes que tengo instalados en una máquina en otra máquina.
Para ello es necesario disponer de un listado de los paquetes que tengo instalados en mi máquina actual la de origen, para generar ese archivo debemos correr el comando siguiente:
$ sudo dpkg --get-selections > /tmp/paquetes_instalados.txt $ scp /tmp/paquetes_instalados.txt usuario@maquinaremota:~/.
Con este comando lo que hemos hecho es, generar el archivo paquetes_instalados.txt en el directorio temporal con el contenido del listado de todos los paquetes que tenemos instalados en una determinada máquina. Una vez hecho esto tendremos el archivo con el detalle, el cual pasaremos por la red local a otra máquina para que sean instalados.
La forma en que podemos generar ese listado como requerimiento de instalación en la nueva máquina, es con el comando siguiente:
$ cat paquetes_instalados.txt | sudo dpkg --set-selections
Con esto hemos seleccionado por completo el listado de requerimientos, con todas las aplicaciones que teníamos instaladas en la máquina de origen.
Ahora simplemente debemos instalarlos con el siguiente comando:
$ sudo apt-get -y update $ sudo apt-get dselect-upgrade
Con esto y después de esperar que se instalen todos los paquetes, hemos replicado todos los paquetes desde la máquina origen a la de destino.
Como instalar programas sobre demanda. Si esta compilando un programa y le hace falta otro programa ”.h” que no esta en su sistema. La aplicación “auto-apt” puede salvarlo de esta situacion. Le pregunta si instala ciertos programas que son requeridos, deteniendo los procesos relevantes y continuando una vez que el paquete requerido es instalado.
# auto-apt run command (command que necesita los archivos) # auto-apt run ./configure
La instalación de programas fuente en Debian no son tan raros, ya que Debian a pesar de ser una distribución bastante estable, carece de las últimas versiones de varios paquete que a veces desearíamos disponer en nuestra distribución. El problema surge cuando estas versiones no están siendo manejadas por nuestros administradores de paquetes y deseamos que sean mantenidas por la distribución.
Para lograr esto, lo que debemos hacer es instalar el paquete checkinstall, este paquete permite generar un paquete deb a contar de los archivos fuente de la aplicación.
Para instalarlo:
#aptitude install checkinstall
Supongamos que estamos instalando la última versión por ejemplo de SQLite que es la versión 3.6.18 al momento de generar este Como y la que existe es los paquetes Debian, claramente es una versión anterior. Ahora generamos un directorio de trabajo y bajamos esta versión de su pagina web.
Para su uso debemos hacer lo siguiente:
Compilando el paquete: (1) ./configure (2) make (3) sudo checkinstall
En el tercer paso nos pedirá algunos datos que deberemos ingresar y posteriormente no creará el paquete deb, que en este caso será:
sqlite_3.6.18-1_i386.deb
Después de esto procedemos con el clásico:
sudo dpkg -i sqlite_3.6.18-1_i386.deb
Para generar un LOG en el botteo y detectar problemas en este, se debe editar el archivo ubicado en /etc/default/bootlogd, naturalmente como root y modificar lo siguiente:
BOOTLOGD_ENABLE=No (este es el estado por default y se debe cambiar a) BOOTLOGD_ENABLE=Yes
Una vez hecho esto y guardar los cambios, se debe reiniciar la máquina y ver el archivo en /var/log/boot
Para enviar los logs a otra maquina, lo que se debe hacer es:
Para forzar a una tarjeta de red a funcionar a 100BT aunque sea de 10/100 o 1000, se debe instalar el paquete debian ethtool, de acuerdo al siguiente:
# apt-get install ethtool --> Para los clásicos de apt-get # aptitude install ethtool --> Herramienta de administración de paquetes
Suponiendo además que la tarjeta NIC que deseamos dejar forzada sea la eth1, deberemos realizar lo siguiente:
# ethtool -s eth1 speed 100 duplex full
Para verificar que así sea:
# ethtool eth1
Hay oportunidades en que no requerimos tener servicios en nuestra máquina y hay una forma correcta de removerlos y es la siguiente:
# update-rc.d -f nombre_del_servicio remove
Esto nos permite remover de los runlevels, el nombre_del_servicio que requerimos dejar de entregar, ahora un ejemplo concreto:
# update-rc.d -f portmap remove
Lo anterior nos remueve el servicio portmap y nos cierra el puerto 111/tcp de nuestro sistema.
Hay veces en que necesitamos traer el contenido de un archivo entre una maquina remota a una local, esto típicamente se requiere para archivos de configuraciones por ejemplo.
En este caso del ejemplo, estamos en la máquina local y deseamos traer el contenido filtrado de un archivo desde la maquina remota.
#ssh user@ip_remoto cat ~/remote_file.txt | grep filter >> ~/local_file.txt
En ciertas ocasiones es posible que requiramos extraer los comentarios de los archivos, como por lo general los comentarios de los archivos en Unix se inician con el ”caracter gato #”, podemos hacer un filtro que elimine las lineas que parten con este caracter.
$ grep ^[^#] nombre_archivo
Vamos ahora a ver un ejemplo de la utilidad de este comando, supongamos que necesitamos sacar todos los comentarios de un archivo de configuración y dejarlo en otro archivo de texto plano, pero que contenga los parámetros reales del archivo.
$ grep ^[^#] /etc/squid/squid.conf > squid_parm.txt
El resultado de esto lo hemos dejado en el archivo squid_parm.txt
Hay veces que necesitamos realizar una imagen ISO de un CD o DVD, para realizar esto en Unix debemos usar el comando dd, supongamos que nuestra unidad de DVD o CD es la hda, que son típicamente en máquinas que los discos son SATA y las unidades de DVD o CD son IDE, por lo que el comando quedaría de la forma siguiente:
$ dd if=/dev/hda of=imagen.iso
Se genera una imagen.iso de DVD o CD.
Una vez generada esa imagen.iso, que la tendremos en nuestro directorio /home/user/, requerimos montarla, para ello deberemos realizar el siguiente comando:
# mount imagen.iso /mnt -o loop
Monta la imagen ISO sobre el directorio /mnt.
En este caso se supone que tenemos una imagen.iso, generada con anterioridad y se encuenta el algún directorio de nuestro /home/user/, por lo que ahora nos queda realizar la grabación de esta, sin necesidad de usar herramientas X, tales como k3b, brasero y otras, por ello deberemos correr el siguiente comando:
# cdrecord -v dev=/dev/hda speed=12 fs=30m -eject -data imagen.iso
Con esto hemos definido:
El formateo de las unidades de almacenamiento en una tarea delicada, sobretodo en Unix en donde un error es irrecuperable, por ello se debe tener especial cuidado en detectar que la unidad es la correcta, para ello debemos usar habitualmente el dmesg o el fdisk -l para tener la seguridad suficiente en el dispositivo a formatear.
Pero como dato general, los pendrive montados si tenemos discos IDE (hda, hdb), son detectados por sda, y cuando tenemos discos SATA en nuestra maquina, los pendrive pasan a ser sdb o sdc dependiendo si tenemos un sólo disco SATA o dos.
Supongamos que nuestro pendrive, se a detectado como un dispositivo /dev/sdb y tiene una partición, eso significa que pasará a ser el dispositivo /dev/sdb1. El comando para ser formateado en VFAT es el siguiente:
# aptitude install dosfstools (Instale este paquete primero). # mkfs.vfat /dev/sdb1 (Este comando formatea en FAT32 el USB).
Este comando debe ser ejecutado como root en una consola, ya que así lo indica el signo # en la linea de comando.
En pantallas wide hay veces en que no sabemos realmente que resolución soporta la pantalla, especialmente si somos novatos en linux.
Para salvar este problema tenemos una aplicación de consola que nos dirá que resolución tenemos y cual es la mejor que podemos tener en nuestra máquina, para ello ejecutamos el comando xrandr y nos entrega lo siguiente:
$ xrandr Screen 0: minimum 320 x 200, current 1024 x 600, maximum 1024 x 1024 VGA disconnected (normal left inverted right x axis y axis) LVDS connected 1024x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1024x600 62.4*+ 800x600 85.1 72.2 75.0 60.3 56.2 640x480 85.0 72.8 75.0 59.9 720x400 85.0 640x400 85.1 640x350 85.1 TV disconnected (normal left inverted right x axis y axis)
Como podemos ver nos entrega bastante información que podemos usar para configurar las X en forma óptima.
Siempre es deseable tener un mirror de Debian lo más rápido posible, pero son tantos que obviamente no lo pondremos a buscar experimentalmente, para eso usamos un comando estupendo para ello:
# aptitude install netselect-apt
Esto instala dos aplicaciones la netselect y la netselect-apt, que al correrlar como root nos genera en el directorio en que estamos parados un archivo source.list en forma automática, lo que nos deja la opción de probar los nuevos mirror sin modificar el source.list original de nuestra máquina.
La forma de uso es la siguiente:
# netselect-apt -s -n lenny
Uno de los detalles que importan a la hora de usar un laptop, es cuidar el uso de la batería, para ello los kernel's 2.6.6 y superiores vienen preparados para tal efecto, pero habitualmente no está activado.
Una forma simple de ver si está activado o no es:
# cat /proc/sys/vm/laptop_mode
Si la respuesta a este cat es 0 (cero), NO tenemos habilitada esta opción, para habilitarla debemos hacer lo siguiente:
# echo 5 > /proc/sys/vm/laptop_mode
Lo que hace esto es bajar los ciclos de accesos de los discos duros, optimiza los accesos de los buffers al disco y maneja de mejor forma el consumo del disco por ejemplo. Ver detalles en este link.
Hay veces en que la unidad de CD-ROM o DVD se nos queda pegada porque alguna aplicación, nos la dejó pegada, en estos casos existen procesos que dejan tomada la unidad, una de las primeras cosas que debemos saber es quien la ha dejado tomada, eso lo sabremos con el siguiente comando:
# fuser /media/cdrom
Debemos tener en cuenta que el dispositivo se ha montado en /media/cdrom pero puede estar en otro directorio, teniendo esto en cuenta, este comando nos entrega que proceso nos tiene tomada la unidad, para liberarla lo hacemos con el siguiente comando:
# fuser -k /media/cdrom
Después de esto, sólo nos queda expulsar la unidad mediante un eject cdrom.
Es dificil saber que versión de Java usa tu sistema si hay más de una versión en uso y podría servir para confundirnos, una forma de configurar una versión de Java es:
$ sudo update-alternatives --config java <enter>
Hay 3 alternativas que proveen `java'.
Selección Alternativa
-----------------------------------------------
* 1 /usr/lib/jvm/java-6-sun/jre/bin/java
2 /usr/bin/gij-4.3
+ 3 /usr/lib/jvm/java-gcj/jre/bin/java
Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección:
Tienes que ingresar la opción que deseas simplemente.
Para probar java en el navegador, abrimos el siguiente link.
Hay muchas aplicaciones que nos permiten conectarnos a nuestros dispositivos embebidos bajo Linux, por consola tenemos uno muy usado que es el minicom, pero para ambiente X tenemos el cutecom.
# aptitude install cutecom
Una de las cosas que más molesta, al menos en el uso de Gnome, es que cada vez que usas el navegador de archivos y abres distintos directorios, se abren varias ventanas proporcionales a los directorios, es decir una ventana por cada directorio que abres, para eliminar eso, se debe hacer lo siguiente:
Ventanas del Navegador de Gnome