4 jul 2010

10 Comandos Necesarios

1. Top

Me imaginé que era apropiado poner el "top" en el "top". Aunque "top" es realmente responsable por la publicación de las tareas actualmente en ejecución, también es el primer comando al que los usuarios de Linux recurrimos cuando necesitamos saber que tanto se está usando la memoria (o incluso la cantidad de memoria que tiene el sistema). A menudo dejo la herramienta "top" funcionando en mi escritorio para poder hacer un seguimiento de lo que está pasando en todo momento. A veces, incluso abro una Terminal (por lo general aterm), coloco la ventana donde quiero, y luego oculto el borde de la ventana. Sin un borde, la Terminal no se puede mover, así que siempre tienen un acceso rápido a la información que necesitan.

Top es un sistema de informes en tiempo-real, así que, cuando haya cambios en los procesos, inmediatamente se reflejarán en la ventana de la Terminal. Top tiene algunos argumentos útiles (por ejemplo, el argumento -p, que solo hará un seguimiento "top" de los PIDs de usuarios específicos), pero ejecutándose por defecto, Top te dará toda la información que necesitas sobre las tareas en ejecución.


 2.  ln

Para muchos administradores, los enlaces son una herramienta invaluable que no sólo hacen la vida más sencilla a los usuarios, sino también reducen drásticamente el uso de espacio en disco. Si no son conscientes de cómo los vínculos puede ayudar, quisiera plantear este simple escenario: usted tiene un número de usuarios que tienen acceso a un directorio grande (lleno de archivos de gran tamaño) en una unidad de entrada y salida funcionando todo el día. Los usuarios están todos en el mismo sistema, y no deseas tener que copiar todo el directorio de cada usuario ~/directorio. En su lugar, basta con crear un enlace en cada usuario ~/directorio al target. No vas ha consumir el espacio, y los usuarios tendrán un acceso rápido. Por supuesto, cuando se expandan las unidades, tendrás que utilizar los enlaces simbólicos (symblinks). Otro uso pendiente para los enlaces es la vinculación de varios directorios en el directorio raíz de Apache doc. Esto no solo puede ahorrar espacio, es también ventajoso desde el punto de vista de seguridad.

 3. tar/zip/gzip

TAR, ZIP y gzip son herramientas archivadoras/compresoras que hacen que la vida del administrador sea mucho más fácil. Podemos integrar estas herramientas juntas porque pueden manejar tareas similares pero lo hacen con claras diferencias (pero no lo suficientemente diferentes como para justificar su propia entrada en este artículo). Sin estas herramientas, la instalación de sources sería más complicada. Sin tar/zip/gzip, la creación de copias de seguridad requerirían más espacio que a menudo podríamos no tener.

Uno de las características menos usadas (pero a menudo de las más prácticas) de estas herramientas, es la capacidad para extraer archivos individuales de un archivo. Ahora zip y gzip manejan esto con más facilidad que tar. Con tar, para extraer un único archivo, tenemos que saber el tamaño exacto del archivo a extraer. Un área en la que tar/zip/gzip facilitan la administración, es en la creación de shells scripts que automatizan el proceso de copia de seguridad. Las tres herramientas se pueden utilizar con los scripts de shell y son, sin ninguna duda, las mejores y más fiables herramientas de copia de seguridad que podemos encontrar.

4. nano, vi, emacs

No iba a colocar un solo editor de texto aquí, por temor a avivar los fuegos de la guerra "VI vs. Emacs". Para eso, pensé que lo mejor era lanzar mi editor favorito -Nano- en la mezcla. Muchas personas sostienen que estos no tienen tantos comandos como los que hay en aplicaciones completamente desarrolladas. Pero todas estas herramientas se usan en la línea de comandos, así que llamémoslos "comandos". Sin un buen editor de texto, la administración de una máquina Linux puede resultar problemática.

Imagine tener que tratar de editar /etc/fstab o /etc/samba/smb.conf con OpenOffice. Algunos podrían decir que esto no debería ser un problema, pero OpenOffice tiende a poner caracteres escondidos en finales-de-línea a archivos de texto, que realmente pueden destrozar un archivo de configuración. Para la edición de archivos de configuración o bash, la única manera de llegar, es con un editor como nano, vi o emacs.

5. Grep

Muchas personas pasan por alto esta herramienta extraordinariamente útil. Grep imprime las líneas que coincidan con un patrón especificado por el usuario. Digamos, por ejemplo, que buscamos en un archivo httpd.conf que tiene más de 1000 líneas, y estamos buscando la entrada "AccessFileName. htaccess". Podríamos navegar a través de ese archivo sólo para llegar a la entrada en la línea 439, o puede ejecutar el comando:

grep -n "AccessFileName. htaccess" /etc/httpd/conf/http.conf


 Tras la expedición de este comando se le devolverá "439: AccessFileName. Htaccess", le dice que la entrada que está buscando está en, sorpresa de todas las sorpresas, la línea 439.

El comando grep es útil también para impulsar otros comandos. Un ejemplo de esto es usar grep con el comando "ps" (que toma una instantánea de los procesos actuales en ejecución). Supongamos que usted quiere saber el PID de un fallo del navegador Firefox en ese momento. Podríamos emitir ps aux y buscar a través de todo el output la entrada de Firefox. O podríamos emitir el comando ps aux | grep firefox con lo que podríamos ver algo como esto:

jlwallen 17475 0.0 0.1 3604 1180 ? Ss 10:54 0:00 /bin/sh /home/jwallen/firefox/firefoxjlwallen 17478 0.0 0.1 3660 1276 ? S 10:54 0:00 /bin/sh /home/jlwallen/firefox/run-mozilla.sh /home/jlwallen/firefox/firefox-bin

