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

miércoles, 11 de junio de 2014

Sistema de directorios

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

En esta entrada se van a describir los directorios más importante de Linux, sus funciones y objeto dentro del entramado del sistema. Tengamos en cuenta que todo parte del directorio raíz representado por el símbolo / , que viene a ser como el disco C:/ de los sistemas Windows. Y recordemos a la hora de teclearlos que GNU/Linux distingue entre mayúsculas y minúsculas.

/bin
Contiene los ficheros ejecutables (denominados binarios) esenciales del sistema. También alberga vínculos simbólicos (hablamos de ellos aquí) de archivos binarios que están en otro directorio. A cada comando u orden le corresponde un binario, como pueden ser cat, chmod, cp, date, echo, kill, mkdir, rmdir y muchísimos más.

/boot
Aquí están los archivos que usa el sistema en el proceso de arranque, incluida la imagen binaria del kernel de Linux, que suele denominarse vmlinux o vmlinuz seguido por la versión y la edición.

/dev
Aquí se almacenan los controladores (en Linux denominados módulos) que permiten el acceso a los periféricos habituales del PC como el ratón, el DVD, la impresora o el teclado.

/var
Contiene información diversa generada tanto por el sistema como por los usuarios. Alberga algunos subdirectorios que hay que destacar:

  • /var/lock

Aloja los archivos de bloqueo que comunican al sistema que alguna aplicación no puede acceder a un dispositivo en concreto.

  • /var/log

Almacena los registros detallados de toda actividad desarrollada durante la sesión de trabajo.

  • /var/spool

Contiene la información lista para ser enviada, como pueden ser trabajos de impresión o correos electrónicos.

/lib
Alberga las librerías usadas por diferentes aplicaciones, evitando así que cada programa incluya las suyas propias y se produzca una redundancia de datos. Tiene especial importancia el directorio /lib/modules que contiene los módulos cargables del kernel.

/etc
Contiene los archivos de configuración del sistema, que en principio solo son accesibles para el administrador del sistema o root, pero en la práctica el usuario medio tiene permiso de lectura para casi todos sus archivos. Aquí encontraremos archivos de configuración de diferente relevancia como passwd, lilo.conf, hosts y skel entre otros.

/home
Aquí encontramos la estructura de directorios de cada usuario dentro del sistema y cada uno tendrá la suya propia. Es recomendable guardar este directorio en una partición aparte al diseñar el sistema de particionado para evitar pérdidas de datos irreparables.

/sbin
Contiene los binarios correspondientes a los comandos esenciales del administrador del sistema. Dicho administrador será quien los use habitualmente.

/usr
Almacena las aplicaciones y recursos disponibles para los usuarios dentro de nuestro sistema, Hay que destacar los siguientes subdirectorios:

  • /usr/bin

Contiene la mayoría de programas y comandos de los que puede disponer el usuario.

  • /usr/share

Contiene datos compartidos, independientes de la máquina en la que nos encontremos, como la documentación de los programas o imágenes de escritorio.

  • /usr/doc

Contiene documentación de herramientas tales como GNOME o el compilador gcc.

  • /usr/games

Aquí hay ejecutables de juegos y software educativo.

  • /usr/include

Alberga archivos de encabezados de C/C++ y directorios que contienen ciertos archivos de encabezados específicos, necesarios para escribir aplicaciones de red y del sistema.

  • usr/local

Aquí tenemos software y datos instalados localmente por el administrador del sistema con vistas a ser compartidos por otros ordenadores.

/tmp
Directorio tamporal normalmente usado por las aplicaciones para almacenar algunos ficheros en tiempo de ejecución. El sistema lo vacía periódicamente.

/opt
Este directorio sirve para instalar paquetes de software adicionales que pueden ser instalados por los usuarios.

/root
Suele ser el directorio inicial de la cuenta del superusuario o root, por lo tanto tiene el acceso protegido frente al resto de usuarios.

/lost+found
Contiene los archivos del sistema que no están asociados a ningún directorio y que pueden ser encontrados mediante la herramienta fsck (comprobación del sistema de archivos). Los administradores los emplean, básicamente, para comprobar los sistemas de archivos.

