Introducción:

Lo que veremos a continuación, no es una parte esencial del curso, sino simplemente un apéndice para aquellos que quieran ir conociendo cómo se maneja linux en modo texto. Debemos tomar en cuenta que todo esto será visto en detalle en el próximo curso, sin embargo lo que se hizo aquí es una aproximación a la parte de consola.

¿Para qué sirve conocer la línea de comandos en gnu/linux?

Los que alguna vez conocimos el DOS o quienes vienen de algún Unix saben la importancia de la línea de comandos. Si bien día a día GNU/Linux por medio de sus distribuciones, va mejorando su intefase gráfica, siempre resulta bueno conocer la línea de comandos, ya que para algunas tareas es insustituible y para otras más mucho más potente y rápida que el ratón. Alguien lo explicó en una oportunidad diciendo que:

"Diez dedos siempre pueden más que un ratón"

La pretención no es salir de esta lección siendo especialistas en el manejo de consola, sino simplemente conocer sus comandos básicos para realizar algunas acciones que son mucho más potentes desde esta que desde el modo gráfico.

Es posible que muchos no lo tengan demasiado en cuenta pero hasta el mismo Windows aun en su versión XP y 2003 tienen una línea de comandos. Baste escribir en su línea de órdenes "Cmd" para que aparezca una pantalla 'negra con letras blancas'guiño.
Especialmente los administradores de red, casi no conocen otra cosa que la línea de comandos por lo rápido que se puede darle órdenes a la computadora y por lo preciso que se puede llegar a ser.
A veces realizar una tarea determinada mediante el modo gráfico, representa 5 o 6 "clics" de ratón, y la misma tarea se puede hacer con una sola orden, un solo comando.

Utilizando una terminal

Normalmente cuando encendemos la computadora, luego del proceso propio del Bios, este entrega "el mando" al gestor de booteo que normalmente es Lilo o Grub. Lo que hacen estos gestores es mostrarnos en pantalla un menú que nos permite bootear con GNU/Linux o con otro Sistema Operativo que tengamos instalado.
Si elegimos GNU/Linux, seguramente aparecerá algún texto corriendo a gran velocidad por la pantalla. Al cabo de algunos instantes nuestro Sistema Operativo estará listo para correr. Hay un detalle; salvo que hayamos modificado la forma de booteo, el sistema arrancará en modo gráfico en la mayoría de las distribuciones.
Una vez iniciado el modo gráfico y logueados (colocación del nombre de usuario y de la contraseña), podremos empezar a usar el SO. Pero, tambien es posible pasar al modo texto si así lo deseamos.

Dos formas de hacer casi lo mismo

La forma clásica de llegar al modo texto es mediante una combinación de teclas:

Presionando Control+Alt+F1 podremos llegar al modo texto.
Pero en GNU/Linux hay en modo texto no una sino varias consolas. Si quisieramos abrir una segunda consola podríamos oprimir la siguiente combinación de teclas:

Ctrl+Alt+F2

Mientras que con F1 estaríamos en la terminal de consola 1 (conocida como tty1), con F2 estaríamos en la consola 2 (conocida como tty2).
Normalmente la mayoría de las distribuciones traen hasta 5 consolas de texto, aunque esto es configurable y pueden haber más cantidad de consolas o menos según nuestro gusto como veremos más adelante.

¿Como llego a la sexta consola?

Simplemente oprimiendo la combinación de teclas:

Ctrl+Alt+F6

De ahora en más y para representar el número total de consolas posibles escribiremos:

Ctrl+Alt+F1~F6 (queriendo representar que tenemos 6 consolas de texto [del 1 al 6])

¿Y como volvemos al modo gráfico?

Esta es una pregunta con trampa Deberíamos responder de diferentes maneras.
Por ejemplo si nuestro Sistema Operativo arrancó en modo gráfico y luego pasamos al modo texto, simplemente con un

Alt+F7

será suficiente.
Aunque en algunas distribuciones puede que en lugar de Alr+F7 pida:

Ctrl+Alt+F7

Si en cambio arrancamos nuestra distribución en modo texto, cosa perfectamente posible como veremos más adelante, el modo gráfico no está todavía listo para desplegarse y entonces la combinación anterior de teclas no dará el resultado esperado. En ese caso debemos escribir en línea de comandos:

startx

Otra forma de usar comandos es mediante el despliegue de una pseudo terminal de texto. Se trata en realidad de una terminal gráfica que simula ser una terminal de texto y permite el uso de todos los comandos como lo haríamos desde el modo texto.
Tiene algunas ventajas como por ejemplo permitirnos el uso del ratón cosa que no podríamos desde una verdadera terminal de texto.
La llegada a esta terminal es desde Aplicaciones ==> Accesorios ==> Terminal

