Página siguiente Página anterior Índice general

4. Primeros pasos en GNU/Linux

Antes de comenzar es importante destacar que todos los nombres de archivos y comandos son “case-sensitive” (hacen diferencia entre mayúsculas y minúsculas, lo cual no ocurre en sistemas operativos como DOS). Por ejemplo, el comando “make” es diferente a “Make” o “MAKE”. Lo mismo ocurre en el caso de nombres de archivos o directorios.

4.1 Moviéndonos por el entorno

Ahora que ya podemos presentarnos como usuarios y sabemos como indicar archivos con su camino completo, ¿cómo podemos cambiar nuestro directorio de trabajo?

El comando para movernos por la estructura de directorios es cd, abreviación de “cambio de directorio”. Hay que destacar, que la mayoría de los comandos Unix más usados son de dos o tres letras. La forma de uso del comando cd es:

cd <directorio>

donde <directorio> es el nombre del directorio al que queremos ingresar.

Como ya vimos, al entrar al sistema comenzamos en el directorio “home”. Si queremos ir al subdirectorio articulos, deberíamos usar la orden:

/home/diego$ cd articulos

/home/diego/articulos$

Como podemos ver, el prompt cambia para mostrar el directorio actual de trabajo. Ahora que ya estamos en el directorio articulos podemos ver el contenido del archivo historia con el comando:

/home/diego/articulos$ cat historia

Ahora estamos en el subdirectorio articulos. Para volver al directorio padre de éste, usamos la orden:

/home/diego/articulos$ cd ..

/home/diego$

(Nótese el espacio entre “cd” y “..”). Cada directorio tiene una entrada de nombre “..” la cual se refiere al directorio padre. De igual forma, existe en cada directorio la entrada “.” la cual se refiere a sí mismo. Así que el siguiente comando nos deja donde estamos:

/home/diego/articulos$ cd .

/home/diego/articulos$

También pueden usarse nombres con el camino absoluto en el comando cd. Para ir al directorio de carlos con cd, introduciremos la siguiente orden:

Siempre y cuando tengamos permiso para ingresar a dicho directorio, como veremos más adelante.

/home/diego/articulos$ cd /home/carlos

/home/carlos$

También, usando cd sin argumentos nos llevará a nuestro directorio “home”:

/home/carlos$ cd

/home/diego$

4.2 Viendo el contenido de los directorios

El simple movimiento por el árbol de directorios es poco útil, necesitamos un nuevo comando: ls. Este comando muestra en pantalla la lista de archivos y directorios, si no se indica otra cosa, del directorio activo. Por ejemplo:

Nótese que los listados aparecen ordenados alfabéticamente. Las letras mayúsculas son “menores” a las minúsculas.

/home/diego$ ls

Mail

articulos

cartas

/home/diego$

Aquí podemos ver que diego tiene tres entradas en su directorio actual: Mail, articulos y cartas. Esto no nos dice demasiado, ¿son archivos o directorios? Podemos usar la opción “-F” del comando ls para obtener mas información.

/home/diego$ ls -F

Mail/

articulos/

cartas/

/home/diego$

Por el carácter “/” añadido al final de cada nombre sabemos que las tres entradas son directorios. La orden “ls -F” puede también añadir al final un asterisco (“*”), esto indica que es un archivo ejecutable (programa). Si “ls -F” no añade nada, entonces es un archivo normal.

Por lo general cada comando Unix puede tomar una serie de opciones definidas en forma de argumentos. Estos usualmente comienzan con el carácter “-

Similar al uso del carácter “/” en DOS.
, tal como vimos antes con “ls -F”. La opción “-F” le dice a ls que dé información sobre el tipo de cada entrada.

Si a ls le pasamos un nombre de directorio, mostrará su contenido:

/home/diego$ ls -F articulos

ingles

historia

tesis

notas/

/home/diego$

Para ver un listado más interesante, veamos el contenido del directorio /etc.

/home/diego$ ls /etc

Images          ftpusers        lpc             rc.new          shells
adm             getty           magic           rc0.d           startcons
bcheckrc        gettydefs       motd            rc1.d           swapoff
brc             group           mount           rc2.d           swapon
brc~            inet            mtab            rc3.d           syslog.conf
csh.cshrc       init            mtools          rc4.d           syslog.pid
csh.login       init.d          pac             rc5.d           syslogd.reload
default         initrunlvl      passwd          rmt             termcap
disktab         inittab         printcap        rpc             umount
fdprm           inittab.old     profile         rpcinfo         update
fstab           issue           psdatabase      securetty       utmp
ftpaccess       lilo            rc              services        wtmp

/home/diego$

Los usuarios de DOS notarán que los nombres de los archivos pueden ser más largos que 11 caracteres (8 del nombre y 3 de la extensión) y pueden contener puntos en cualquier posición.

En Unix no existe el concepto de “extensión” de un archivo. Es solamente una convención que el nombre de algunos archivos termine con un punto y alguna secuencia de letras (no necesariamente tres) que denoten su tipo.
Incluso es posible que un archivo contenga más de un punto en su nombre.

Vayamos al directorio raíz con “cd ..” y desde allí vayamos al directorio /usr/bin:

