Comandos fundamentales de consola en Linux

Este es el primer articulo sugerido por un lector del blog. Se puso en contacto conmigo a traves de la seccion Participa! para sugerir este tema. Si tu tambien quieres participar en el blog no dudes en usar cualquiera de las formas de contacto que alli aparecen.

Nuestro amigo desea saber aquellos comandos de consola que pueden salvarte la vida en un momento dado. Se me hace un poco dificil saber cuales poner ya que cualquier comando de consola puede salvarte la vida en una situacion complicada, asi que primero vamos a hacer una pequeña explicacion.

Existen algunas variaciones entre distribuciones sobre como usar algunos comandos. Tambien algunas distribuciones tienen programas especificos para hacer algunas tareas. Por estos motivos, vamos a explicar los comandos de consola para Ubuntu que actualmente es la distribucion mas usada, aunque la mayoria son comunes a cualquier distribucion GNU/Linux (Linux en adelante).

La consola (terminal) de Ubuntu

Primero de todo hay que decir que Terminal es un programa que emula la consola de Linux en el entorno grafico que estemos usando (Gnome, KDE, etc…), por lo que vamos a hablar todo el rato de la consola y no del terminal aunque a efectos practicos es lo mismo.

Todos los programas que se ejecutan en cualquier Linux se programan para ejecutarse en la consola y posteriormente se hacen front-ends para poder acceder al programa desde un entorno grafico. De esta forma, cualquier programa (y cuando digo cualquier quiero decir todos) puede controlarse a traves de comandos sin iniciar el entorno grafico o desde un terminal en el escritorio o tambien desde su front-end usando el raton.

Como nota, para aquellos que aun no se hayan dado cuenta, en Linux los caracteres en mayusculas se consideran letras distintas a sus equivalentes en minusculas. Asi que Mount y mount seran dos comandos diferentes y cualquiera de sus variantes. De hecho si usamos Mount recibiremos una notificacion diciendo que el comando no existe.

Lo que hay que recordar

Como ya he dicho, comandos para recordar en teoria deberian ser todos, pero claro esto es imposible y normalmente podemos manejarnos practicamente al 100% usando el raton desde el entorno grafico, asi que voy a poner los comandos que mas uso yo en la consola.

Ayuda en la consola: man

Este sin duda es el primer comando que debes aprender. Su funcion es basica para cualquiera que utilice la consola asiduamente, es un programa de ayuda que te dice como debes usar el comando que le pasas como parametro.

man <comando>

usuario@maquina:~$ man mount
Mostrara una pagina de ayuda con la sintaxis del comando mount, con las opciones que puedes usar y normalmente algunos ejemplos, sobretodo si el comando es muy complejo. Para salir pulsa “q”.

(en adelante se suprimira “usuario@maquina:~” y representare la consola con el simbolo “$“).

En teoria con este comando no necesitamos recordar los demas, ya que siempre podremos invocar a man para que nos explique que hace el comando y cual es la forma de ejecutarlo. Pero siempre conviene recordar algunos mas.

Moviendose por la consola: ls, cd, cp, mv, rm, mkdir

Son los comandos basicos de archivos y directorios, moverse entre directorios, copiar, borrar, mover… no me voy a extender mas, pongo aqui una explicacion minima y para opciones y mas informacion podeis (y debeis) usar man <comando>:

ls – “list“: muestra el contenido de un directorio.
cd <directorio> – “change directory”: cambia al directorio escrito. Para volver al directorio anterior se puede usar dos puntos “..” como parametro.
cp <ruta1> <ruta2> – “copy”: copia un archivo o directorio.
mv <ruta1> <ruta2>
– “move”: se usa para mover o renombrar archivos. El caso de renombrar se suele hacer asi (en el directorio donde esta el archivo en cuestion): mv <nombre_original_del_archivo> <nombre_cambiado>
rm <ruta> – “remove”: borra archivos o directorios.
mkdir <ruta> – “make directory”: crea un directorio nuevo

Comodidad en la consola: Tab,*,?

El tabulador (Tab) es el mejor aliado en la consola. Nos ahorra escribir los comandos, directorios y nombre de los archivos tan solo con poner la/s primera/s letra/s de los mismos. En el caso en que al pulsar tab haya varias opciones posibles nos mostrara una lista de las posibilidades y tendremos que ir añadiendo letras hasta que se diferencien.