Es muy buena idea añadir un "lanzador" que se trata de un ícono de acceso a un programa que aparecerá en la barra. Para esto nos acercamos al panel superior (o inferior, depende de la distribución) y con el botón derecho hacemos "clic" en "añadir al panel", luego en la ventana que aparece, hacemos "clic" en "lanzador", en "accesorios" buscamos "Terminal" y hacemos clic en "Añadir".
Esto es exactamente así para Ubuntu, pero con leves diferencias se puede hacer en las otras distros (las diferencias son solo de ubicación de los programas en el menú).
Ahora tenemos un acceso a esta consola y con un solo clic en el panel tendremos acceso al mismo.
Para quienes tienen problemas para ingresar en modo texto con Ctrl+Alt+Fx (entendiendo por "x" el número 1 al 6), esta puede ser una solución.

Ingresando al modo texto

Para entrar al modo texto utilizaremos alguno de los dos métodos vistos:

1) Ctrl+Alt+F1

2) Desde el modo gráfico Aplicaciones ==> Accesorios ==> Terminal

Dependiendo del modo en que hayamos entrado habrá unas pequeñas diferencias.

Por ejemplo en el modo texto aparecerá algo como esto:


Ubuntu 8.10 andropulos tty1


andropulos loguin:


(andropulos es el nombre de la máquina, y por lo tanto esto va a cambiar en cada máquina según sea su nombre. También habrá leves diferencias si se utiliza otra distribución que no sea ubuntu, pero básicamente así es como se verá)
En este caso nos indica que estamos en una terminal de texto (tty1) de una distribución Ubuntu 8.04 LTS

La máquina se llama "andropulos" (de allí el nombre que aparece en la parte superior junto a la terminal).
Debajo nos está pidiendo nombre de usuario para esta máquina.

En este caso escribiremos el nombre de usuario:


andres

e inmediatamente el sistema nos pedirá el password:

Cuando coloquemos el password, no veremos ningún cambio en la pantalla. A diferencia del modo gráfico, aquí no aparecen unas "x" sino que el cursor se queda en el mismo lugar. Es como si el teclado no estuviera respondiendo, pero al dar Enter, si la clave es la correcta, aparecerá una pantalla bastante completa que nos mostrará la última vez que nos logueamos y algunas cosas más.

Finalmente aparecerá el siguiente texto:


andropulos@andres:~$


Veamos esto en detalle:

andres es el usuario, cada uno tendrá un nombre de usuario diferente por lo tanto aquí en lugar de "andres" irá el nombre de usuario que hayamos elegido. Hay que agregar que en gnu/linux no es lo mismo Andres que andres que aNdREs. El sistema es "case sensitive" esto quiere decir que ve de diferente manera mayúsculas y minúsculas.

El símbolo "@" (arroba) indica pertenencia o sea que en este caso sería de la computadora cuyo nombre es "andropulos".

Luego vienen los dos puntos y un símbolo "~" (ñuflo) que nos indica que estamos en el directorio /home/dir (ya veremos esto más en detalle).

Finalmente aparece un símbolo "$" que nos indica que somos usuarios comunes.
Si fueramos superusuarios (root) en lugar de "$" tendríamos el símbolo "#"

Si entramos por consola desde la parte gráfica (para entrar en consola gráfica vamos a Menú-->Sistema--Konsole u otra consola gráfica similar) veríamos esto:

andropulos@andres:~$

Esto significa que no necesitamos loguearnos ya que estamos logueados con el mismo usuario que tenemos en modo gráfico. En realidad esto es así, porque si bien parece que estuvieramos en modo texto estamos en un simil de consola pero nunca salimos del modo gráfico.

Luego haremos lo propio con SuSe.
En el caso de Mandriva para llegar a la consola grafica que trabaja sobre texto debemos ir a:
| ==> Konsole

Vamos a observar la consola gráfica (seudo consola de texto) desde Mandriva y también la consola de texto y las pequeñas diferencias que hay con Ubuntu.


K-Menú (la estrella de inicio) ==> System ==> Terminals ==>|


| ==> RXvt
Esto significa que tenemos la posibilidad de elegir entre dos tipos diferentes de consola. Realmente las diferencias entre ambos son mínimas y cualquiera de las dos funciona muy bien.
Ni bien entramos en la consola notamos que no necesitamos loguearnos, ya que en realidad estamos dentro del sistema gráfico y ya nos hemos logueado con anterioridad, así que la consola nos muestra nuestro logueo de la siguiente forma:

[andropulos@andropulos ~]$

Salvo los corchetes vemos que es muy similar a la forma mostrada en Ubuntu. Primero va el nombre de usuario, luego el nombre de la computadora, el ñuflo nos indica que estamos en el directorio del usuario (en este caso andropulos). Finalmente y ya fuera del corchete vemos un signo "$" que indica usuario. Este signo cambiará por otro "#" en caso que estemos trabajando con root.
Desde la consola de texto (Ctrl+Alt+Fx -donde "x" puede ser un número del 1 al 6) veremos lo siguiente:

