Sigue a Genbeta

No hagáis rm -rf /* nunca. En serio.


No ejecutéis nunca sudo rm -rf /*, qu os quedáis sin disco duro. La imagen es una modificación del comando.

Ayer os dábamos una lista de trucos básicos para manejaros con la terminal. Hoy os traemos la segunda parte de este artículo con unos trucos algo más avanzados para los intrépidos de Linux, esos usuarios a los que les gusta curiosear todo lo que tienen entre sus manos.

Cómo redirigir la salida de un comando a un archivo o a otro comando (grep)

A veces necesitaréis redirigir la salida que os dé un comando a, por ejemplo, un archivo. La solución es muy fácil. Después del comando tenéis que añadir > nombrefichero y, en vez de aparecer en pantalla, la salida del comando se guardará en el archivo nombrefichero.

También podéis redirigir la salida de un comando a otro, a través de la tubería o “pipe”. Es tan sencillo como poner comando1 | comando2 y el comando 2 leerá la salida de comando1. Esto suele ser muy útil para filtrar la salida a través del comando grep. Por ejemplo, si un comando os da una salida inmensa y sólo os interesan las líneas que contengan la palabra “abdef”, ejecutando comando1 | grep abdef sólo veréis las líneas que os interesan.

Esta tubería también puede resultar útil si queréis ver la salida de un comando a la vez que se guarda en un archivo. Usando | tee archivo guardaréis la salida en archivo a la vez que la veis en la terminal.

Arriba, abajo, arriba… Conectando y desconectando la conexión a Internet

“Reinícialo e igual funciona” es uno de los máximos postulados de la informática. Cómo no, las conexiones de red tampoco se salvan, así que aquí tenéis los comandos necesarios para conectar y desconectar las interfaces de red: ifup y ifdown respectivamente.

Tenéis que elegir qué interfaz conectáis o desconectáis poniendo su nombre después del comando (eth0 para la de red y wlan0 para la wifi suelen ser lo común), o bien ir a lo bestia y elegir todas con el argumento -a. También tenéis que acordaros de ejecutarlo con permisos de administrador.

Montando y desmontando discos

En Linux, para acceder a los discos primero hay que montarlos. Para ello se usa el comando mount disco puntodemontaje con permisos de administrador. El punto de montaje es un directorio que debe de existir antes de montar el disco.

Si no sabéis que disco montar siempre podéis ver qué particiones tenéis en vuestro sistema con el comando cat /proc/partitions, que os da el nombre de cada uno de los discos o particiones.

Para desmontar el disco, simplemente tenéis que ejecutar umount seguido del nombre de disco o del punto de montaje y con permisos de administrador.

Permisos de administrador: sudo y su

Seguramente habéis leído en algún sitio el comando sudo. Por si no lo sabíais, este comando nos permite ejecutar un comando con permisos de superusuario o root. Es decir, que prácticamente podemos hacer lo que queramos, porque los permisos no nos lo van a impedir.

Sudo sirve para un único comando. Aunque no es recomendable, podéis usar su o sudo -i (según la distribución) para entrar en modo root permanente. Suele ser útil cuando nos acabamos de cargar el sistema y tenemos que hacer reparaciones bestias, y el modo root permanente es más cómodo que estar tecleando sudo todo el rato.

Abriendo la consola cuando el sistema gráfico no responde

Como decía antes, la terminal de Linux nos puede salvar de un apuro. Si se nos ha colgado el sistema gráfico y la combinación Control+Alt+Backspace no funciona, podemos reiniciarlo gracias a la consola.

El truco está en las consolas virtuales de Linux. Pulsando Control+Alt y una tecla de función accederéis a una terminal. Desde ahí podéis entrar con vuestro usuario y contraseña y tratar de resolver el problema. Por ejemplo, podéis guardar algunos archivos que no hubiéseis guardado o cerrar el programa que creéis que está bloqueando el sistema. También podéis reiniciar el entorno gráfico matando el proceso X.org (killall Xorg) y volviéndolo a iniciar con kdm o gdm según estéis en KDE o GNOME.

Compilando programas

Alguna vez os tocará. Un programa antiguo, no empaquetado para vuestra distribución… Tarde o temprano tendréis en vuestras manos un montón de archivos de código que tendréis que compilar para hacer funcionar el programa. Tranquilos, no os asustéis. Esto es tan fácil como ejecutar tres comandos en la terminal (normalmente).

Los comandos suelen ser ./configure && make && sudo make install. Así de sencillo. Aun así no os fiéis de esto y leed siempre el archivo INSTALL que viene en el código y que os dice cómo compilar el código.

¿Quién está usando ese archivo?

Muchas veces os habréis encontrado con que no podéis borrar un archivo porque hay otro proceso utilizándolo. Para saber quién es el intruso podéis usar el comando fuser archivo, que os mostrará los PID de los procesos que están usando un archivo.

Además, fuser tiene una opción interesante y útil. Si antes del nombre del archivo añadís el argumento -k automáticamente matará a todos los procesos usando ese archivo.

Sustituyendo valores en los comandos

Seguimos avanzando en el uso de la consola. Esta vez vamos a ver cómo sustituir cadenas en los comandos. Por ejemplo, si queréis pasar como argumento a un comando la salida de un comando.

Eso es tan fácil como usar $( comando ), que queda sustituido por la salida de comando. Veámoslo en la práctica. El comando pwd nos da el directorio actual de trabajo. Queremos copiar un archivo al directorio de trabajo. Entonces la solución sería ejecutar cp rutaarchivo $( pwd ). Al ejecutarlo, la cadena $( pwd ) se sustituye por el directorio actual (es sólo un ejemplo ilustrativo de cómo funciona, aquí lo fácil sería poner ./ en vez de $( pwd ) para copiar al directorio actual).

También podéis sustituir por variables. En la terminal BASH, las variables se denotan por $nombre, y al ejecutar un comando se sustituyen por el valor que contienen. Por ejemplo, si ejecutáis echo $HOME os aparecerá en pantalla el directorio de vuestra home.

Hoja resumen de lo que hemos visto

Por si os habéis perdido en alguna explicación, y por sugerencia de varios usuarios, incluyo una pequeña tabla con todos los comandos de los que os he hablado y su funcionamiento:

Chuleta terminal.

También la tenéis alojada en Google Docs.

Y hasta aquí llega este artículo. Como siempre, si tenéis cualquier duda o sugerencia que queráis ver en otro artículo podéis usar los comentarios, o también nuestra sección Genbeta Respuestas.

Los comentarios se han cerrado

Ordenar por:

47 comentarios