Anda di halaman 1dari 7

Prctica 1.

Entorno de Linux
En esta prctica comenzaremos con ambientarnos en el sistema operativo Linux. Conoceremos algunas de las caractersticas que son fundamentales para el uso del sistema enfocado a la programacin y administracin del mismo.

Escritorios GNOME y KDE


GNOME es un entorno de escritorio e infraestructura de desarrollo para sistemas operativos Unix y derivados Unix como GNU/Linux, BSD o Solaris, compuesto enteramente de software libre. El proyecto fue iniciado por los programadores mexicanos Miguel de Icaza y Federico Mena y forma parte oficial del proyecto GNU. Naci como una alternativa a KDE bajo el nombre de GNU Network Object Model Environment. Actualmente se encuentra disponible en 166 idiomas, entre ellos el espaol. KDE es un entorno de escritorio contemporneo para estaciones de trabajo Unix. KDE llena la necesidad de un escritorio amigable para estaciones de trabajo Unix, similar a los escritorios de Mac OS X o Windows. Las aplicaciones KDE estn traducidas a aproximadamente 75 idiomas. Las aplicaciones de KDE 4 funcionan de forma completamente nativa en GNU/Linux, BSD, Solaris, Windows y Mac OS X. El proyecto fue iniciado en octubre de 1996 por el programador alemn Matthias Ettrich, quien buscaba crear una interfaz grfica unificada para sistemas Unix. En sus inicios imit a CDE (Common Desktop Environment), un entorno de escritorio utilizado por varios Unix. Est escrito en Qt.

Entornos CLI y GUI


Existen dos tipos de interfaces, la Interfaz en Lnea de Comandos (CLI) y la Interfaz Grfica de Usuario (GUI). El programa que permite introducir comandos se le llama Shell y de este existen muchas variantes. Algunos Shell son bsh, bash, csh, ksh. En la GUI se requiere de otro programa que permite usar un Shell, este programa difiere de acuerdo a la distribucin de Linux, los ms comunes son: Terminal, Konsole, XTerm. Para poder cambiar entre la CLI y la GUI utilizamos las combinaciones siguientes: Control+ Alt+F1 [F2, F3, F4, F5, F6, F7] Una caracterstica importante es que el sistema operativo Linux es un sistema multiusuario y multitarea. Esto se refiere a las cualidades que tiene el sistema operativo para atender muchos procesos y a muchos usuarios de forma simultnea.

Tipos de usuario en Linux


Para la administracin y uso de Linux se tienen tres tipos de usuarios. El ms importante por tener todos los privilegios es el usuario administrador, tambin llamado root o superusuario. El usuario administrador puede leer, escribir, crear, modificar y eliminar cualquier archivo del sistema y de los usuarios. El segundo tipo de usuario es el regular, el cual tiene privilegios cmo los del administrador pero nicamente sobre sus propios archivos. Por ltimo, el usuario sin privilegios. Este solo es un observador de algunas partes del sistema.

Sistema de archivos
El sistema de archivos es un conjunto de directorios y archivos donde se concentran los programas que se encargan de realizar todas las operaciones relacionadas con el almacenamiento y manipulacin de los archivos. Son las funciones que tratan con los dispositivos fsicos de almacenamiento del computador, como el disco duro, funciones como escribir, leer, borrar. El sistema de archivos nativo de Linux es el EXT2. Existen otros sistemas de archivos con journalising (si se inicia sin haber cerrado adecuadamente el sistema, no necesitan hacer un chequeo sino que recuperan automticamente su ltimo estado), los ms conocidos son EXT3, ReiserFS y XFS. Parte del sistema de archivos de Linux se muestra en la tabla 1.1
Tabla 1.1 Parte del sistema de archivos del sistema operativo Linux

bin boot dev etc home lib mnt root sbin tmp usr var

Binarios de comandos esenciales Archivos estticos de cargador de arranque Archivos de dispositivos Configuracin del sistema local-mquina Directorios home de los usuarios Libreras compartidas Punto de montaje de particiones temporales Directorio hogar del usuario root Binarios del sistema esenciales Archivos temporales Segunda jerarqua mayor Informacin variable

Direccionamiento relativo y absoluto