Mandriva Linux release 2007 (Official)
kernel 2.6.12-14 mdksmp on an i686 / tty1
andropulos login:

En este caso menciona andropulos porque ese es el nombre de la máquina, pero lo importante es saber que aquí irá el nombre de la máquina. Si esta se llamara "pepe", allí aparecería:

pepe login:

Colocamos nuestro nombre de usuario:

andropulos

e inmediatamente nos pedirá el password

password:

Una vez que coloquemos en forma correcta el password, aparecerá esto en pantalla:
Last login: Thursday 3 19:31:10
[andropulos@andropulos ~]$

Truco para los que están usando VMware:

Los que están utilizando VMware con algún GNU/Linux desde máquina virtual, verán que la combinación de teclas ctrl+alt+Fx no responde. Para solucionarlo se pueden hacer dos cosas:
1) Utilizar la consola grafica para texto (Konsole por ejemplo)
2) Entrar a Konsole y como usuario root escribir:
init 3
Esto hará que automáticamente el sistema operativo funcione en una forma especial. Veremos que toda la pantalla se va al negro, en realidad lo que ha sucedido es que entramos en modo texto.
Para salir de modo texto, debemos escribir en consola:
startx

La consola seudo texto en SuSe:

En este caso llegaremos a la consola mediante:
K-Menú (menú de inicio que aparece en la parte de abajo -un círculo verde) ==> System ==> Terminal
Aparecerán 3 tipos diferentes de consola. Una de ellas será exclusivamente para root, las otras dos (Konsole y X Terminal) funcionarán casi iguales y sin problema.
Al entrar en consola veremos algo como esto:

andropulos@andropulos:~>

Lo primero que aparece es el nombre de usuario, que en el caso particular es "andropulos" pero podría ser cualquier otro. Luego el "@" nos indica pertenencia, en este caso se leería "andropulos de la máquina andropulos" El símbolo "~" está indicando que estamos posicionados en el directorio del usuario andropulos. Finalmente el símbolo de ">" de usuario común, nos indica que todo está listo para que empecemos a enviar comandos. Si cambiamos para usuario root, en ese caso el símbolo ">" dejará paso al símbolo"#"
Para llegar a la consola de texto utilizamos Ctrl+Alt+Fx (siendo la x el número 1 a 6).
Para aquellos que trabajen en VmWare recuerden que esto no se logra con combinación de teclas sino, entrando en una consola tipo "konsole" y escribiendo:
su

la máquina pedirá password, y unos instantes después de escribirla estaremos en consola como root.
Ahora escribiremos
init 3
rápidamente la computadora perderá el modo grafico y pasará a modo texto.

En la pantalla de texto aparecerá:
Welcome to SuSe Linux (i586) Kernel 2.6.15.11
andropulos login:
Luego de escribir el nombre y el password, el sistema nos dejará empezar a operar con la consola.
Su siguiente mensaje será:
Last Login Fri Jul 28 10:45 from console
have a lot of fun
andropulos@andropulos:~>

¿Qué es un comando?

Se trata de órdenes que ejecutamos desde una consola de texto luego del prompt, que es una línea que titila y nos indica que el intérprete de comandos está listo para recibir los comandos, que nosotros como usuarios, queramos ordenarle a nuestra comutadora.
Uno de los intérpretes de comandos más usados en gnu/linux es bash (bourne again sh).
Bash en realidad va a actuar como un intérprete entre el kernel y nosotros los usuarios.
Los comandos aunque a veces pueden escribirse solos, por lo general van acompañados de modificadores.

Veamos algunos comandos:

¿Donde estamos parados?


Todo Sistema Operativo tiene su sistema de archivos y GNU/Linux también tiene el propio.
Todos los directorios de gnu/linux parten de un directorio padre que llamaremos directorio raiz:
/ Directorio raiz desde donde comienza todo. Es como si estuvieramos parados en C:\ (en windows), aunque debo aclarar que el sistema de archivos de GNU/Linux es completamente diferente al que existe en Windows, por lo que haremos bien si tratamos de no compararlo más y lo tomamos como algo nuevo y completamente diferente. A partir de este directorio raiz, se encuentran 'colgados' todo el resto de los subdirectorios. O sea que el directorio raiz es el directorio padre de todo el resto.
/boot Es el directorio que tiene el núcleo o kernel.

/dev Es el lugar donde se encuentran los módulos (llamados drivers en windows)

/bin Hay dos tipos de compilación (estática y dinámica) .como veremos más adelante. Aqui van los archivos ejecutables que han sido compilados de manera dinámica.

