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.
Cuando queremos determinar desde nuestro lugar, cual es el Mirror Oficial de Debian que se comporta mejor y más rápido desde nuestra ubicación física, debemos usar una herramienta de software que está diseñada para eso, netselect-apt, para realizar esto deberemos ejecutar como root los comandos siguientes:
# aptitude install netselect-apt # cd /etc/apt/ # netselect-apt stable
Esto bajará de Debian el listado de los mirror oficiales y realizará varios test de velocidad y conectividad hasta seleccionar el servidor más rápido respecto de nuestro lugar geográfico.
Una vez realizado esto, esta aplicación reemplazará en nuestro source.list el nombre del servidor, dejando todo preparado para ejecutar la actualización.
# aptitude update && aptitude safe-upgrade && aptitude clean
Con esto hemos dejado nuestra máquina actualizada y al día.
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_.
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 uns 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 saber que versión exacta tenemos instalada en nuestro sistema debemos correr en terminal como usuario, el comando:
$ lsb_release -a
Esta es la salida del comando:
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.7 (jessie) Release: 8.7 Codename: jessie
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 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 sda, que son típicamente en máquinas que los discos son SATA, por lo que el comando quedaría de la forma siguiente:
$ dd if=/dev/sda 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 encuentra 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/sda 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.