Una direccin absoluta, nos muestra la ubicacin de un directorio con respecto al directorio raz. Una direccin relativa, nos muestra la ubicacin con respecto al directorio en el que estamos. Por ejemplo si estamos en el directorio /usr/local/apache la direccin anterior es absoluta debido a que comienza del directorio raz /. Una direccin relativa al mismo directorio del ejemplo anterior sera de esta forma: ./apache. Para distinguir una de la otra se tiene en cuenta que siempre una ruta absoluta comienza con la diagonal / y una ruta relativa no.

Entrada y salida estndar


La entrada y salida estndar son los dispositivos que de manera predeterminada son la entrada de la computadora y la salida de la misma. El intrprete de comandos o Shell tiene la capacidad para controlar y dirigir la entrada de datos de los programas, la salida de informacin til y la informacin de errores. Cuando un programa se ejecuta, automticamente se le proporcionan tres descriptores de archivo. El descriptor de archivo stdin est asociado a la entrada de texto. Por defecto est asociado al teclado. El descriptor de archivo stdout se corresponde con la salida de texto normal de los programas. Por defecto est asociado al terminal de pantalla. El descriptor de archivo stderr tambin es una salida de texto, pero se usa exclusivamente para mostrar los errores generados por los programas. Por defecto tambin est asociado a la terminal de pantalla. Aunque el descriptor stdout de los programas est asociado por defecto a la pantalla del terminal, es posible redireccionar la salida de un comando a la entrada de otro, 2

tambin es posible redireccionar cualquiera de los tres descriptores a un archivo. Los comandos que estn asociados con el redireccionamiento se muestran a continuacin: < (signo menor que): Acepta la entrada de un archivo >(signo mayor que): Enva la salida estndar a un archivo >> (signo mayor que dos veces): Aade la salida estndar a un archivo | (barra vertical o pipe): Conecta la salida estndar de un comando con la entrada estndar de otro. Este redireccionamiento es tambin conocido como tubera o pipe y es uno de los ms usados en linux

Ejemplo 1.1: Se muestra una secuencia de redireccionamientos en combinacin con algunos comandos. cat > archivo.txt cat >> archivo.txt ls > archivo.ls wc < archivo.ls Es importante anotar que para la terminacin y suspensin se procesos se tienen la combinacin de teclas Control+C y Control+Z, respectivamente. Ejemplo 1.2: Las siguientes secuencias de comandos se utilizan para la administracin de las cuentas de usuarios. En la figuras 1.1 y 1.2 se muestra un ejemplo de la ejecucin de estos comandos. #adduser Alfredo #password Alfredo #userdel Alfredo

Figura 1.1 Se ejecutan comandos de administracin de usuarios

Figura 1.2 Se ejecutan comandos de administracin de usuarios

Existen comandos que sirven para administrar el sistema como por ejemplo yast y yast2 para distribuciones como Fedora y apt-get install para instalacin de software en distribuciones como Ubuntu. El comando mount se usa para montar sistemas de archivos que se encuentran en particiones o dispositivos que no son detectados por los sistemas Linux y UNIX. En el siguiente ejemplo se muestra como se monta la particin SATA 1 en el directorio /mnt y que es del tipo ntfs. mount /dev/sda1/ /mnt t ntfs Anteriormente en distribuciones Fedora 3 y 4 no se detectaban automticamente las memorias USB por lo que se requera montarlas manualmente y esto se haca con la siguiente secuencia de comandos: En el archivo fstab (/etc/fstab) agregar la lnea: /dev/sda/ /mnt/flash auto noauto owner kudzu

Se crea el directorio /mnt/flash #mkdir /mnt/flash Se monta el volumen: #mount t auto /dev/sda /mnt/flash El comando history nos ayuda a ver el historial de comandos que hemos introducido en el Shell. Por otro lado el comando ifconfig permite ver la configuracin de los dispositivos de red. En Linux se da el nombre de filtros a un grupo de comandos que leen alguna entrada, realizan una transformacin y escriben una salida. Los comandos tales como tee, head, tail, cut, sort y uniq son ejemplos de estos. Las tuberas (tambin conocidas como pipes) relacionan la salida estndar de un comando con la entrada estndar de otro comando. Un ejemplo de tuberas se explica a continuacin. Con redireccionamiento se puede hacer: $who > archivo.temp $wc l < archivo.temp Con tuberas se escribe: $who | wc -l Otro ejemplo de uso de tuberas se muestra a continuacin: ls l | less

