Administrar Linux
Linea de Comandos

La consola

En Linux es frecuente el uso de la linea de comandos. Esto es así en primer lugar porque el sistema operativo tiene centenares de utilidades a las que no podrás llegar desde el entorno gráfico. Y porque la línea de comandos permite ejecutar programas con mas opciones (y rapidez) de la que tendriamos usando la interfaz gráfica.

Linux ha sido el sistema de linea de comandos por excelencia, y de hecho hasta hace pocos años, el arranque del ordenador por defecto era modo consola, arrancando el servidor X (para el entrono gráfico) solo cuando necesitabas utilizar un programa que lo requería, con el comando startx. Hoy en dia ocurre justo al revés. Por defecto tu sistema linux arrancará con Gnome o KDE, y para acceder a la linea de comandos deberás lanzar desde el menú de aplicaciones un emulador de terminal.

El prompt del sistema

El prompt del sistema es el conjunto de carácteres que te indican la línea donde debes teclear tus órdenes. Altamente configurable, por defecto es posible que te encuentres con algo parecido a
ignacio@localhost:~$
donde te informa que estas logeado en el sistema como usuario ignacio, en la máquina localhost

Moviendose por el sistema de archivos

El comando pwd nos devuelve la ruta en la que estamos en ese momento.

Para cambiar de directorio usamos cd, que tiene varias opciones:

 

  • cd /path/deseado/ nos lleva a /path/deseado
  • cd. directorio actual
  • cd.. directorio padre
  • cd (sin parametros) lleva al home de tu usuario
  • cd ~ nombreusuario te lleva al home de nombreusuario, si tienes permisos para ello.
  • cd ~ te lleva al home de tu usuario.
  • cd / te lleva al home de tu usuario.
  • cd - te lleva al ultimo directorio en que hallas estado

Creando/borrando directorios

Para crear nuevos directorios, la opción es mkdir.

Para borrar archivos o directorios, rm:
rm -r carpeta, usando la opción -r para borrar cualquier subcarpeta

Moviendo, renombrando, copiando

Usamos cp /ruta/archivo/original /ruta/para/copia para copiar archivos.

mv ruta/archivo nueva/ruta/archivo sirve tanto para mover un archivo o carpeta como para renombrarlo

listando archivos

El comando ls muestra una lista de los archivos de un directorio.

ls [opciones] [archivo|directorio] [archivo|directorio...]

  • ls (sin parametros) lista archivos del directorio actual.
  • ls -a muestra todos los archivos, incluido ocultos
  • ls -A igual que -a menos los archivos "." y ".."
  • ls -R listado recursivo
  • ls -l muestra permisos de cada fichero y ultimo acceso
  • ls -s muestra el tamaño de cada fichero listado

dot slash ./

Y ya que esto es una breve introducción a la consola, hhay que recordar que en linux las rutas a los archivos siempre se separan con la barra /, no la invertida propia de windows.

Y otra diferencia con windows que a veces pasa desapercibida. Cuando intentamos ejecutar un comando en windows, este siempre busca el ejecutable en primer lugar en el archivo desde el cual se ejecuta la orden, y luego en cualquier otro directorio incluido en el path. Por el contrario linux no buscará el ejecutable en el directorio actual, salvo claro está que dicho directorio esté en el path.

Por tanto la forma de asegurarnos la correcta ejecución de cualquier ejecutable, si estamos en el directorio donde se encuentra, es usar un punto y barra para indicar que busque en nuestro directorio: por ejemplo, root@localhost: ignacio/home # ./miscript.sh serviría para ejecutar miscript.sh solo si este se encuentra en ignacio/home

Y ya que hablamos del path, si quieres ver que rutas tienes en esta variable, simplemente escribe echo $PATH

A algunos les resulta de interés que linux busque siempre ejecutables en el directorio actual. Si es tu caso, simplemente ponlo en el path, añadiendo a la variable $PATH un punto: busca en el directorio raiz de tu usuario un archivo oculto .profile y añadele:

PATH=$PATH:$HOME/bin:.

incluido el punto al final de la linea, claro.

SU

Siempre se ha dicho que la buena práctica en linux es acceder al sistema como usuario con derechos limitados, y ganar los privilegios de root solo cuando nos sea necesario, y ello para evitar ejecutar por error algun comando que se cargue el sistema (y porque linux es un sistema multiusuario, presumiendo que varias personas haran uso de el, y no todas ellas serán administradores).

Pues bien, desde tu linea de comandos, logueado como usuario, puedes ganar privilegios de root con el comando su.

Por ejemplo, tras la orden
[ignacio@localhost] ~ $ sudo kedit /etc/fstab
el sistema te preguntará por la contraseña de root, y si es correcta, editará el archivo /etc/fstab con el programa kedit, con permisos de root.

sudo permite ejecutar como root solamente la instruccion de la línea donde se ejecuta. Como alternativa puedes simplemente escribir su, introducir la contraseña y ganar privilegios de root para esa sesion de consola.

Fijate como el promt te identifica como root, no solo por el nombre del usuario, sino también por el signo # que reemplaza el signo $

Ejecutando tareas en segundo plano

Si quieres ejecutar un comando o programa que prevees que va a tardar tiempo en completarse, y no deseas cambiar de terminal, puedes ordenar que se ejecute en segundo plano simplemente añadiendo un carácter & al final de la orden, antes de ejecutarla.

Para regresar a cualquier proceso que has dejado en segundo plano, generalmente se utilizan los comandos fg o exit.

Comodines

prácticamente todas las utilidades que emplean la linea de comandos admiten comodines * ?

el comodin ? representa cualquier caracter. Por ejemplo, ls diari?.log te mostraria la existencia tanto de diario.log como de diaria.log

Y * coincide con cualquier secuencia de caracteres. ls foto.* te indicaria la existencia de foto.jpg, foto.gif etc