10 comandos imprescindibles para Linux

Someone in time

Bovino Milenario
#1
En vista de que he visto varios post con algunos comandos útiles, quise postear este artículo que me encontré por ahí y que tiene comandos realmente imprescindibles y de uso diario, personalmente yo agregaría otros más pero bueno esto es muy dado a la subjetividad del autor, espero que les guste...:vientos:
_________________________________________________________________

# 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:

Código:
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 -i emesene con lo que podríamos ver algo como esto:
steven 1988 1.2 2.3 130472 47624 ? Sl 07:36 2:23 python /usr/share/emesene/Controller.py
steven 2745 0.0 0.0 3336 880 pts/0 S+ 10:42 0:00 grep --color=auto -i emesene
...el flag "-i" significa que no hará distinción entre mayúsculas y minúsculas...

Ahora sabemos, el PID del comando de Emesene en ejecución.

Sin embargo hay algo con lo que debemos tener cuidado cuando ejecutamos el comando "grep" junto con ps, y es que grep nos dará a la vez el comando que está corriendo así como una salida propia que crea el comando grep. Por ejemplo, pongamos un nombre de un proceso absurdo como "nalgas", si corremos el comando:
Código:
ps -ef | grep -i nalgas
Nos dará el siguiente resultado:
steven 7548 30480 0 10:49 pts/0 00:00:00 grep --color=auto -i nalgas
Si nosotros nos fijamos si hay un proceso llamado "nalgas" corriendo pero es el mismo enviado por grep, para evitar esta línea podemos agregar el comando "grep -v grep" que sirve para eliminar la salida del propio grep y así estar totalemnet seguros de cuales son los procesos con un determinado nombre que están corriendo. Por ejemplo, quiero buscar en "ps" todos los comandos que tengan "firefox" dentro de su contenido deberíamos correr un comando algo así:
Código:
ps -ef | grep -v grep | grep -i firefox
El cual nos daría un resultado algo así:
steven 23991 0.0 0.0 1828 560 ? S 08:08 0:00 /bin/sh /usr/lib/firefox-3.6.8/firefox
steven 23996 0.0 0.0 1828 568 ? S 08:08 0:00 /bin/sh /usr/lib/firefox-3.6.8/run-mozilla.sh /usr/lib/firefox-3.6.8/firefox-bin
steven 24000 7.1 6.6 446436 137184 ? Sl 08:08 10:52 /usr/lib/firefox-3.6.8/firefox-bin
steven 24036 4.0 3.4 271044 70376 ? Sl 08:08 6:10 /usr/lib/firefox-3.6.8/plugin-container /usr/lib/flashplugin-installer/libflashplayer.so 24000 plugin
De esta forma podemos estar seguros que todos los procesos que aparecen en la lista son los correctos...

Otro comando que puede llegarnos a ser de gran utilidad es egrep, el cual es familia de grep pero este puede darnos el resultado de varias palabras clave y se debe utilizar de la siguiente forma: egrep "palabra1|palabra2|palabra3"...
Por ejemplo, podemos utilizarlo con un cat a nuestro syslog de todo lo que contenga CPU, que y todo lo que este conectado a nuestro PCI además de los eventos en ETH0 de la siguiente forma:
Código:
cat /var/log/syslog | egrep -i "cpu|pci|eth0"
El resultado será algo así, (obviamente es solo una muestra):
Aug 6 07:36:16 steven-desktop avahi-daemon[885]: Registering new address record for 192.168.0.100 on eth0.IPv4.
Aug 6 07:36:16 steven-desktop named[1103]: found 2 CPUs, using 2 worker threads
Aug 6 07:36:16 steven-desktop named[1103]: listening on IPv4 interface eth0, 192.168.0.100#53
Aug 6 07:36:17 steven-desktop dhcpd: No subnet declaration for eth0 (192.168.0.100).
Aug 6 07:36:17 steven-desktop dhcpd: ** Ignoring requests on eth0. If this is not what
Aug 6 07:36:17 steven-desktop dhcpd: to which interface eth0 is attached. **
Aug 6 07:36:18 steven-desktop kernel: [ 19.878353] CPU0 attaching NULL sched-domain.
Aug 6 07:36:18 steven-desktop kernel: [ 19.878359] CPU1 attaching NULL sched-domain.
Aug 6 07:36:18 steven-desktop kernel: [ 19.901282] CPU0 attaching sched-domain:
Aug 6 07:36:18 steven-desktop kernel: [ 19.901294] CPU1 attaching sched-domain:
Aug 6 07:36:23 steven-desktop kernel: [ 24.860006] eth0: no IPv6 routers present
Aug 6 07:58:06 steven-desktop NetworkManager: SCPlugin-Ifupdown: devices added (path: /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-6/1-6:3.8/net/usb0, iface: usb0)
Nota: Estos ejemplos de uso de grep y egrep los he actualizado a petición de un usuario espero que les sirva... :vientos:

# 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.
_____________________________________________________________________
Fuente

PD. La traducción es mía cualquier metida de patas es mi culpa, si hay que corregir me avisan...
:vientos:
 
