2 oct. 2008

Trucos basicos en Linux


  • Evitar salir de la sesión o cerrar la terminal con el comando Ctrl+D
  • set -o ignoreeof Desactiva Ctrl+D
    set +o ignoreeof Reactiva Ctrl+D

  • Matar todos los procesos de determinada aplicación:
  • Muy útil cuando un programa consume demasiados recursos. Abrimos una terminal y tecleamos ps aux c. Obtendremos una completa lista de los procesos que están funcionando. En la primera columna aparece el usuario al que pertenece cada proceso, en la segunda aparece el PID del proceso, y si saltamos hasta la última veremos el nombre de la aplicación a la que pertenece cada proceso. Para buscar la aplicación que queremos "matar" haremos ps aux c grep firefox por ejemplo, donde firefox es el nombre de la aplicación que queremos matar. Para terminar con ella solo hay que hacer kill -9 de los PID´s de los procesos que nos hayan aparecido. kill -9 3125 3245 ... Por último volvemos a hacer ps aux c grep firefox y no deberá aparecer.
  • Los alias
  • Los alias son, como su nombre indica, alias. Cuando introducimos un comando con un alias, el shell lo sustituye por su valor. Por ejemplo, si definimos un alias así: alias buscar="find . -name", cuando introduzcamos en la línea de comandos buscar nombre_archivo el shell ejecutará find . -name nombre_archivo y buscará el archivo que le digamos a partir de la ruta actual.
    Por tanto para asignar un alias:

    alias nombre_del_alias="comando_que_ejecutará_el_alias"

    Para quitar un alias se usa el comando unalias:

    unalias nombre_del_alias

    Para ver los alias definidos en el sistema teclearemos simplemente:

    alias

  • Averiguar cuanto tiempo ha tardado en ejecutarse un comando
  • En ocasiones puede resultar útil saber cuanto tiempo ha tardado en ejecutarse un comando. Para ello simplemente ejecutaremos la orden con el comando time por delante:

    [J.F.]$ time tar -cvf backup.tar *
    a 1 0K
    a 2 0K
    a 3 0K
    a back.tar.gz 1K

    real 0m0.02s
    user 0m0.02s
    sys 0m0.00s

    [J.F.]$ time ls
    1 2 3 back.tar.gz backup.tar
    real 0m0.01s
    user 0m0.00s
    sys 0m0.01s

  • Ejecución de comandos en segundo plano
  • Puede que en determinadas ocasiones necesitemos ejecutar cualquier cosa en segundo plano. Ésto resulta tremendamente útil para evitar tener
    abiertas varias terminales al mismo tiempo. Para ello ejecutaremos la orden normal pero añadiendo al final "&".

    ls -lrt &
    tar -cvf backup.tar documentos directorio &

  • Los 10 comandos que más usas en Linux
  • Para saberlos basta simplemente con ejecutar en consola la siguiente orden:

    historyawk '{print $2}'awk 'BEGIN {FS=""} {print $1}'sortuniq -csort -rnhead -10

    history muestra una lista de todos los comandos que hemos ejecutado recientemente (utilizado por bash y otras shells para mostrar el comando anterior y posterior al pulsar las teclas de flecha arriba y flecha abajo, al usar !! para ejecutar el comando anterior, etc) siendo los que tienen los números más pequeños los más antiguos. Se utiliza awk para quedarnos con el comando en sí, sin argumentos ni flags. Utiliza sort para ordenar la lista de comandos alfabéticamente. Después uniq, que dada una lista en la que tenemos n líneas idénticas sucesivas deja sólo una de las líneas, añadiendo el número de líneas iguales que había antes (flag -c) al comienzo de la línea. Se vuelve a ordenar la lista de forma que la ordenación sea por el número de veces que se ejecutó el comando, que ahora es la primera cadena de la línea (-n para que sea ordenación numérica), y de mayor a menor (-r, reversed). Por último, se utiliza head para mostrar las 10 (-10) primeras líneas.
  • Paginar la salida por pantalla de un comando
  • Muchas veces ejecutamos comandos cuya salida por pantalla es superior a la que cabe por pantalla. Cuando preveemos que el resultado por pantalla de un comando puede superar la pantalla, podemos hacer que esa salida por pantalla sea paginada, es decir, que nos la vaya mostrando poco y no nos la muestre toda de golpe.

    ls -l less
    ls -l more
    ls -l pg

    En éste ejemplo se muestra la salida del comando ls -l de forma que en caso de que sea muy grande, podamos leerla poco a sin problemas.
  • Redireccionamiento
  • > Escribe la salida en un fichero (Y borra todo lo que hubiese en ese fichero).
    >> Añade la salida al final de un fichero (No borra nada).
    Ejemplo (genera una lista ordenada del contenido de un directorio en un fichero):

    $ ls > lista
    $ sort <> lista_ordenada

    Cuando redireccionamos la salida de un comando con ">" o ">>",si por alguna razon ese comando da algun error lo va a volcar en la pantalla y no hacia donde estemos redireccionando. Para redireccionar la salida de error a un arhivo, tenemos que usar "2>" o "2>>".

    l $ ls archivo4
    ls: archivo4: No such file or directory

    $ ls archivo4 2> errores
    $ cat errores
    ls: archivo4: No such file or directory

    Tambien podemos usar la combinacion de ambos, por ejemplo:

    $ miscript > log 2> logerrores
    $ miscript &> todo_a_lmismo_log

No hay comentarios: