====== Basic Linux ====== ===== El sistema operativo UNIX ===== A modo de (muy) breve resumen del Sistema Operativo UNIX (o Linux) se describen aquí un pequeño subconjunto de los comandos disponibles bajo los intérpretes de comandos (shells) ''sh'' (o su versión de Linux, ''bash'') y ''csh'' (o ''tcsh'', una versión extendida de ''csh''). Estos shells permiten ejecutar comandos de forma interactiva con una sintaxis flexible y potente, sobre todo a la hora de crear secuencias/guiones (scripts) eficientes. ==== El sistema de archivos ==== En UNIX (y Linux), los discos físicos se dividen en particiones lógicas (bloques de tamaño específico) con el comando ''format''. Un sistema de archivos se dispone entonces sobre estas particiones, lo que permite una estructura de directorios o carpetas que pueden contener archivos de distintos tipos.\\ Algunos comandos que permiten al usuario manipular archivos son:\\ === pwd === muestra el nombre del directorio actual (".") === ls === enumera/lista los archivos en el directorio actual === ls dir === enumera/lista los archivos en el directorio "dir" === ls -opciones === además de mostrar el contenido del directorio actual permite múltiples opciones, p.ej. ''ls -lF'' es una extensión útil que proporciona información adicional acerca de los archivos === cp archivo1 archivo2 === copia archivo1 a archivo2 === cd /dir1/dir2 === ir al directorio especificado; ''cd ..'' significa ir al directorio por encima del directorio actual; ''cd ../dir3'' significa subir un nivel, luego hacia abajo en el directorio dir3. El directorio actual está siempre asociado a "." === mv archivo1 archivo2 === cambiar el nombre archivo1 como archivo2, en el mismo directorio (cambiando el nombre del archivo), o mover archivo1 en algún otro directorio === cat archivo === muestra el archivo en la salida estándar (la pantalla, por lo general) === more archivo === muestra el archivo en la salida estándar (pantalla), una pantalla completa a la vez. No se saben las razones en Unix, pero el comando ''less'' hace lo mismo ... === > === === >> === redirige la salida a un archivo; p.ej., ''cat archivo1 > archivo2'' copia el archivo archivo1 en archivo2, y ''cat archivo1 >> archivo2'' añade archivo1 al final de archivo2 === | === "tubo" de conexión de salida estándar a la entrada estándar, p.ej. ''cmd1 | cmd2'' envía la salida del comando cmd1 en la entrada de cmd2 === touch archivo === actualiza el "sello" (stamp) de fecha y hora de un archivo, haciendo que parezca recién modificado === rm archivo === elimina un archivo === ? === === * === UNIX también es compatible con "comodines" en los nombres de archivo/directorio, p.ej. una ''?'' será reemplazada por cualquier carácter individual, mientras que un ''*'' será reemplazado por cualquier número de caracteres coincidentes. Por ejemplo, ls abc*.c listará todos los archivos cuyo nombre comienza con "abc" y termina en ".c" === completar línea de comandos === En cualquiera de los intérpretes de comandos se permite completar o al menos sugerir el nombre completo de archivo/directorio/ruta sin tener que acabar de teclear exactamente todo el camino. En el caso de ''csh'' y ''tcsh'' hay que activarlo con el comando ''set filec'' y después utilizar la tecla **ESC** en ''csh'' o **TAB** en ''tcsh'' y ''bash'' ==== Acceso al sistema y seguridad ==== UNIX proporciona un entorno de computación multi-usuario. Esto significa que comparte sus recursos entre muchos usuarios, así como las diversas tareas que cada usuario podría estar realizando. También implica que UNIX debe proporcionar un mecanismo de seguridad contra los usuarios que buscan en directorios "home" de otrosusuarios del sistema. Para obtener acceso a un sistema UNIX, un usuario primero debe identificar su cuenta en respuesta a la solicitud de inicio de sesión (login prompt) Login: username Password: password a continuación, dar una contraseña única. Un usuario puede cambiar su contraseña con el comando ''passwd'' seguido de la vieja y nueva contraseñas.\\ El usuario puede salir del sistema con el comando de cierre de sesión ''logout''. En el inicio de sesión, UNIX inicia un nuevo intérprete de comandos (shell), p.ej. ''csh'' o ''bash'', y configura el entorno de usuario mediante la interpretación/ejecución de archivos "ocultos" (su nombre empieza por ''.'' y no aparecen con un simple ''ls'') de configuración, ''.login'' y ''.cshrc'' ( ''.profile'' y ''.bashrc'' en ''bash'').\\ El archivo .cshrc también se ejecuta cada vez que una nueva "tarea" (p.ej. una nueva ventana) se pone en marcha. Estos archivos ocultos son la forma de personalizar por parte del usuario su entorno informático a partir de comandos y reglas del intérprete, p.ej.: alias nombre definición (csh) alias nombre=definición (bash) para definir "nombre" (por lo general algo corto) como "definición" (a menudo largo y/o complicado).\\ Cada archivo está marcado como propiedad de un usuario y como perteneciente a un grupo de usuarios. Cada archivo también está marcado con permisos de "lectura", "escritura" y "ejecución" para su propietario, los miembros de su grupo, y para "otros".\\ El comando directorio ''ls -l'' lista estos permisos como ''r'', ''w'' y ''x'' si se les permite. Por ejemplo, el siguiente diálogo: > ls -l total 6 -rw-rw-r-- 1 sergio 4322 Jan 10 12:30 archivo1 drwxrwxr-x 2 sergio 512 Jan 10 12:29 archivo2 > muestra que ''archivo1'' se puede leer y escribir por el propietario y todos los miembros del grupo, y leído por todos, mientras que ''archivo2'' está sin protección, salvo que no se puede escribir por "otros". Además, ''archivo2'' es un directorio (nombre de un sub-directorio dentro del actual indicado por un ''d'' en la primera columna). Para una descripción completa de ''ls'' y sus opciones, utilizar ''man ls''\\ Las protecciones de un archivo o grupo de archivos se pueden modificar mediante el comando ''chmod''. Por ejemplo, para hacer todos los archivos cuyos nombres comiencen por "abc" ejecutable por su grupo y es legible por los demás, se pondría:\\ > ls -l abc* -rw-r--r-- 1 sergio staff 123 Mar 31 10:38 abc1 -rw-r--r-- 1 sergio staff 2331 Mar 31 10:38 abc2 -rw-r--r-- 1 sergio staff 2 Mar 31 10:38 abc34 > chmod g+x,o-r abc* > ls -l abc* -rw-r-x--- 1 sergio staff 123 Mar 31 10:38 abc1 -rw-r-x--- 1 sergio staff 2331 Mar 31 10:38 abc2 -rw-r-x--- 1 sergio staff 2 Mar 31 10:38 abc34 \\ Para cambiar los permisos de archivo por defecto, es decir, los permisos aplicados a cada nuevo archivo creado, utilice el comando ''umask'' : \\ > umask 022 > touch xyz > ls -l xyz -rw-r--r-- 1 sergio staff 0 Mar 31 10:57 xyz > umask 026 > touch pqr > ls -l pqr -rw-r----- 1 sergio staff 0 Mar 31 10:58 pqr \\ El algoritmo es un poco oscuro: toma el siguiente número del comando ''umask'', restar desde 666, y el resultado es el de los permisos de usuario / grupo / otros, en octal! En la práctica, 022 da a todos el permiso de lectura, 026 niega el acceso de lectura a los demás (fuera de su grupo), y 066 significa que nadie más puede leer o ejecutar archivos. El umask comando se coloca normalmente en el archivo ''.login'' o ''.profile'', por lo que se ejecuta cada vez que se inicia sesión en el sistema.\\ La posesión de un archivo puede ser modificada por el comando ''chown''; este es un comando restringido, sin embargo puede ser ejecutado por el "superusuario" (root) del sistema.\\ Hay muchos otros comandos que facilitan la interacción de los usuarios con la máquina en cuestiones simples; por ejemplo:\\ === date === muestra/cambia la fecha y hora del sistema === time === ejecuta programas y obtiene información de los recursos y tiempos empleados === hostname === muestra/cambia el nombre del sistema === finger === obtiene una lista de usuarios y lo que están haciendo === ps === muestra las tareas en ejecución en sesión/sistema; p.ej. ''ps -aux'' === history === muestra los comandos más recientes === !! === reinvoca el último comando === !cadena === reinvoca la última orden empezando por cadena === !n === reinvoca el n-ésimo comando === ayuda sobre comandos === Se puede obtener ayuda de cualquier comando UNIX a través del comandos ''man''. El comando ''man cmd'' imprime en la salida estándar el contenido de las páginas de manual concerniente al comando UNIX ''cmd''. También puedes buscar por el contexto con ''man -k cmd'' ==== Ejecución de comandos y programas ==== Un archivo puede ser del "tipo especial" 'ejecutable' (p.ej., como resultado de una compilación de código C seguido de un enlazado con las bibliotecas adecuadas), lo que significa que contiene instrucciones para ejecutar en la máquina. Por ejemplo, cada comando UNIX es en sí mismo un "ejecutable" que reside en el disco en un directorio accesible por todos. Estos archivos son ejecutados por indicación de su nombre, seguido de cualquier argumento necesario. Por ejemplo, '' ls -lFg archivo '' ejecutará el comando ''ls'', con argumentos ''-lFfg'' (un modificador) y ''archivo'', lo que resulta es un listado de directorio muy completo para el archivo ''archivo''. ==== Automatización de tareas: guiones (scripts) ==== Cualquier conjunto de comandos UNIX se puede poner en un "script" para ser ejecutado a la vez como un solo comando. El lenguaje es muy completo, incluyendo estructuras de control y bucle. Como ejemplo, considere la siguiente secuencia de comandos: #!/bin/csh # # example of a C-shell script # --------------------------- # # store the wordlist resulting from # the ls command in variable files # set files = `ls` # # foreach is a loop; files takes on the # value of each entry in files # # $variable_name is the content of # that variable # foreach file ( $files ) echo 'File name:' $file end \\ El guión llama explícitamente al intérprete C-shell; el comando ''set'' transfiere el resultado del comando ''ls'' en la variable ''files'' como una lista de palabras. A continuación, el bucle ''foreach … end'' sobre la lista de palabras, asigna cada miembro a la variable ''file''. El comando '''echo'' escribe un mensaje en la salida estándar. La sintaxis ''$ variable'' significa el "contenido" de la variable; $var[i] significa el contenido de la posición i en la variable.\\ A nivel de scripts las diferencias entre ''bash'' y ''csh'' se hacen más evidentes. Una versión de bash del script anterior podría ser: #!/bin/bash # # example of a bash script # ------------------------ # # store the wordlist resulting from # the ls command in variable files # files=`ls` # # for is a loop; files takes on the # value of each entry in files # # $variable_name is the content of # that variable # for file in $files; do echo 'File name:' $file done ===== init ===== ==== inittab ==== Si existe el archivo /etc/inittab editar el runlevel por defecto en la línea: id:N:initdefault: N es el runlevel por defecto. En algunos casos habrá que editar el archivo /etc/init/rc-sysinit.conf y cambiar la línea: env DEFAULT_RUNLEVEL=2 El resto de líneas del inittab tendrán el siguiente formato: id:niveles_ejecución:acción:proceso ==== runlevels ==== Antiguo estándar Unix: 0 - shutdown 1 - single user mode 3 - multiuser text mode 5 - multiuser graphical mode 6 - reboot Ubuntu usa: 0 - shutdown 1 - single user mode 2 - multiuser graphical mode 6 - reboot Para conocer el runlevel: who -r runlevel Para cambiar el runlevel: telinit ==== upstart ==== Ubuntu usa upstart en lugar de inittab para iniciar servicios y terminales del sistema, en cualquier caso también se parsea el archivo /etc/inittab si existe o se crea a propósito ==== autologin ==== # Auto Login for Ubuntu how? # 1. apt-get install mingetty # 2. vim /etc/init/tty1.conf # tty1 - getty # # This service maintains a getty on tty1 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn #exec /sbin/getty -8 38400 tty1 exec /sbin/mingetty --autologin tty1 ^ |____ edited only this line, seems to be working [[http://linux.koolsolutions.com/2009/04/30/autologin-linux-console-mode/|HOWTO: Autologin as root or as any other user in Linux in console mode]] ==== Boot ==== * /etc/modules * /etc/modprobe.conf * /etc/modprobe.d/* ===== Teclado ===== Teclado español en consola (**Ubuntu**): * Hay que instalar: ~$ sudo apt-get install console-common y aparece asistente para configurar * Después para reconfigurar: ~$ sudo dpkg-reconfigure console-data * Cambio temporar del idioma de teclado (**Ubuntu**): ~$ loadkeys es ~$ loadkeys pt ~$ loadkeys us ==== Editor ==== Cambio de editor por defecto (/usr/bin/editor) en Ubuntu ~$ sudo update-alternatives –config editor ==== Shell ==== Cambio de intérprete de comandos (shell) por defecto (/bin/sh) en Ubuntu, por defecto **dash**, recomendable **bash** ~$ ls -l /bin/sh ~$ sudo dpkg-reconfigure dash Comprobación ~$ ls -l /bin/sh ===== Puertos serie ===== ==== USB2Serial ==== Prolific PL-2303/2303X/2303HX serial adapters ~$ dmesg | grep tty ~$ ls -al /dev/ttyUSB* ~$ sudo lsusb -v ==== Permisos de usuario ==== ~$ sudo usermod -a -G dialout ==== Permisos de puerto ==== ~$ sudo chmod 666 /dev/ttyUSB0 ==== Número nuevo puerto serie ==== ~$ sudo rm /dev/ttyS40 ~$ sudo ln /dev/ttyUSB0 /dev/ttyS40 ==== Minicom ==== ~$ sudo minicom -s [[https://help.ubuntu.com/community/Minicom|Minicom Ubuntu]] ==== Putty ==== #!/bin/bash sudo chmod 666 /dev/ttyUSB0 putty ==== statserial==== Visualizacion de líneas de estado de puertos serie ~$ sudo apt-get install statserial ~$ statserial /dev/ttyUSB0 ==== Programación ==== [[http://tldp.org/HOWTO/Serial-Programming-HOWTO/|Serial Programming HOWTO]] ~$ sudo apt-get source statserial statserial.c ===== Redes ===== ==== Interfaces de red ==== * Listado: $ ifconfig -a * Habilitar/desabilitar interfaces: $ ifconfig eth0 down $ ifconfig eth0 up * Archivo de configuración (/etc/network/interfaces) # Configuración de dirección IP estática en interfaz eth0 auto eth0 iface eth0 inet static address 192.168.1.50 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 # Configuración de dirección IP dinámica en interfaz eth0 auto eth0 iface eth0 inet dhcp # Configuración DNS dns-nameservers 8.8.8.8 8.8.4.4 * Archivo de DNS (/etc/resolv.conf) nameserver 8.8.8.8 nameserver 8.8.4.4 * Reiniciar interfaces: $ /etc/init.d/networking restart * Obtener información DNSs: $ nm-tool | grep DNS ==== Agujero negro /dev/null ==== Los valores estándar de entrada, salida y error para un programa: STDIN, STDOUT y STDERR pueden ser sustituidos por 0, 1 y 2 respectivamente, por tanto, podemos redireccionarlos al dispositivo nulo o agujero negro /dev/null o un archivo: ~$ cat pruebas 2>/dev/null ~$ cat prueba 1>resultado_de_salida 2>err.log ===== Discos ===== ==== Copia de imagen ==== ~$ dd if=/dev/sdc of=sdimage.img bs=4M ~$ dd if=sdimage.img of=/dev/sdc bs=4M ~$ dd if=/dev/sdb of=/dev/sdc bs=4096 conv=notrunc,noerror ~$ cat /dev/sdc/ > ~/backup.iso ~$ cat ~/backup.iso > /dev/sdc ===== Consolas ===== sudo vi /etc/default/console-setup sudo mv tty4.conf tty4.conf.bck sudo mv tty5.conf tty5.conf.bck sudo mv tty6.conf tty6.conf.bck ====== Arranque rápido ====== /etc/init.d/rc CONCURRENCY=none -> CONCURRENCY=makefile ====== HW/SW ====== ==== Información del fabricante y del modelo ==== == Fabricante del equipo: == sudo dmidecode -s system-manufacturer Nombre del producto: sudo dmidecode -s system-product-name Versión del producto: sudo dmidecode -s system-version Número de serie del equipo: sudo dmidecode -s system-serial-number SKU (Stock Keeping Unit) ó P/N (Part Number) del producto: sudo dmidecode | grep -i sku Más información detallada: sudo dmidecode ==== Información del procesador ==== Mostrar el nombre del fabricante, modelo, y velocidad: grep 'vendor_id' /proc/cpuinfo ; grep 'model name' /proc/cpuinfo ; grep 'cpu MHz' /proc/cpuinfo Mostrar la arquitectura (32 o 64 bits): sudo lshw -C CPU | grep width Nota: El paquete lshw no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación. Mostrar el tipo de máquina: uname -m Mostrar si el procesador soporta “Extensiones de Virtualización” (Intel-VT ó AMD-V), las cuales se activan desde la configuración de BIOS del equipo: Si el procesador es Intel, se necesita saber si aparece el valor “vmx”: grep -i vmx /proc/cpuinfo Si el procesador es AMD, se necesita saber si aparece el valor “svm”: grep -i svm /proc/cpuinfo ==== Información de la batería ==== acpi -bi ó acpitool -B Nota: el comando acpitool no se encuentra instalado de forma predeterminada. ==== Memoria RAM y partición SWAP ==== Mostrar el total de memoria RAM y la partición swap (cambiar el último parámetro por: -b = Bytes, -k = Kilobytes, -m = Megabytes, -g = Gigabytes, según convenga): free -o -m y otra forma de hacerlo es así: grep 'MemTotal' /proc/meminfo; grep 'SwapTotal' /proc/meminfo Para mostrar en qué partición (y el tamaño) está el swap: sudo swapon -s ==== Kernel ==== Mostrar el nombre y versión del kernel: uname -sr ==== Shell ==== Mostrar el shell en uso: echo $SHELL ==== Distribución ==== Mostrar el nombre, versión y nombre clave de la distribución: lsb_release -idc ==== Entorno del usuario ==== Nombre del usuario actual: echo $USER Nombre del equipo: echo $HOSTNAME Directorio base del usuario actual: echo $HOME Directorio de trabajo actual: echo $PWD o pwd ==== Hardware ==== Listar los dispositivos PCI / PCIe lspci Listar todos los dispositivos PCMCIA /sbin/lspcmcia Listar todos los dispositivos USB: lsusb Listar todos los dispositivos detectados como SCSI: lsscsi Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación. Módulos que se han indicado al kernel que cargue durante el arranque: cat /etc/modules Listar todos los módulos que cargó el sistema: lsmod | less Listar el hardware (información resumida): sudo lshw -short Listar el hardware (información extensa): sudo lshw | less Nota: El paquete lshw no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación. ==== Medios de almacenamiento y arranque ==== Listar las particiones en los medios de almacenamiento: sudo fdisk -l Conocer el espacio usado y disponible en las particiones: df -h Conocer en qué partición (y el tamaño) está swap: sudo swapon -s Mostrar las entradas registradas para el gestor de arranque GRUB “Legacy” (hasta la versión 0.97): sudo grep -i title /boot/grub/menu.lst | grep "#" -v Mostrar las entradas registradas para el gestor de arranque GRUB 2: sudo grep -i menuentry /boot/grub/grub.cfg | grep "#" -v Mostrar la tabla de particiones (File System TABle) que el sistema monta automáticamente durante el arranque: less /etc/fstab Mostrar el valor UUID (Universally Unique IDentifier) de todas las particiones: sudo blkid ==== Redes ==== Listar los dispositivos de red alámbricos PCI: lspci | grep -i ethernet Listar los dispositivos de red inalámbricos PCI: lspci | grep -i network Listar los dispositivos de red USB: lsusb | grep -i ethernet ; lsusb | grep -i network Mostrar los módulos cargados por el sistema, para controlar tarjetas de red inalámbricas: lsmod | grep iwl Mostrar información del controlador usado por un dispositivo de red específico (se debe sustituir la palabra interfaz por el nombre lógico de la tarjeta de red, por ejemplo eth0, wlan0, ath0, etc.): sudo ethtool -i interfaz Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación. Configuración de las tarjetas de red y sus direcciones IP asignadas: cat /etc/network/interfaces Resolución de Nombres de Dominio: cat /etc/resolv.conf Mostrar el contenido del archivo HOSTS: cat /etc/hosts Nombre del equipo, tal y como se verá en la red local: cat /etc/hostname ó grep 127.0.1.1 /etc/hosts ó echo $HOSTNAME Direcciones IP locales de las tarjetas de red alámbricas (resumen): /sbin/ifconfig | grep -i direc | grep -i bcast si el sistema está en inglés se usa: /sbin/ifconfig | grep -i addr | grep -i bcast Direcciones IP locales de las tarjetas de red alámbricas (detalle): /sbin/ifconfig Direcciones IP locales de las tarjetas de red inalámbricas (resumen): /sbin/iwconfig | grep -i direc | grep -i bcast si el sistema está en inglés se usa: /sbin/iwconfig | grep -i addr | grep -i bcast Direcciones IP locales de las tarjetas de red inalámbricas (detalle): /sbin/iwconfig Mostrar la tabla de enrutamiento: sudo route -n Para conocer la dirección IP pública (externa): curl ip.appspot.com ==== Repositorios / actualización del sistema ==== Visualizar el contenido del archivo sources.list, el cual contiene las direcciones de los repositorios: less /etc/apt/sources.list ==== Video ==== Listar las tarjetas de vídeo (PCI / PCIe): lspci | grep -i vga Para determinar si el equipo soporta aceleración de gráficos es necesario que esté instalado el paquete de herramientas mesa-utils. Dicho paquete contiene el comando glxinfo: glxinfo | grep -i render Para calcular los FPS (frames per second) se ejecuta el siguiente comando: timeout 60 glxgears El cual mostrará durante 60 segundos (con la ayuda del comando timeout) una ventana pequeña con una animación de 3 engranajes, mientras que al mismo tiempo en la ventana de la terminal se mostrarán los valores promedios de fotogramas por segundo (FPS, frames per second): Ejemplo del desempeño gráfico de un sistema: 338 frames in 5.4 seconds = 62.225 FPS\\ 280 frames in 5.1 seconds = 55.343 FPS\\ 280 frames in 5.2 seconds = 54.179 FPS\\ 280 frames in 5.2 seconds = 53.830 FPS\\ 280 frames in 5.3 seconds = 53.211 FPS\\ 338 frames in 5.4 seconds = 62.225 FPS\\ 280 frames in 5.1 seconds = 55.343 FPS\\ 280 frames in 5.2 seconds = 54.179 FPS\\ 280 frames in 5.2 seconds = 53.830 FPS\\ 280 frames in 5.3 seconds = 53.211 FPS Ejemplo de un mejor desempeño gráfico en otro sistema: 2340 frames in 5.0 seconds = 467.986 FPS\\ 2400 frames in 5.0 seconds = 479.886 FPS\\ 2080 frames in 5.0 seconds = 415.981 FPS\\ 2142 frames in 5.0 seconds = 428.346 FPS\\ 2442 frames in 5.0 seconds = 488.181 FPS\\ 2295 frames in 5.0 seconds = 458.847 FPS\\ 2298 frames in 5.0 seconds = 459.481 FPS\\ 2416 frames in 5.0 seconds = 483.141 FPS\\ 2209 frames in 5.0 seconds = 441.624 FPS\\ 2437 frames in 5.0 seconds = 487.332 FPS Para mostrar la configuración actual del servidor X (X Window System): less /etc/X11/xorg.conf Para conocer la resolución actual (anchura x altura) y frecuencia de barrido (MHz): xrandr | grep '*' Para conocer todas las resoluciones que la configuración actual soporta: xrandr Para mostrar las cámaras web (USB): lsusb | grep -i camera El siguiente ejemplo muestra el resultado de 2 cámaras web conectadas a un mismo equipo: Bus 001 Device 003: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera\\ Bus 002 Device 004: ID 0ac8:3420 Z-Star Microelectronics Corp. Venus USB2.0 Camera\\ Las cámaras web se “montan” en orden consecutivo en la ruta /dev/ : Bus 001 —> /dev/video0\\ Bus 002 —> /dev/video1\\ Bus 003 —> /dev/video2\\ […]\\ Para comprobar que las cámaras web se han “montado” en su ruta correspondiente: ls /dev/video* -lh ==== Audio ==== Listar hardware de audio: lspci | grep -i audio ó sudo lshw | grep -i audio | grep product Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación. Listar los dispositivos de reproducción de audio: aplay -l | grep -i tarjeta si el sistema está en inglés entonces se usa: aplay -l | grep -i card Listar todos los módulos que cargó el sistema, para ser usados por los dispositivos de sonido: lsmod | grep -i snd Las siguientes son pruebas para verificar si los altavoces están correctamente conectados y distribuidos. Los altavoces deben estar encendidos y durante la prueba se puede ajustar el volumen, cables, y disposición. Cada prueba emite un sonido en un ciclo, y se repite 2 veces más: Si el sistema de sonido es de 1 canal (monoaural): speaker-test -l 3 -t sine -c 1 Si el sistema de sonido es de 2 canales (stereo): speaker-test -l 3 -t sine -c 2 Si el sistema de sonido es de 5.1 canales (surround): speaker-test -l 3 -t sine -c 6 ==== Registros (logs) ==== Visualizar las 30 últimas líneas del buffer del kernel: dmesg | tail -30 Visualizar todo el buffer del kernel: dmesg | less Los registros del servidor X dan información útil sobre la configuración actual del mismo, y sobre la tarjeta de video: cd /var/log/ ls Xorg* -hl ello mostrará todos los archivos de registros del servidor X, siendo el archivo Xorg.0.log el más reciente. Para ver los mensajes de error (errors) y mensajes de advertencia (warnings): grep -E "(WW)|(EE)" Xorg.0.log | grep -v unknown Si se desea ver toda la información del registro: less Xorg.0.log Si se desea ver el contenido de algún registro anterior al actual sólo basta sustituir el nombre de archivo Xorg.0.log por el nombre del archivo que se desee visualizar. Para visualizar el registro de arranque (boot) es necesario activarlo primeramente. Se debe abrir el archivo /etc/default/bootlogd y sustituir el valor no por yes, quedando así: # Run bootlogd at startup ? BOOTLOGD_ENABLE=yes Durante el próximo inicio del sistema se generará el archivo /var/log/boot el cual ya podrá ser revisado: sudo less /var/log/boot Los registros anteriores de arranque pueden visualizarse con: sudo ls /var/log/boot* -hl y consultarse como ya se ha mostrado. Para ver otros registros: La mayoría de los registros (logs) del sistema se encuentran en el directorio /var/log/, así como también en varios subdirectorios, por lo tanto sólo basta entrar a dicho directorio y realizar un listado para conocerlos: cd /var/log/ ls -hl ==== Otras formas de conocer el sistema ==== Aunque existen también herramientas gráficas que permiten conocer el sistema, es posible que el ambiente gráfico no funcione, por ello el uso de la terminal es indispensable. Algunas de las herramientas gráficas más conocidas son hardinfo y sysinfo, y para instalarlas desde la terminal basta con ejecutar: sudo aptitude install hardinfo sysinfo Nota: hardinfo aparece como System Profiler and Benchmark, y sysinfo aparece con el nombre Sysinfo.