10 comandos útiles para Linux que probablemente no conocías

La cantidad de comandos y funcionalidades que tenemos disponible en la consola de Linux es tal que es probable que nunca lleguemos a dominarla completamente. En esta entrada veremos 10 comandos que puede que no conocieras y que te pueden ser de utilidad en alguna que otra ocasión.

  1. pgrep: busca procesos en ejecución basándose en el nombre u otros atributos. Para obtener el PID de todos los procesos del usuario root, por ejemplo:

    pgrep -u root

    Comparado con la forma habitual de hacerlo:

    ps -ef | egrep ‘^root ‘ | awk ‘{print $2}’

  2. pstree: muestra la lista de los procesos en ejecución en forma de árbol.
  3. bc: un pequeño intérprete para el cálculo matemático. Podemos iniciar el intérprete e introducir las operaciones, escribirlas en un archivo de texto o incluso usar una tubería y pasarlas directamente desde la línea de comandos:

    echo -e «sqrt(16)\nquit\n» | bc -q -i

  4. split: sencillo comando que, como su nombre indica, nos permite dividir un fichero en varias partes. En la siguiente orden, por ejemplo, se divide el archivo «ficherogrande» en partes de 2MB, usando como nombre para los ficheros ficherogrande_aa, ficherogrande_ab, etc:

    split -b 2m ficherogrande ficherogrande_

  5. nl: son las siglas de number of lines (número de líneas). Se utiliza, como es de esperar, para contar el número de líneas de un fichero. Útil, por ejemplo, si quieres saber cuánto te ha cundido el pasar todo el fin de semana programando.
  6. mkfifo: crea una tubería con un nombre asociado. Veamos un pequeño ejemplo. Primero creamos una tubería mi-tuberia y almacenamos el resultado de un ls en la tubería:

    mkfifo tuberia
    ls > tuberia

    Esto hará que se cree un archivo con el contenido almacenado en la tubería y que la consola permanezca bloqueada hasta que se se lea la salida de la tubería desde otra parte. Abrimos otra consola y escribimos:

    head tuberia

  7. ldd: muestra las librerías compartidas de las que depende un programa. Para el comando java del JRE/JDK, por ejemplo:

    ldd /usr/bin/java
    linux-gate.so.1 => (0xb7f8b000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7f44000)
    libjli.so => /usr/lib/jvm/java-6-sun-1.6.0.10/jre/bin/../lib/i386/jli/libjli.so (0xb7f3b000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7f36000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dd8000)
    /lib/ld-linux.so.2 (0xb7f71000)

  8. col: ¿quieres guardar la salida de una página de manual como texto plano?

    PAGER=cat
    man less | col -b > less.txt

  9. xmlwf: ¿necesitas comprobar si un archivo XML está bien formado?

    curl -s ‘http://bashcurescancer.com’ > bcc.html
    xmlwf bcc.html

  10. lsof: muestra una lista de los archivos abiertos. Recordad que en Linux también se utilizan archivos para representar cosas como directorios o sockets, por lo que es posible listar todas las conexiones TCP con algo como:

    lsof | grep TCP

Vía

21 comentarios en «10 comandos útiles para Linux que probablemente no conocías»

  1. Geniales aportes. Cuando usé Slackware había aprendido unos cuantos de los que citás, pero ya me había olvidado de casi todos por que Debian me hace muy vago 😛
    Necesitaba ldd por que el driver que controla mi módem USB es malísimo, y muchas veces corrompe lo que baja de Internet. Lo peor de todo fue cuando me pasó eso mientras actualizaba de Lenny a Squeeze. Algunas pocas librerías quedaron corruptas y provocan un SEGFAULT cuando los programas intentan utilizarlas. Con ldd y el programa que provoca el error (en mi caso falla el emesene cuando activo algunos pulgins en particular) voy a poder encontrar la maldita librería corrupta y reinstalarla. Muchas gracias

  2. Pingback: 10 comandos útiles para Linux que probablemente no conocías

  3. Pingback: 10 mandatos útiles para GNU/Linux.

  4. Pingback: 10 comandes útils per a Linux que probablement no coneixies // la tafanera

  5. eVeR, veo dificil que tus librerias esten corruptas por el driver del modem… probablemente hayas bajado los paquetes en formate .deb y en el caso de estar corrupto es imposible que se haya podido descomprimir y generar librerias corruptas. Creo yo que tu problema se encuentra en otro lado!

  6. Leandro, yo tampoco lo creía, pero parece que es así. Usé aptitude para actualizar. De vez en cuando daba un error, no mientras bajaba, sino mientras las instalaba y aptitude terminaba de golpe. Tenía que ir a el cache de apt ubicado en /var/apt/cache/archives y borrar el archivo corrupto. Después volver a iniciar aptitude. Pero muchas veces el paquete que producía el error no se volvía a instalar. Cuando terminó la actualización, muchísimos programas terminaban en SEGFAULT, incluído KDE. Reinstalando las librerías que usaban los programas comenzaban a funcionar bien. Normalmente descubría la librería dañada usando la consola que daba un error de «undefined simbol» en algún archivo específico. Buscaba a que librería estaba relacionada el archivo y la reinstalaba, y funcionaba bien. En el caso del emesene, no da info del por qué del SISFAULT, así que voy a tener que recurrir a ldd.
    Pienso que es un problema del modem por que lo hace aleatoriamente con cualquier archivo que pueda descargar, aunque la mayoría suelen funcionar bien. dmesg informa que la versión del driver es «deprecated». Y, sinceramente, no hay nada peor que el modem USB que te da Arnet

  7. Gracias! me apunto un par de ellos 🙂

    Yo conozco otros dos que posiblemente la mayoría no hayáis visto:

    El comando «rev» que le da la vuelta a una cadena de texto. Y el comando «yes» que, si lo ejecutas sin parametros ni nada, imprime siempre la letra Y.

    Al comando rev todavía no le he encontrado utilidad alguna…

  8. Siempre se agradecen artículos de este tipo 🙂

    Tan sólo una pequeña corrección, nl viene de «number lines» y se utiliza para numerar líneas, no para contarlas. Para ello se usaría «wc -l».

  9. Me ha encantado la entrada, pero no me sirve de nada la orden split… si luego no sé cómo unirlos!! Alguna ayuda?

    Mil gracias por la ayuda y por la estupenda página.

  10. Para unir me imagino que con cat y redireccionando la salida al final del primer fichero debe funcionar.
    Cada vez que veo lo que se puede hacer con scripts en linux me acuerdo de la linea de comando del DOS y posteriormente de Windows y te das cuenta de la GRAN diferencia de posibilidades entre las dos plataformas (siempre que quieras meterte en consola ;).
    Gracias por recordarnos este magnifico sistema.

  11. Pingback: 10 comandos útiles para Linux que probablemente no conocías « Un Bioinformatiquillo

  12. Pingback: 10 comandos útiles para Linux que probablemente no conocías « Solo LiNeX

  13. Pingback: Lo que leí en la semana 09/03 al 15/03 | Ubunlog

  14. Pingback: MundoGeek.net – Informática y Nuevas Tecnologías | Ann Blog

Responder a Leandro Cancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.