Sunteți pe pagina 1din 72

SISTEMA MULTIUSUARIO UNIX/LINUX: INSTALACIN, OPERACIN, CONFIGURACIN Y ADMINISTRACIN

1. Necesidad de un Sistema Multiusuario


Actualmente, una de las cuestiones ms importantes de todo el desarrollo de la informtica es la comunicacin entre usuarios y ordenadores, pero sobre todo entre los usuarios. En el pasado, cuando no existan las redes, la nica forma de comunicacin era la mensajera. Ello conllevaba una gran prdida de tiempo, pues se tena que esperar que el correo llegara. Este desperdicio de tiempo era an ms pronunciado en los casos en que se tena que desarrollar un trabajo entre varias personas que estaba dividido en una serie de proyectos que dependan unos de otros. En tales casos haba que esperar a que la primera parte estuviera acabada y el mensajero deba llevarla de un lugar a otro. Hoy en da esto ha cambiado gracias a la aparicin de las redes, que han hecho que sea posible la comparticin de documentos y la utilizacin de un mismo programa por todos los empleados que estn utilizando ordenadores dentro de una misma empresa. Estos programas se van actualizando constantemente con el paso del tiempo. Si en una empresa existieran un nmero n de ordenadores que no compartieran datos ni estuvieran conectados en red, una persona tendra que ir actualizando, mquina por mquina, el software de cada uno de los ordenadores. Lo que supondra un gasto extraordinario de tiempo y dinero. De ah que surgiera la necesidad de la comparticin de datos y, en consecuencia, las redes, que dieron origen a la aparicin de una nueva ciencia: la telemtica, que se encarga de estudiar la comunicacin de datos e imgenes a travs de medios fsicos. Un sistema multiusuario es aqul en que varias personas pueden estar utilizando informacin de un mismo ordenador. En cada sistema se pueden encontrar tres partes fundamentales: el ordenador central, las tarjetas multipuerto y los terminales. El ordenador central suele ser el ms potente y con mayor capacidad de almacenamiento de la red. Se encarga de controlar cada uno de los distintos ordenadores que estn conectados a l, tanto el acceso a los datos por los distintos usuarios como el uso de los perifricos.

Dependiendo de cmo sean los terminales, el ordenador central puede ser el nico ordenador de la red que contenga el sistema operativo, por lo que todos los procesos debern de pasar por l obligatoriamente.

2. Hardware en un Sistema Multiusuario


En general, el hardware de cualquier sistema multiusuario consta de dos partes fundamentales: Ordenador central. Tambin llamado servidor, que es el encargado de suministrar informacin a los diferentes usuarios del sistema. Terminales. Estos son los puestos con los que los usuarios se comunican con el ordenador central. Pueden ser, a su vez, de dos tipos: Terminales puros. Estos terminales son exclusivamente un monitor y un teclado sin unidad central, que estn conectados directamente al ordenador central. Solamente pueden ser utilizados en el sistema en el que estn conectados, es decir, no son autnomos, ya que no tienen microprocesador propio, ni memoria, ni ningn componente bsico de un ordenador. Ordenadores personales en emulacin . Pueden ser ordenadores de la familia 8086, 486-SX, Pentium, etc. Son autnomos, es decir, pueden trabajar de forma independiente, ya que constan de todos los componentes que cualquier ordenador precisa: microprocesador, memoria, monitor, teclado, ROM, etc. Pueden ser utilizados por los usuarios de un sistema multiusuario, ya que se pueden conectar al ordenador central mediante tarjetas de red (tambin pueden conectarse a travs de los puertos serie). Una vez conectados, el equipo ejecuta un programa que emula o transforma la seal recibida del ordenador central, para que ste la entienda y pueda funcionar.

Otro componente que forma parte de un sistema multiusuario es la impresora. Normalmente, en sistemas Unix/Linux solamente se utilizan impresoras conectadas al ordenador central, que son gestionadas directamente por ste y utilizables por todos los usuarios.

3. Introduccin al Sistema Unix/Linux


3.1. HISTORIA Y VERSIONES A finales de los 60, los laboratorios Bell, de AT&T desarrollaban un sistema operativo que result demasiado avanzado para los medios disponibles en la poca. Este sistema llamado MULTICS, que pretenda ser, una computadora al servicio pblico fue abandonado por Bell. Uno de los ingenieros que trabajaban en el proyecto, Ken Thompson, se puso a investigar por su cuenta obteniendo una versin de MULTICS sobre una computadora en desuso, la PDP-7. As se creo la primera versin primitiva de UNIX. Esta primera versin tena dos problemas fundamentales: estaba escrita sobre la vieja computadora PDP-7 y no era portable; es decir, cada vez que haba que cambiar el sistema de una computadora a otra tenan que rescribir el cdigo. Por ello, en primer lugar, se pas del sistema de la PDP-7 al PDP-11, que fue el ms utilizado en la dcada de los 70. En segundo lugar, para resolver el problema de la portabilidad Thompson decidi escribirlo en lenguaje B, padre del lenguaje C. Como sucedi con Multics, la versin de UNIX escrita en B no funcion, ya que tena muchas limitaciones, por lo que en 1973 fue reescrita en C. En 1974, AT&T cede la licencia de explotacin de UNIX a universidades y centros de investigacin. A partir de este momento muchas empresas desarrollaron diferentes versiones de UNIX, lo que dio lugar a varios sistemas incompatibles entre s. Durante finales de los 70 y primeros de los 80 destacaron dos sistemas UNIX, el suministrado por los laboratorios Bell, conocido como System III (1981) y posteriormente como System V(1982), y el desarrollado por la Universidad de California en Berkeley llamado BSD, cuya versin 4.3 BSD fue la base para muchos fabricantes en lugar de la System V de AT&T. Estas dos corrientes produjeron una divisin del sistema UNIX por la incompatibilidad entre ambas y un freno en su expansin. El IEEE intent unificar las dos versiones consiguiendo que se creara un estndar y libreras para conseguir la compatibilidad de UNIX. Sin embargo,

en 1988, para evitar que AT&T se hiciera con el control del sistema operativo, una serie de fabricantes entre los que estn IBM, HP y DEC, entre otros, constituyeron la llamada OSF (Open System Foundation) para crear su propio sistema operativo bajo las normas de la IEEE. Unix fue concebido para entornos grandes, potentes servidores de internet y bsicamente, para el mundo empresarial... por lo que, resultaba ser un sistema demasiado caro para el usuario final. Por ello apareci Linux, un clon de Unix que respeta sus normas y estndares (POSIX, BSD), pero que adems goza de una caracterstica importante, es gratis, no pertenece a ninguna empresa y se puede obtener todo el cdigo fuente... La historia de Linux empieza en Finlandia, en 1991, cuando a Linus B. Torvalds, estudiante de la Universidad de Helsinki, se le ocurri comprarse un PC con procesador 386. Despus de observar que el MS/DOS no aprovechaba los recursos de la mquina, decidi usar otro sistema operativo de entonces Minix (Minix era un pequeo sistema Unix). Sin embargo, debido a las limitaciones del Minix, Linus decidi reescribir algunas partes del sistema, aadindole mayor funcionalidad. Posteriormente, Linus difundi el cdigo fuente por Internet, de manera gratuita y con el nombre de Linux. La primera difusin de Linux tuvo lugar el mes de agosto de 1991. Se trataba de la versin 0.01, y por el momento funcionaba bajo Minix. En sus primeras versiones, Linux era bastante limitado, pero el hecho de que se difundiera la fuente por Internet, y totalmente gratis, hizo que cada vez ms personas empezaran a colaborar con el proyecto, hasta llegar a los cientos de colaboradores que hay trabajando en la actualidad en los cientos de proyectos GNU.

Actualmente, Linux es un sistema Unix completo, estable, que sigue evolucionando y que cada da gana nuevos adeptos. Durante muchos aos Linux perteneci, casi por completo al mundo universitario, ahora que Internet llega a millones de usuarios, Linux se est extendiendo a pasos agigantados, incluso en el mundo empresarial.

3.2. CARACTERSTICAS GENERALES Como se ha comentado en temas anteriores, Unix/Linux es un sistema operativo multiusuario.

Por otro lado, es un multitarea, es decir, el sistema permite que los usuarios estn ejecutando varias aplicaciones simultneamente utilizando la tcnica de tiempo compartido. Para ello se aplican los diferentes algoritmos de planificacin como los que se vieron en el tema 4. A continuacin se detalla el utilizado habitualmente por Unix/Linux y otros sistemas multiusuario, junto con algunas de las caractersticas ms importantes de estos sistemas operativos: Algoritmo por prioridades o multinivel . Es uno de los ms complejos y eficaces. Asigna los tiempos de ejecucin de la CPU segn una lista de prioridades. En cada una de estas listas, el sistema operativo incluir aquellos procesos a los que se les haya asignado esa prioridad. El tiempo de ejecucin del procesador se ir destinando, en primer lugar, de forma secuencial a los procesos de mayor nivel. Terminados stos, se ejecutarn los procesos del nivel inferior, y as sucesivamente hasta los procesos del nivel ms bajo. Memoria virtual. Esta tcnica permite a los usuarios del sistema ejecutar programas, de tal forma que d la sensacin de que toda la memoria RAM es para ellos. Concretamente en Unix/Linux se utiliza la paginacin de la memoria. Esta tcnica que ya vimos en su momento, es la que utilizan la mayora de los sistemas operativos multiusuario. Dividen la memoria en pginas al igual que los programas y de esta forma se realiza el intercambio entre disco y RAM para ejecutar los mismos. Sistema de archivos jerrquico. Utiliza, de forma similar al DOS, un sistema de archivos en forma de rbol invertido. La diferencia esencial frente al DOS es que el Unix/Linux no gestiona dispositivos (como una disquetera) de forma directa. El Unix/Linux gestiona los dispositivos como si fueran directorios, de tal forma que cuando estemos accediendo al directorio asociado a una disquetera, en realidad lo que estaremos haciendo es acceder a la informacin contenida en el disquete. Comunicacin con otros ordenadores. Un sistema Unix/Linux permite no solamente trabajar con l en una mquina, sino tambin conectar varios ordenadores centrales Unix/Linux entre s de tal forma que cada usuario tenga acceso a la informacin contenida en todos ellos. La conexin se realiza a travs del conjunto de protocolos y servicios que ofrece TCP/IP. Gracias a l puedes ejecutar varios programas en mquinas Unix/Linux que estn a varios kilmetros de distancia entre s; enviar correo electrnico de unos equipos a otros; realizar conversacin directa entre dos usuarios, etc.

Sistemas de seguridad. Es una de las caractersticas ms importantes, ya que la informacin a la que un usuario puede tener acceso puede limitarse de forma sencilla. De este modo, el administrador del sistema operativo, a travs de palabras clave (para archivos empaquetados o comprimidos) o mediante la asignacin de derechos a los usuarios, hace que la informacin contenida en un servidor Unix/Linux est totalmente protegida de piratas o usuarios no deseados. Interfaz texto/grfica. Lo normal es que la interfaz utilizada por Unix/Linux sea de tipo texto. Pero poco a poco se han ido incorporando mejoras que permiten gestionar el sistema operativo en modo grfico. Fundamentalmente, la aparicin de las interfaces X WINDOWS ha permitido agilizar y mejorar procesos, especialmente para el administrador.

3.3. EL SOFTWARE LIBRE Y LA LICENCIA GPL El software libre tiene su origen en Estados Unidos, cuando la informtica se usaba slo en empresas y Universidades, y los programadores intercambiaban trucos. Fue as como un grupo de programadores puso en marcha un nuevo contrato en el que los usuarios reciban el cdigo fuente y el derecho a modificarlo a su gusto. A este movimiento se le bautiz con el nombre de GNU, y para defenderlo se cre una licencia pblica ( GPL). Este peculiar contrato no slo no prohbe hacer copias, sino que anima a los usuarios a que las hagan y distribuyan los programas.

3.4. QU ES LINUX Y GNU/LINUX? Linux se convirti en el producto ms famoso de cdigo abierto y algunas multinacionales del sector informtico apostaron por l. Lo que generalmente se entiende por Linux es el kernel o ncleo de cualquier sistema Unix. Pero el kernel por s slo no forma todava un sistema operativo. Aqu aprovecharon la gran cantidad de software libre que ya haba en Unix, siendo realmente estas utilidades las que forman el sistema operativo junto con el ncleo. Es aqu cuando nace el sistema GNU/Linux. Al haber gran nmero de programas de software libre, se crearon distintas distribuciones, cada una de las cuales inclua distinto software libre con un ncleo comn.

Las distribuciones ms conocidas son, entre otras: Debian, Red Hat, Suse y Mandrake. De todas estas distribuciones, la que ms se acerca a la filosofa del proyecto GNU/Linux es Debian, ya que es producto de un grupo de programadores repartidos por Internet, y las otras son privadas. En las siguientes tablas se pueden ver las versiones ms utilizadas de Linux en la actualidad.

4. Sistema de Ficheros
Linux utiliza un sistema de archivos ext2, que fue creado especialmente para este sistema operativo.

La estructura bsica del sistema de archivos es jerrquica en forma de rbol, lo que significa que los archivos estn almacenados en varios niveles. La raz del sistema de archivos (conocida como root) se denota con el smbolo /, y de ah se desprende un conjunto de directorios que contienen todos los archivos del sistema. Un archivo siempre ocupar el nivel ms bajo dentro del rbol, porque de un archivo no pueden depender otros; si as fuera, sera un directorio. Es decir, los archivos son como las hojas del rbol. Las principales caractersticas del sistema de archivos son: a) El sistema de archivos no est ligado de una forma directa con la estructura del hardware (es decir, no depende de si un determinado ordenador tiene una, dos o cinco unidades de almacenamiento). Por tanto, no se requiere que el conjunto de sistemas de archivos resida en un mismo dispositivo y es posible definir uno o varios sistemas desmontables, que residen fsicamente en diversas unidades de disco. b) Los directorios contienen informacin para cada archivo, que consiste en su nombre y en un nmero que el Kernel utiliza para manejar la estructura interna del sistema de archivos, conocido como el i-nodo. Hay un i-nodo para cada archivo, con la informacin de su directorio en el disco, su longitud, los modos y las fechas de acceso, el autor, etc. Existe, adems, una tabla de descriptores de archivo, que es una estructura de datos residente en el disco magntico. c) El sistema ofrece medios muy sencillos para colocarse en diferentes puntos del rbol que forma el sistema de archivos. Se dispone de un conjunto de rdenes de Shell (adems de mltiples variantes) para hacer diversas manipulaciones, como crear directorios, moverse dentro del sistema de archivos, copiarlos, etc. d) Desde el punto de vista del sistema operativo, un archivo es muy parecido a un dispositivo. e) Existe la herramienta cuota que permite gestionar especficamente cuanto acceso tienen los usuarios al espacio de almacenamiento. f) Linux posee paquetes que ayudan en la tarea de copias de seguridad en todos sus esquemas.

5. Linux en su Parte Interna


5.1. ARQUITECTURA: NCLEO Y SHELL Para comprender el funcionamiento del sistema Unix/Linux, es necesario entender su estructura. Este sistema operativo est formado por dos componentes principales: el ncleo y el shell. El ncleo es la parte del sistema operativo que sirve para interactuar con el hardware. Proporciona una serie de servicios que pueden ser utilizados por los programas, sin que stos tengan que preocuparse de cmo se gestiona el hardware. En general, el ncleo es el encargado de gestionar la memoria, mantener el sistema de archivos, del manejo de las interrupciones, manejo de errores, realizacin de los servicios de E/S, asignacin de los recursos de la CPU, gestin de perifricos de E/S, etc. Cada programa se relaciona con la mquina a travs del ncleo. Un programa realizar al ncleo las denominadas llamadas al sistema. Con estas el programa indicar, por ejemplo, que le abra un archivo, que escriba en otro, que utilice la impresora, que cambie la prioridad de ejecucin de otro proceso, etc. El ncleo del sistema operativo Unix/Linux, que recibe el nombre de KERNEL, acta directamente con los elementos fsicos del ordenador, y se carga en memoria al arrancar la mquina. Permanece en ella hasta que sta se apaga. Recordemos que en DOS, el ncleo estaba formado por dos programas MSDOS.SYS y IO.SYS. El shell es el intrprete de mandatos o de comandos con el que cuenta el sistema operativo. En Dos es el Command.com el que se encarga de realizar esta funcin. El shell acta como interfaz de comunicacin entre el usuario y el ordenador, y cuando un usuario se conecta con el servidor Unix/Linux, automticamente se arranca un shell para que pueda trabajar. Cada usuario conectado al servidor tendr un Shell para su uso.

5.2. FUNCIONES DEL SHELL Cuando un usuario emite una orden se est relacionando con el shell, parte del sistema Unix/Linux a travs de la cual se controlan los recursos del sistema operativo, proporcionando caractersticas que hacen que el sistema sea potente y flexible. El shell es tanto un intrprete de comandos como un lenguaje de programacin interactivo. Sobre l se pueden ejecutar comandos con los que se pueden crear programas denominados shell-scripts. Cuando el usuario se conecta al sistema Unix/Linux, se inicia automticamente un programa de shell. Este es el denominado shell de presentacin. Este shell se carga de forma automtica cuando se accede al fichero /etc/passwd. Este archivo contiene la informacin que el sistema necesita conocer de cada usuario. Es dentro de este archivo o fichero, el situado en ltimo campo de cada lnea, donde se encuentra el nombre del shell que quieres ejecutar, que normalmente es el shell estndar del sistema. En cuanto se inicia el shell de presentacin, se busca el fichero .profile dentro del directorio activo. Este fichero contiene comandos que sirven para personalizar su entorno de trabajo. Asimismo puede compararse al AUTOEXEC.BAT del DOS. Realizada esta operacin automticamente, se muestra en pantalla, normalmente, el smbolo $, para que el usuario pueda introducir sus comandos. En general, todas las rdenes de Unix/Linux son programas que estn almacenados en el sistema de archivos. Se escriben de forma similar a como se hace en DOS, ya que su sintaxis es la siguiente: $ mandato [-modificadores] [argumentos]

5.3. TIPOS DE SHELL Al contrario que en DOS, en el que el intrprete de comandos es nico, en Unix/Linux existen varios. stos son los siguientes: Shell Bourne (sh). Creado por S. Bourne, es el ms utilizado en la actualidad. El prompt del sistema queda representado por el smbolo

$. Este shell es el est{ndar de AT&T y el que se monta en casi todos los sistemas Unix/Linux. C-Shell (csh). Procedente del sistema BSD, proporciona caractersticas tales como control de trabajos, historia de comandos (como el doskey en DOS), capacidades de edicin, etc. Ofrece importantes caractersticas para los programadores que trabajan en lenguaje C. Su prompt de sistema queda representado con el smbolo %. Shell job (jsh). Incorpora algunas caractersticas de control al shell estndar del sistema. Shell Korn (ksh). Escrito por David Korn, amplia el shell del sistema aadiendo historia de comandos, edicin de la lnea de rdenes y caractersticas ampliadas de programacin. Bourn Again shell (Bash). Fue creado para usarlo en el proyecto GNU. BASH, por lo tanto, es un shell o intrprete de comandos GNU; ste es compatible con el shell sh. Adems, incorpora algunas caractersticas tiles de ksh y csh, y otras propias, como la edicin de lnea de comandos, tamao ilimitado del histrico de comandos, control de trabajos y procesos, funciones y alias, clculos aritmticos con nmeros enteros, etc.

5.4. INTERFACES DE USUARIO stas se definen como la parte del Sistema Unix/Linux que determina como interacta el usuario con l, es decir, de qu forma el usuario introduce comandos o cualquier otra informacin y cmo el sistema visualiza los mensajes despus de procesar tal informacin. La interfaz primaria o bsica del Unix/Linux es de tipo texto y hasta no hace mucho ha sido la nica para el sistema. Actualmente hay interfaces grficas como el X Windows, Open Look, GNOME o KDE. La interfaz de tipo texto es la que se muestra al cargar el shell por defecto o el deseado. Las bsicas son las mismas que las explicadas en el apartado anterior, aunque hay ms. En cuanto a la interfaz grfica X-Windows, la caracterstica fundamental es que incorpora un modelo cliente-servidor para el modo en que las aplicaciones interactan con los dispositivos terminales. Incorpora tambin

un protocolo de red y varias herramientas software que pueden ser utilizadas para crear aplicaciones basadas en X Windows. Un concepto fundamental es la separacin de las aplicaciones con respecto al software que maneja la entrada y salida por Terminal. Todas las operaciones realizadas mediante la entrada o salida estndar (teclado y monitor) son manejadas por un programa que se dedica exclusivamente a ello (servidor). Las aplicaciones (clientes) envan al servidor informacin a visualizar, y el servidor enva a las aplicaciones informacin referente a la entrada de usuario. Para gestionar este modelo, se utiliza el protocolo de red X. Este protocolo es un lenguaje estndar utilizado por las aplicaciones clientes para enviar instrucciones a los servidores X, y por los servidores para enviar la informacin transformada a los clientes (por ejemplo, el movimiento del ratn). La interfaz OPEN LOOK ha sido diseada por AT&T y Sun Microsystems como interfaz grfica estndar para el sistema Unix/Linux. Esta interfaz permite ejecutar y visualizar varias aplicaciones simultneamente en ventanas separadas sobre una misma pantalla. En general, todas las operaciones de gestin de archivos se realizan de forma grfica gracias a la interfaz OPEN LOOK. La interfaz KDE 3.2 para Linux SUSE, ahora con un potente gestor de informacin personal (PIM), incorpora, adems de la funcin de inicio rpido y la reproduccin automtica de los medios introducidos (CD, DVD), KDE 3.2, un gran nmero de nuevas prestaciones y programas. Observa algunos de ellos: Kontact. Este programa equiparable a MS Outlook integra herramientas de correo electrnico, organizacin, libreta de direcciones y notas. KWallet. Password safe utilizado por numerosas aplicaciones para administrar de forma segura las distintas contraseas del usuario. Kopete. Programa de mensajera instantnea. KDevelop. Dispone de soporte para ms de 15 lenguajes de programacin, diseo configurable, libre eleccin de editor, vista separada de clases para C++, cdigo completado automticamente, depuradores integrados y comprobacin de sintaxis mientras se introduce el cdigo.

Konqueror. La nueva versin del navegador Web. Quanta Plus. Editor HTML, con un nuevo componente de editor WYSIWYG. Barra lateral universal. Barra lateral de navegacin para la representacin jerrquica de rboles de directorios que puede ser mostrada en el escritorio independientemente del administrador de archivos Konqueror. La interfaz GNOME 2.4 ha mejorado la usabilidad y se han incluido ayudas de accesibilidad para discapacitados, como, por ejemplo, un lector de pantalla con salida de voz o a una lnea braille 1.

6. Procedimiento de Conexin/Desconexin
6.1. CONEXIN DE USUARIOS REMOTOS A UN SERVIDOR UNIX/LINUX En este epgrafe vas a ver cmo podemos conectarnos desde cualquier ordenador a otro ordenador con Unix/Linux. En este caso, nos podremos conectar como un usuario cualquiera o como el administrador del sistema, es decir, como root. La diferencia estriba en el tipo de operaciones que podremos realizar en el servidor desde el Terminal desde el que nos conectamos. En primer lugar, es evidente que el ordenador central o servidor tiene que estar conectado. Esto, aunque parezca obvio, es importante especialmente en aquellos casos en los que el servidor no se encuentra en el mismo espacio fsico que el usuario. Si es as y el usuario no llega a conectar, no tendr demasiado claro si el fallo se debe a un problema de su equipo, de la lnea de transmisin o sencillamente del servidor. El inicio del ordenador que tiene instalado el sistema operativo Unix/Linux en el servidor suele ser automtico. Arrancado este ordenador, podemos iniciar o no sesin en l fsicamente. En este caso, se iniciar, normalmente, en entorno grfico.

El braille es un medio de lectura tctil, a travs de la yema de los dedos, y de escritura, consistente en unos puntos en relieve organizados de forma parecida a los del domin.

El primer paso para conectar desde otro ordenador con el servidor Unix/Linux es lanzar desde nuestro ordenador el comando de conexin. Esta orden de conexin solamente pretende hacer que el ordenador del usuario y el ordenador central se entiendan. El protocolo de comunicacin, en la actualidad, suele ejecutarse bajo el entorno Windows o Linux, y se puede lanzar con el software denominado TELNET. Telnet es el software que permite la conexin entre terminales mediante el protocolo de comunicaciones TCP/IP. Este software, que en realidad es un servicio ms de los que incorpora el propio TCP/IP, es un protocolo de esta familia. Sirve para conectarse a cualquier equipo identificado con una direccin IP determinada. A continuacin vamos a observar el proceso de conexin, teniendo en cuenta que el ordenador desde el que nos vamos a conectar es un ordenador en emulacin y que el sistema operativo instalado es Windows XP. Pulsaremos Inicio, Ejecutar, y dentro introduciremos el comando siguiente: Telnet IP_servidor Si en la lnea de ejecucin tecleamos solamente Telnet, a continuacin tendremos que introducir la direccin IP tras el smbolo del sistema. Ejecutado Telnet y ejecutado el comando de conexin, el usuario recibir la siguiente informacin suministrada por el servidor: login: o Linux login:, dependiendo de que el sistema con el que estemos conectados sea Unix o Linux respectivamente. Introduciremos la identificacin de usuario y a continuacin se nos pedir que introduzcamos la contrasea o password, obligatoria en la mayora de los casos en todos los sistemas Unix/Linux. Es importante tener en cuenta que Unix/Linux, al ser un sistema case sensitive, diferencia las letras maysculas de las minsculas, es decir, no es lo mismo USER01 que user01. La contrasea solamente tiene que ser conocida por el usuario. Al teclearla no aparecer ningn carcter en pantalla, por seguridad, pero despus de su introduccin se tendr que pulsar de nuevo Return, al igual que cuando introdujimos el nombre de usuario.

Si al introducir el ID del usuario o la password nos hemos equivocado, el sistema no nos dejar entrar, enviar un mensaje y volver de nuevo a la situacin de partida. Despus de estos mensajes, el sistema carga un shell para ese usuario y aparece el smbolo del sistema, que variar dependiendo del tipo del shell asignado. Normalmente, el smbolo del sistema es el smbolo $ para usuarios y el smbolo # para el administrador, aunque esto depender{ siempre del shell que se cargue al iniciar sesin. A partir de este momento podremos trabajar sobre el sistema Unix/Linux con los privilegios que tengamos concedidos en el mismo.

6.2. CONEXIN DE USUARIOS SOBRE EL PROPIO SERVIDOR UNIX/LINUX Encendido el servidor Unix, aparecer una pantalla en modo grfico, en la que introduciremos, de forma similar, el nombre de usuario y contrasea para entrar al sistema. Pulsaremos en el botn Login. Tras pulsar sucesivas veces el botn OK, llegaremos al escritorio principal de UNIX. Para cerrar la sesin de trabajo, si estamos conectados en modo texto, el usuario podr hacerlo de dos formas distintas: Teclear exit y luego pulsar Return. Teclear Ctrl+d. Despus de esto, el sistema mostrar de nuevo: login: y el usuario podr conectarse de nuevo o no. El cierre de sesin en modo grfico es seleccionando en el men File, opcin Exit; posteriormente se confirmar el abandono de la sesin de trabajo. Para cerrar definitivamente el equipo, ejecutaremos una sesin en modo comando y teclearemos: #shutdown g0. En la pantalla inicial de Unix, la diferencia se muestra en la pantalla de conexin, ya que, a diferencia de Unix, en Linux podremos seleccionar algunas opciones antes de entrar al sistema. Podremos seleccionar algn usuario de los que aparecen a la izquierda de la pantalla de login, as como el tipo de escritorio. Por ltimo, en la opcin men podremos reiniciar el servidor o apagarlo.

Introducidos los datos de conexin de forma adecuada, se mostrar el escritorio de Linux. Si iniciamos sesin como un usuario estndar, el escritorio tomar un aspecto diferente, aunque bsicamente ser el mismo. Si queremos terminar la sesin de usuario, o cambiar de usuario, sin cerrar el sistema, haremos clic en el icono correspondiente, o en el icono Iniciar aplicacin, Terminar. En cualquier caso, aparecer la pantalla, en la que podremos indicar el tipo de operacin que queremos realizar.

6.3. PRIMERA CONEXIN AL SISTEMA UNIX/LINUX En ciertas distribuciones, si el usuario que se conecta lo hace por primera vez, y si el administrador no ha decidido asignarle una palabra clave, no habr contrasea, o la contrasea ser nula. Si se da este caso, el usuario podr asignarse l mismo una clave de acceso utilizando el comando passwd. En este caso, una vez que al usuario le aparezca el prompt del sistema $, y despus de introducir el comando passwd, aparecern los siguientes mensajes: $ passwd Passwd: changing password for user01 Old password: New password: Re-enter new password: Password Changed Como se puede apreciar, lo primero que se nos solicita es la clave Antigua. Es evidente que, si esto no fuera as, cualquier usuario podra cambiar las claves de los dems. Con ello el sistema consigue que slo el usuario pueda cambiar su propia clave de acceso. Despus de verificar la clave, teclearemos la nueva clave dos veces. De esta forma se comparan las dos claves para verificar que la introducida originalmente es la deseada. Al cambiar la palabra clave, hay que seguir una serie de normas. Estas normas suelen ser definidas por el administrador del sistema, y son las siguientes:

La palabra clave ha de ser diferente. Debe tener al menos 6 caracteres. Al menos 2 caracteres tienen que ser alfabticos. Debe tener al menos 1 carcter numrico o especial. Tiene que ser distinta del nombre de cuenta. No se pueden utilizar como palabra clave los mismos caracteres asignados como nombre de usuario cambiados de orden. No se puede cambiar la contrasea de maysculas a minsculas.

7. Editor vi
El editor de textos en Unix/Linux es el vi. Las operaciones que se pueden realizar con este editor de textos son casi iguales que las que se pueden realizar con el DOS. La gran diferencia es que para manejar este editor es necesario el uso de teclas convencionales, es decir, no se pueden utilizar teclas de edicin como flechas, pgina arriba, pgina abajo, insertar, etc. Al igual que con cualquier otro editor, al ejecutar vi puedes abrir un archivo existente o crear uno nuevo. Esto depender de que, tras el comando correspondiente, pongamos o no un nombre de archivo. Si el archivo existe, se abre; si no existe, se crea. Si no ponemos nada, antes de salir tendremos que asignar un nombre al archivo correspondiente. La forma de ejecutar vi es la siguiente: #vi texto. En la pantalla principal que se muestra al editar el archivo, aparece el texto o el contenido del documento, si existe, o nada, si no existe. A continuacin, para poder movernos por el documento, tendremos que utilizar las teclas de escritura de forma convencional. Observemos la funcin de cada una de las teclas. Como se puede apreciar, todo el manejo del editor se realiza utilizando teclas de escritura. Es por ello que su uso resulta bastante complicado. Hay que acostumbrarse. Siempre que realicemos una determinada accin y queramos volver al estado inicial, pulsaremos la tecla Esc. Con ella pasaremos de estado edicin a estado comando.

8. Comandos Bsicos de Unix/Linux


El sistema Unix/Linux tiene a disposicin de todos sus usuarios una gran cantidad de programas. Estos programas se ejecutan mediante comandos. Asimismo tiene una sintaxis de comandos bastante estandarizada, de tal forma que puedan aplicarse a casi todos ellos por igual. Generalmente, los comandos en Unix/Linux: Se utilizan por s solos. Se utilizan acompaados por argumentos. Algunos permiten opciones.

8.1. FORMATO DE LOS COMANDOS El formato de los comandos Unix/Linux es bastante parecido al de los comandos DOS. Cada orden se separa de las siguientes, ya que en Unix/Linux se puede introducir ms de una orden en la misma lnea , mediante un punto y coma (;). Al igual que en DOS, lo primero que se introduce es el comando, seguido de los argumentos o parmetros del mismo. Cuando introduces parmetros o un argumento (caracteres como tal), se deja un espacio en blanco. Una orden en Unix/Linux puede estar formada por: Comando. Indica al intrprete de comandos o shell la accin a realizar. Opciones. Es el modificador del comando. Las opciones se escriben a continuacin del carcter -. Recordemos que en DOS se introducan tras el carcter /. Argumentos. Caracteres que se utilizan como entrada del comando. El argumento puede ser un archivo o un directorio. Como podemos ver, la forma de introducir comandos en Unix/Linux es muy parecida a la forma de hacerlo en DOS. La diferencia fundamental es que aqu s son importantes las maysculas y las minsculas. Normalmente, en Unix/Linux todos los comandos, archivos y directorios se escriben en minsculas, y sin caracteres especiales.

8.2. COMANDOS BSICOS En este captulo se presentan algunas de las rdenes, las ms utilizadas del sistema, pero que no afectan directamente a los ficheros. WHO. El comando who muestra por pantalla informacin de los usuarios que estn conectados en ese momento al sistema operativo. Aparecen 4 columnas. En la primera columna aparece el login del usuario que est activo en el sistema. La segunda indica que terminal est utilizando. La tercera y cuarta indica da, mes y hora de conexin. Su sintaxis es: who [opciones] Donde las opciones pueden ser: -u visualiza la siguiente informacin: nombre del usuario, terminal desde el que se est conectado, hora a la que accedi al sistema, horas y minutos transcurridos desde la ltima actividad del usuario (un punto indica

actividad en el ltimo minuto), nmero de identificacin del proceso shell del usuario (PID), y puede aparecer por ltimo un comentario. am i muestra en pantalla el login del usuario que esta activo en el terminal. Ejemplo: $ who root marta alumxyz

tty04 tty02 tty03

Jan 29 19:15 Jan 29 19:17 Jan 29 19:18

ttyXX es un identificador del terminal desde el que se est accediendo al sistema. Ejemplo: $ who am i alumxyz

tty02

Jan 29 19:17

DATE. Visualiza el da y la hora del sistema. Ejemplo: $ date Mon Jan 31 12:25:28 GMT 2005 Lo primero que aparece es el da de la semana, escrito con las tres primeras letras del da, en ingls. A continuacin aparece el mes, al igual que el da, con las tres primeras letras del mes y en ingls. Despus del da y del mes, lo siguiente que aparece es la hora, con hora:minuto:segundo con un horario de 24 horas. GWT indica que pertenece al meridiano de Greenwich, y por ltimo, el ao.

CAL. Se utiliza para saber en que da de la semana caer una fecha determinada. El formato de la orden es el siguiente: cal [mes] ao Donde: mes debe ser introducido con un nmero del 1 al 12 ya que algunas versiones no admiten la introduccin del mes en letras ( de admitirla, sera en ingls y slo las tres primeras).

ao se introducir mediante cuatro dgitos. Sirva de ejemplo para ver el mes de diciembre de 2004. $ cal 12 2004 December 2004 S M Tu W Th F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Antes se coment que no haca falta indicar el mes; si no se introduce el mes, Linux mostrar todo el ao completo.

MAN. Orden que nos proporciona el acceso al manual interactivo de Linux. Permite visualizar informacin acerca de cualquier orden o programa Linux. Basta con teclear la orden man seguida del nombre de la orden de la cual se desea obtener informacin. Su sintaxis es: man nombre_comando Ejemplo: $ man cd

CLEAR. Limpia La pantalla, dejndola simplemente con el prompt del sistema en la parte superior izquierda de la pantalla.

MAIL. Mecanismo de correo electrnico o e-mail, que permite enviar mensajes de unos usuarios a otros. Su sintaxis es: mail [usuarios] Si se utiliza mail con un usuario sirve para enviar un mensaje a un usuario. No es necesario que el usuario destinatario est conectado en ese instante, ya que toda la correspondencia ser depositada en su buzn que podr ser consultada posteriormente. Si tenemos correo pendiente puede aparecer un mensaje como el siguiente: You have new mail

Si se utiliza mail sin parmetros, se visualizan en pantalla los diferentes mensajes con su correspondiente remitente que se tengan en el buzn. Para pasar de un mensaje a otro se pulsa enter. Ejemplo: $ mail alumxyz Subject : Asistencia a clase Te recuerdo que es obligatoria la asistencia a clase. CTRL+D $ mail SCO Openserver release 5.0. Type ? for help. "/usr/spool/mail/alumlcg": 1 message 1 new >N 1 pepe Thu Feb 21 11:25 13/445 "AYUDA" Cuando se est leyendo el correo se puede utilizar a partir del indicador & los siguientes comandos: x Salir de mail sin alterar el buzn, sin grabar. Si salimos de este modo es como si no hubisemos entrado q Salir grabando p Imprimir mensaje s Guardar el mensaje en un archivo se pulsa s t Leer el mensaje especificado, por ejemplo si se escribe t2 se lee el mensaje 2. d Eliminar mensajes. d1 Elimina mensaje 1. d* Elimina todos los mensajes. d 2-5 Elimina los mensajes del 2 al 5. u Sin salir de mail se recuperan mensajes. u1 Recupera el mensaje 1. u* Recupera todos los mensajes.

u 3 7 Recupera los mensajes 3 y 7. u 3-7 Recupera los mensajes del 3 al 7. r Responder a un mensaje. h Mostrar lista de mensajes. $ mail >N 1 alumabc Thu Feb 21 11:25 13/445 AYUDA U 2 alumxyz Thu Feb 21 11:34 13/402 dos N Indica nuevo mensaje. U Indica mensaje recibido anteriormente y no ledo. > Mensaje activo, si se pulsar intro es el que se visualiza.

WRITE. Esta orden se utiliza para comunicarnos con otros usuarios que estn en ese momento conectados a nuestro sistema. Para terminar hay que pulsar ctrl-d. Si se intenta enviar un mensaje a un usuario no conectado, se advertir de que dicho usuario no se encuentra en sesin. Puede ocurrir que el usuario al que se le enve el mensaje tenga desactivados los mensajes, en cuyo caso write fallar. Si hubiera un usuario conectado a varios terminales habra que especificar por cual sacar el mensaje. La sintaxis es: write usuario [tty] $ write elisa Message from alumlcg Nos vemos en el jamaicano. Ests ah? EOF Lo normal es que cuando iniciamos una comunicacin con otro usuario este responda invocando a write, de tal manera que se establece una comunicacin bidireccional. Si el sistema est muy cargado la salida write se puede ver retrasada. $ write alumlcg Message from elisa Claro que estoy y nos vemos EOF

MESG. Esta orden se utiliza para modificar los derechos de escritura por parte de otros usuarios en nuestro terminal, de tal manera que si alguien nos quiere enviar un mensaje y tenemos desactivados estos derechos, no seremos interrumpidos. La prohibicin de acceso de escritura no afecta al administrador del sistema. La orden mesg sin parmetros nos dir si tenemos o no activa la recepcin de mensajes. Si se tienen los mensajes desactivados, no recibiremos ninguno aunque alguien nos los enve. Estos mensajes se perdern aunque despus se vuelva a habilitar la posibilidad de recibirlos. Su sintaxis es: mesg [y/n] $ mesg is y $ mesg n $ mesg is n

9. Directorios y Ficheros
9.1. ESTRUCTURA DE DIRECTORIOS La estructura en Unix/Linux es jerrquica en forma de rbol invertido. Se parte de un directorio principal root representado por el carcter /. Este directorio puede contener, al igual que en DOS, otros directorios o archivos que dependan de l. La diferencia fundamental con DOS es que no existe un directorio raz por cada unidad lgica de almacenamiento. Los nombres de archivo y directorio en Unix/Linux siguen reglas parecidas a los nombres en DOS. Concretamente, un nombre de archivo puede ser casi cualquier secuencia de caracteres, y se considera que dos nombres de archivo son iguales si coinciden en los primeros 14 caracteres. En cuanto a los caracteres para los nombres de archivo, se puede utilizar cualquiera, a excepcin del carcter /, ya que tiene un significado especial. Es conveniente no utilizar caracteres especiales, acentos, etc. No se pueden

incluir espacios en blanco ni es conveniente emplear caracteres como los siguientes en los nombres de archivo: ! # & ( ) ` ; | > < @ $ , } * ? \ Tab (tabulador) Spacebar (barra espaciadora) Backspace (borrado hacia atrs) + Lo ms importante es destacar que en Unix/Linux los nombres de archivo son diferentes en mayscula y en minscula. As, por ejemplo, PRACTICA, practica, Practica, seran nombres de archivos diferentes. Se recomienda utilizar todos en minscula. Los directorios en Unix/Linux son archivos especiales cuya funcin es la de almacenar archivos u otros directorios. Tienen caractersticas especiales y, al igual que en DOS, cada directorio, a excepcin del raz, consta de los directorios . y .., que indican directorio actual y directorio padre, respectivamente. Para referirnos a un fichero en el rbol de directorios es necesario incluir el camino o ruta de directorios (path) donde se encuentra el fichero. Si existen varios subdirectorios se utiliza el car{cter / como separador. Por tanto, el camino indica la ruta que hay que recorrer para encontrar el fichero. El nombre de camino completo, partiendo desde el directorio raz (/) hasta el directorio o fichero al que se desea llegar, se conoce como camino absoluto y comienza siempre por el car{cter /. La posicin en la que se est situado en el rbol en un momento dado se conoce con el nombre de directorio actual. Se denomina camino relativo al que hay que seguir a partir del directorio actual hasta el fichero o directorio al que se quiere llegar. Los caminos relativos no comienzan por el car{cter /.

9.2. TIPOS DE FICHEROS En Unix/Linux existen los siguientes tipos de archivos: Archivos ordinarios. Contienen la informacin con la que trabaja cada usuario. Normalmente son archivos que contienen texto, programas

escritos por el usuario en lenguaje C, etc. Suelen contener caracteres de tipo ASCII, y pueden ser modificados, creados, borrados, etctera. Enlaces fsicos (Vnculos fsicos). No es especficamente una clase de archivo. Es un segundo nombre asignado a un archivo. Supongamos que dos usuarios necesitan compartir la informacin de un mismo archivo. Es evidente que si cada uno de ellos tiene una copia, el problema se soluciona, en cierta medida. Pero las modificaciones que realice un usuario, no podrn ser utilizadas por otro, ya que solamente se modificar la copia de uno de los usuarios. Si en vez de tener una copia cada usuario, cada uno de ellos utiliza un archivo tipo enlace al archivo original, cada vez que uno modifique su archivo lo que estar modificando es en realidad el archivo comn. El vnculo es un segundo nombre que hace referencia a un archivo, pero no es en s el archivo. El vnculo sirve para localizar el fichero en su ubicacin actual, pero no es el archivo real. De esta forma, con tener un solo archivo real, ste se podr utilizar por todos los usuarios que lo necesiten, sin tener que duplicarlo o triplicarlo. Enlaces simblicos (Vnculos simblicos) . Se utilizan para asignar ms de un nombre a un archivo. No sirven para directorios. Un vnculo simblico es un archivo que slo contiene el nombre de otro archivo. Cuando el sistema operativo opera sobre un vnculo simblico, ste se dirige al archivo al que apunta el vnculo simblico. A diferencia de los enlaces fsicos, que existen dentro de la estructura de archivos, los enlaces simblicos solamente hacen referencia al nombre de otro archivo. Se utiliza el parmetro s. Directorios. Son archivos especiales que contienen referencias a otros archivos. Cuentan con informacin sobre archivos ordinarios, subdirectorios, vnculos, vnculos simblicos, etc. Archivos especiales. Suelen representar dispositivos fsicos como unidades de almacenamiento, impresoras, etc. Unix/Linux trata los archivos especiales como archivos ordinarios. De esta forma, un usuario puede abrir un archivo vinculado a una unidad de disquete, modificarlo, etc. Con ello consigue leer del disquete, escribir en el disquete, etc. Unix/Linux transforma las operaciones bsicas y rdenes bsicas de archivos ordinarios o regulares en comandos que interactan con el hardware a travs de los archivos especiales.

9.3. DIRECTORIOS DEL SISTEMA Algunos de los directorios ms importantes en Unix/Linux son: /bin. Contiene ficheros de comandos ejecutables utilizables por todos los usuarios. /ibin. Contiene ficheros de comandos ejecutables utilizados por el administrador. /sbin. Contiene ejecutables utilizados en la secuencia de arranque y en la recuperacin manual ante fallos del sistema. /usr o /home. Contiene utilidades y programas generales de cada usuario. /dev. Contiene archivos especiales de bloques y caracteres asociados a dispositivos hardware. /lib. Contiene libreras y compiladores del sistema. /etc. Directorio con ficheros de configuracin y utilidades para la administracin. /var. Contiene ficheros para el administrador. /mnt. Directorio utilizado para montar dispositivos. /stand. Contiene los ficheros de arranque del sistema y el ncleo de Unix/Linux. /opt. Para admitir ficheros nuevos creados tras la modificacin del sistema. Sirve de punto de montaje desde el que se instalan los paquetes de aplicaciones adicionales. /bck. Para montar un sistema de archivos para realizar copias de seguridad. /boot. Contiene archivos OBJ (objeto) configurables para el ncleo del sistema. /config. Para configurar el arranque del sistema.

/dgn. Para almacenar los programas de diagnstico. /export. Para exportar sistemas de archivos. /install. Donde el administrador instala las utilidades de administracin. /save. Para guardar copias de ficheros de administracin con el fin de realizar copias a disquetes. /tmp. Para almacenar archivos temporales. /home. Ubicacin de los directorios propios de cada usuario. Contiene el directorio de presentacin y el rbol de subdirectorios de cada usuario. Como puede verse, la estructura bsica de los directorios en Unix/Linux es muy amplia. A veces resulta complicado moverse por ella, para localizar la informacin deseada. Con este sistema operativo ocurre lo mismo que con cualquier otro: cuando se utiliza habitualmente, el usuario recuerda perfectamente en dnde tiene que realizar cada operacin. De la estructura de directorios expuesta anteriormente, es probable que algunos de ellos no aparezcan en nuestro sistema. Esto depender de la versin Unix/Linux que estemos utilizando.

9.4. RDENES DE OPERACIN Y DE PROCESAMIENTO 9.4.1. rdenes sobre directorios y ficheros

PWD. Presenta por pantalla el camino absoluto del directorio actual. Para las personas habituadas a trabajar con MS-DOS el prompt del sistema les muestra constantemente el directorio donde estn trabajando. En Linux no ocurre lo mismo generalmente, por lo que es bueno saber en qu directorio estamos trabajando si en algn momento estamos perdidos.

CD. Permite cambiar de un directorio a otro. Su sintaxis es: cd [camino] Cada vez que un usuario se conecta al sistema se sita en su directorio personal o home. Si se utiliza la orden cd sin argumento, le sita

directamente en el directorio home o de conexin, con independencia del directorio en que se encuentre. Si se desea entrar en un directorio determinado se sustituye el argumento camino por el camino absoluto o relativo del directorio al que se desea acceder. Ejemplos: $ cd Nos sita en el directorio home. $ cd .. Nos sita en el directorio padre del directorio actual. $ cd /home/i82fecoe/mail Nos sita en el directorio mail utilizando un camino absoluto.

LS. Permite ver el contenido de un directorio; muestra todos los archivos del directorio. Puede ocurrir que un directorio no est disponible para la lectura, por lo que no se podr ver su contenido hasta que no sea desprotegido. Su sintaxis es: ls [opciones] [directorio] Si se utiliza la orden ls sin argumentos visualiza el contenido del directorio actual. Si se desea visualizar el contenido de un directorio concreto se incluir su camino como argumento. Ejemplo: $ ls mail Nota: Cuando se utiliza la orden ls sin opciones slo se visualizan los nombres de los ficheros y/o subdirectorios que contiene el directorio. Las opciones ms importantes de la orden ls son: - l listado en formato largo incluyendo permisos, usuario, grupo, etc. -t ordenado por fecha de modificacin.

-a lista todos los ficheros, incluso los que empiezan por punto, ordenados alfabticamente. -s tamao de los ficheros en bloques. -i informa del nmero de inodo de cada fichero. Ejemplo: $ ls l Este listado suele incluir siete columnas de informacin: (1) Contiene diez caracteres. El primer carcter indica si el archivo es de tipo ordinario (-) o directorio (d). Los nueve caracteres restantes dan una representacin simblica de los derechos de acceso actuales que tiene el archivo. Estos nueve caracteres se dividen en tres columnas con tres caracteres cada una, aunque no estn separadas por espacios. La primera columna representa al usuario, la segunda al grupo de trabajo al que pertenece el usuario (en el caso de que pertenezca a alguno), y la tercera al resto de los usuarios del sistema. Cada uno de los tres grupos de permisos consta de tres caracteres. Estos representan los permisos de lectura (r), escritura (w) y de ejecucin (x). (2) Contiene el nmero de enlaces en el sistema de archivos a este archivo. Hay casos en los que interesa que un grupo de usuarios en el mismo sistema UNIX puedan compartir un archivo mientras trabajan en un proyecto conjunto. La comparticin del archivo permite su actualizacin por todos los usuarios en cualquier instante. Para que esto sea posible se crean enlaces al archivo que va a estar sujeto a modificaciones mediante la orden ln, que se ver ms adelante. De esta forma los usuarios que hayan creado enlaces podrn acceder al archivo como si este hubiera sido creado en su propio directorio de trabajo. (3) Muestra el propietario del archivo (el usuario que cre inicialmente el archivo). (4) (5) (6) Visualiza el tamao del archivo en caracteres (o bytes). Muestra la fecha en la que el archivo fue modificado por ltima vez. Muestra la hora en la que el archivo fue modificado por ltima vez.

(7)

Contiene el nombre del archivo.

MKDIR. Permite crear uno o varios directorios. Su sintaxis es: mkdir [-p] [camino] / nombre/s_directorio/s La opcin p permite que los directorios padre que no existan sean creados. Ejemplo: $ mkdir p ../ejercicios/tema6 Crea el directorio tema6. Al utilizar la opcin p tambin crea el directorio padre ejercicios, que no existe. Ejemplo: $ mkdir tema5 Crea el directorio tema5 sobre el directorio actual. Ejemplo: $ mkdir /home/i82fecoe/ejercicios/tema1 tema2 tema3 tema4

RMDIR. Borra uno o varios directorios. Para poder borrar un directorio tiene que estar vaco. Su sintaxis es: rmdir [camino] / nombre/s_directorio/s Su funcionamiento es igual que la orden mkdir. Ejemplo: $ rmdir tema1 tema2 tema3 Ejemplo: Si en el directorio tema4 creamos un directorio parte2 e intentamos borrar tema4, nos aparecer{ un mensaje de error y no se borrar el directorio, ya que no est vaco. Por tanto, para poder borrarlo tendremos que borrar el directorio parte2 que acabamos de crear y a continuacin proceder al borrado del directorio tema4.

CAT. Visualiza los ficheros especificados como parmetros. Ejemplo: $ cat coches motos

CP. Se utiliza para copiar ficheros. Su sintaxis es: cp [opciones] fichero1 fichero2 Copia el contenido de fichero1 en fichero2. Tambin se puede especificar el camino absoluto o relativo de cada uno de los ficheros. Ejemplo: $ cp coches ejercicios/cars Copia el fichero coches del directorio actual en el directorio ejercicios, con el nombre cars. Las opciones ms importantes son: -i pedir confirmacin si el fichero destino ya existe antes de sobrescribirlo. -r copia un directorio junto con sus ficheros y subdirectorios en otro directorio. Si el directorio destino no existe, lo crea. Ejemplo: $ cp coches mbox ejercicios Copia los archivos coches y mbox sobre el directorio ejercicios. Cuando se utilizan varios ficheros para copiar, el destino tiene que ser un directorio. Ejemplo: $cp i coches ejercicios Copia el archivo coches en el directorio ejercicios, no sin antes haber pedido la confirmacin para sobrescribirlo, puesto que ya hay un archivo con igual nombre en el directorio ejercicios. Ejemplo: $ cp r ejercicios so/pruebas Copiamos el directorio ejercicios y todo su contenido al directorio so, en un nuevo directorio que creamos al hacer la copia, llamado pruebas.

MV. Cambia un fichero de un directorio a otro. Sus sintaxis son: a) mv [opciones] fichero1 fichero2 b) mv [opciones] directorio1 nuevo_directorio c) mv [opciones] fichero/s directorio d) mv [opciones] directorio1 directorio2 En los dos primeros casos, la orden mv lo que hace es cambiar el nombre de un fichero o un directorio, segn el caso. Mientras que en los siguientes lo que realiza es un cambio de localizacin. Es decir, se desplaza un fichero, o bien todo el contenido de un directorio, a otro directorio. Las opciones ms importantes son: -i si el fichero destino existe, pide confirmacin antes de sobrescribirlo. -f es la opcin por defecto. Si el fichero existe, lo sobrescribe sin pedir confirmacin. Ejemplos: $ mv coches carros Cambia el nombre del fichero coches por carros. $ mv so sistemas_operativos Cambia el nombre del directorio so por sistemas_operativos. $ mv carros list sistemas_operativos Mueve los ficheros carros y list al directorio sistemas_operativos. $ mv pruebas sistemas_operativos Mueve los directorios y ficheros del directorio pruebas al directorio sistemas_operativos.

RM. Se utiliza para borrar ficheros. Su sintaxis es: rm [opciones] fichero/s Sus opciones: -r borra recursivamente. Se emplea para borrar directorios. -f borra todos los ficheros sin confirmacin. -i pide confirmacin para borrar cada fichero.

Ejemplos: $ rm f carros list Borra los ficheros carros y list del directorio actual sin pedir confirmacin. $ rm r pruebas Borra el directorio pruebas y todo su contenido recursivamente. Solicita la confirmacin.

FIND. La orden find permite efectuar bsquedas de archivos. Lleva como argumentos los nombres de directorios seguidos de varias opciones posibles que especifican el tipo y el criterio de la bsqueda. Find busca dentro de los directorios indicados y en sus subdirectorios archivos que cumplan con el criterio. Su sintaxis es: find directorio [condiciones] accin Donde: directorio es el directorio a partir del cual comienza la bsqueda. condiciones se puede substituir por: name nombre_fichero Bsqueda por el nombre del fichero. -perm NNN Bsqueda por la mscara de permisos en octal. -user nombre_usuario Bsqueda por el nombre de usuario. -size n Fichero con tamao n bloques. -mtime n Ficheros modificados hace n das. -atime n Ficheros cuyo ltimo acceso fue hace n das. accin indica la accin a realizar con los ficheros encontrados. Ejemplo: $ find informes name lunes Se busca en el directorio informes el fichero lunes Ejemplo: $ find programas name *.c print Se busca en el directorio programas ficheros que tengan extensin .c y se muestra la ruta de los ficheros.

Se pueden usar los caracteres comodn del shell como parte del patrn del criterio de bsqueda de archivos. El carcter comodn debe ir delimitado con el fin de evitar su evaluacin por el shell. Ejemplo: $ find / -user profes

LN. Un inodo es la estructura de datos en disco que describe y almacena los atributos del fichero y su localizacin. Cada inodo tiene un nmero distinto y cada fichero tiene su inodo. Cuando se crea un fichero un inodo se le asigna a l y este es nico. La informacin que se guarda en un inodo es: propietario y grupo, tipo de fichero, permisos, fecha de creacin y modificacin, nmero de links al fichero, tamao del fichero, Los inodos guardan toda la informacin del fichero excepto su localizacin en el directorio y su nombre. Un enlace es un mecanismo que permite referirse con distinto nombre de fichero a un mismo fichero en disco. Existen dos tipos de links: fsico,(duro o hardlink) y simblico (blando o softlink). Enlace duro: Crea un enlace, asociando uno o mas nombres de fichero con el mismo inodo. Se realizan mediante la orden ln. Su sintaxis es: ln archivo destino Crear un enlace consiste en hacer que un mismo fichero aparezca bajo diferentes nombres, en diferentes lugares del rbol de directorios. Fsicamente slo existir un fichero, pero se podr acceder a l bajo diferentes nombres, de modo que si se modifica el fichero independientemente del nombre con el que se haya accedido, todos sus enlaces resultan modificados. No se puede hacer de directorios. Ejemplo: $ ln index hlink Crea un link con nombre hlink con el mismo inodo que el fichero index Enlace simblico: Asocia un nombre a un nuevo inodo, que indica la posicin en disco donde se guarda la informacin del path donde esta el fichero. Se realizan mediante la orden ln con el parmetro s. Su sintaxis es: ln s archivo destino

Ejemplo: $ ln -s index slink Asocia al nombre slink un nuevo inodo. Este inodo indica la posicin en disco donde se guarda el path completo del fichero index. Cuando se hace un enlace simblico se le asigna un n de inodo nuevo. En ningn caso se incrementa el n de enlaces. S se puede hacer de directorios. Los enlaces simblicos tienen su propio tipo de archivo que se representa por una l y ocupan mucho menos que el archivo original porque solamente almacenan el nombre de la ruta de otro archivo. Los dos tipos de enlaces permiten visualizar el contenido de Index utilizando los nombres de hlink e slink pero existen diferencias en la estructura interna. Casos: 1) Si no ocurre nada, ambos link visualizan el fichero index $ cat index Este es index de Elisa $ cat hlink Este es index de Elisa $ cat slink Este es index de Elisa $ ls -li total 20 36409 -rw-r--r-1 librada8 users 36409 -rw-r--r-2 librada8 users 36852 lrwxrwxrwx 1 librada8 users 34568 drwxrw_rw_ 3 librada8 users

24 Feb 25 10:46 index 24 Feb 25 10:46 hlink 5 Feb 25 10:56 slink -> index 5 Feb 25 10:56 ultimo

2) Si se mueve index que significa solo aadir una nueva entrada en el nuevo directorio y borrarla del antiguo no se afecta el hardlink pues el inodo del fichero es el mismo. Por el contrario softlink apunta a algo que no existe pues ya no est en el mismo directorio. Lo mismo ocurre si se borra el fichero index. $ mv index seg/ $ ls li total 20

36409 36852

-rw-r--r-2 librada8 users lrwxrwxrwx 1 librada8 users

24 Feb 25 10:46 hlink 5 Feb 25 10:56 slink -> index

$ cat hlink Este es index de Librada $ cat slink cat: slink: No such file or directory 3)Si creamos un nuevo index $ cat > index Este es el nuevo index de Librada $ cat hlink Este es index de Librada $ cat slink Este es el nuevo index de Librada $ ls -li total 20 36485 36409 36852

-rw-r--r-1 librada8 users -rw-r--r-2 librada8 users lrwxrwxrwx 1 librada8 users

24 Feb 25 10:46 index 24 Feb 25 10:46 hlink 5 Feb 25 10:56 slink -> index

ls -l identifica los diversos tipos de ficheros que existen en LINUX. Los ms comunes son: - ficheros regulares d directorio l link simbolico

10. Gestin de la Seguridad: Usuarios, Grupos, Permisos sobre Directorios y Ficheros


En un sistema Unix/Linux la seguridad de la informacin que almacenamos en los ordenadores centrales o servidores es fundamental, ya que muchos usuarios tendrn o podrn tener acceso a parte de los recursos software y hardware que estn gestionados en estos ordenadores.

La primera medida a llevar a cabo consiste en tener a cada usuario identificado con un nombre y una password que le permitan conectarse al sistema. Cuando se teclea la password para acceder, el sistema no la visualiza en pantalla para impedir que otra persona pueda verla. La password slo la debe conocer el usuario, de esta forma nadie podr acceder a su informacin ni podr hacer mal uso de ella. Se recomienda por seguridad que cuando el usuario se ausente del terminal por un tiempo o de manera definitiva, siempre se desconecte. Por otro lado, nunca deben utilizarse contraseas (passwords) que puedan detectarse con facilidad, como nombres propios, aficiones, fechas significativas, etc. La contrasea ha de cambiarse cada cierto tiempo con la orden passwd, como ya vimos en apartados anteriores. Otra medida de seguridad que permite un sistema Unix/Linux es la proteccin de ficheros contra accesos no deseados, indicando qu usuarios pueden acceder y qu acciones pueden realizar sobre los datos. Los permisos de acceso se establecen en tres niveles: El del usuario que ha creado el fichero ( propietario) El del grupo al que pertenece el usuario ( grupo) El de todos los dems usuarios del sistema ( otros). Para cada nivel hay tres tipos de acceso: Lectura (r) Permite ver el contenido del fichero o directorio. Escritura (w) Permite modificar el contenido de un fichero, o crear y borrar ficheros y subdirectorios, si se trata de un directorio. Ejecucin (x) Se puede ejecutar el fichero o acceder a l si es un directorio. Si se teclea la orden ls l (listado largo) se nos presenta informacin detallada de cada fichero o directorio. La primera columna empezando por la izquierda muestra la mscara de permisos. Est formada por 10 caracteres que indican el tipo de fichero y sus permisos. El primer carcter, empezando por la izquierda, indica el tipo de fichero. Los m{s usuales son: -, si es fichero de datos y d, si es un directorio. Los tres caracteres siguientes indican los permisos para el propietario del fichero, los tres siguientes los permisos para el grupo y los tres ltimos, los permisos para otros.

Los permisos para cada uno de los niveles aparecen siempre en el mismo orden: rwx. El car{cter r significa acceso de lectura, w acceso de escritura, x acceso de ejecucin y - que no tiene acceso de lectura, escritura y ejecucin, dependiendo del lugar que ocupe. Ejemplo: -rwxrw---x Es un fichero de datos (-), con permiso de lectura, escritura y ejecucin para el propietario (rwx), de lectura y escritura para el grupo (rw-) y de ejecucin para otros (--x). Existe otra forma para referirnos a los permisos sobre ficheros: la mscara octal. Para poner la mscara de numeracin octal se siguen los siguientes pasos: Se pasa la mscara a binario utilizando tres dgitos con valores 0 y/o 1, para cada nivel: propietario, grupo y otros. 0 significa que no tiene permiso y 1 que s lo tiene. Las posibles combinaciones seran: 000 --001 --x 010 -w011 -wx

100 101 110 111

r-r-x rwrwx

A continuacin se le asigna el valor 4, 2 y 1 a cada dgito binario. Por ejemplo, para los permisos r-x, sera: 4 2 1 1 0 1 Por ltimo, se suman los valores en cuya casilla haya un 1. Siguiendo con el ejemplo anterior: 4+1 = 5 De esta forma, la mscara octal para todos los permisos sera: rwx 7 -wx 3 rw- 6 -w- 2

r-x r--

5 4

--x ---

1 0

10.1. GESTIN DE USUARIOS Unix/Linux es un sistema multiusuario real, en el que puede haber diferentes cuentas actuando al mismo tiempo en el sistema, y cada una con privilegios y funciones distintas. Por ello, se distinguen tres tipos de usuarios: 1. Usuarios normales: son los usuarios habituales del sistema, que utilizarn los recursos del mismo. Es conveniente llevar una poltica restrictiva con estas cuentas, y habilitar slo aquellas funciones que necesiten. Estos usuarios pueden hacer login y se les asigna una shell en cada inicio de sesin. Cada usuario tiene su propia carpeta personal, de la que es propietario. 2. Usuarios del sistema: son aquellos incorporados por el propio sistema operativo, encargados de los demonios de ste. Algunos programas y demonios necesitan un usuario para poder usarlo, y por eso se crean estos usuarios. Estos usuarios no tienen privilegios para hacer login en el sistema, y por regla general no tienen un shell asignado. Su shell por defecto es /bin/false. Algunos de estos usuarios son, por ejemplo: daemon, lp, mail, pop, etc. 3. Usuario root: este usuario se diferencia de los dems, ya que es el nico que tiene control total sobre todo el sistema. Su directorio personal est en /root, y es un directorio al cual slo l tiene acceso. El usuario root es el administrador del sistema y, como tal, es el nico que tiene derecho a administrar el resto de usuarios del sistema. Adems de eso, debe ser el nico usuario que tenga privilegios sobre directorios y ejecutables crticos para el sistema, como pueden ser los demonios del sistema, procesos crticos, programas que pueden comprometer la seguridad del sistema, script de inicio, etc. En definitiva, el usuario root slo debera usarse cuando fuera imprescindible, pero para trabajar normalmente es ms seguro utilizar un usuario normal, ya que sus restricciones hacen que el sistema est ms seguro. En cuanto a los privilegios de los usuarios y grupos, es importante llevar un buen control de los mismos, y sobre los permisos que tiene cada uno sobre el sistema, ya que, podramos comprometer la seguridad del mismo. Por regla general, los usuarios tienen control total nicamente sobre su carpeta

(/home/usuario). Respecto a los grupos, es importante tenerlos bien diferenciados, y dar a cada uno de ellos nicamente los permisos necesarios para realizar las funciones que desempeen. Llevar una buena poltica de gestin de grupos y usuarios es muy importante para poder mantener la seguridad de un sistema Linux. En Unix/Linux, los ficheros que contienen toda la informacin de los usuarios son /etc/passwd, donde, como ya se ha comentado anteriormente, se guardan los nombres de los usuarios, con sus ID de usuario y grupo, su directorio personal, su shell, y un comentario acerca de ese usuario; y /etc/shadow, donde se guarda la contrasea de cada usuario, y su configuracin. Cuando se crea un usuario nuevo, se aade una entrada en el fichero /etc/passwd. El UID (User ID) es un nmero con el que Linux identifica a cada usuario. Este nmero es nico para cada usuario, ya que Unix/Linux no identifica a los usuarios por el nombre, sino por ese nmero. No debe ser un nmero aleatorio; por lo general, Unix asigna un nmero a partir de 200, y Linux un nmero entre 500 y 700. Cuando se crea una cuenta normal, por ejemplo en Linux, el primer UID que se asignar ser el nmero 500, y a medida que se vayan creando ms cuentas, se irn asignando consecutivamente. Sin embargo, el root tiene un UID de 0. Tambin es posible asignar un UID especfico, como veremos ms adelante, aunque no es lo normal. El GID (Group ID) es el nmero de identificacin del grupo al que pertenece el usuario. El directorio personal, por defecto, de cada usuario se encuentra en /usr, en Unix, y en /home, en Linux, y se crea un directorio de trabajo por cada usuario dado de alta en el equipo. Sin embargo, para el usuario root, no se cumple esta regla, ya que el directorio base es /root, al que slo l tiene acceso. El ltimo campo es la shell. La shell es el intrprete de comandos que se carga una vez iniciada la sesin, y a travs de l nos comunicaremos con el sistema operativo. La shell por defecto en Suse Linux es /bin/bash, pero puede ser modificada para que cada usuario ejecute la que crea ms conveniente. Cuando un usuario inicia sesin en el equipo, y tras ejecutar el programa login, y comprobar que la contrasea del usuario es la correcta (a travs de los ficheros /etc/passwd y /etc/shadow), se carga una configuracin por defecto. Esta configuracin, en caso de que el usuario

haya iniciado sesin con la shell Bash, se guarda en los ficheros /etc/bash.bashrc y /etc/profile. Estos ficheros contienen configuraciones y comandos que podrn ser utilizados por el usuario. En /etc/skel, se guarda una copia de estos ficheros, por si al modificarlos hubiera algn problema, y tengan que ser reemplazados. En los directorios base de cada usuario tambin estn los ficheros .bashrc y .profile, que pueden ser libremente modificados por el propietario y sirven para tener configuraciones personalizadas. Estos ficheros locales tienen preferencia sobre los ficheros /etc/bash.bashrc y /etc/profile. En Linux existen varias cuentas especiales predefinidas por el sistema, y que tienen funciones especficas para realizar algn tipo de tareas. Algunas de estas cuentas son: Daemon: servidores. Lp: subsistema de impresin Mail: demonio de correo News: subsistema de noticias. Pop: administrador POP.

10.1.1. Creacin de Usuarios

USERADD. Permite crear usuarios en Linux. Hay que tener privilegios de root para ejecutar este comando. Su sintaxis es: useradd nombre_usuario [-u uid] [-g gid] [-d home-directory] [-m ] [-s shell] [-g grupo] [-c comentarios] Donde: -u uid sirve para especificar un UID al usuario. Debe ser un nmero positivo y nico. Por defecto, el sistema asigna el primer UID libre. -g gid selecciona el GID del grupo principal del usuario. Este GID deber existir. -d home_directory para especificar un directorio personal concreto. Si no se especifica, se asume el directorio. -m crea el directorio home para el nuevo usuario. -s shell especifica un shell de inicio para el usuario.

-c comentarios introduce un comentario para tener ms informacin del usuario.

10.1.2. Eliminacin de Usuarios

USERDEL. Permite borrar cuentas de usuarios en Linux. Hay que tener privilegios de root para ejecutar este comando. Su sintaxis es: userdel [-r] nombre_usuario Donde: -r para eliminar todos los archivos y subdirectorios contenidos dentro del directorio de trabajo del usuario a eliminar. nombre_usuario identifica al usuario que se va a borrar.

10.1.3. Modificacin de Usuarios

USERMOD. Una vez creada una cuenta de usuario se puede cambiar cualquier caracterstica editando directamente el fichero /etc/passwd o usando el comando usermod. Por ejemplo si quieres modificar el UID de la cuenta usr1 desde 501 al 502 puedes usar el comando: usermod u 502 usr1. Sintaxis: usermod [-c comentarios] [-d home_directory] [-e final de datos] [-g grupo inicial] [-G otros grupos *,++[-l nombre de login] [-s shell] [-u uid] [-o]] login Donde: -c comentarios modifica el comentario acerca del usuario. -d home_directory para especificar un directorio personal concreto. Si no se especifica, se asume el directorio. -e final de datos fecha en la que la cuenta de usuario ser desactivada. Formato MM/DD/YY

-g grupo inicial nuevo nmero de grupo o nombre de grupo. El grupo deber existir. -G otros grupos lista de grupos suplementarios de los que el usuario es miembro. Cada grupo se separa del siguiente por coma, sin espacio en blanco. Los grupos deben existir. Si el usuario es miembro de un grupo que no est en esta lista, se borrar el grupo. -l nombre de login cambio de login -s shell cambio de shell -u uid cambio de nmero de usuario. Este valor ser nico a menos que se use la opcin o. No admite valores negativos. Cualquier uid de fichero que est en el directorio origen del usuario se cambiar automticamente al nuevo uid, pero no pasa as con los ficheros que estn en otro directorio, que debern ser cambiados manualmente (usando chmod, chgrp, chown). login login actual del usuario que vamos a modificar.

10.2. GESTIN DE GRUPOS La informacin referente a los grupos se almacena en el fichero group, que est en el directorio /etc. Los grupos son agrupaciones de usuarios que cuentan con los mismos permisos, lo que hace ms fcil el seguimiento y la administracin del sistema. Existen unos grupos especiales creados por el sistema, que engloban tareas especficas. Algunas de estas cuentas son: Root: grupo de administradores. Users: grupo por defecto de los usuarios. Dialout: grupo que permite realizar conexiones remotas.

10.2.1. Creacin de Grupos

GROUPADD. Permite crear grupos en Linux, al igual que podra hacerse modificando manualmente el fichero /etc/shadow. Su sintaxis es:

groupadd [-g gid] [-o] [-r] grupo Donde: -g gid especifica el GID del grupo que se va a crear. -o indica que el grupo puede tener asociado ms de un GID. -r crea un grupo de sistema. grupo nombre asignado al grupo que se va a crear. Ejemplo: $ groupadd g 500 claseasi Aade el grupo 500 de nombre claseasi

10.2.2. Eliminacin de Grupos

GROUPDEL. Permite borrar grupos en Linux. Su sintaxis es: groupdel grupo Donde: grupo nombre asignado al grupo que se va a borrar. Ejemplo: $ groupdel claseasi

10.2.3. Modificacin de Grupos

GROUPMOD. Permite modificar grupos en Linux. Su sintaxis es: groupmod [g nuevo_gid] [- n nuevo_nombre] grupo Donde: -n nuevo_nombre especifica el nuevo nombre del grupo. -g nuevo_gid especifica el nuevo GID del grupo. grupo nombre del grupo que se va a modificar. Ejemplo: $ groupmod clasenueva claseasi Cambia el nombre del grupo claseasi a clasenueva.

10.2.4. Cambiar el Grupo de un Usuario

NEWGRP. El fichero /etc/group contiene los grupos del sistema. Cuando se accede al sistema siempre se hace con el mismo grupo. Pero un usuario puede pertenecer a ms de un grupo aunque slo est activo uno. El usuario puede necesitar cambiarlo por otro de los que pertenezca para crear nuevos ficheros. Para ello usar el comando que nos ocupa. Ha de ser el usuario desde su login quien ejecute esta operacin. Su sintaxis es: newgrp nuevo_grupo Si el usuario desea visualizar la lista de nombres de los grupos a los que pertenece, bastar con que ejecute la orden groups.

10.3. GESTIN DE PERMISOS SOBRE DIRECTORIOS Y FICHEROS 10.3.1. Modificacin de los Permisos de un Fichero CHMOD. Permite modificar los permisos de uno o varios ficheros. Su sintaxis es: chmod mascara fichero/s donde la mscara puede ser octal o simblica. Ejemplo: $ chmod 652 practica El propietario de practica tendr permiso de lectura y escritura (4+2=6), el grupo de lectura y ejecucin (4+1=5) y otros de escritura (2). Si quisiramos expresar lo mismo mediante una mscara simblica, pondramos: $ chmod u=rw, g=rx, o=w practica La mscara simblica est formada por tres cdigos: a) Clases de usuarios: Smbolo Significado u propietario g grupo

o a b) Permisos: Smbolo r w x c) Operacin: Smbolo + =

otros todos

Significado lectura escritura ejecucin

Significado aadir permisos quitar permisos asignar permisos

Ejemplo: $ ls l -rw-r-x-w-1 cbt staff 512 Feb 09 $ chmod u+x, g-x practica $ ls l -rwxr---w-1 cbt staff 512 Feb 09

18:55

practica

18:55 practica

Da permiso de ejecucin del fichero al propietario y le quita el permiso de ejecucin al grupo. 10.3.2. Cambio del Propietario de un Fichero CHOWN. Este comando cambia el propietario de un fichero. La sintaxis es: chown nuevo_propietario fichero/s Donde: nuevo_propietario se sustituye por el nombre o el identificador de usuario del nuevo propietario. Ejemplo: $ chown pepe carta 10.3.3. Cambio de Grupo a un Fichero CHGRP. Este comando cambia de grupo a un fichero. La sintaxis es:

chgrp nuevo_grupo fichero/s Donde: nuevo_grupo se sustituye por el nombre o el identificador de grupo del nuevo grupo. Ejemplo: $ chgrp usuarios1 carta1 carta2

11. Shell
11.1. METACARACTERES El shell proporciona una forma de abreviar los nombres de archivos mediante el uso de patrones o comodines que se utilizan para especificar uno o ms archivos, sin tener que escribir los nombres completos. Se pueden utilizar comodines para especificar de una sola vez un conjunto completo de archivos o para buscar un archivo cuando slo se conoce parte de su nombre. Cuando el shell, procesa una lnea de orden, sustituye en forma ordenada, cualquier palabra que contenga comodines de nombres de archivos por los nombres de archivos identificados. Los metacaracteres son los siguientes: ? : Cuando este carcter es utilizado como parte del nombre de un archivo o directorio, la interrogacin sustituye a un solo carcter. Ejemplos: $ ls unit? Se mostrarn todos los archivos que comiencen por unit y tengan un carcter ms. $ ls e?s Se mostrarn todos los archivos y directorios que comiencen por e y terminen en s y tengan tres caracteres.
*: Cuando este carcter es utilizado como parte del nombre de un archivo

o directorio, el asterisco sustituye a una serie de caracteres.

$ ls unit* $ ls e*s $ ls * [ ] : Cuando se utilizan como parte de nombres de archivo o directorio, representan un solo carcter de los incluidos entre los corchetes, que se sustituirn por el carcter en el nombre de archivo o directorio en la posicin en la que estn estos corchetes. Pueden incluir rangos separados por un guin. Dentro de [ ] podemos utilizar !, que permite excluir caracteres. $ ls capitulo1[102] capitulo10 capitulo11 $ ls capitulo[123]0 capitulo10 capitulo20 $ ls capitulo[1-5] capitulo1 capitulo2

capitulo12

capitulo30

capitulo3

capitulo4

capitulo5

$ ls [tn]*[ms] Muestra los archivos que empiecen por t o n, a las que les siga una cadena de caracteres y, que finalmente, terminen por m o s. Ejemplo: tos, nueces. $ ls cap[!1] Muestra todos los archivos que comiencen con la palabra clave cap y terminen con un nico carcter que no sea el 1. $ ls unit[!6-9] Muestra todos los archivos y directorios que comiencen por unit, tengan 5 caracteres y el ltimo sea diferente de 6, 7, 8 9. $ ls cap[!15] Muestra todos los archivos que comiencen con la palabra cap y de 4 caracteres, no pudiendo ser ni el 1 ni el 5 el ltimo.

11.2. REDIRECCIN Cada vez que se inicia un intrprete de rdenes, se abren automticamente tres archivos. Esto es porque para LINUX todos los dispositivos fsicos son archivos. Estos archivos son los siguientes:

stdin: archivo estndar de entrada, es de donde los programas leen su entrada. stdout: archivo estndar de salida, es a donde los programas envan sus resultados. stderr: archivo estndar de error, es a donde los programas envan sus salidas de error. El archivo estndar de entrada se identifica generalmente con el teclado. Los archivos estndar de salida y error se identifican normalmente con la pantalla. 11.2.1. Redireccionamiento de Entrada (<) Cualquier orden que lea su entrada en stdin puede ser avisada para que tome dicha entrada de otro archivo. Esto se hace utilizando el carcter menor que, <. La redireccin de entrada no produce ningn cambio en el archivo de entrada. Ejemplo: $ mail pepe < listado2 Se enva el fichero listado2 por correo electrnico al usuario pepe. 11.2.2. Redireccionamiento de Salida (>) Se puede redireccionar la salida de cualquier orden a un determinado archivo en vez de hacerlo por la salida estndar stdout. Para obtener una redireccin de salida, se utiliza el carcter mayor que, >. Si el archivo al que redireccionamos no existe, el shell lo crear automticamente, si, por el contrario ya exista, entonces se sobrescribir la informacin, machacando el contenido original del archivo. Ejemplo: $ date > prueba Se almacena la fecha actual del sistema en el archivo prueba. 11.2.3. Redireccionamiento de Adicin a un Fichero (>>) Si por cualquier causa lo que queremos es aadir informacin a un archivo sin destruir su contenido, deberemos utilizar para la redireccin el doble smbolo de mayor que, >>. Ejemplo: $ ls > prueba Se almacena al final del fichero prueba el contenido del directorio activo.

11.2.4. Redireccionamiento de Errores (2> y 2>>) Este tipo de redireccionamiento se utiliza para almacenar los errores producidos en la ejecucin de un comando en un archivo especfico, en vez de utilizar la pantalla. Para ello se utilizan los caracteres 2> y 2>>. Ejemplo: $ cat fichero>fichero1 2>errores Si el archivo fichero no existe o no est en ese lugar, o se da cualquier otro error, se crea un fichero llamado errores con el contenido del mensaje del error que se hubiera mostrado por pantalla. Si el fichero errores existe, se destruye y se queda con la ltima informacin; si no existe, se crea. La diferencia al poner 2>> es la misma que con la adicin.

11.3. FILTROS En Unix/Linux es posible introducir en una misma lnea dos o ms comandos separados por el carcter tubera o pipe (|). De esta forma, puedes ejecutar un comando, y el resultado de ste puede ser la entrada para otro, que a su vez puede servir de entrada a un tercero. Si ejecutamos la siguiente secuencia de comandos: $ comando1 | comando2 | comando3, Ocurrir que la salida proporcionada por el comando1 se tomar como entrada para el comando2. La salida del comando2 es tomada como entrada para el comando3. Los filtros en Unix/Linux se utilizan igual que en DOS, mediante el carcter tubera para filtrar la informacin. Estos filtros son: MORE. Orden que muestra el contenido de un archivo paginando la salida por pantalla. Su sintaxis es: more fichero1 .... Pulsando <Enter> aparece una nueva lnea. Pulsando barra espaciadora aparece una nueva pantalla. Pulsando q finalizamos la visualizacin. Ejemplo:

$ more fich1 Ejemplo: $ ls | more LESS. Orden que muestra el contenido de un archivo paginando la salida por pantalla y permitiendo moverse tanto hacia al final del fichero como hacia el principio. Su sintaxis es: less fichero1 .... Pulsando <Enter> aparece una nueva lnea. Pulsando barra espaciadora aparece una nueva pantalla. Pulsando q finalizamos la visualizacin. Ejemplo: $ less fich1 Ejemplo: $ ls | less

TAIL. Visualiza el final de un fichero, por defecto visualiza las diez ltimas lneas. Su sintaxis es: tail [opciones] [fichero] Donde las opciones pueden ser: +n empieza a visualizar a partir de n lneas del principio del fichero. - n empieza a visualizar a partir de n lneas del final del fichero. Ejemplo: $ tail 10c fich Obtiene los 10 ltimos caracteres de fich. Ejemplo: $ ls / tail Obtiene las 10 ltimas lneas del listado obtenido mediante la orden ls..

HEAD. Obtiene en la salida estndar las primeras lneas de un fichero, por defecto las 10 primeras lneas. Su sintaxis es:

head [-n] [fichero(s)] Donde: - n obtiene las n primeras lneas. Ejemplo: $ cat prueba Buenos das esto es una prueba esta ya no se va a ver al hacer head $ head 2 prueba Buenos das esto es una prueba Ejemplo: $ ls | head Obtiene las 10 primeras lneas del listado obtenido mediante la orden ls..

WC. Cuenta el nmero de caracteres, palabras y lneas de uno o ms fichero(s), incluye espacios en blanco y caracteres de salto de lnea . Cuando se indica el nombre de ms de un fichero wc proporciona los contadores individuales y su totalidad y se presentan los de cada fichero etiquetados con su nombre. Si no se especifica ningn fichero, leer de la entrada estndar. Su sintaxis es: wc [opciones] [fichero(s)] Donde las opciones pueden ser: -c visualiza slo el nmero de caracteres del fichero. -l visualiza slo el nmero de lneas del fichero. -w visualiza slo el nmero de palabras del fichero. Ejemplo: $ cat prueba Buenos dias esto es una prueba $ wc prueba 2 6

31

prueba

En este ejemplo, el comando imprime el nmero total de lneas (2), de palabras (6), y de caracteres (31) (incluye espacios en blanco y nueva lnea) del fichero prueba. Ejemplo: $ wc c* 4 4 26 coche 4 4 22 coche2 8 8 48 total Visualiza los ficheros que empiezan por c y suma el total. Tambin puede formar parte de una tubera para contar las palabras o lneas de la entrada: Ejemplo: $ ls | wc l Cuenta las lneas del directorio activo.

GREP. Es un filtro que permite buscar cadenas de caracteres (patrn) en los archivos que se le indica y muestra la lnea del fichero que contiene el patrn. Su sintaxis: grep [opciones] patrn [fichero(s)] Donde las opciones pueden ser: -c visualiza el n total de lneas donde se localiza el patrn. -i elimina la diferencia entre maysculas y minsculas. -l visualiza slo el nombre de los ficheros donde se localiza el patrn. -n visualiza el n de lnea donde aparece el patrn, as como la lnea completa. -v visualiza las lneas del fichero donde no aparece el patrn. Ejemplo: $ cat pruebagrep hola voy a probar a ver si me dice en que lugares aparece la letra a el comando grep y este no tiene la letra $ grep letra pruebagrep aparece la letra a

y este no tiene la letra $ grep -c letra pruebagrep 2 $ grep -n letra pruebagrep 3:aparece la letra a 5:y este no tiene la letra $ grep -v -n letra pruebagrep 1:hola voy a probar a 2:ver si me dice en que lugares 4:el comando grep Caracteres especiales dentro del patrn. Expresiones regulares Una expresin regular es un patrn que define a un conjunto de cadenas de caracteres. ^ Indica que la cadena buscada debe encontrarse al principio de lnea. $ La cadena deber encontrarse al final de la lnea. $ cat semana.doc Lunes Martes Mircoles $ grep ^M semana.doc Martes Mircoles $ grep es$ semana.doc Lunes Martes Mircoles . Se corresponde con cualquier carcter, pero slo uno y en la posicin marcada por el punto. $ cat nombres Lpez Gmez Montes $ grep ..ez nombres Lpez

Gmez [a...z]Coincide con cualquier carcter de los que estn incluidos en la lista. $cat pases Portugal Francia Panam Lisboa Espaa $ grep [P] pases Portugal Panam $ grep [Pp] pases Portugal Panam Espaa $ grep [PF] pases Portugal Francia Panam $ grep [n] pases Francia Panam [x-y] Sustituyen a un carcter y puede ser cualquiera de los comprendidos en el rango definido entre []. $ grep [o-s] pases Portugal Francia Lisboa Espaa [^] Indica exclusin de los caracteres incluidos entre corchetes. $ grep ^[^P] pas Francia Lisboa

Espaa $ cat dicho Cada fracaso ensea al hombre algo que debera haber aprendido. El nico hombre que nunca se equivoca es el que nunca hace nada $ grep ^a dicho algo que aprendido. $ grep qu[aeiou] dicho algo que que nunca se equivoca es el que nunca $ grep equ[aeiou] dicho que nunca se equivoca es

SORT. El filtro sort se utiliza para ordenar lneas. Esta clasificacin la realiza por orden alfabtico o numrico teniendo en cuenta que cada lnea del fichero es un registro compuesto por varios campos, los cuales estn separados por un carcter denominado separador de campo (tabulador, espacio en blanco, dos puntos). Su sintaxis es: sort [opciones] [+campo] [fichero/s] Donde las opciones pueden ser: -f ignora maysculas y minsculas. -n ordena campos numricos por valor no por caracteres. -r orden inverso. -u suprime lneas repetidas en el fichero de salida -d ignora caracteres especiales (solo letras y nmeros) -t indica el delimitador de campos, por defecto el espacio en blanco.

-o para que el fichero ordenado se almacene en el propio fichero. Funciona como una redireccin. +campo cuando se quiere ordenar por un campo determinado del registro. Por defecto un campo es cualquier secuencia de caracteres separados por espacios en blanco. Los campos del registro se numeran a partir del 0. El nmero que sigue al + es el nmero de campo por el que se quiere comenzar la ordenacin. Para parar la ordenacin en otro campo se pone n de campo. ficheros nombres de los ficheros a ordenar. $ cat ciudades barcelona oviedo Paris alicante alicante OVIEDO Si se ordenan, las maysculas por defecto van primero: $ sort ciudades OVIEDO Paris alicante alicante barcelona oviedo $ sort -o ciudades ciudades El fichero ordenado se almacena en el propio fichero. $ sort -f ciudades alicante alicante barcelona OVIEDO oviedo Paris $ sort -f -u ciudades alicante barcelona

OVIEDO Paris $ sort -fur ciudades Paris OVIEDO barcelona alicante $ sort f-u-r ciudades

$ sort u f1 f2 f3 > lista Fusiona los 3 ficheros eliminando las lneas repetidas. $ cat numeros 101 112 10 373 64 $ sort numeros 10 101 112 373 64 $ sort n numeros 10 64 101 112 373 Se puede indicar que utilice algn tipo de separador especfico utilizando la opcin t y a continuacin el separador e indicar que se ordene por una determinada columna. $ cat ciudades Espaa:Alicante Espaa:Barcelona Alemania:Berln Grecia:Atenas

$ sort t: +1 ciudades

Otros comandos tambin pueden utilizarse como filtros, pero en realidad tienen otra funcin. Son los siguientes :

CUT. El filtro cut se usa para cortar columnas en ficheros y pasar a la salida estndar las columnas o campos de la entrada estndar o del archivo especificado. Por defecto el separador de campos es <TAB>. Su sintaxis es: cut [opciones] lista [fichero(s)] Donde las opciones pueden ser: -c corta caracteres. -f corta campos. -d especifica el carcter de separacin entre los distintos campos (delimitador). lista especifica que columnas se van a cortar. Estas se identifican por su nmero a partir del 1 y caben las siguientes posibilidades: Un nmero: corta desde ese campo hasta el final de la lnea. Ej. $cut -f1 (corta la primera columna) Una lista de campos separados por comas: corta esos campos. Ej. $cut f2,3 (corta los campos 2 y 3). Un rango de campos o caracteres: corta todos los elementos incluidos en el rango. Ej. $cut -c 1-72 (corta los 72 caracteres de cada lnea). Ejemplo: $ cat rios.dat Alemania:Berln:Danubio Francia:Pars:Sena Espaa:Madrid: Manzanares Portugal:Lisboa:Tajo $ cut f2 -d: rios.dat Berln Pars Madrid Lisboa

$ cut f1,3 d: rios.dat > rios1 $ cat rios1 Alemania :Danubio Francia:Sena Espaa: Manzanares Portugal: Tajo $ cut c 1-2 rios.dat Al Fr Es Po

PASTE. Este comando une las columnas de distintos ficheros en otro fichero de salida. Su sintaxis es: paste [-d separador] fichero1, fichero2, ... ficheroN Donde: -d especifica el carcter que se desea para separar los campos. $ cat moneda.dat alemania:marco:20 francia:franco:30 espaa:peseta:180 portugal:escudo:240 $ cat pais.dat alemania francia espaa portugal

$ paste d : moneda.dat pais > estado $ cat estado alemania:marco:20:alemania ............................

TEE. En ciertas ocasiones puede interesar adems de redireccionar la salida de una orden a un archivo, visualizar los resultados obtenidos. La orden tee se cre con esta intencin. Su sintaxis es: tee fichero $ ls l | tee fichero Visualiza por pantalla y al fichero.

$ ls l | tee dirlist | wc Visualiza por pantalla, lo enva al fichero y cuenta las lneas. $ ls l | wc | tee dirlist Visualiza por pantalla, cuenta las lneas y lo enva al fichero.

12. Gestin de Procesos, de Disquetes, de Discos


12.1. GESTIN DE PROCESOS 12.1.1. Introduccin El sistema operativo Unix/Linux basa su potencia en dos cuestiones fundamentales: el sistema de archivos y el control de los procesos. En Unix/Linux los procesos son importantsimos, ya que nacen, cambian de estado, heredan el patrimonio de sus padres, duermen, mueren, se suicidan, pueden ser asesinados e incluso se convierten en zombis y difuntos. Unix/Linux asigna a cada proceso una identificacin denominada PID. El propio shell con el que est trabajando es un proceso lanzado por el sistema. Es el equivalente al Escritorio en Windows. El Escritorio es un proceso lanzado por el sistema operativo para permitir la comunicacin entre el usuario y el ordenador. En Unix/Linux es lo mismo, con la diferencia de que este sistema asigna un nmero de identificacin a cada proceso que lanza un usuario. En Unix/Linux existen unos procesos, llamados demonios, que son de los ms importantes en el sistema. Se puede definir un proceso como una tarea en un sistema multiproceso como Unix/Linux. Son programas en ejecucin. Cada proceso puede ejecutar a su vez otros procesos. Algunas caractersticas del Shell, el proceso que siempre se ejecuta cuando conectas con el sistema son:

Unix/Linux tiene un proceso denominado getty (demonio) disponible para cada terminal. Unix/Linux comunica el servidor con los puestos de los usuarios mediante un proceso inetd. Este proceso, en realidad, lanza los servicios del protocolo TCP/IP para establecer los parmetros en la comunicacin entre terminales y ordenadores. Al realizar la conexin, Unix/Linux detecta que hay un terminal dispuesto a trabajar. Entonces el proceso demonio se ejecuta visualizndose en pantalla login: Introducimos el nombre de usuario y la contrasea, Unix/Linux lanza otro proceso para comprobar su autenticidad, contrastando lo introducido en los ficheros /etc/passwd, /etc/shadow y /etc/group, de los que se hablar ms adelante. Comprobamos estos datos, se ejecuta otro proceso que lanza el Shell en tu terminal desde /bin/sh, o el Shell elegido al ejecutar el fichero .profile. De esta forma el usuario ya puede trabajar, pero teniendo en cuenta que al menos cada usuario tiene siempre un proceso activo: el propio Shell lanzado. Si ejecutamos una orden, estaremos iniciando otro proceso, que evidentemente ser hijo del proceso con el que lo lanzamos. Si con el proceso hijo generamos otro proceso, ste ser hijo del anterior, y no del primero. As puede ocurrir que cancelemos un proceso padre que est ejecutando o tiene lanzado un proceso hijo. Si esto es as, eliminaremos el padre y el hijo. Se dice que el proceso hijo est defunct. Todos los procesos Unix/Linux dependen de otro (de su padre) excepto el primero de ellos, que es el que se encarga de monitorizar a todos los dems (Schedule). Despus del proceso monitor, se activa el proceso init, del cual dependen todos los dems (init es el ancestro de todos los procesos). Simplificando, se puede decir que cuando se va a crear un nuevo proceso, se toma uno como referencia (el padre), se realiza una copia de l y sobre esa copia se hacen las modificaciones correspondientes para que se ejecute el comando deseado. La relacin padre/hijo se puede modificar mediante el comando nohup.

12.1.2. Comandos PS. Permite conocer lo que est ocurriendo en el sistema. Esta orden lista todos los procesos activos en ejecucin en la mquina. Su sintaxis es: ps [opciones] Si se utiliza sin opciones, se obtendr informacin referente a los procesos asociados con el terminal en el que estamos. Gracias a esta orden se muestran datos como el PID de cada proceso, el terminal en el que se estn ejecutando, el tiempo que llevan en ejecucin y el nombre del propio proceso. Los nmeros de proceso se asignan secuencialmente cuando se generan nuevos procesos hijos. El proceso 0 es el primero que se genera al principio de conectar con el sistema; el proceso 1 es el proceso init, a partir de cual se generan todos los restantes. El resto de procesos empezarn por el 2 como identificador. Lo normal es que no se lancen tantos procesos como para que el sistema no pueda ejecutarlos. La lista de opciones del comando ps es demasiado larga, pero mostraremos algunos de los parmetros ms importantes mediante ejemplos. Ejemplos: $ ps -f -u usuario01 Vemos los procesos que est ejecutando el usuario01. $ ps -f -u tty07 Vemos los procesos que estn ejecutndose en el Terminal asociado al dispositivo tty07.

KILL. Este comando mata a un proceso cuando se est ejecutando, es decir, finaliza su ejecucin. Para terminar el proceso, es suficiente con conocer el nmero identificativo asignado por el sistema. Ejemplo: $ kill 201

Cuando el comando kill se utiliza sin argumentos (de los 20 que tiene aproximadamente), se enva una seal al proceso de tipo 15. Esta seal indica al sistema que tiene que detener el proceso en ejecucin. Si queremos eliminar un proceso, sea el que sea, y de la forma anterior no se elimina, es debido a que el sistema no permite detener el proceso en ejecucin. Si queremos terminarlo de todas formas, enviaremos el valor 9 como parmetro del comando kill. Ejemplo: $ kill -9 201 Se ha de tener en cuenta que el administrador 'root', podr matar todos los procesos que estn ejecutando otros usuarios, as tambin, los usuarios podrn matar sus propios procesos, y ningn usuario podr matar otro proceso distinto del suyo. Supongamos que a un usuario se le ha quedado bloqueado su terminal; ste no podr hacer nada, ni siquiera ejecutar el comando kill. En este caso, el administrador del sistema puede solucionar el problema eliminando desde el servidor o desde cualquier ordenador operativo sobre los que tenga los derechos de administrador, una orden de matar el Shell del ordenador bloqueado, es decir, cancelar el proceso Shell que se est ejecutando por ese usuario. Si lo que deseamos es terminar todos los procesos existentes en el sistema, ejecutaremos el comando kill con el valor 0.

SLEEP. Este comando sirve para detener, por un intervalo de tiempo especificado en segundos, un proceso determinado. Suele utilizarse en programacin Shell, similar a la programacin BATCH.

WAIT. Permite detener un proceso ejecutndose en segundo plano mientras se est ejecutando un proceso hijo. wait [pid]

TIME. Calcula el tiempo que un proceso tarda en ejecutarse. time [opciones] [comando] [argumentos]

NOHUP. Cuando se desconecta un terminal, el ncleo del sistema operativo enva una seal a todos los procesos que estaban asociados al terminal para finalizarlos. Hay ocasiones en las que queremos que aunque se desconecte el terminal, determinados procesos continen ejecutndose. Para que un proceso permanezca vivo a pesar de desconectar el terminal, ejecutaremos el comando nohup. nohup [comando] [argumentos]

NICE. Permite a un usuario ejecutar un proceso con una prioridad inferior que la asignada de forma predeterminada por el sistema. Los valores de prioridad oscilan entre -1 y -19. El valor predeterminado suele ser -10. Cuanto mayor sea el valor introducido como parmetro con nice, el proceso en ejecucin ser ms lento. nice [opciones] [comando] [argumentos]

AT. Permite programar cuando se desea ejecutar determinado proceso. Es equivalente a Tareas programadas en Windows, pero con bastantes ms opciones, ya que se podr planificar cualquier cosa. at [-f archivo] [-q cola] [fecha] [hora] Ejemplo: $ at f irma 4 am Friday Este commando hace que el proceso se ejecute a las cuatro de la madrugada del viernes.

CRONTAB. Sirve para aadir lneas al fichero crontab. El archivo crontab guarda informacin acerca de la planificacin en la ejecucin de preocesos. crontab u user [archivo] [-elr] Ejemplo: $ crontab-l Este commando visualiza el contenido del fichero crontab $ crontab proceso Este commando aade el proceso al fichero crontab

DU. Permite ver el uso de disco. du [-abkhs] [fichero] Ejemplo: $ du sbh directorio Este commando visualiza el espacio del disco que utiliza el directori. REBOOT HALT. Permite reiniciar y parar el sistema. reboot halt Ejemplo: $ reboot $ halt

SHUTDOWN. Permite parar el sistema shutdown r Ejemplo: $ shutdown -r Este commando obliga a reiniciar el sistema despus de pararlo

13. Entorno
13.1. VARIABLES DEL SISTEMA Y DE USUARIO Desde shell se pueden definir y manejar variables que sirven para configurar el funcionamiento del propio intrprete de comandos. Se puede asignar valores con el signo =. La frmula es: nombre_variable=valor Donde: nombre_variable puede ser cualquier cadena de caracteres que no incluya $ y no lleve espacios en blanco valor puede ser cualquier cadena de caracteres. Si contiene espacios en blanco, es conveniente encerrarlo entre comillas, ya que shell interpreta el espacio en blanco como separador de palabras en la lnea de rdenes. Ejemplo: $ PRESENTACION = Mara de las Mercedes

$ echo $PRESENTACION Mara de las Mercedes: Ejemplo: $ = Merche $ echo $PRESENTACION Merche: Tambin se puede modificar el valor de las variables de entorno del shell. Ejemplo: $ PS1 = $PRESENTACION Mara de las Mercedes: Utilizamos el valor de la variable PRESENTACION (Merche:) del ejemplo anterior para modificar el valor de la variable PS1 que contiene el prompt. A partir de este momento, el prompt pasa a ser Merche. Para volver a cambiar el prompt al smbolo $ se ejecuta la orden PS1=$. Se puede utilizar una variable de entorno dentro del valor de otra: Ejemplo: $ PS2=secundaria $ EJEMPLO=Mi prompt secundaria es $PS2 $ echo $EJEMPLO Mi prompt secundaria es secundaria. $ Si se desea que no se evale la variable, hay que utilizar los apstrofos. Ejemplo: $ EJEMPLO=Visualiza el valor del prompt con $PS1 $ echo $EJEMPLO Visualiza el valor del prompt con $PS1 $ El apstrofo tambin se utiliza si dentro del valor de la variable se desea incluir comillas. Ejemplo: $ EJEMPLO=Buenos das $ echo $EJEMPLO Buenos das $ El shell mantiene en memoria una tabla con variables y su valor asociado. Las ms importantes son:

HOME

Contiene el camino del directorio de trabajo del usuario que se conecta al ordenador. Contiene los caminos de los directorios donde buscar las rdenes de UNIX. Contiene el carcter del prompt, por defecto $. Contiene el prompt secundario, por defecto >. Especifica el tipo de terminal que se est utilizando. Contiene el nombre del usuario con el que nos conectamos, es decir, el nombre que se escribe en login: al entrar al sistema. Contiene el camino del buzn de correo electrnico del usuario.

PATH

PS1 PS2 TERM LOGNAME

MAIL

13.2. RDENES DE MANEJO DE VARIABLES Y DEL ENTORNO El entorno de usuario es una lista de pares variable-valor que el sistema pasa, junto con los argumentos, a cualquier programa que se va a ejecutar. No todas las variables creadas por el usuario forman parte del entorno. Para que una variable forme parte del entorno hay que exportarla. Tambin se puede eliminar una variable con unset. As, el entorno para un programa que se va a lanzar est constituido por un conjunto de variables originalmente heredadas por shell, menos las variables eliminadas por unset, ms las adiciones que han sido exportadas y ms las modificaciones de variables del entorno. Hay varios comandos para el manejo del entorno: ECHO. Este comando nos va a permitir visualizar el valor de una variable. La sintaxis que habr que utilizar ser: echo $variable Donde:

variable representa el nombre de la variable que se desea visualizar. Ejemplo: $ echo $PS1 La orden visualiza el carcter $.

EXPORT. Las variables se pueden utilizar para almacenar rdenes o parmetros de uso frecuente. Para ello, hay que tener en cuenta que cuando se crea una variable slo se puede utilizar en el directorio donde se cre (variable local). La orden export permite hacerla global, pudindose as utilizar en otro directorio.Su sintaxis es: export variable Ejemplo: $ VERNOTAS = cat listado1 $ export VERNOTAS $ $VERNOTAS Al ejecutar la variable VERNOTAS, se invoca la orden cat listado1; es decir, visualizamos el fichero listado1.

SET. Permite visualizar las variables locales. set | more ENV. Permite visualizar las variables de entorno. env|more

UNSET. Permite borrar variables de entorno, excepto: PATH, PS1, PS2; MAILCHECK e IFS. unset variable Ejemplo: $ unset VERNOTAS

S-ar putea să vă placă și