/sbin Aquí van los binarios que han sido compilados en forma estática.

/lib (mal llamadas librerías. El término real es bibliotecas. La confusión viene porque en inglés library quiere decir en español biblioteca y no la mal traducida librería) Aquí se encuentran funciones necesarias por los programas para poder correr y a veces también nos encontraremos con algún módulo.

/usr Aquí encontraremos entre otros: aplicaciones de usuario tales como los servicios (webserver, servidor de correo, las x -modo gráfico-, el código fuente del kernel, etc.

/etc Aquí se encuentran archivos que tienen que ver con la configuración. Tiene varios subdirectorios

/var Cuando hay varias máquinas trabajando en red normalmente hay alguien que realiza tareas de administración. En ese caso este es el directorio en el que esa persona más tiempo pasará. ¿Porqué? Por que aquí están los informes (logs) de todo lo que sucede o sucedió en el sistema.

/proc Este directorio no existe en el disco rígido sino que se genera cuando el SO está vivo, para desaparecer cuando se apaga. Se encarga de mostrar los procesos (llamaremos proceso a cada programa que se esté ejecutando) que están corriendo en el SO y también aquí encontraremos información de hardware tales como la memoria y el microprocesador.

/root Aquí en este directorio se encuentra todo lo relacionado con el administrador del Sistema Operativo. Están los programas, scripts e info propia del administrador.

/home Directorio que cuenta con varios subdirectorios, cada uno de los usuarios tendrá un subdirectorio en /home y al mismo tiempo saliendo de este habrá otro subdirectorio llamado desktop (escritorio). Esto determina que cada usuario tenga su subdirectorio en /home y al mismo tiempo un sub-sub directorio con el escritorio propio de cada usuario. Concretamente si abrimos otro usuario veremos un escritorio diferente propio de ese usuario.

/tmp Se trata de un directorio temporal. Normalmente todo lo que hay en este directorio desaparece al apagar la computadora.

/media Sirve para tener acceso a dispositivos tales como floppy y cdrom. SuSe y Mandriva utilizan el directorio /mnt para montar los discos que corren bajo windows (fat 32) mientras que Ubuntu utiliza este directorio /media.

/opt Es un directorio que se usa para instalar otros productos que no se encuentran con el SO

/lost+found Cuando corremos un reparador de particiones normalmente la información sobre los archivos reparados se aloja aquí.

/mnt En este archivo y en una forma muy particular se montan todos los directorios windows lo que lo hace especialmente atractivo ya que desde aquí podemos -estando en gnu/linux ver los archivos que se encuentran en windows. (Como se dijo antes en Ubuntu en lugar de utilizar /mnt para montar particiones, se usa /media en forma predeterminada)

Primeros comandos:


Ahora que ya conocemos el árbol de directorios vamos a dar un paseo comenzando con los primeros comandos:

pwd Este comando nos permite saber donde nos encontramos. Hagamos la prueba!!! Desde línea de comandos escribamos pdw y veamos qué es lo que nos muestra este comando.

pwd
y la maquina respondió:
/root
Si estamos en nuestro /home/usuario podemos necesitar ver lo que sucede en otro directorio para eso usamos el comando "cd" (de change directory). Ejemplo:
cd /
Esto nos llevará directamente al directorio raiz. Si pusieramos

cd /etc
Nos posicionaríamos en el directorio /etc

ls nos lista un grupo de directorios y archivos determinados, de acuerdo a donde estemos parados. Por ejemplo:

cd /etc
ls

Con cd nos ubicamos en el directorio /etc y luego con ls listamos lo que hay dentro del directorio /etc (tanto directorios como subdirectorios y archivos).

Hemos visto cómo utilizar algunos comandos en su forma más básica. Ahora bien, en general los comandos no se usan en forma simple sino acompañados de algún parámetro. La estructura sería:

[comando] [parámetro]

A veces pueden haber varios parámetros y en ese caso se escribirían así:

[comando] [parametro1] [parametro2] [parametro3]

Finalmente debemos considerar la posibilidad de utilizar en una misma linea varios comandos. En ese caso la forma de hacerlo sería la siguiente:

[comando1] [parametro] ; [comando2] [parametro]

¿Quién soy yo?

Cuando no conocemos qué usuario estamos usando podemos hacer uso de este comando en forma muy simple:

whoami

y la computadora responderá por ejemplo

root

En nuestro caso se trataba del usuario (superusuario) root, aunque aquí aparecerá el nombre de usuario que estemos usando. Prueba en tu computadora.

Número de consola, consola de texto o consola gráfica:

Existen varias consolas de texto. Hemos visto que en general y si no cambiamos las configuración tenemos 5 consolas de texto conocidas como tty1, tty2, tty3, tty4 y tty5

Si se trata de consolas remotas o consolas gráficas en lugar de tty serán pts.

El comando para saber que tipo de consola y cual (su número) es, se escribe de la siguiente manera:

tty

y la computadora responderá algo así:

/dev/tty1

el resultado dependerá de la consola en la que estemos trabajando.

Una buena práctica sería utilizar la combinación de teclas ctrl+alt+F3 y luego escribir "tty" en la consola que aparece (recordar abrir la consola con usuario y password en la forma ya indicada).

el resultado debería ser:

tty3

Para aquellos que hacen lo mismo desde una consola gráfica seudo texto como konsole, al colocar el comando "tty" la respuesta será:

/dev/pts1

Uso de "su":

Cuando estamos en consola como usuario común y deseamos efectuar algún comando que solo funciona como superusuario (root) debemos escribir lo siguiente:

su

y la computadora nos pedirá el password

una vez escrito el password veremos que se cambia el símbolo $ (o ">" en SuSe) por el símbolo # propio de root.

El caso especial de root en Ubuntu:

La distribución Ubuntu no trae password para el usuario root. Hay dos posibles soluciones a este problema.

1) Realizar todo lo que corresponde a root desde un usuario común anteponiendo "sudo" por delante.

