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

Comentarios
  1. eVeR

    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

    Responder

  2. […] 10 comandos útiles para Linux que probablemente no conocíasmundogeek.net/archivos/2009/03/10/10-comandos-utiles-para-li… por Markcial hace pocos segundos […]

    Responder

  3. […] todo. En este artículo, originalmente publicado por BASH Cures Cancer y traducido y adaptado por MundoGeek.net, se muestran 10 mandatos poco conocidos y que te pudieran ser de utilidad algún […]

    Responder

  4. […] 10 comandes útils per a Linux que probablement no coneixiesmundogeek.net/archivos/2009/03/10/10-comandos-utiles-para-li… per Nech fa pocs segons […]

    Responder

  5. Leandro

    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!

    Responder

  6. eVeR

    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

    Responder

  7. dios.. el lsof me ha salvado de mil movidas a lo largo de mi vida… 😀

    Responder

  8. juancarlospaco

    gracias, son de gran utilidad…

    Responder

  9. 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…

    Responder

  10. 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”.

    Responder

    • @Kronoss cierto, me ha traicionado la memoria. Y el no probar las cosas. 😛

      Responder

  11. Frank

    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.

    Responder

    • @Frank como dice GabrielAlf, se usa cat. Y para rizar el rizo puedes usar md5sum para comprobar el hash y ver que se han transferido correctamente 🙂

      Responder

  12. Buen aporte 🙂

    Responder

  13. GabrielAlf

    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.

    Responder

  14. David Esquivel

    Considero que el ultimo deberia ser:
    lsof -i TCP

    Responder

  15. […] 10 comandos útiles para Linux que probablemente no conocías por Paquillo Dubois Categorías: Uncategorized Tags: Consola, Ubuntu-Linux Fuente: MundoGeek […]

    Responder

  16. […] Fuente | MundoGeek […]

    Responder

  17. […] 10 comandos útiles para linux que probablemente no conocías […]

    Responder

  18. […] de los botones del teclado, o leer la guía de uso de tu computadora… por primera vez; sus 10 comandos útiles para linux que probablemente no conocías; y un post cargado de nostalgia con todos esos cacharros antiguos que todavía hoy se guardan con […]

    Responder

  19. Roach

    Hey chavales esta chido el lugar, y un dia de estos me gustaria invitarlos a pistear y comentar cosas aun mas interesantes…

    Responder

Deja un comentario