Consola Linux
La Pantalla Negra - Parte II
La pantalla Negra. Parte II - Linux sin Ventanucos.
Volvemos a enfrentarnos una vez más con el dragón.
Linux Debian (Potatoe)
Login: gustavo
password:
gustavo]$ _
Vamos a introducir algunas ordenes, para familiarizarnos un poco con el
shell que estamos utilizando,
[gustavo]$ ls
[gustavo]$ pwd
/home/gustavo
[gustavo]$ _
Estas ordenes ya las vimos en la primera parte, si queremos repetir en
cualquier otro momento alguna de las ordenes, no hace falta teclearlas de
nuevo, usando las flecha de cursor arriba, podemos repetir ordenes que ya
hemos tecleado anteriormente, e incluso editarlas.
Sigamos metiendo ordenes, crear directorios, borrarlos, crear archivos,
etc. Llegará un momento, en que el texto desaparezca por la parte superior
de la pantalla.
La consola, sólo tiene 80 columnas de ancho y 25 líneas de alto, para ver
una línea que haya desaparecido, podemos usar la combinación de teclas
"Mayúsculas + Retroceso de página" para ir arriba y "Mayúsculas + Avance de
página" para ir hacia abajo.
Si lo deseamos, podemos ejecutar dos o más ordenes en una misma línea
separandolas con el punto y coma, ";"
[gustavo]$ mkdir directorio ; ls ; cd directorio ; pwd
directorio
/home/gustavo/directorio
[directorio]$ _
A diferencia de lo que ocurre con otros sistemas operativos orientados a
caracteres, casi todos los comandos básicos que acepta el shell, son
externos, o sea, programas aparte, muchos de esos programas están en el
directorio /bin y otros en el directorio /usr/bin.
Para verlos puedes hacer un ls
[directorio]$ ls /bin
arch date grep mknod
rmdir true ash dd
gtar mktemp rpm umount
...............
[directorio]$ _
En cualquier momento, cuando se tenga curiosidad acerca de qué hace un
programa determinado, podemos consultar la orden "man".
[directorio]$ man ls
-------------------------------------------
LS(1) LS(1)
NOMBRE
ls, dir, vdir - listan los contenidos de directorios
SINOPSIS
ls [opciones] [fichero...]
Opciones de POSIX: [-CFRacdilqrtu1]
Opciones de GNU (en la forma más corta): [-1abcd
fgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I
patrón] [--full-time] [--format={long,verbose,com
mas,across,vertical,single-column}]
[--sort={none,time,size,extension}]
[--time={atime,access,use,ctime,status}]
[--color[={none,auto,always}]] [--help] [--version] [--]
DESCRIPCIÓN
El programa ls lista primero sus argumentos no directorios:
------------------------------------------------
Con las teclas de cursor, nos desplazamos hacia arriba y abajo, para salir
pulsar la tecla q.
La mayoría de las ordenes aceptan parámetros, los parámetros especifican
que cosas debe hacer un programa o como debe funcionar.
[directorio]$ cd .. ; ls -l
drwxr-xr-x 5 gustavo users 1024 Jan 13 00:22 directorio
[gustavo]$ _
TIP 3: Los parámetros en Unix se pasan con el simbolo "-", a diferencia
del DOS que usa el símbolo "/".
Con el parámetro -l, hemos dicho a ls que liste los archivos en formato
largo, un archivo por línea, dando más información sobre ese archivo.
Probar a hacer:
[gustavo]$ ls -l /usr/bin
-rwxr-xr-x 1 root root 20648 Jul 30 1999 zipsplit
-rwxr-xr-x 1 root root 41 Mar 25 1999 zless
-rwxr-xr-x 1 root root 1068 Mar 25 1999 zmore
-rwxr-xr-x 1 root root 3502 Mar 25 1999 znew
[gustavo]$ _
Veremos desplazarse los archivos rápidamente y se perderán los primeros,
este es el momento para prácticar las combinaciónes de teclas "Mays + Re
Pag" y "Mays + Av Pag".
Al principio de cada línea, hay una información muy rara, -rwxr-xr-x, la
primera letra, indica que tipo de archivo es, si es una "d" es un
directorio, y si es el caracter "-" es un archivo comun, o sea, un programa,
un archivo de texto, un archivo de sonido, un AVI, etc.
Si volvemos a hacer un ls -l, vemos que efectivamente, el archivo
"directorio" que hemos creado con anterioridad, es un directorio.
[gustavo]$ ls -l
drwxr-xr-x 5 gustavo users 1024 Jan 13 00:22 directorio
[gustavo]$ _
Vemos en la tercera columna, la palabra "gustavo", o sea, dice que lo
hemos creado nosotros, y como pertenecemos al grupo de trabajo "users", el
archivo también pertenece al grupo "users".
La siguiente columna, 1024, indica el tamaño del archivo, observa el
listado de /usr/bin. Luego viene la fecha y la hora, y por último el nombre
del archivo.
Pero volvamos a la primera columna.
-rwxr-xr-x 1 root root 3502 Mar 25 1999 znew
Sobre el archivo ordinario znew, hay unos permisos de lectura y escritura,
vemos que el archivo, pertenece a "root" y es de un grupo de usuarios
llamado "root".
Quitamos el primer caracter, que nos dice que tipo de archivo es, y
separamos los demás caracteres en bloques de tres.
rwx r-x r-x
El primer bloque, se aplica sobre el usuario propietario, en este caso
"root", el segundo bloque sobre el grupo propietario, también "root" y el
último bloque, a todos los demas.
El propietario del archivo, "root", puede leer "r", puede escribir en
el "w", incluido el borrado, y puede ejecutarlo como programa, "x".
En nuestro caso, como no somos "root" y somos de otro grupo, "users", se
aplica el tercer bloque, podemos leer el archivo, y podemos ejecutarlo, pero
no podemos sobrescribirlo, ni borrarlo, ni hacer ninguna modificación.
Esto es una seguridad básica del sistema operativo, en una máquina en la
que existan varios usuarios trabajando al mismo tiempo, ninguno podrá
modificar los programas ni los archivos para meter troyanos ni bromas.
Supongamos que alguien escribiera un virus para Linux, y lo ejecutamos
trabajando como "gustavo", el virus tendría nuestros permisos y no podría
borrar los archivos importantes.
[gustavo]$ ls -l /etc/shadow
-r-------- 1 root root 745 Dec 22 02:01 /etc/shadow
El archivo /etc/shadow, contiene los passwords de los usuarios, y sólo
lo puede leer el usuario "root".
Otro parámetro de ls, es -a, con -a listamos también los archivos ocultos.
[gustavo]$ ls -a
. .gftp .twmX8Fmri
.. .gimp .user.rdb
Directorio
[gustavo]$_
Hay más archivos ocultos, pero se han omitido por comodidad, los archivos
ocultos en Unix son los que empiezan con un punto, normalmente suelen ser
archivos de configuración.
De esos archivos, hay dos, el archivo "." y el archivo ".." que son
directorios, "." es el directorio en el que estamos y ".." es el nivel
superior, o directorio padre.
TIP 4: Cuando usamos más de un parámetro, normalmente se pueden agrupar
con un único simbolo "-"
[gustavo]$ ls -alF
Siguiendo con el tema de los parámetros, el shell del sistema operativo,
no mete a los programas los parámetros tal y como nosotros se los damos,
tiene que mirar si existen unos caracteres especiales llamados
metacaracteres.
Un metacaracter, es el símbolo "*", cuando pasamos un asterisco como
parámetro a un programa, el sistema operativo lo sustituye por los nombres
de todos los archivos que existen en el directorio.
[gustavo]$ cd directorio
[directorio]$ touch archivo1
[directorio]$ touch archivo2
[directorio]$ cd ..
[gustavo]$ mkdir dir2
[gustavo]$ touch archivo3
[gustavo]$ touch archivo4
[gustavo]$ touch archivo5
[gustavo] ls *
archivo3 archivo4 archivo5
directorio:
archivo1 archivo2
dir2:
[gustavo]$ _
La orden ls * en nuestro caso, equivalía a "ls directorio dir2 archivo3
archivo4 archivo5"
El caracter asterisco, naturalmente también se puede usar como comodín
de varios caracteres.
[gustavo]$ ls *.txt
Otro metacaracter es el símbolo "?" que sustituye a un caracter.
[gustavo]$ ls archivo?
archivo3 archivo4 archivo5
Para más información se puede consultar "man bash"
Próxima sesión, más de lo mismo (La pantalla Negra. Parte III).
Lokutus, asimilando la red.
|