Ejemplo: Estando en la consola escribe:
$ echo /h
pulsa tab. El resultado es
$ echo /home/
escribe la primera letra de tu usuario
$echo /home/u
pulsa tab. El resultado es
$ echo /home/usuario

Del mismo modo pasa con comandos, nombres de archivos, etc… Mucha gente prefiere moverse por la consola porque es mas rapido que clickar en los iconos de las carpetas.

Tambien, como es habitual es todos los sistemas operativos, existen caracteres comodin que sustituyen parte del texto para poder seleccionar varios archivos o ahorrarnos tiempo a la hora de escribir.

*: Permite sustituir varias letras y crea una mascara en la que pueden tener cabida varios archivos.
?: Funciona igual que el asterisco pero sustituye solamente a una sola letra.

Ejemplo: Si en un directorio tenemos blah.cfg, bleh.cfg y blehw.cfg y ejecutamos
$ cp bl* /home/usuario
nos copiara los 3 archivos en nuestro directorio home. Pero si ejecutamos
$ cp bl?h.cfg /home/usuario
copiara blah.cfg y bleh.cfg pero no blehw.cfg.

Editar archivos de texto: vim

Un ejemplo practico de la utilidad de la consola se produce cuando por el motivo que sea el entorno grafico no se inicia. En este caso tendremos que buscar el archivo de configuracion para hacer modificaciones y volver a lanzarlo.

NOTA PARA MUY PRINCIPANTES: Todos los archivos de configuracion en cualquier distribucion GNU/Linux son archivos de texto. No ocurre asi en las distintas versiones de Windows.

Vim es un editor que nos permitira ver el contenido de cualquier archivo de texto. Su sintaxis es muy sencilla pero su uso puede ser un poco curisoso si no estamos acostumbrados:

vim <ruta>

Moverse (leer) por el documento: usa el cursor (flechas) del teclado.
Modo edicion (para pode escribir y borrar): pulsa la tecla Insert (puede aparecer como INS). Para salir del modo edicion pulsa Esc.
Guardar y/o salir: estando fuera del modo edicion pulsa dos puntos “:” y escribe
“w” para guardar
“q para salir
Lo normal sera escribir “:wq” que sobreescribira el documento y saldra de la aplicacion.

Realizar operaciones como root (administrador): su, sudo

El ejemplo mas claro de usar este comando es cuando necesitamos lanzar un programa como root o tenemos que hacer cambios en los archivos de configuracion. Normalmente el archivo en cuestion no permite acceder/guardar sin tener privilegios de administrador. En este caso podemos cambiar al usuario root usando el comando su (superuser). En el caso particular de Ubuntu en vez de cambiar de usuario lo que hacemos es utilizar sudo que nos dara privilegios de root durante unos minutos despues de haber escrito correctamente la contraseña.

sudo <comando> <parametros del comando>

Ejemplo: Necesitamos hacer una modificacion en el archivo de configuracion del servidor grafico. Si ejecutamos desde la consola
$ vim /etc/X11/xorg.conf
podremos visualizar el documento pero al guardar nos dira que no tenemos privilegios para realizar la operacion. Pero si lo abrimos de esta manera
$ sudo vim /etc/X11/xorg.conf
$ [sudo] password for usuario:
(esta es la peticion de contraseña de Ubuntu 7.10)
no nos dara ningun problema.

Instalar/desinstalar programas: apt-get

Este es el comando para (des)instalar paquetes desde los repositorios. Synaptic no es mas que un front-end para llamar a apt-get.

apt-get <opciones> <nombre del paquete>

Ejemplo: Instalar el paquete alien que nos permite transformar paquetes .rpm (Fedora) en .deb (Debian y variantes como Ubuntu)

$ sudo apt-get install alien
$ [sudo] password for usuario: (esta es la peticion de contraseña de Ubuntu 7.10)
y comienza la descarga e instalacion del paquete.

Montar imagenes ISO: mount

Nos permite montar imagenes ISO descargadas por internet sin tener que grabarlas en un CD/DVD. Como equivalencia con windows podemos decir que es como si usaras las Daemon tools o el Alcohol 120%.

sudo mount <opciones> <ruta de la imagen> <ruta de montaje> [opciones]