/home/diego$ cd ..

/home$ cd ..

/$ cd usr

/usr$ cd bin

/usr/bin$

También podemos movernos dentro de directorios en múltiples pasos, como en “cd /usr/bin”. Tratemos de movernos por varios directorios usando cd y de ver su contenido con ls. En algunos casos podremos encontrarnos con el desagradable mensaje de error “Permission denied” (permiso denegado). Esto se debe a cuestiones de seguridad del sistema. Para moverse o listar un directorio debemos de tener una serie de permisos. Hablaremos sobre ello más adelante.

4.3 Creando directorios

Es el momento de aprender a crear directorios. Para ello se usa el comando mkdir. Probemos lo siguiente:

/home/diego$ mkdir nuevo

/home/diego$ ls -F

Mail/

articulos/

cartas/

nuevo/

/home/diego$ cd nuevo

/home/diego/nuevo$ ls

/home/diego/nuevo$

Acabamos de crear un directorio nuevo y movernos dentro de él. Como no contiene ningún archivo, veamos cómo copiar archivos desde un lugar a otro.

4.4 Copiando archivos

La copia de archivos es efectuada por el comando cp:

/home/diego/nuevo$ cp /etc/termcap .

/home/diego/nuevo$ cp /etc/shells .

/home/diego/nuevo$ ls -F

shells termcap

/home/diego/nuevo$ cp shells bells

/home/diego/nuevo$ ls -F

bells shells termcap

/home/diego/nuevo$

El comando cp copia los archivos listados en la línea de comandos al archivo o directorio pasado como último argumento. Nótese que usamos el directorio “.” para referirnos al directorio actual.

4.5 Moviendo archivos

El comando mv mueve archivos en lugar de copiarlos. La sintaxis es muy sencilla:

/home/diego/nuevo$ mv termcap sells

/home/diego/nuevo$ ls -F

bells sells shells

/home/diego/nuevo$

Nótese como termcap ya no existe, y en su lugar está el archivo sells. Este comando puede usarse para renombrar archivos, como acabamos de hacer, pero también para mover archivos a directorios diferentes.

Nota: mv y cp sobreescribirán los archivos destino (si ya existen) sin consultar. Sea cuidadoso cuando mueva un archivo a otro directorio: puede haber ya un archivo con el mismo nombre que será sobreescrito y su contenido se perderá para siempre.

4.6 Borrando archivos y directorios

Para borrar un archivo, usamos el comando rm.

/home/diego/nuevo$ rm bells sells

/home/diego/nuevo$ ls -F

shells

/home/diego/nuevo$

En el directorio nuevo sólo ha quedado el archivo shells. Nótese que rm por defecto no preguntará antes de borrar un archivo, por lo tanto debemos ser muy cuidadosos.

Un comando relacionado con rm es rmdir. Éste borra un directorio, pero sólo si está vacío. Si el directorio contiene archivos o subdirectorios, nos informará del error.

4.7 Viendo el contenido de archivos

Los comandos cat y less son usados para ver el contenido de archivos. less muestra el archivo pantalla a pantalla, permitiéndonos movernos hacia adelante y atrás, mientras que cat lo muestra completo de una vez.

Para ver el contenido del archivo shells podemos usar la orden:

/home/diego/nuevo$ less shells

Durante la ejecución de less podemos usar [RePág] y [AvPág]

[PgUp] y [PgDown] en los teclados en inglés
para retroceder y avanzar por páginas, y las teclas de cursor hacia arriba y abajo para retroceder y avanzar por líneas. [Q] finalizará la ejecución de less. Hay otros comandos disponibles, los citados son sólo los más básicos.

Salgamos de less y probemos “cat /etc/termcap”. El texto probablemente pasará demasiado rápido como para poder leerlo. El comando cat; viene de “concatenar”, que es para lo que realmente sirve, pero también puede ser usado para concatenar el contenido de varios archivos. Esto se verá mas adelante.

4.8 Obteniendo ayuda en línea

Prácticamente cada sistema Unix proporciona una utilidad conocida como “páginas de manual”. Estas páginas contienen documentación en línea para todos los comandos del sistema, recursos, archivos de configuración, etc. El comando usado para acceder a las páginas de manual es man. Por ejemplo, si estamos interesados en conocer otras opciones del comando ls, podemos escribir:

/home/diego$ man ls

y veremos la página de manual para ls.

Desafortunadamente para los principiantes, la mayoría de las páginas de manual contienen detalles técnicos del comando sin ningún ejemplo ni explicación adicional acerca de su uso. Pese a esto, estas páginas son una gran fuente de información que permiten refrescar la memoria si olvidamos la sintaxis de un comando.

Una respuesta muy común a una pregunta de un principiante en un foro de Unix será “RTFM”, por “Read The F*****g Manual”.
Pruebe man con los comandos que ya hemos tratado y con los que vayamos introduciendo. Notará que alguno de los comandos no tiene página de manual. Esto puede deberse a diferentes motivos. El comando puede ser interna del intérprete de comandos (como el caso de cd), o un "alias" (renombre de otro comando), en cuyo caso no tendrán una página propia.


Página siguiente Página anterior Índice general