3. Conceptos básicos de GNU/Linux

Bajo GNU/Linux, para que los usuarios puedan identicarse en el sistema, deben presentarse (log in) mediante un proceso que consta de dos pasos: Introducir el nombre de usuario (login), y una contraseña (password), la cual es su llave personal secreta para entrar en la cuenta. En nuestros ejemplos supondremos que el nombre de usuario es raul.
En los sistemas Unix tradicionales, el administrador del sistema asignará el nombre de usuario y una contraseña inicial en el momento de crear la cuenta de usuario. Además, cada sistema tiene un nombre (hostname) asignado, que le da nombre a la máquina. El nombre del sistema es usado para identicar computadoras en una red, pero incluso aunque la máquina no esté en red, debería tener su nombre. En nuestros ejemplos, el nombre del sistema será micasa.

3.1. Ingresando al sistema

En el momento de presentarse en el sistema, veremos el siguiente indicador en la pantalla:
micasa login:
Ahora, introducimos nuestro nombre de usuario y presionamos [Enter]. En nuestro ejemplo, deberíamos teclear lo siguiente:
micasa login: raul
Password:
Ahora introducimos la contraseña. Esta no será mostrada en la pantalla conforme se va tecleando, por lo que debe hacer cuidadosamente. Si introducimos una contraseña incorrecta, se mostrará el siguiente mensaje:
Login incorrect
y deberemos intentarlo nuevamente.
Una vez que hemos introducido correctamente el nombre de usuario y la contraseña, estamos presentados en el sistema y listo para iniciar una sesión interactiva y comenzar a trabajar, según los derechos de acceso que nos brinde nuestra cuenta, como veremos más adelante.
En algunos teclados ésta tecla puede aparecer como [Intro] o [Return].

3.2. Consolas virtuales

La consola del sistema (o terminal) está formada por el monitor y teclado conectado directamente a la computadora. GNU/Linux, proporciona acceso a consolas virtuales (o VCs, por Virtual Console), las cuales nos permitirán tener mas de una sesión de trabajo activa a la vez desde una única consola física.
Para demostrar esto, ingresamos al sistema (como hemos visto antes). Luego presionamos [ALT]+[F2].
Deberíamos ver la línea micasa login: de nuevo. Estamos viendo la segunda consola virtual ya que hemos ingresado al sistema por la primera. Para volver a la primera VC, presionamos [ALT]+[F1].
Un sistema GNU/Linux recién instalado probablemente nos permita acceder a las primeras seis VCs, usando [ALT]+[F1] a [ALT]+[F6], pero es posible habilitar hasta 12 VCs, una por cada tecla de función del teclado.
Mientras que el uso de VC’s es algo limitado (después de todo, sólo podemos mirar una por vez), esto debería dar una idea de las capacidades multiusuario del sistema. Mientras estamos trabajando en la VC No 1, podemos conmutar a la VC No 2 y comenzar a trabajar en otra tarea (inclusive, claro está, con un nombre de usuario diferente), mientras el sistema continúa ejecutando la tarea de la VC No 1.

3.3. Comandos e intérpretes de comandos

