TIPS/TRUCOS PARA LINUX
Los siguientes trucos se adaptan practicamente todos a cualquier versión de Linux,
puesto que la gran mayoría van dirigidos a la consola. La consola para
un usuario acostumbrado a Windows e inexperto en el mundo de Linux puede
parecer complicada, pero no cabe duda de que con el tiempo es la mejor
forma de sacarle el mayor rendimiento a Linux. Comencemos:
- Evitar salir de la sesión o cerrar la terminal con el comando Ctrl+D
- Matar todos los procesos de determinada aplicación:
- Los alias
- Averiguar cuanto tiempo ha tardado en ejecutarse un comando
- 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
- Los 10 comandos que más usas en Linux
- Paginar la salida por pantalla de un comando
- Redireccionamiento > Escribe la salida en un fichero (Y borra todo lo que hubiese en ese fichero).
set -o ignoreeof Desactiva Ctrl+D
set +o ignoreeof Reactiva Ctrl+D
set +o ignoreeof Reactiva Ctrl+D
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 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:
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
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
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
1 2 3 back.tar.gz backup.tar
real 0m0.01s
user 0m0.00s
sys 0m0.01s
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 &
tar -cvf backup.tar documentos directorio &
Para saberlos basta simplemente con ejecutar en consola la siguiente orden:
history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -rn|head -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.
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.
ls -l | more
ls -l | pg
>> 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 > lista_ordenada
$ sort < lista > 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: 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:$ cat errores
ls: archivo4: No such file or directory
$ miscript > log 2> logerrores
$ miscript &> todo_a_lmismo_log
$ miscript &> todo_a_lmismo_log
No hay comentarios:
Publicar un comentario