Ejemplo 1: montar una imagen ISO
$ sudo mount -t iso9660 -o loop mi_imagen.iso /home/usuario
montara mi_imagen.iso, que es una imagen de CD/DVD-Rom, en el directorio /home/usuario. De esta manera podre ver los archivos que contiene.

Ejemplo 2: montar un disco duro/pen drive/tarjeta de memoria con formato NTFS
$ sudo mount -t ntfs-3g /dev/hda1 /media/hda1
y podremos acceder al disco duro desde la direccion /media/hda1. Si tenemos problemas para montar podemos usar
$ sudo mount -t ntfs-3g /dev/hda1 /media/hda1 -o force
que forzara el montaje del disco.

Controlar demonios (servicios) en Linux: init.d

Como es sabido en las distribuciones Linux no es necesario reiniciar el ordenador cuando se hacen cambios de configuracion del sistema operativo. ¿Como se hace? haciendo el cambio y luego reiniciando el demonio al que pertenece esa configuracion. Para reiniciar el servicio tan solo hay que ejecutar el script asociado que se encuentra en /etc/init.d/

sudo /etc/init.d/<demonio> [start|stop|restart]

Ejemplo: hemos hecho cambios en /etc/samba/smb.conf, el archivo de configuracion del servidor samba, que permite crear redes entre sistemas Windows y Linux. Al guardar el archivo los cambios no son efectivos hasta que no reiniciemos samba:

$ sudo /etc/init.d/samba restart
$ [sudo] password for usuario:
$ * Stopping Samba daemons… [ OK ]
$ * Starting Samba daemons [ OK ]

Y los cambios tendran efecto inmediato sin tener que reiniciar el ordenador.

Esto es solamente una pincelada, aquello que mas uso yo cuando toco la consola. Comandos y cosas para recordar hay miles, pero esto yo creo que es lo fundamental. Estoy abierto a modificaciones, cambios por errores (seguro que hay), etc.

About these ads

7 comentarios el “Comandos fundamentales de consola en Linux

  1. Muy util esta guia, pero por suerte a dia de hoy Linux es 100% funcional sin tener que usar el terminal. Hace unos años era totalmente imposible hacer todas las funciones sin andar con el terminal a cuestas.

  2. Bueno, el blog esta basado en mi trabajo y ultimamente la cosa esta bastante aburrida. De todas maneras tengo un intento de instalar un windows XP en un Acer Aspire One de 7″ (acabó con un Xubuntu evidentemente) que supongo pronto escribire y de paso valorare este tipo de miniportatiles y sus aplicaciones reales.

    Pero que conste que yo sigo por aqui. Me debo a mis lectores :)

    Saludos.

  3. No debes creer que te la sabes todas alejandrosanchezbastida este blog esta orientado a quellos que humildemente buscan sencillas soluciones a problemas cruciales, por lo visto eres una persona victima de los efectos post de un tipico usuario windows tratando de entender nuevos shell y kernels (lol)

    Felicidades macopc

  4. Lol lo tengo que decir yo, porque la verdad es que no logro entender. Un juego, el PokerTH lo baje y lo quise instalar, pero busque y busque soluciones y no encontre nada, lo que me pasa es que me baje el installer, cuando lo abro me pide que lo abra con un programa, entonses como dicen en las paginas le trato de dar permiso, pero tampoco se cual permiso darle, por favor alguien que pueda postiar algo en algun lado que lo aga estoy desesperado. No me logro entender con Linux.

    Gracias de antemano.

    Muy buen post aunque no me alla servido a mi. me dio algunos datos.

  5. Mateo, cuando descargas un programa para compilar, siempre tienes un archivo de texto que te explica los comandos necesarios para realizar la instalacion. Es posible que te falte un compilador, en Ubuntu puedes usar
    $ sudo apt-get install build-essentials

    Si tienes que dar algun permiso, sera el permiso de ejecucion, es decir hacer posible que el archivo se pueda ejecutar en el sistema operativo.

    Puedes usar
    $ sudo chmod +x /home/usuario/ruta/del/archivo

    Este ultimo comando no esta incluido porque se puede hacer facilmente desde el entorno visual entrando en las propiedades del archivo en cuestion.

    Por ultimo si tienes que ejecutar un script que realice la instalacion puedes usar
    $ sh /home/usuario/ruta/del/script

    O, estando en el directorio del script en cuestion
    $ ./nombre_del_script

    Saludos.

Los comentarios están cerrados.