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'
.
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
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 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.
"-" 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).
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-----
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
cp [origen] [destino]
Veamos un ejemplo
cp /home/andres/* /temp/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
Si hubiéramos querido copiar un archivo en particular (supongamos texto.txt) la forma es la siguiente:
cp /home/andres/texto.txt /temp/copia
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
cp /home/andres/texto.txt .
Un detalle importante:
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
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
Mover archivos, renombrar archivos con el comando "mv"
Veamos primero la forma de mover un archivo
mv pedrito.txt /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
Ahora veamos la forma de cambiar el nombre de un archivo pero sin moverlo con este mismo comando
mv pedrito.txt 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
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
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
