| Artículos | 01 MAR 2001

Linux

Tags: Histórico
Daniel Avila.
16- Arrancar el sistema en modo monousuario
Los sistemas UNIX y compatibles, como Linux, realizan una serie estándar de pasos para iniciar el sistema. Primero se carga el boot manager, que puede ser Lilo, el gestor de arranque de OS/2 o el BootMagic, por ejemplo. El
boot manager se encarga de cargar el kernel (base del sistema) en memoria. Una vez con el kernel en memoria se pasa el control directamente al comando /sbin/init, que es el primer comando que se ejecuta en un sistema UNIX. El proceso init carga los archivos de configuración del sistema localizados en /etc/rc.d (aunque depende de la versión) para arrancar los servicios esenciales del sistema, como la red o tareas básicas de administración, para por fin terminar de iniciar el sistema y presentar el “login” de usuario.
Existe un método para evitar el arranque normal de un Linux a través de su gestor de arranque, Lilo. Una de las opciones de este gestor es “init=”, mediante la cual podemos indicar a Lilo qué proceso arrancar en lugar del /sbin/init por defecto. Para acceder a las opciones de Lilo debemos pulsar la tecla TAB al reiniciar el sistema para que nos muestre el prompt “Lilo boot:”. Pulsando una vez más TAB vemos una lista de los núcleos disponibles en Lilo, aunque si no hemos instalado alguno adicional, el nombre será “linux”. Introducimos lo siguiente para cargar el bash en lugar del proceso init:
Lilo boot: linux init=/bin/bash
Una vez que obtengamos el prompt del shell, estaremos validados como root, por lo que podemos realizar cualquier tarea de mantenimiento. Pero antes de efectuar ningún cambio en el disco duro, lo primero que tenemos que hacer es remontar la partición raíz con las opciones de escritura activas, con el siguiente comando:
mount / -ro remount
Después podemos realizar los cambios que deseemos, sin olvidarnos de ejecutar el comando sync antes de finalizar para escribir los buffers almacenados en memoria al disco duro.

17- Uso del operador <<
En un shell de UNIX existen los llamados operadores de direccionamiento, que tienen como fin redirigir la entrada y/o salida estándar de un comando a un fichero. La mayoría de usuarios han empleado alguna vez los operadores >, >> y <, cuya misión es, respectivamente, redirigir la salida de un comando a un fichero, añadir la salida al final de un fichero y redirigir la entrada estándar a un comando.
Normalmente un comando lee la entrada estándar de un teclado hasta que se produce el final de fichero (End Of File, EOF). En la mayoría de sistemas esto se consigue pulsando la combinación CTR-D.
Con el operador << podemos simular la introducción de datos en la entrada estándar en un comando que acepte órdenes interactivas (como la mayoría de comandos del shell). Para aplicar este operador necesitamos una cadena de caracteres que vamos a usar como indicador de fin de fichero, que se escribe directamente detrás del operador. A partir de aquí todo lo que tecleemos se irá guardando en un buffer temporal, incluyendo los retornos de carro, hasta que el shell encuentre la cadena en cuestión. Entonces comenzará a procesar el comando con las líneas que hemos introducido tal y como sería interactivamente. Veámoslo con un ejemplo:

ftp –n <<_EOF
open ftp.funet.fi
user anonymous anonymous@mail.com
bin
hash
cd /pub/
dir
bye
_EOF

En el ejemplo arrancamos el software cliente ftp con la opción –n para que no pregunte la clave, y establecemos como cadena de fin de fichero _EOF. Los siguientes comandos son internos del ftp y los podemos sustituir por cualquiera que queramos, como descargar o subir archivos. Por lo tanto, con el operador << podemos construir scripts automatizados para realizar tareas frecuentes.

18- Impedir el uso de CTRL+ALT+DEL
La famosa combinación de teclas CTRL+ALT+DEL se usa para reiniciar el ordenador, tanto en MS-DOS, Windows 9x y también en Linux.
En ocasiones es necesario limitar el uso de estas teclas para evitar el reinicio innecesario de nuestro servidor Linux, sobre todo si está ejecutando algún servicio de red o algún demonio (daemon) que no debe ser reiniciado.
Para evitar que cualquier usuario tenga acceso a estas teclas, debemos modificar el fichero /etc/inittab y modificar la línea cuyo primer argumento es ca. El último argumento indica al sistema el comando a ejecutar cuando se presiona esta combinación de teclas, por defecto ejecuta la orden shutdown –t3 –r now. En nuestro caso, podemos cambiar el shutdown que hace reiniciar la máquina por el comando que nosotros deseemos, como por ejemplo un mensaje de aviso:
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
por
ca::ctrlaltdel:echo “Acceso denegado”
Con esto conseguimos, después de haber reiniciado la máquina, que al pulsar la combinación CTRL+ALT+DEL se muestre en pantalla el mensaje Acceso denegado. Para reiniciar el servidor manualmente sólo tenemos que acceder al sistema como root y teclear la orden reboot.

19- Mejorar tiempos de compilación
Si tiene un sistema multiprocesador o mucha memoria libre (256 MB o más) existe una opción en el comando make que acelerará el proceso de compilación, mediante el lanzamiento en paralelo de varias instancias del compilador así como del linker.
Para activar esta opción pasamos como argumento a make la letra j seguida del número de trabajos simultáneos que deseemos realizar, por ejemplo: make –j 5
A mayor cantidad de procesos paralelos, mayor cantidad de memoria necesitaremos. Lo mejor para saber qué número se adecua más a nuestro caso es probar diferentes valores y monitorizarlos con la utilidad top en otra consola, vigilando que el tamaño de la memoria usada no supere a la memoria física.

20- Capturar una pantalla remota de X-Window
El sistema X-Window permite el control remoto de aplicaciones mediante una comunicación cliente-servidor basada en el protocolo TCP/IP.
En ocasiones puede resultar útil capturar una pantalla de un servidor remoto para poder verla en nuestro equipo, para posteriormente guardarla o imprimirla. Para ello, el servidor debe permitir el acceso a los recursos a otros equipos en la red. Una forma fácil de hacer esto es mediante la orden: xhost +.
Una vez con permisos de acceso concedidos podemos capturar la pantalla a través del comando estándar xwd (man xwd) y mostrarla mediante su homólogo xwud, creando un PIPE entre ellos de esta forma: shell# xwd –display destino:0 | xwud –display origen:0
donde destino es la dirección IP del host que queremos capturar la pantalla y origen es la dirección del display donde queremos mostrarla. Si es el mismo en el que nos encontramos podemos evitar este parámetro. Al capturar una pantalla con xwd se produce un pitido en el ordenador afectado.

21- Iniciar varias sesiones X
En el sistema operativo Linux disponemos normalmente de 6 consolas de texto virtuales (aunque es variable de una distribución a otra) que podemos alternar con las teclas CTRL+ALT+Fn, donde F indica las teclas de función correspondiente al número n.
Estas consolas nos permiten establecer sesiones simultáneas en nuestro sistema, en las cuales podemos ejecutar comandos independientes. Al iniciar el sistema X-Window con la orden startx, se crea una nueva consola virtual en el número 7, a la cual podemos acceder con CTRL+ALT+F7 al igual que las demás.
Para poder crear más de una consola virt

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información