2) Crear la contraseña del usuario root.(esto no funciona en Ubuntu 8.10) Veamos cómo hacemos esto:

sudo passwd root

y la computadora nos devolverá:

passwd: (aquí colocar la clave de usuario)

Enter new UNIX passwdord: (una clave que hayamos elegido para root)

Retype new UNIX password: (reescribir la misma clave)

Ejemplo con "cd" y "ls" desde el superusuario (root):

Si todavía no estamos en consola como usuario root vamos a loguearnos como ese superusuario.

Para aquellos que están usando un gnu/linux desde VmWare el truco es entrar en una consola como konsole y desde ella loguearnos como root (utilizando "su" como se indicó anteriormente) y luego escribir:

init 3.

Con este veremos que se deshabilita el entorno gráfico y entramos en modo texto.

Si entramos al modo texto desde "init 3" para volver al modo gráfico no nos servirá utilizar "Alt+F7" porque hemos deshabilitado el modo 5 (que normalmente es el modo gráfico) para pasar al modo 3.

Debido a esto para volver al modo gráfico debemos utilizar el siguiente comando:

startx

Ya sea en forma común desde Ctrl+Alt+Fx (x = 1 a 6) o bien con init 3 escribimos en consola de texto:

root (como usuario)

la máquina nos pedirá luego la contraseña. La escribimos y veremos que ahora estamos en el sistema como superusuarios. Sabemos esto porque el símbolo final que antes era "$" (en SuSe era ">") ahora es "#".

Pero si tenemos dudas, podemos escribir en consola:

whoami

Nos deberá devolver algo como

/dev/root

Una vez dentro del sistema como usuario root, vamos a llegarnos hasta el directorio raiz ("/"). Para esto escribiremos en consola:

cd /

"cd" es "change directory" (cambiar directorio). Lo que le hemos dicho al sistema es que cambie al directorio raiz. Desde este, como hemos visto en sistema de archivos, cuelgan todos los demás directorios.

Ahora nos vamos a posicionar en el escritorio de un usuario que en este caso suponemos se llame "tabare"

cd /home/tabare/Escritorio

Vamos a pedirle al sistema que nos liste (nos muestre) todos los subdirectorios y archivos que se encuentren dentro del directorio Escritorio.
Sabemos que ls es una notación abreviada de "list" (listar). Vemos que se le han agregado dos parámetros:

a indica todos salvo que se le agregue algún tipo particular de archivo en cuyo caso solo desplegará este.

l indica formato largo

Veamos lo que sucede cuando escribimos:

:/home/tabare/Escritorio# ls -al
total 760164

