====== Comos de Debian ====== {{:servicios:informaticos:debian-logo.png?200 |Logo Debian}} 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. ===== Parámetros para definir la Consola Wterm ===== 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 ===== Como ahorrar espacio en Disco ===== Para ahorrar espacio en disco hay varias formas que indicaremos a continuación: ==== locales ==== 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. ==== Borrando archivos del Caché ==== 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é ===== Como saber que archivos están duplicados ===== 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. ===== Como Seleccionar un Mirror Rápido ===== 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. ===== Como obtener información de los paquetes ===== 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. ===== Como instalar un paquete sin saber su nombre ===== 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 ===== Como saber los paquetes que tenemos instalados ===== 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 ===== 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 ===== Como instalar un Programa Fuente ===== 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 [[http://www.sqlite.org/download|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 ===== Como saber exactamente que Versión de Debian tenemos ===== 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 ===== Como disponer de un LOG de Booteo ===== 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** ===== Como enviar un LOG de una maquina a otra ===== Para enviar los logs a otra maquina, lo que se debe hacer es: - Editar el script de inicio de syslog "/etc/init.d/sysklogd", se busca la variable SYSLOGD y se deja "SYSLOGD="-r" - Se reinicia el servicio es esta maquina "/etc/init.d/sysklogd restart" - En la maquina donde quiero recivir el log de la maquina remota se pone en el archivo "/etc/syslog.conf" al final, en la ultima lines se debe agregar 4 y 5. - *.* @ip_de_maquina_remota - *.* @192.168.1.105 --> Por ejemplo ===== Como forzar a que una NIC funcione a 100BT ===== 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 ===== Como traer el contenido de un archivo ===== 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 ===== Como extraer comentarios de los archivos ===== 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// ===== Como generar una imagen ISO ===== 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. ===== Como montar una imagen ISO ===== 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**. ===== Como grabar un CD desde línea de comandos ===== 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: * Dispositivo de grabación está montado en **/dev/sda** * La velocidad que hemos usado es **12x** en el parámetro //speed//. * Hemos definido un buffer de 30 megas con **fs**. * Hemos indicado que es un CD o DVD de datos con **-data**. * Además le hemos indicado que después de grabarlo lo **ejecte**. * Por último le damos el nombre de la **imagen.iso** a ser grabada. ===== Como formatear un Pendrive USB en Linux ===== 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. ===== Como ver la mejor resolución en X ===== 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.