Un intérprete de comandos (también conocido como shell) es un programa que toma la entrada del usuario (por ejemplo, las órdenes que teclea) y las traduce a instrucciones del sistema operativo. Esto puede ser comparado con el COMMAND.COM de DOS, el cual efectúa esencialmente la misma tarea. El intérprete de comandos es sólo una de las interfaces con Unix. Hay muchas interfaces posibles, como la interfaz gráca X
Window, la cual permite ejecutar comandos usando el ratón y el teclado.
Tan pronto como un usuario ingresa al sistema, se ejecuta un intérprete de comandos y éste ya puede teclear órdenes al sistema. Veamos un ejemplo. Aquí, raul entra en el sistema y es situado en el intérprete de comandos:
micasa login: raul
Password:
Welcome to micasa!
/home/raul$
/home/raul$ es el prompt (o indicador) del intérprete de comandos, indicando que está listo para recibir órdenes. Tratemos de decirle al sistema que haga algo interesante:
/home/raul$ make love
make: *** No rule to make target ‘love’. Stop.
/home/raul$
Bien, como resulta que make es el nombre de un programa ya existente en el sistema, el intérprete de comandos lo ejecuta (desafortunadamente, el sistema no está siendo muy amigable).
Esto nos lleva a una cuestión importante: ¿Qué es una orden? ¿Qué ocurre cuando tecleamos make love?
La primera palabra de la orden, make, es el nombre del comando a ejecutar. El resto de la orden es tomado como argumentos (o parámetros) de la comando. Por ejemplo:
/home/raul$ cp hola mundo
Aquí, el nombre del comando es cp, y los argumentos son hola y mundo.
Cuando se teclea una orden, el intérprete de comandos hace varias cosas. Primero, busca el nombre del comando y comprueba si es un comando interno (es decir, una comando que el propio intérprete de comandos sabe ejecutar por si mismo). Hay bastantes comandos de ese tipo que veremos mas adelante. El intérprete de comandos también comprueba si el comando es un alias o nombre sustituto de otro comando. Si no se cumple ninguno de estos casos, el intérprete de comandos busca el programa y lo ejecuta pasándole los argumentos especicados en la línea de comandos.
En nuestro ejemplo, el intérprete de comandos busca el programa llamado make y lo ejecuta con el argumento love. make es un programa usado a menudo para compilar programas grandes, y toma como argumentos el nombre de un objetivo a compilar. En el caso de make love, ordenamos a make que compile el objetivo love. Como make no puede encontrar un objetivo de ese nombre, falla enviando un mensaje de error y volviendo al intérprete de comandos.
¿Qué ocurre si tecleamos un comando y el intérprete de comandos no puede encontrar el programa de ese nombre? Bien, probémoslo:
/home/raul$ hacer nada
hacer: command not found
/home/raul$
Bastante simple, si no se puede encontrar el programa con el nombre dado en la orden (aquí hacer), se muestra un mensaje de error que debería de ser auto-explicativo. A menudo verá este mensaje de error si se equivoca al teclear un comando (por ejemplo, si hubiese tecleado mkae love en lugar de make love).

3.4. Saliendo del sistema

Antes de proseguir, deberíamos ver cómo salir del sistema. Desde la línea de comandos usaremos el comando para salir. Hay otras formas, pero esta es la más simple:
/home/raul$ exit

3.5. Cambiando la contraseña

La primera vez que un usuario ingresa al sistema lo hará utilizando la contraseña asignada por el administrador, pero es altamente recomendable que la cambie de inmediato (además, se recomienda realizar este procedimiento de vez en cuando). El comando passwd nos pedirá la contraseña actual y luego la nueva (dos veces, para validarla). Debemos tener cuidado de no olvidar la contraseña, ya que si esto ocurre, el administrador del sistema deberá modicarla por nosotros.

3.6. Archivos y directorios

En la mayoría de los sistemasoperativos (Unix incluido), existe el concepto de archivo, el cual es un conjunto de información al que se le ha asignado un nombre.

Ejemplos de archivo son un mensaje de correo, o un programa que puede ser ejecutado. Esencialmente, cualquier cosa almacenada en el disco es guardada en un archivo individual.

Los archivos son identificados por sus nombres. Por ejemplo, el archivo que contiene sus números telefónicos podría ser grabado con el nombre teléfonos. Estos nombres usualmente identifican el archivo y su contenido de alguna forma significativa para usted. No hay un formato estándar para los nombres de los archivos como lo hay en DOS y en otros sistemas operativos; en general estos pueden contener cualquier carácter (excepto /), y están limitados a 256 caracteres de longitud.
Generalmente trataremos de utilizar letras minúsculas y sin acentos en los nombres de archivos y directorios.