La utilidad tar (Tape Archiver) es una herramienta de fcil manejo disponible en todas las versiones de Unix y la mayora de POSIX que permite agrupar archivos individuales o directorios completos en un nico archivo. Las opciones ms comnmente utilizadas son: -c: Crea un contenedor -x: Extrae archivos de un contenedor -t: Testea los archivos almacenados en un contenedor -v: Modo verbose -f: Especifica el nombre del contenedor -Z: Comprime o descomprime mediante compress/uncompress (obsoleto) -z: Comprime o descomprime mediante gzip -j: Comprime o descomprime mediante bzip2 -p: Conserva los permisos de los ficheros Un ejemplo para crear un contenedor sin comprimir y luego verificar su contenido se muestra a continuacin: $tar -cvf /tmp/ejemplo1.tar /var/log $tar -tvf /tmp/ejemplo1.tar Para crear un contenedor comprimido con gzip y luego verificar su contenido $tar -czvf /tmp/ejemplo2.tar.gz /var/log $tar -tzvf /tmp/ejemplo2.tar.gz Para crear un contenedor comprimido con bzip2 y luego verificar su contenido $tar -cjvf /tmp/ejemplo3.tar.bz2 /var/log $tar -tjvf /tmp/ejemplo3.tar.bz2 Para extraer los datos almacenados en el contenedor sin comprimir, luego del comprimido con gzip y por ltimo el que fue creado con bzip2 se muestran las opciones adecuadas. $tar -xvf ejemplo1.tar $tar -xzvf ejemplo2.tar.gz $tar -xjvf /tmp/ejemplo3.tar.bz2 Prctica 1.1: Investiguen el uso de los comandos: cal, date, echo, time, uname y muestren su funcionamiento en una terminal. (5% de la calificacin de la prctica) Prctica 1.2: Investiguen el uso de los comandos: w, who, bash, wc, clear, ifconfig, rm, mv, cp, mkdir, df, du, pstree y muestren su funcionamiento en una terminal. (10% de la calificacin de la prctica) Prctica 1.3: Investiguen el uso de los comandos: kill l -9 y trap l y muestren su funcionamiento en una terminal. (5% de la calificacin de la prctica) Prctica 1.4: Investiguen el uso de los comandos: pwd, su, sudo, passwd, userdel, useradd y muestren su funcionamiento en una terminal. (10% de la calificacin de la prctica) 5

Programa1a.c En el siguiente programa se muestra la funcin getuid(). (5% de la calificacin de la prctica). Para poder copilar el programa utilice el comando gcc.

Programa1b.c En el siguiente programa se muestra el funcionamiento de las funciones getpid() y getppid(). (5% de la calificacin de la prctica)

Una variable de entorno es un objeto designado para contener informacin usada por una o ms aplicaciones. Usar variables de entorno permite cambiar una opcin de configuracin para una o ms aplicaciones fcilmente. En el siguiente ejemplo se muestran ejemplos para visualizar variables de entorno: $env $echo $HOME Programa1c.c Con el siguiente programa se muestran las variables de entorno del sistema y sus valores. Este programa funciona en Linux y Windows. (5% de la calificacin de la prctica)

Programa1d.c Usar la funcin getenv( ) para crear un programa para que imprima nicamente el valor de la variable HOME. (15% de la calificacin de la prctica) Programa1e.c Realizar un programa que realice las siguientes operaciones: (20% de la calificacin de la prctica) Crear un archivo Aceptar diez nmeros dados por el usuario Grabar los nmeros del punto anterior en el archivo creado Cerrar en archivo

Programa1f.c Realizar un programa que realice las siguientes operaciones: (20% de la calificacin de la prctica) Abrir el archivo del programa anterior en modo lectura Leer los nmeros del archivo Mostrar los nmeros en pantalla Calcular promedio, suma, multiplicacin, desviacin estndar y varianza de los nmeros Mostrar los resultados en pantalla Cerrar el archivo

Anda mungkin juga menyukai