/mnt
Es utilizado por los administradores para montar temporalmente sistemas de archivos a través de la orden mount. Suele contener montajes como el del lector de CD o DVD y de los discos duros. Al montar un dispositivo se crea un nuevo directorio al que se puede acceder como a cualquier otro, permitiéndonos explorar su contenido.

/media
Contiene una estructura de directorios pertenecientes a cada uno de los dispositivos que montemos en nuestro sistema. Por cada unidad CD/DVD o memoria USB que instalemos en el sistema se irán sucediendo subdirectorios del tipo /media/cdrom0 (la primera unidad de CD), /media/usbdisk (la primera memoria USB), y así todo.

Y como hemos hablado del sistema, terminamos con un vídeo de los hard-rockeros alternativos System Of A Down llamado "Chop suey".



jueves, 7 de noviembre de 2013

Obtener información del sistema

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Hay ocasiones en que es útil o necesario conocer determinados aspectos de nuestra máquina, ya sean detalles técnicos (modelo de tarjeta de red, p.e.) o eminentemente prácticos (espacio libre en disco). En esta entrada vamos a contemplar comandos para terminal que nos van a proporcionar este tipo de información.

arch
Comando que muestra la arquitectura del PC (el procesador). En mi caso el dato obtenido es i686, que se refiere al modelo Pentium PRO o Pentium II de Intel.

df
Comando para comprobar el espacio libre en disco duro (en bloques).
df -h: se muestra la misma información pero en unidades estándar (megas, gigas...)
top
Sirve para visualizar los procesos en ejecución en tiempo real.

free
Muestra la cantidad de memoria libre y usada que tenemos.

uname
Nos sirve para conocer la versión del kernel que tenemos instalada.
uname -a: visualiza toda la información que proporciona este comando de una sola vez.
dmidecode
Herramienta que permite conocer a fondo el hardware que compone nuestro equipo, ofreciendo información acerca del fabricante del sistema, versión del BIOS, memorias, procesador y mucha otra. Este comando valdría para una sola entrada por sí solo.

lshw
Similar al anterior, ofrece un listado de especificaciones de hardware.

hostname
Muestra o establece el nombre de la máquina.
hostame [nuevo_hostname]: para establecer un nuevo hostname (solo para la sesión actual). Hablé de ello aquí.
ifconfig
Para ver los interfaces de red instalados.

iwconfig
Para ver los adaptadores de red inalámbrica (wi-fi) instalados.

lspci
Para listar los componentes instalados tipo PCI (Peripheal Component Interconnect) como tarjetas de red, de sonido o de TV.

dmesg
Lista el búffer de mensajes del kernel relativos al arranque del sistema, depuración de aplicaciones o funcionamiento del hardware.

iwlist
Obtiene información de la red inalámbrica (wi-fi)
iwlist wlan0: informa con detalle sobre las distintas redes wi-fi detectadas por la interfaz wlan0.
lshal
Ofrece información diversa sobre el hardware y el software.

lscpu
Informa sobre la arquitectura de la CPU.

lsusb
Para ver los buses y los dispositivos USB instalados.

date
Para visualizar y cambiar la fecha y la hora del sistema.
date -d 06/15/13: cambia la fecha a mes 06, día 15, año 2013.
date -s 18:21:45:  cambia la hora a las 18 horas, 21 minutos y 45 segundos.
history
Comando que lista los últimos comandos utilizados por el usuario (por defecto, los últimos 500). Cada línea de este historial recibe un número.
$ !264: ejecuta el comando correspondiente a la línea 264 del historial de comandos.
history 5: lista los últimos 5 comandos utilizados.
history c: limpia el historial de comandos.
HISTSIZE: variable ubicada en el archivo oculto /home/usuario/.bashrc donde se establece su valor (por defecto, 500). Aquí hable de las formas de cambiar el valor de una variable.
Si antecedemos un comando con un espacio no se guarda en el historial. 
Vuelvo a advertir: aquí solo dejo constancia de algunas de las opciones (y solo en determinados casos) de que disponen los comandos. Acudan a la ayuda de man, a --help (ya saben como funciona) y a Google para encontrar más información.

Hemos hablado de como obtener información del sistema, y de golpear el sistema hablaban los legendarios Yes en esta interpretación en vivo del tema "Shock to the system" allá por 1991.