jlwallen 17484 11.0 10.7 227504 97104 ? Sl 10:54 11:50 /home/jlwallenfirefox/firefox-bin

jlwallen 17987 0.0 0.0 3112 736 pts/0 R+ 12:42 0:00 grep --color firefox


6. Chmod

¿Alguien necesita permiso? La administración de Linux y la seguridad sería una tarea difícil sin la ayuda de chmod. Imagine que no es capaz de hacer un shell script ejecutable con chmod u+x “nombre de archivo”. Por supuesto, no se trata sólo de hacer un archivo ejecutable. Muchas herramientas de la web requieren ciertos permisos antes de que incluso se instalen. Con este fin, el comando chmod-R 666 directorio/ es un muy mal uso de este comando. Muchos usuarios nuevos, cuando se enfrentan con problemas de permisos tratando de instalar una aplicación, saltarán inmediatamente a 666 en vez de averiguar exactamente los permisos que un directorio o carpeta deberían tener.

A pesar de que esta herramienta es fundamental para la administración, debe ser estudiada antes de saltar a ciegas. Asegúrese de entender las entradas y salidas de chmod antes de utilizarla a voluntad. Recuerde w=escribir, r=leer y x=ejecutar. Asimismo, recuerda UGO o usuario, grupo y otros. UGO es una forma sencilla de recordar a quien pertenecen los permisos. Así que el permiso rw-rw-rw-significa que Usuarios, Grupos y todos los demás han de leer y escribir. Siempre es mejor mantener Otros altamente restringidos en sus permisos.

7. Dmesg

Llámenme old-school si quieren, pero siempre que conecto un dispositivo en una máquina Linux, lo primero que hago es ejecutar el comando dmesg. Este comando muestra los mensajes del buffer del Kernel. Así que, sí, esto es muy importante. Hay una gran cantidad de información que se obtiene desde el comando dmesg. Podemos descubrir la arquitectura del sistema, GPU, dispositivos de red, las opciones de arranque del kernel utilizadas, los totales de RAM, etc.

Un buen truco es situar dmesg a la cola para ver cualquier mensaje que llegue al dmesg. Para ello, escriba dmesg | tail -f y las últimas líneas de dmesg permanecerá en su terminal. Cada vez que llega una nueva entrada aparecerá en la parte inferior de la "cola". Mantenga esta ventana abierta cuando se hace pesada la administración del sistema o para el debugging del sistema.

8. kill/killall

Una de las mayores ventajas de Linux es su estabilidad. Pero esa estabilidad no siempre se refleja en las aplicaciones fuera del Kernel. Algunas aplicaciones realmente puede bloquearse. Y cuando lo hacen, queremos ser capaces de deshacernos de ellas. La forma más rápida de deshacerse de las aplicaciones que se han encerrado es con el comando kill/killall. La diferencia entre los dos comandos es que kill requiere el PID (número de identificación del proceso) y killall requiere sólo el nombre del ejecutable.

Digamos que Firefox se ha bloqueado. Para matar con el comando kill, primero tendría que localizar el PID con el comando ps aux | grep firefox. Una vez que tenemos el PID, escribimos el comando kill PID (donde PID es el realmente el número de PID). Si no deseamos ir al averiguar el PID, podríamos escribir el comando killall firefox (aunque en algunos casos se requerirá killall firefox-bin). Por supuesto, kill/killall no se aplican (ni se deben aplicar) a los demonios como Apache, Samba, etc.

9. Man

¿Cuántas veces has visto "RTFM"? Muchos dirían que es el acrónimo de “Read the F###ing* Manual” (* Esta palabra está abierta a la variación y no es adecuada para su publicación jeje). En mi opinión, significa "Lea el Manpage". Los Manpages están ahí por una razón - para ayudarle a entender cómo utilizar un comando. Los Manpages se escriben generalmente con el mismo formato, de modo que una vez que logramos la comprensión del formato, seremos capaces de leerlos (y entenderlos) todos. Sin subestimar el valor de los Manpages. Incluso no podemos captar completamente la información proporcionada, siempre podemos desplazarnos hacia abajo para averiguar lo que cada argumento del comando hace. Y la mejor parte de la utilización de Manpages es que cuando alguien dice "RTFM" le podemos decir "RTFMd".

10. mount/umount

Sin estos dos comandos, usar un dispositivos removible o agregar unidades externas no podría ocurrir. El comando mount/umount se utiliza para montar una unidad (a menudo etiquetado como /dev/sda) a un directorio en la estructura de ficheros de Linux. Tanto el montaje como el desmontaje aprovechan el archivo /etc/fstab, lo que hace el uso de mount/umount mucho más fácil. Por ejemplo, si hay una entrada en el archivo fstab/etc/ para /dev/sda1 designada como /datos, la unidad se puede montar con el comando mount /datos. Normalmente mount/umount deben tener privilegios de root (a menos que fstab tenga una entrada que permita a los usuarios estándar montar y desmontar el dispositivo). También podemos emitir el comando mount sin argumentos y podremos ver todas las unidades que actualmente están montadas y cómo están designadas (así como el tipo de sistema de archivos y los permisos).

Estos 10 comandos de Linux hacen la administración de Linux posible. Hay otros comandos útiles, así como comandos que se utilizan mucho más a menudo que estos, pero los comandos descritos aquí entran en la categoría de necesidad. No sé ustedes, pero yo no tengo un día sin utilizar al menos la mitad de ellos. ¿Tienen ustedes un comando de Linux o dos sin el que no pueden vivir? Si es así, háganoslo saber.

No hay comentarios: