Anda di halaman 1dari 30

Curso de nivelacin de Administracin de Redes con GNU/Linux

Tema 1 El shell y otras hierbas

Javier Maldonado Ronald Escalona Nomar Mora

Pero antes, hablemos un poco de la filosofa del UNIX en general


Todo es un archivo. Pequeas utileras que hacen bien una sola cosa (menos es mas). No news, good news (No noticias, buenas noticias). El root (superusuario) siempre sabe lo que hace... aunque realmente no lo sepa.

Qu es el Shell?
Cuando trabajamos en entornos grficos, la interfaz esta provista por ventanas, botones, barras, mens. Pero en un entorno de lnea de comandos la interfaz es brindada por un programa que interpreta los comandos, ejecuta las aplicaciones, gestiona la entrada y la salida. Este programa es llamado shell.

Cmo hago para comenzar a usar el shell? 1 de 3


La primera forma para comenzar a usar el shell es loguearnos en la maquina. Para ello necesitamos dar nuestros datos a un programa llamado login, que es el encargado de cuidar la entrada del sistema.
Debian GNU/Linux squeeze/sid hades tty1 hades login:

Cmo hago para comenzar a usar el shell? 2 de 3


La segunda forma es activar un terminal virtual en el entorno grfico en el que nos encontremos.

Cmo hago para comenzar a usar el shell? 3 de 3


La tercera forma es accediendo a la maquina de forma remota con algn programa de terminal remoto. Por ejemplo: ssh - Secure Shell
nomar@minastirith:~$ ssh nomar@palidromo.dyndns.info nomar@palidromo.dyndns.info's password:

Una vez dentro que hacemos?


Luego de conseguir el acceso a la lnea de comandos, shell, terminal. Podemos empezar a emitir instrucciones a la maquina y trabajar. Y la vista que nos brindar la mquina (dependiendo de con que usuario nos autentiquemos) sera algo como esto:
root@minastirith:~# nomar@minastirith:~$

Usuarios: Quien es quien


En *nix en general y en GNU/Linux en particular existen dos tipos de usuarios: Usuarios regulares, y el Sper usuario o root. Esta divisin esta hecha en base a los privilegios que otorga el sistema operativo. El Sper usuario puede hacer todo, TODO. Incluso romper el sistema operativo. Entre los Usuarios regulares hay otra divisin (al menos por convencin): los Usuarios de sistema, usados por los servicios o daemons, y los Usuarios normales comunes y sin ningn tipo de privilegios. Un usuario regular puede convertirse en root haciendo uso del comando su. Un usuario regular puede ejecutar acciones como el root haciendo uso del comando sudo.

La lnea de comando
Es difcil lograr que el computador haga algo si no podemos interactuar con l y correr programas. Recuerdan que casi todo en mundo *nix es un archivo? Cada programa que intenten correr deber estar en algn lado dentro del disco duro. Para correr los programas debemos llamarlos por su nombre completo, es decir, hacer uso de la localizacin exacta del archivo dentro del filesystem (sistema de archivos) del computador a esto lo llamamos full path. Ahora la pregunta; Como es posible ejecutar aplicaciones y comandos tan solo colocando un nombre corto?

El PATH
La mayora de los comandos del sistema reposan en el directorio /bin ejemplo: /bin/su. Por qu no tenemos que usar todo el tiempo /bin/su para ejecutar el comando? Porque en la mayora de los shells existe una variable de entorno que indica un listado de posibles localizaciones para el programa que estemos pidiendo ejecutar. Existen dos PATHs (rutas) especiales . y .. El punto simboliza el directorio actual y el doble punto simboliza el directorio padre.

Prctica: Ejecucin de comandos


Abra un terminal. Ejecute los siguientes comandos:
ls man bash touch prueba.txt more /etc/passwd ps ps aux

Los comodines
Facilitan las tareas administrativas, sobre todo para el trabajo en lotes. Ya que nos permiten referirnos a un conjunto de archivos de una forma fcil y rpida. ADVERTENCIA: Es necesario ser muy cuidadosos con ellos para no incluir casos no deseados.

Comodn: ?
? hace match (concuerda) con un caracter sencillo, si queremos por ejemplo buscar archivos de tres caracteres haremos:
nomar@minastirith:~$ ls ???

Si deseamos encontrar archivos terminados en cion de siete caracteres haramos:


nomar@minastirith:~$ ls ???cion

Comodn: *
Hace match con cualquier numero de caracteres incluyendo el caso vaco, es decir todo y nada. Si deseamos listar todos los archivos de un directorio haramos:
nomar@minastirith:~$ ls *

Si deseamos copiar todos los archivos con extensin txt al directorio /tmp haramos:
nomar@minastirith:~$ cp *.txt /tmp

Comodn: []
Permite acotar un conjunto de caracteres permitidos por ejemplo: [1-9] [1,2,4] [A,a] [a-z]. Para listar los archivos en directorio que comiencen con a A haramos:
nomar@minastirith:~$ ls [A,a]*

Si deseamos listar todos los archivos de logs syslog del 1 al 9 en el directorio /var/log hacemos:
nomar@minastirith:~$ ls /var/log/syslog.[1-9].gz

Prctica: Uso de comodines


Si desea listar todos los archivos de un directorio que tengan 6 caracteres y la extensin dat cul seria la linea de comando? Si desea listar los archivos que consten de dos nmeros cul sera la lnea de comando? Si desea copiar todos los archivos de un directorio que comiencen por una letra mayscula y terminen en un nmero que lnea de comando deber usar?*

*http://www.linuxforums.org/forum/linuxprogrammingscripting/135009weirdnessbashwildcards.html

Redireccin de la entrada/salida I/O


En ocasiones es deseable que la salida de un comando pueda ser usada como la entrada de otro, o simplemente guardada a un archivo para su posterior revisin. Otra situacin es cuando la informacin esta guardada en un archivo y se necesita ejecutar una instruccin sobre cada uno de los registros de dicho archivo. En estos casos el poder redirigir la entrada y salida estndar de los comandos es sumamente til.

Cmo funciona la redireccin de I/O


De ejercicios anteriores comprobamos que ps puede tener una salida larga. Pues bien hagamos lo siguiente:
nomar@minastirith:~$ ps aux > salida.txt

paginamos la salida del haciendo uso de more o less:

comando

nomar@minastirith:~$ ps aux | more nomar@minastirith:~$ ps aux | less La cosa comienza a ponerse buena cuando encadenamos

mltiple instrucciones!!!!

Cmo funciona la redireccin de I/O


> redirige la salida de un comando a un archivo si usamos >> ser agregar al archivo ya existente. | entuba o redirige la salida de un comando a la entrada de otro. < usa el archivo como la entrada estndar del comando. tee redirige la salida del comando a un archivo y a la salida estndar.

Prctica de redireccin de I/O


Se desea guardar la salida del comando ifconfig en un archivo, que lnea de comando utilizaramos? Pagine la salida del comando ls -l /etc Haciendo uso del comando grep (el instructor le dar las indicaciones) busque al usuario sys en la salida del comando cat /etc/passwd CAT /ETC/PASSWD | GREP SYS

Variables de entorno
GNU/Linux es una bestia compleja. Con montones de programas que interactan los unos con los otros y con el usuario. Dichos programas requieren de opciones, muchas de las cuales ni siquiera estamos consientes de que existen. Y para ser honestos a nadie le gustara tener que estar pasando a cada programa un montn de opciones tales como: que tipo de terminal usamos, cmo se llama nuestra mquina, cmo debe lucir el prompt. Para mantener todas estas variables existe lo que se llama Entorno. El entorno mantiene guardadas estas opciones de manera que al ejecutar cualquier programa estas estn disponibles y de la misma forma el programa puede poner sus opciones dentro del entorno para que se mantengan a lo largo de la ejecucin.

Variables de entorno
Es posible ver las variables del entorno haciendo uso del comando set env. Para incluir una variable en el entorno debemos hacer lo siguiente:
nomar@minastirith:~$ VARIABLE=valor nomar@minastirith:~$ export VARIABLE=valor

Si deseamos que el shell olvide la variable hacemos:


nomar@minastirith:~$ unset VARIABLE

Variables de entorno
Si deseamos ver el valor de una variable hacemos:
nomar@minastirith:~$ echo $VARIABLE

Completar comandos usando el 'Tab'


Tomemos en cuenta lo siguiente: La lnea de comando implica tipear mucho. Tipear es trabajo. A nadie le gusta el trabajo. De 3 y 2 podemos deducir que: A nadie le gusta tipear. Y afortunadamente bash nos salva de: A nadie le gusta la linea de comando .

Completar comandos usando el 'Tab'


La completacin por tabs funciona como sigue: Suponga que esta tipeando el nombre de un archivo que puede o no estar en el PATH, tal vez lo estamos tipeando de forma explicita. Todo lo que tenemos que hacer es tipear lo suficiente del nombre del archivo para identificarlo unvocamente y luego presionar tab y bash completar el resto del nombre por nosotros. Si lo que tipeamos no es suficiente para identificar el archivo, bash nos mostrar una lista de los posibles archivos que concuerdan con el patrn ingresado.

Prctica: Completacin de comandos con Tab


Haciendo uso de ls liste este archivo: /usr/lib/dpkg/parsechangelog/debian Cuales comandos son posibles si escribimos gnome y pulsamos tab dos veces? Pulse 'a' y luego tab dos veces que obtenemos?

Terminales Virtuales
Suponga que esta en medio de la ejecucin de un programa y desea hacer algo mas. Como lo hace? Deja todo y se pone a hacerlo? Se supone que es un sistema multitareas, no? La idea tampoco es poner mas teclados, ratones y monitores. Bueno haciendo uso de las teclas Alt+F1 a Alt+F6 tenemos seis terminales virtuales con los cuales trabajar. Si estamos en entorno grfico le corresponde Alt+F7

Terminales Virtuales
Qu pasa si estamos conectados, digamos usando ssh? Perderamos la facilidad de los Alt+F'algo'? No, podemos hacer uso del programa llamado screen que nos provee de tantos terminales virtuales como necesitemos. Con el bono de que si la conexin se corta screen permanece activo y lo que hubisemos estado haciendo no se pierde en lo absoluto.

Terminales Virtuales
Algunos comandos de screen: Ctrl+A+C crea un nuevo terminal. Ctrl+A+P mueve el foco al terminal previo. Ctrl+A+N mueve el foco al siguiente terminal. Ctrl+A+D hace dettach de la sesin screen y dejar corriendo la sesin en el fondo. Si deseamos reanudar la sesin con screen -r podemos ver el listado de sesiones activas y con screen -r y el nmero de sesin continuamos con nuestro trabajo.

Consultar
http://www.slackware-es.com/
Captulo 8
http://www.debian.org/doc/manuals/debian-reference/

3.2 y 3.3 4.1 y 4.3 4.5.1

Gua del Sobreviviente de Debian!


http://linux.togaware.com/survivor/survivor.html

Anda mungkin juga menyukai