La terminal de Linux no muerde (II): trucos más avanzados

51 comentarios

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.

Anunciate aquí
Anunciate aquí
Anunciate aquí

¿Quieres saber más?

Artículos

Artículos relacionados que probablemente también te interesen

Ver más

Respuestas

Preguntas sobre este tema que ha contestado la comunidad

+ Deja tu comentario

Comentarios

  • 1

    Avatar de 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 ^^

  • Respondiendo a #1:
  • 23

    interesante

    Avatar de Fran !
    Fran | 2 estrellas

    ¿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.

  • Respondiendo a #1:
  • 25

    interesante

    Avatar de Antonio Guillen !

    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.

  • Respondiendo a #23:
  • 41

    !

    De hecho, no.

  • 2

    Avatar de jask !

    Se agradecen bastante estos artículos. Un resumen muy funciona y fácil de entender :)

  • 3

    Avatar de cibernox !

    No conocía el comando tee. Ni siquiera me sonaba. Muy ilustrativo este artículo!

  • Respondiendo a #3:
  • 16

    Avatar de shotokan !

    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.

  • 4

    !
    | 1 estrellas

    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

  • Respondiendo a #4:
  • 7

    interesante

    !
    | 1 estrellas

    sudo !!

  • Respondiendo a #7:
  • 15

    !

    jejeje tendrías que haber dicho que era la solución literal. ;)

    Te ha caido un negativo innecesario.

    Explicación aquí.

  • Respondiendo a #7:
  • 19

    Avatar de albandy !

    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

  • Respondiendo a #19:
  • 26

    !

    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.

  • Respondiendo a #26:
  • 27

    Avatar de albandy !

    Cierto, fallo mío al leer mal. Positivo para ti.

  • 5

    Avatar de 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.

    -- editado por última vez a las 10:26

  • Respondiendo a #5:
  • 6

    Avatar de Cassidy !

    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.

  • Respondiendo a #5:
  • 8

    Avatar de AndreZ.x !

    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

  • Respondiendo a #5:
  • 9

    Avatar de sos-fan !

    "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

  • Respondiendo a #9:
  • 10

    Avatar de djnardo !

    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.

  • Respondiendo a #5:
  • 13

    !

    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. :)

  • Respondiendo a #10:
  • 20

    Avatar de zanr !

    (SuperL) + (<) en mi caso :D

  • Respondiendo a #8:
  • 21

    Avatar de Pakirri !

    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

  • Respondiendo a #9:
  • 42

    !

    Pero no todos usan Gnome.

  • 11

    Avatar de logoff !
    logoff | 3 estrellas

    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.

  • 12

    Avatar de 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 ;)

  • Respondiendo a #12:
  • 17

    !

    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!

  • 14

    Avatar de 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.

  • 18

    !
    | 1 estrellas

    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

  • Respondiendo a #18:
  • 28

    Avatar de albandy !

    También puedes hacer un history con un grep (vendría a ser algo del palo)

  • 22

    Avatar de s22 !
    s22 | 3 estrellas

    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.

  • 24

    Avatar de 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 :)

  • 29

    !
    | 2 estrellas

    muy buen el apunte a recuperar el entorno gráfico :)

  • Respondiendo a #29:
  • 30

    Avatar de moycano !

    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

  • Respondiendo a #30:
  • 31

    !

    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.

  • Respondiendo a #29:
  • 44

    !

    Eso no es "recuperar el entorno grafico", eso solo reinicia el servidor X y DEPENDE si lo tienes activado o no.

  • 32

    !
    | 1 estrellas

    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

  • Respondiendo a #32:
  • 33

    !

    No lo hagas!!! si no tiene la opción -i el rm no pregunta. :)

  • Respondiendo a #32:
  • 35

    Avatar de Guillermo Julian !

    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.

  • Respondiendo a #35:
  • 36

    !

    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

  • Respondiendo a #36:
  • 37

    Avatar de Guillermo Julian !

    Tienes razón, lo acabo de poner por si acaso...

  • 34

    Avatar de stranno !

    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

  • Respondiendo a #34:
  • 45

    !

    No. / no tiene nada que ver con C:\ y System32 no es todo el disco duro.

  • Respondiendo a #45:
  • 46

    Avatar de logoff !
    logoff | 3 estrellas

    sí, pero el efecto destructor de borrar System32 en Windows es muy similar al del comando del post :-)

  • Respondiendo a #46:
  • 48

    !

    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.

  • 38

    Avatar de allcherry !

    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)

  • 39

    !
    | 2 estrellas

    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.

  • 40

    Avatar de 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

  • 50

    !
    | 1 estrellas

    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 Facebook Connect

Anunciate aquí

WSL Weblogs SL