Con el concepto de archivo aparece el concepto de directorio. Un directorio es contenedor. Puede ser considerado como una carpeta que contiene muchos archivos diferentes. Tienen nombre con el que los podemos identicar y forman una estructura de árbol; es decir, pueden contener a otros directorios.
Un archivo puede ser referenciado por su nombre con camino, el cual esta constituido por su nombre, antecedido por el nombre del directorio que lo contiene. Por ejemplo, supongamos que raul tiene un directorio de nombre articulos que contiene tres archivos: historia, ingles y tesis (cada uno de los tres archivos contiene información sobre tres de los proyectos en los que está trabajando). Para referirse al archivo ingles, puede especicar su camino: articulos/ingles
Como podemos ver, el directorio y el nombre del archivo van separados por un carácter /. Por esta razón, los nombres de archivo no pueden contener este carácter. Los usuarios de DOS encontrarán esta convención familiar, aunque en ese sistema operativo se usa el carácter \.
Como hemos mencionado, los directorios pueden anidarse uno dentro de otro. Por ejemplo, supongamos que raul tiene otro directorio dentro de artículos llamado notas, y dentro de ese directorio, tiene un archivo llamado enlaces. El camino de este archivo sería: articulos/notas/enlaces.
Por lo tanto, el camino realmente es la ruta (path) que se debe recorrer para localizar a un archivo. El directorio sobre un subdirectorio dado es conocido como el directorio padre. Aquí, el directorio articulos es el padre del directorio notas.

3.7. El árbol de directorios

La mayoría de los sistemas Unix tienen una distribución de archivos estándar, de forma que los recursos y archivos puedan ser fácilmente localizados. Esta distribución forma el árbol de directorios, el cual comienza en el directorio /, también conocido como raíz o root. Directamente por debajo (dentro) de / hay algunos subdirectorios importantes: /bin, /etc, /dev y /usr, entre otros. Estos a su vez contienen otros directorios con archivos de configuración del sistema, programas, etc.
En particular, cada usuario tiene un directorio home. Este es el directorio en el que el usuario guardará sus archivos. En los ejemplos anteriores, todos los archivos de raul (como enlaces e historia) estaban contenidos en su directorio home. Usualmente, los directorios home de los usuarios cuelgan de /home y son denominados con el nombre del usuario al que pertenecen. Por lo tanto, el directorio home de raul es /home/raul.
La siguiente gura muestra un árbol de directorio de ejemplo.
/ ___ bin
|____ dev
|____ etc
|____ home ___ carlos
| |____ raul ___ Mail
| |____ articulos ___ notas
| |____ cartas
|____ lib
|____ proc
|____ tmp
|____ usr ___ X11R6
|____ bin
|____ lib
No debemos confundir el directorio root o raíz con el usuario root que es el administrador del sistema, ni con el directorio home de éste último, ubicado en /root .

|____ local ___ bin
| |____ etc
|____ man
|____ src ___ linux
|____ tmp

3.8. Directorio de trabajo actual

Las órdenes que teclee al intérprete de comandos son dadas en términos del directorio actual de trabajo, en donde estamos situados. Cuando un usuario entra al sistema, su directorio de trabajo se inicial es su directorio home (/home/raul en nuestro caso). Cuando referencie a un archivo puede hacerlo con relación a su directorio de trabajo actual, en lugar de especicar el camino completo del archivo.
Veamos un ejemplo: raul tiene el directorio articulos, y articulos contiene el archivo historia.
Si deseamos ver el contenido de ese archivo, podemos usar la orden:
/home/raul$ cat /home/raul/articulos/historia
El comando cat muestra el contenido del archivo. Pero como el directorio de trabajo actual es /home/raul, podríamos habernos referido al archivo de forma relativa a su directorio de trabajo actual. La orden sería:
/home/raul$ cat articulos/historia
Por lo tanto, si un camino comienza (como articulos/historia) con un carácter distinto a /, el sistema supone que se está reriendo al archivo con su posición relativa a su directorio de trabajo. Esto es conocido como camino relativo.
Por otra parte, si un camino comienza con el carácter /, el sistema interpreta esto como el camino completo al archivo partiendo desde el directorio raíz (/). Esto es conocido como camino absoluto.

3.9. Refiriéndose al directorio home

Bajo bash y tcsh, dos de los intérpretes de comandos más utilizados, el directorio home puede ser referenciado usando el carácter de la tilde (). Por ejemplo, la orden:
/home/raul$ cat /articulos/historia
es equivalente a:
/home/raul$ cat /home/raul/articulos/historia
El carácter  es sustituido por el intérprete de comandos con el nombre del directorio home. El uso de la tilde es simplemente un atajo; no existe ningún directorio llamado , sólo es una ayuda sintáctica proporcionada por el intérprete de comandos.

4. Primeros pasos en GNU/Linux

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s