#6
Requetepadre manito, jajajaja. No en serio, como usuario novel de linux (desde Ubuntu 8.04), muchas veces no reparamos en las gloriosas ventajas de utilizar una buena terminal en vez del modo gráfico. Curiosamente los ubunteros, somos los menos duchos en cuanto a línea de comandos se refiere, pero bueno, creo que Ubuntu es el paso hacia una distro más elegante y sencilla (quizá Arch). Pero de todas maneras, creo que en el momento en que nos aproximamos más al conocimiento de nuestro ordenador y de que existe algo diferente a windows, pues somos cada vez más libres.
 
#11
orale!! estoy más de este lado que de su lado... pues me he dado una embarradita de lo mucho que se puede hacer desde la consola.... del top10, sinceramente no conocía el 80% y se ve que son bien útiles, espero que a corto plazo ya esté al tú por tú fogueándome con la consola y explotando al máximo el hardware de mi notebook con mi linux!!!


:vientos:muchas gracias hermano!!!:vientos:,


cada día aprendo muchas cosas nuevas sobre linux.... y lo que falta aprender jeje...........:metal:
 

Someone in time

Bovino Milenario
#12
orale!! estoy más de este lado que de su lado... pues me he dado una embarradita de lo mucho que se puede hacer desde la consola.... del top10, sinceramente no conocía el 80% y se ve que son bien útiles, espero que a corto plazo ya esté al tú por tú fogueándome con la consola y explotando al máximo el hardware de mi notebook con mi linux!!!


:vientos:muchas gracias hermano!!!:vientos:,


cada día aprendo muchas cosas nuevas sobre linux.... y lo que falta aprender jeje...........:metal:
Que bueno que el post te ha servido para aprender...

Que les parece han revivido varios de mis posts de hace meses.. ojala que no me acusen de bumping... jejejeje... :vientos:
 
#17
Hey amigo no te hiso falta uno que al menos para mi es importante, por que dejo la compu encendida y quiero que se apague a determinada hora..

No voy a comentar algo indispensable, pero seguramente algunos no conocerán alguna de estas diferentes formas para apagar el sistema.

Para apagar el sistema tenemos tres comandos distintos (halt, poweroff y shutdown), el tercero bastante configurable.

sudo halt

sudo poweroff

shutdown
tiene distintas opciones, por ejemplo podemos decirle que lo apague ahora mismo:

sudo shutdown -h

sudo shutdown -x

Siendo x el número de minutos que tiene que esperar para apagarlo, por ejemplo en 5 minutos:

sudo shutdown -h +5

También podemos decirle que se apague a una hora determinada (reloj en sistema de 24 horas, es decir, de 0 a 23), por ejemplo a las 22:30:

sudo shutdown -h 22:30

Para reiniciar el sistema tenemos dos: reboot y de nuevo shutdown, con todas las opciones mencionadas antes sólo que en lugar de usar el argumento -h (de halt), usaremos el -r (de reboot). Manteniendo los mismos ejemplos de antes:

sudo reboot

sudo shutdown -r now

sudo shutdown -r +5

sudo shutdown -r 22:30


Estos comandos son imprescindibles a la hora de gestionar un ordenador remotamente por SSH para reiniciar o apagar la máquina. También podemos jugar a programar el propio ordenador para que se apague o reinicie cuando queramos sin que hagamos uso de las tareas programadas (crones).

Creo que es todo :D

Fuente: http://tuxpepino.wordpress.com/2008/01/17/tip-distintas-formas-de-apagar-o-reiniciar-ubuntu/
 

Someone in time

Bovino Milenario
#19
Hey amigo no te hiso falta uno que al menos para mi es importante, por que dejo la compu encendida y quiero que se apague a determinada hora..

No voy a comentar algo indispensable, pero seguramente algunos no conocerán alguna de estas diferentes formas para apagar el sistema.

Para apagar el sistema tenemos tres comandos distintos (halt, poweroff y shutdown), el tercero bastante configurable.

sudo halt

sudo poweroff

shutdown
tiene distintas opciones, por ejemplo podemos decirle que lo apague ahora mismo:

sudo shutdown -h

sudo shutdown -x

Siendo x el número de minutos que tiene que esperar para apagarlo, por ejemplo en 5 minutos:

sudo shutdown -h +5

También podemos decirle que se apague a una hora determinada (reloj en sistema de 24 horas, es decir, de 0 a 23), por ejemplo a las 22:30:

sudo shutdown -h 22:30

Para reiniciar el sistema tenemos dos: reboot y de nuevo shutdown, con todas las opciones mencionadas antes sólo que en lugar de usar el argumento -h (de halt), usaremos el -r (de reboot). Manteniendo los mismos ejemplos de antes:

sudo reboot

sudo shutdown -r now

sudo shutdown -r +5

sudo shutdown -r 22:30


Estos comandos son imprescindibles a la hora de gestionar un ordenador remotamente por SSH para reiniciar o apagar la máquina. También podemos jugar a programar el propio ordenador para que se apague o reinicie cuando queramos sin que hagamos uso de las tareas programadas (crones).

Creo que es todo :D

Fuente: http://tuxpepino.wordpress.com/2008/01/17/tip-distintas-formas-de-apagar-o-reiniciar-ubuntu/
Yo también soy fan de la terminal pero para este tipo de cosas hay programas con GUI específicamente para esos asuntos...
Por esa razón hay muchos comandos que no incluí en el post justamente por que tiene un programa con interfaz gráfica que hacen exactamente lo mismo... En este caso que mencionas lo de reiniciar y apagar yo usaría en primer lugar el cron...
 
Arriba