
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.




Comentarios
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 ^^
interesante
¿Porqué?. No hay que temer a la consola, pero de ahí a usar más la consola que el entorno gráfico creo que es pasarse.
interesante
Esta bien conocer la terminal, ya que es la mejor forma de controlar tu sistema, sin embargo tu postura es un poco extremista.
Todo depende de tus necesidades y/o ganas de aprender. Tal vez 'Pepe' use el ordenador para conectarse a la redes sociales y a navegador, 'Juani' para trabajar y 'Pedrito' para aprender Linux. Mientras que para los dos primeros la consola es un problema, para el segundo es una bendición.
La consola es una herramienta; y como cualquier herramienta solo es usada por quien la necesita. Poco a poco, por suerte o por desgracia, la consola es menos necesaria.
De hecho, no.
Se agradecen bastante estos artículos. Un resumen muy funciona y fácil de entender :)
No conocía el comando tee. Ni siquiera me sonaba. Muy ilustrativo este artículo!
Yo lo uso bastante. Es muy útil cuando la salida de un comando es importante y muy larga, con lo que corres el riesgo de no poder leer el principio.
Si usas ">" o ">>" es más rollo porque tienes que estar abriendo el fichero, pero "tee" es perfecto.
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
interesante
sudo !!
jejeje tendrías que haber dicho que era la solución literal. ;)
Te ha caido un negativo innecesario.
Explicación aquí.
En realidad esto haria: sudo sudo comando, lo correcto si es el comando anterior seria directamente !! o el número correspondiente despues de haber comprovado el history, por ejemplo, !7, esto correspondería ejecutar el comando que en historial tiene el id 7
No, él se refiere a si lo has ejecutado anteriormente sin poner sudo y quiere ponerlo. Solo pondría dos sudos si en la anterior llamada lo había puesto también.
Cierto, fallo mío al leer mal. Positivo para ti.
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.
-- editado por última vez a las 10:26
Toda la razón del mundo. Quién no vaya a dar el paso, ni le interese, simplemente comentará alguna sandez del estilo: "esto está desfasado como msdos" o "para qué hacerlo así si con mi SO puedo hacerlo desde una ventanita" etc.
No creas, yo soy una persona que se llevó una muy mala impresión de Ubuntu, influenciado en gran medida por el uso del terminal. No encontré en su minuto información clara, y me pille en muchos casos encasillado en lugares sin salida (no se si existía otra forma de hacer las cosas, pero esas fueron las que encontré).
Ahora leo este articulo para ver y comprender a los fantasmas que me acompañaron en su minuto. Tal vez vuelva, tal vez no, pero esto hace que el tema se vea mas amigable.
PD: como dato paradojico, este post lo escribo de un laptop (no es mio) con ubuntu :p
-- editado por última vez a las 11:03
"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." No hace falta, en Gnome se inicia con Ctrl + Alt + T
Yo lo tengo puesto en Ctrl + Alt + <. El que tu has puesto me parece un poco incómodo. De esta manera es que le das hasta sin mirarlo.
Depende. Yo ahora lo miro para aprender alguno más. Por ejemplo del de hoy no conocía fuser. Pero si yo mismo hubiera visto este post unos años antes, me hubiera venido muy bien. Siempre hay alguien que entra en el mundo de linux y al que le irá bien tener esta chuleta.
Muy buen artículo, sigue así. ;)
Recomendaciones: Explicar los procesos en background comando&, fg, bg,... y sobretodooooo explicar que la tecla tabulador es nuestra amiga. :)
(SuperL) + (<) en mi caso :D
A mi me ocurrio igual... me llevé una pésima impresion y un susto inmenso con Ubuntu 7.04 gracias a la terminal, pero volví a intentar con la 9.10 y estoy definitivamente contento ahora con la 10.10
Pero no todos usan Gnome.
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.
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 ;)
Arrrrgh he caido!!! Al poner el enlace acortado no me había dado cuenta que estabas haciéndote autobombo. Aún así, buen aporte, no conocía el comando split tampoco.
Saludos!
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.
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
También puedes hacer un history con un grep (vendría a ser algo del palo)
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.
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 :)
muy buen el apunte a recuperar el entorno gráfico :)
Disculpen... alguien sabe si hay variante para cuando uno usa XFCE?
SALUDOS!
P.D.: En una ocasión entré a una terminar como root, no con permisos de su sino directamente como root y el mensaje de bienvenida era "Esta terminal tiene poderes de SuperVaca!" xD
Sería igual ya que lo de ctrl + alt + tecla de función es genérico y como display manager creo que puedes usar GDM ya que XFCE usa GTK como Gnome.
Eso no es "recuperar el entorno grafico", eso solo reinicia el servidor X y DEPENDE si lo tienes activado o no.
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
No lo hagas!!! si no tiene la opción -i el rm no pregunta. :)
No, no, no lo hagas!
Se me ocurrió para imagen del artículo modificar el comando rm para que preguntase eso, pero normalmente no lo hace. Así que si lo ejecutas tal y como aparece, te quedas sin disco.
Estaría bien que lo pusieras en el artículo, si no ya mismo veremos... "me entró un virus en el linux y me lo borró todo." :P
Tienes razón, lo acabo de poner por si acaso...
La imagen me ha recordado al mítico del c:\Windows de la Trifuerza en 4chan xD
-- editado por última vez a las 19:38
No. / no tiene nada que ver con C:\ y System32 no es todo el disco duro.
sí, pero el efecto destructor de borrar System32 en Windows es muy similar al del comando del post :-)
En que no funcione el sistema operativo si, pero hay archivos en tu disco duro, para ser especificos, sigue existiendo por completo tu usuario y archivos, practicamente es un error del sistema operativo, no de que no haya NADA en el disco, pero pues... cada quien toma los "desastres" a su manera.
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)
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.
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
Muy buenas las preguntas de la terminal... para estar completamente seguro si se desea echarse el disco duro xD
Escribir un comentario
Para hacer un comentario es necesario que te identifiques: ENTRA o conéctate con FacebookConnect