drwxr-xr-x 4 tabare tabare 4096 2009-01-04 20:53 .
drwxr-xr-x 52 tabare tabare 4096 2009-01-05 21:12 ..
-rw-r--rw- 1 tabare tabare 835352 2008-12-10 19:43 3pasos.pdf
-rw-r--r-- 1 tabare tabare 4889 2009-01-04 20:53 amarok.desktop
-rw-r--rw- 1 tabare tabare 105 2008-11-17 22:53 amule.desktop
-rw-r--r-- 1 tabare tabare 651 2008-12-25 18:22 config.php~
-rw-r--r-- 1 tabare tabare 14244496 2008-12-25 18:21 cursos.backup.1230236502.tgz
-rw-r--r-- 1 tabare tabare 18401 2008-12-20 19:48 finalbasico.odt
-rw-r--rw- 1 tabare tabare 7706 2008-11-02 18:15 gcalctool.desktop
-rw-r--r-- 1 tabare tabare 2568 2008-12-30 19:41 gnome-commander.desktop
drwxrwxrwx 3 tabare tabare 4096 2008-12-14 16:58 graficoscurso
-rw-r--rw- 1 tabare tabare 7358 2008-11-02 18:15 gucharmap.desktop
-rw-r--rw- 1 tabare tabare 1278 2008-07-06 09:05 klamav.desktop
-rwxrwxrwx 1 tabare tabare 26 2008-11-06 18:53 lampp
-rw-r--r-- 1 tabare tabare 28168 2008-12-26 20:45 leemexampp.odt
-rw-r--rw- 1 tabare tabare 736571392 2008-11-16 10:00 mandriva-linux-one-2009-KDE4-int-cdrom-i586.iso
-rw-r--r-- 1 tabare tabare 25820581 2008-12-25 18:01 miedo.mp3
-rw-r--rw- 1 tabare tabare 9814 2008-11-28 20:54 nautilus.desktop
-rwxr-xr-x 1 tabare tabare 947 2007-11-15 00:00 README.txt
-rw-r--rw- 1 tabare tabare 8749 2008-11-16 13:22 rhythmbox.desktop
-rw-r--rw- 1 tabare tabare 6235 2008-11-02 18:19 synaptic.desktop
drwxr-xr-x 2 tabare tabare 4096 2008-12-21 15:50 tuxinfo
-rw-r--rw- 1 tabare tabare 2381 2008-11-02 18:14 xsane.desktop

Veamos un poco todo esto. Con "cd /" nos posicionamos en raiz. Luego, con cd /home/tabare/Escritorio nos posicionamos en el escritorio del usuario "tabare". Con "ls -al" el sistema nos muestra en formato largo los directorios del sistema de archivos.
Lo primero que vemos es un conjunto de letras que representan los permisos.
Si lo vemos con detenimiento veremos que está compuesto por una primer letra:

* si es una "d" se trata de un directorio
* si es un "-" indica un archivo

Luego vienen un conjunto de tres letras que son rwx. La "r" significa read (lectura), la "w" significa write (escritura), y la "x" significa executar (ejecutar). Si aparecen las tres letras quiere decir que tenemos permiso para leer, escribir y ejecutar. A veces aparecerá de esta manera:

rw-
En este caso el guión indica que la "x" no está o sea que no hay permiso de ejecución. Allí habrá permisos de lectura y escritura, pero si se trata de un ejecutable no existirán los permisos correspondientes.
Ahora bien, vemos que esta notación se repite dos veces más. Esto es así, porque el primer trio de letras "rwx" nos indica permisos para el dueño del directorio/archivo, el segundo trio nos indica permisos para el grupo y el tercero para el resto.
Para entenderlo un poco mejor, todo archivo tiene un dueño que es un usuario de la computadora en cuestión. También este usuario pertenece a un grupo, por ejemplo puede haber un grupo que se llame "ventas" otro que se llame "correo", etc. y finalmente están los usuarios que no son dueños ni pertenecen al grupo en cuestión y que nombraremos como "otros".

Creo que todo esto tiene suficiente substancia como para terminar aquí. La mejor forma de asimilar lo que hemos visto es abrir una consola y practicar mucho todos estos comandos.

Vimos que mediante el comando "ls -al" posicionados en el directorio raiz (/), podíamos ver el conjunto de directorios que conforman el sistema básico de archivos en gnu/linux. La primera columna podía contener como primera letra:


"-" en cuyo caso indicaba que estamos en presencia de un archivo.

"d" que nos dice se trata de un directorio.

"l" esta letra L minúscula (no confundir con un signo parecido) nos indica link (enlace a un archivo).

Luego vienen 3 trios de letras "rwx" que indican "read, write, execute", que son los permisos para lectura, escritura y ejecución respectivamente.
No todos los permisos tienen porqué estar habiitados. Cuando un permiso no está, en su lugar aparece un "-".
Por ejemplo la notación "r-x", estaría indicando que hay permiso de "r" (lectura), no hay permiso de "w" (escritura y por eso el guión) y sí hay permiso de "x" (ejecución).
Vemos que este grupo de tres se repite tres veces. Esto es porque en gnu/linux los permisos se agrupan en usuario (1er.grupo de tres), grupo (segundo grupo de tres) y todos los demás usuarios de la máquina (tercer grupo de tres).
Para entenderlo mejor: cuando hicimos la instalación creamos un superusuario llamado root. (normalmente root tiene todos los permisos), luego creamos uno o varios usuarios comunes. Supongamos por un momento que creamos varios usuarios comunes. Normalmente el sistema (o nosotros mismos) agrupa los usuarios por grupo.
Un grupo podría ser llamado "correo" y otro "ventas". Puede también que el grupo "ventas" no tenga permisos para entrar en ciertos directorios, más que para leer, y que esos directorios no tengan permiso alguno para los usuarios de otros grupos existentes.
Entonces la notación anterior en uno de estos directorios sería algo así:


rwxr-----

Observamos que el usuario dueño tiene permisos completos de lectura, escritura y ejecución, (primer trio), mientras que el grupo (al que pertenece este usuario y está representado por el segundo trio) solo tiene permisos de lectura (r) y no así de escritura ni ejecución (--). Tampoco los demás usuarios (tercer trio) tienen permisos de lectura, escritura o ejecución. (---)

La columna siguiente muestra un número que son los subdirectorios existentes que pueden existir dentro de un directorio dado. En orden vienen después:

el dueño, el grupo, el tamaño en bytes, la fecha y hora de creación, y finalmente está el nombre del archivo o directorio.

Copiar archivos

Puede que en algún momento necesitemos copiar archivos de una parte a otra de nuestro sistema, en ese caso utilizaremos el comando "cp" de la siguiente manera:


cp [origen] [destino]

Veamos un ejemplo

cp /home/andres/* /temp/copia

En este caso le hemos dicho al sistema que copie del directorio /home subdirectorio /andres todos los archivos (esto lo representamos mediante el comodín "*") a un directorio llamado /temp y un subdirectorio llamado /copia.

Otra forma de escribir todos los archivos de un directorio, como hicimos en el caso anterior pero sin usar el comodín es la siguiente:


cp /home/andres -r /temp/copia

El -r indica recursividad y va a copiar todos los subdirectorios y archivos que encuentre dentro del directorio /andrés

Si hubiéramos querido copiar un archivo en particular (supongamos texto.txt) la forma es la siguiente:


cp /home/andres/texto.txt /temp/copia

Y si hubieramos querido además de copiar cambiarle el nombre a textoviejo.txt, la forma es la siguiente:


cp /home/andres/texto.txt /temp/copia/textoviejo.txt

Supongamos que estamos parados en el directorio /temp/copia. Para llegar allí hicimos:

cd /temp/copia

y deseamos copiar el archivo texto.txt que está en /home andres. En este caso no necesitamos incluir toda la ruta como hemos hecho antes. Podríamos escribir simplemente:


cp /home/andres/texto.txt .

Este punto que se encuentra al final de todo (luego de txt) le indica al sistema que queremos copiar lo indicado en el punto donde estoy parado en este momento. Como estamos en /temp/copia, allí será donde se copie el archivo texto.txt.


Un detalle importante:

Hemos querido hacer lo anterior pero nos ha dado siempre error!! ¿porqué? Simplemente porque quisimos colocar archivos copiados en un subdirectorio llamado copia, pero...el directorio no estaba creado aún. Antes de hacer las copias debemos ver que los directorios donde queremos dirigirnos ya existan, de lo contrario habrá que crearlos con un comando que veremos a continuación.


Creando archivos y directorios

Para crear un archivo vacío (sin contenido) simplemente escribimos:

touch [nombre de archivo]

Ejemplo:

Supongamos que queremos escribir un archivo en /temp llamado pedrito.txt en ese caso escribiríamos:

touch /temp/pedrito.txt

o si ya estamos en /temp solamente

touch pedrito.txt

Aquí hay un detalle muy importante: ¡los permisos! En gnu/linux no deseamos que nos escriban o modifiquen archivos de importancia, entonces, salvo el directorio de usuario (en mi caso sería home/andrés, cambien "andres" por el nombre de usuario con el que se haya abierto la sesión) los demás solo pueden ser leidos, pero no se puede escribir sobre ellos.

Por este motivo el archivo en cuestión solo podrá ser agregado por root (a menos que el usuario tenga permisos especiales para escribir en el directorio /temp)

Para crear directorios utilizamos el comando mkdir

Por ejemplo:


mkdir /temp/copias

En este caso hemos creado el directorio copias como un subdirectorio dentro del directorio /temp.


Mover archivos, renombrar archivos con el comando "mv"


Veamos primero la forma de mover un archivo

mv pedrito.txt /var

Hemos movido el archivo pedrito.txt de su posición original al directorio /var.

Por supuesto para hacer esto previamente teníamos que estar parados en el directorio que contenía el archivo en cuestión.

Si esto no es así, podemos escribir el comando de la siguiente manera:


mv /temp/copias/pedrito.txt /var

Al colocar la ruta completa podemos estar parados en otra parte del sistema de archivos que el movimiento se hará igual.

Ahora veamos la forma de cambiar el nombre de un archivo pero sin moverlo con este mismo comando


mv pedrito.txt pedrito1.txt

Hemos cambiado el nombre de pedrito.txt a pedrito1.txt

Veamos un pequeño ejercicio que sería bueno de hacer en nuestras computadoras.

Vamos a crear un archivo, luego lo vamos copiar con otro nombre, luego lo vamos a mover a otro lugar y finalmente le vamos a cambiar el nombre:



touch /etc/misdatos.txt

cp misdatos.txt datosviejos.txt

mv datosviejos.txt /temp/copias

cd /temp/copias

mv datosviejos.txt otrosdatos.txt

Veamos en detalle lo que hicimos:

1) Con el comando "touch" creamos el archivo "misdatos.txt"

2) Con el comando "cp" copiamos misdatos.txt como datosviejos.txt Obsérvese que no se cambió el nombre, sino que se copió por lo tanto ahora tenemos dos archivos iguales con diferente nombre.

3) Con el comando "mv" movimos el archivo "datosviejos.txt al subdirectorio /temp/copias.

4) Con "cd" nos posicionamos en /temp/copias

5) Con "mv" esta vez no movimos nada, sino que cambiamos el nombre del archivo "datosviejos.txt" a otrosdatos.txt


Borrando archivos y directorios

No ensuciemos nuestro sistema de archivos, vamos a borrar los archivos que hemos creado. ¿cómo? utilizando el comando rm de la siguiente forma:

rm [archivo]

por ejemplo en nuestro caso haremos:

rm /temp/copias/otrosdatos.txt

Si estabamos dentro de "/temp/copias" no será necesario escribir todo el camino (path en inglés) sino simplemente el nombre del archivo.

rm otrosdatos.txt

Ahora borramos uno de los archivos que creamos en /etc

rm /etc/misdatos.txt

Pero vemos que queda un subdirectorio llamado "copias" y dentro un archivo llamado "otrosdatos.txt"

Vamos a borrar todo junto

rm -r /temp/copias

El "-r" indica recursividad, es decir que no solo borra el directorio sino todo lo que hay dentro.

Si el subdirectorio "copias" estuviera vacío sin archivos podríamos escribir:

rmdir /temp/copias

Esta forma de borrar es absoluta. O sea que no hay "papelera" ni nada de donde podamos recuperar lo que borramos. Por este motivo algunas distribuciones antes de borrar nos preguntan algo así:

¿realmente deseas borrar el archivo/directorio?

Pero esto no lo hacen todas las distribuciones, por este motivo lo ideal es acostumbrarse a utilizar el comando "rm" seguido del parámetro "-i", con lo que lograremos que siempre nos consulte antes de borrar.

Línea de Comandos - Consideraciones finales

Para aquellos que quieran conocer más sobre línea de comandos y sus usos se ofrecen los siguientes links:

Compilando e instalando software libre (de Mandrake soft)

Este trabajo es válido para cualquier distribución y tiene mucho información sobre la forma de compilar, y por lo tanto sobre cómo utilizar .tar.gz


La Consola Linux - De la guia de referencia Debian.

Un completo trabajo de la gente de Debian sobre el uso de la consola.

Fuentes de información:

Visite el Proyecto de Documentación Debian (DDP) que tiene las referencias más importantes sobre Debian. Muchos de estos documentos se encuentran instalados en /usr/share/doc/. También consulte /usr/share/doc-base/ que proporcionan enlaces a los documentos del sistema. Añada export CDPATH=.:/usr/share/doc:/usr/src/local al ~/.bash_profile para un acceso más cómodo a los directorios de documentación.


El Proyecto de documentación Linux (LDP) tiene las referencias más importantes sobre Linux en general. Los contenidos del LDP usualmente están instalados en /usr/share/doc/HOWTO/.

Navegue por los documentos en forma local y en ftps remotos con la tecla F9 del Midnight Commander (véase Midnight Commander (MC), Sección 4.3).


Breve lección de actualización, instalación y desinstalación de software en Linux®.

Autor: Joel Barrios Dueñas


Ordenes básicas de la línea de comandos

Autor: Manuel Muriel Cordero

Aunque después de mucho tiempo de ser usuario de Linux a uno le parezca un sistema amigable y potente, la primera impresión que suele recibir un usuario sin demasiados conocimientos de informática no es precisamente la de un "sistema amigable". En este artículo, el autor nos lleva de la mano por esos primeros momentos, enseñándonos los conceptos, programas y "trucos" que todo usuario de UNIX necesita conocer.

Hay muchísimo contenido sobre este tema en Internet. Con solo colocar "linea de comandos" en el buscador de google, por ejemplo, se pueden encontrar toneladas de información. Es importante acostumbrarse a ir leyendo y seleccionando información útil, sobre todos los temas que vayamos viendo.

Es importante utilizar el buscador que google tiene para linux. Para esto es posible escribir http://google.com/linux o bien desde la pequeña flecha de opción del buscador de google ir a "Anadir buscadores" y buscar alguno que sea de google pero con el pingüinito!!!.

00ooxxo00

Last modified: Thursday, 17 September 2009, 10:20 AM