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:

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.
Ver 46 comentarios
46 comentarios
Llodra
Genial trabajo Guillermo! muy útil tanto para los que ya conocemos el mundillo linux como para los que se están iniciando ;). En serio, ojalá haya muchas entregas de este post :)
djnardo
Lo único malo de esto, es que la mayoría que leemos estos artículos somos los que ya lo solíamos usar antes.
En cambio a la gente que le iría bien no creo ni que entre en este artículo. Siempre hablo de mayoría, ya sé que no todos.
Recomiendo 100% el de crear un acceso directo de teclado para el terminal. Si eres asíduo a Linux es algo obligado de hacer justo después de instalar el sistema operativo.
Por mi parte me ha ido bien, ya que había 3 o 4 comandos que no los conocía. Gracias por el artículo.
logoff
Muy bueno, aunque un poco condensado jeje ;-). no me acordaba de fuser, que bueno. para seguir pongo mi aporta para la shell bash que es la más usada:
- configurar el archivo .bashrc es básico para tener nuestro entorno con alias, colores, atajos, variables de usuario, etc
- usar Ctrl+R y ! que le dan una potencia la terminal inacabable, sobretodo en tareas repetitivas.
s22
Lamentablemente el culpable de que la gente tenga tanto miedo a Linux es la terminal sobre todo, por otro lado lo positivo es que no hay muchos manazas por linux.
chesstercl
muy buen el apunte a recuperar el entorno gráfico :)
stranno
La imagen me ha recordado al mítico del c:\Windows de la Trifuerza en 4chan xD
fandroid2012
Muchas gracias por estas dos entradas, pues son como las omilías o el sermón de un clérigo, un evangelizador de GNU/Linux xD!
Esperando... La terminal de Linux no muerde (III)
dzenler
Excelente post creo que ayudara a comprender algunas cosas básicas al usar una distro Gnu/Linux. Por mi parte cuando inicie a usar Gnu/Linux algunas cosas no las comprendía y ahora tampoco jeje ... Es broma creo que si en verdad quieres trabajar con algún sistema operativo simplemente te metes de lleno a saber como sacarle el máximo provecho. Estos artículos nunca están de más siempre hacen falta.
Left My Dead
A entrarle al toro por los cuernos, gracias por los comandos, ya era hora de pasar del sudo app, no me sabia otro, excelente imagen
jask
Se agradecen bastante estos artículos. Un resumen muy funciona y fácil de entender :)
cibernox
No conocía el comando tee. Ni siquiera me sonaba. Muy ilustrativo este artículo!
40701
Tengo una duda:
En ocasiones ejecuto un comando y resulta que debería haberlo hecho con un sudo delante. Creo que había un comando para repetir el anterior pero con credenciales de sudo, pero no recuerdo cuál es...
gracias
un artículo muy interesante
microlinux
Muy bueno, muchas gracias, me será muy útil. De todas formas yo incluiría otro que considero muy importante, el comando "split" http://goo.gl/kUHL8
Saludos, espero haber aportado algo ;)
papilyn
tanto el actualizar e instalar programas la terminal me va de lujo.me quedo con la frase "Where there is a SHELL,there is a WAY"
saludos y excelente entrada.
49944
Una función de la terminal que me encanta es la búsqueda regresiva, Ctrl+r con la cual puedes buscar comandos introducidos anteriormente sin tener que ir buscando 1 a 1 subiendo con la flecha
individuo7
Muy bueno, no conocía fuser muy útil, imagino que el terminal de la imagen es una broma :p tengo ganas de probar el comando a ver que te dice pero no vaya a ser que no te diga nada xD
78045
Muy buenas las preguntas de la terminal... para estar completamente seguro si se desea echarse el disco duro xD
doumekxkai
Jajajaja muy buena la imagen he visto muchos trolls decir ese comando (lo peor es que algunos lo ejecutaban) Hay que usar mas el terminal y menos lo grafico, tnks por los commandos ^^