practica 1 introduccion a linux

31
Practica 1 Introducción a Linux Sistemas Operativos Grado Sistemas de Información

Upload: linoquispe

Post on 26-Nov-2015

75 views

Category:

Documents


2 download

TRANSCRIPT

  • Practica 1

    Introduccin a Linux

    Sistemas Operativos

    Grado Sistemas de Informacin

  • 1Introduccin a Linux Pgina 2 de 31

    1 Linux

    Linux posee un estilo y aspecto similares a los de cualquier sistema UNIX pero Linux es mucho ms reciente que la mayora de estos sistemas ya que su desarrollo comenz en 1991 cuando Linux Torvalds escribi y bautiz con el nombre de Linux a un kernel pequeo pero autocontenido, para el procesador 80386 que fue el primer procesador verdadero de 32-bits dentro de la gama de Intel de procesadores compatibles con las mquinas PC.

    Poco despus del inicio de su desarrollo, el cdigo fuente de Linux se puso a disposicin mundial gratuitamente por medio de Internet. Como resultado, la historia de Linux representa un caso de colaboracin por parte de mltiples usuarios de todo el mundo, que se comunicaban mayormente por Internet. A partir de un kernel inicial que implementaba parcialmente un pequeo subconjunto de los servicios del sistema UNIX, el sistema Linux creci para incluir buena parte de la funcionalidad UNIX.

    El sistema Linux bsico es un entorno estndar para aplicaciones y programacin de usuario, pero no impone ningn mtodo estndar de gestin del conjunto de funcionalidades disponibles. Segn ha ido madurando Linux, surge la necesidad de disponer de otra capa de funcionalidad por encima del sistema Linux. Dicha necesidad es satisfecha por las diversas distribuciones de Linux existentes. Una distribucin Linux incluye los componentes estndar del sistema Linux y una serie de herramientas administrativas simplificando la instalacin inicial y la siguiente actualizacin de Linux, y para gestionar la instalacin y eliminacin de otros paquetes del sistema. Una distribucin moderna tambin incluye herramientas para la gestin de sistemas de archivos, entorno grfico, exploraciones web,

    La compatibilidad UNIX es uno de los principales objetivos de diseo de Linux. A partir de unos recursos limitados, intenta obtener la mxima funcionalidad posible. A medida que los PC fueron hacindose ms potentes y mientras que fue disminuyendo el coste de la memoria y de los discos duros, los kernels Linux originales minimalistas, fueron creciendo para implementar ms funcionalidades de UNIX. Tambin posee como objetivos de diseo la velocidad y la eficiencia, pero buena parte del trabajo est dirigido a la estandarizacin. El estndar POSIX comprende un conjunto de funcionalidades de diversos aspectos de comportamiento del S.O. Linux est diseado para ser compatible con los documentos POSIX relevantes Concretamente, la interfaz de programacin de Linux se adhiere a la semntica de UNIX SVR4. Hay disponibles conjuntos separados de bibliotecas para implementar la semntica de BSD en aquellas situaciones en las que los comportamientos son significativamente distintos.

  • 1Introduccin a Linux Pgina 3 de 31

    Se dan muchos estndares en el mundo UNIX, pero la certificacin completa de Linux de acuerdo con esos estndares va algo lenta debido a que a menudo esa certificacin se obtiene pagando una licencia, y los gastos necesarios para certificar el cumplimiento de la mayora de los estndares por parte de un S.O. resulta fundamental. Sin embargo, soportar una amplia base de aplicaciones es importante para cualquier S.O., por lo que la implementacin de estndares es uno de los objetos principales del desarrollo, aunque no est certificada formalmente. Linux soporta las extensiones para hebras de POSIX, Pthreads, y un subconjunto de las extensiones POSIX para el control de procesos en tiempo real.

    2 Arquitectura

    En la mayora de los S.O., las aplicaciones estn separadas del propio S.O.: el cdigo del S.O. se ejecuta en un modo privilegiado del procesador, modo kernel, con acceso a los datos del sistema y al hardware, mientras que las aplicaciones se ejecutan en un modo no privilegiado del procesador, modo usuario, con un conjunto

  • 1Introduccin a Linux Pgina 4 de 31

    de interfaces y un acceso a los datos del sistema limitado. Cuando un programa en modo usuario llama a un servicio del sistema, el procesador captura la llamada y cambia el subproceso que ha efectuado la llamada al modo kernel. Cuando un servicio solicitado concluye, el S.O. vuelve a pasar el subproceso al modo usuario y prosigue su ejecucin. Este modelo de S.O. puede observarse en la figura.

    S.O. monoltico

    El sistema Linux est formado por tres cuerpos principales de cdigo:

    El Kernel es el responsable de mantener todas las abstracciones importantes del S.O., incluyendo elementos como la memoria virtual y los procesos.

    Las bibliotecas del sistema definen un conjunto estndar de funciones mediante las que las aplicaciones pueden interactuar con el kernel. stas

  • 1Introduccin a Linux Pgina 5 de 31

    implementan gran parte de la funcionalidad del S.O. que no necesita privilegios completos del cdigo del kernel.

    Las utilidades del sistema son programas que realizan tareas individuales especializadas de gestin. Algunas utilidades del sistema pueden ser invocadas para inicializar y configura algunos aspectos del sistema; otras, conocidas como demonios, pueden ejecutarse permanentemente, gestionando tareas como responder a las conexiones entrantes de red, aceptar solicitudes de inicio de sesin por parte de los terminales y actualizar los archivos de registro.

    Componentes del sistema Linux.

    En Linux, el kernel est construido como un cdigo binario monoltico para mejorar las prestaciones con el fin de que no sea necesario ningn cambio de contexto cuando un proceso invoca una funcin del S.O. o cuando se produce una interrupcin hardware. El cdigo del kernel est en el mismo espacio de direcciones unificado, existiendo un espacio para la modularidad.

    3 Empezando

    Una vez hayamos cargado el sistema operativo debemos acceder a l, por medio del nombre de usuario y contrasea, proceso que se conoce como login. Esto es as debido a que UNIX (y por tanto Linux) es multiusuario, y debemos autentificar nuestra identidad para poder acceder a nuestros recursos y no a otros, al igual que a nosotros no nos gustara que accediesen a nuestros recursos.

    El nombre de usuario y contrasea sern especificados por el profesor de laboratorio.

    Una vez hemos entrado al sistema, debemos cambiar la contrasea con el comando

    passwd

    Para que nadie ms pueda entrar con nuestra identidad.

  • 1Introduccin a Linux Pgina 6 de 31

    4 Importante: el Manual

    Una ayuda poderosa en cualquier sistema UNIX es el manual. Consiste en una gran biblioteca de ficheros de ayuda sobre comandos y programas del sistema operativo. Para usarlo tecleamos:

    man comando

    Donde comando es el nombre del comando o programa del que queremos obtener informacin.

    El manual de Linux es una herramienta que cualquier usuario debe saber utilizar de forma habitual. Se detalla esta informacin en el anexo A.

    5 Estructura de directorios bsica en GNU/Linux

    Al igual que MS-DOS o Windows, los ficheros de UNIX estn organizados en una estructura jerrquica de directorios.

    Lo primero que todo usuario comprueba nada ms instalar GNU/Linux es que no tiene ni idea de dnde estn los programas, sus archivos, ... GNU/Linux tiene un complejo sistema de archivos, el cual permite tener nuestros archivos mejor organizados.

    Aqu no existen letras para referirnos a nuestras unidades. Se utiliza una terminologa mucho ms lgica. Por ejemplo: Los discos duros comienzan con la letra hd (sd si nuestro disco es SATA) seguido de una letra y un nmero. La letra indica el nmero de disco duro y el dgito nos indica el nmero de la particin. Si tenemos hda1 = primera particin del primer disco duro. hdb3 = tercera particin del segundo disco duro.

    En GNU/Linux no existe Mi PC ni nada que se le parezca. Hay que tener en cuenta una cosa y es que GNU/Linux trata casi todo como ficheros de texto, incluso nuestro hardware. Para GNU/Linux, el microprocesador, el disco duro, la memoria, ... son ficheros de texto en los que puede leer y/o escribir informacin. Los archivos ocultos en Linux se caracterizan por llevar un . (punto) delante del nombre. Para ver los archivos ocultos (en Nautilus) pulsamos Ctrl+H.

    Directorios El directorio raz es /. De aqu cuelgan todos los directorios del sistema. Dentro del directorio raz encontramos varios subdirectorios importantes:

  • 1Introduccin a Linux Pgina 7 de 31

    /dev Aqu encontramos todos los dispositivos fsicos del sistema (todo nuestro hardware).

    /etc Aqu encontramos los archivos de configuracin del sistema.

    /sbin Aqu tenemos los programas que solo puede lanzar el superusuario. Los programas de este directorio y los del siguiente pueden ser invocados directamente poniendo su nombre en la consola.

    /bin Aqu tenemos los programas que pueden lanzar todos los usuarios del sistema.

    /lib Contiene las bibliotecas necesarias para que se ejecuten los programas que tenemos en /bin y /sbin nicamente.

    /proc No deberamos modificar el contenido de este directorio. Aqu se encuentra archivos que reciben o envan informacin al ncleo.

    /usr Este directorio contiene los programas de uso general para todos los usuarios.

    o /usr/X11R6 Aqu tenemos los programas de nuestro X-Window, el servidor grfico.

    o /usr/bin Aqu tenemos programas de uso general.

    o /usr/doc Aqu tenemos cierta documentacin del sistema.

    o /usr/etc Aqu tenemos archivos de configuracin de uso global.

    o /usr/include Aqu tenemos las cabeceras de C y C++. Son archi-vos con extensin .h. Los programadores comprendern su significado.

    o /usr/lib Aqu tenemos las bibliotecas de nuestros programas.

    o /usr/man En este directorio encontramos los manuales.

    o /usr/sbin Este directorio contiene los programas de adminis-tracin del sistema.

    o /usr/src Aqu se almacenan los cdigos fuentes de nuestros

  • 1Introduccin a Linux Pgina 8 de 31

    programas.

    /tmp Este directorio contiene informacin temporal de los programas.

    /var Este directorio contiene informacin variable, como registros, datos de los servidores, etc.

    /boot Aqu tenemos los archivos de configuracin del arranque del sistema (como por ejemplo GRUB).

    /media Aqu encontramos todas las unidades fsicas que tenemos montadas. Discos duros, unidades de dvd, pendrive, ...

    /opt Podemos usarla para instalar aplicaciones que no vienen en los repositorios, por ejemplo o aquellas que compilamos a mano.

    /home Es un directorio donde tenemos los directorios personales de todos los miembros del sistema.

    o ~ Es nuestro directorio personal. Algo similar a Mis Documentos. Aqu es donde guardaremos nuestros documentos, msica, pelculas, fotos ... Tambin podemos referirnos a este directorio como /home/

    o ~/Desktop Aqu tenemos nuestro querido escritorio.

    6 Comandos bsicos para el manejo de directorios

    6.1 El primer comando que utilizaremos ser el pwd

    Este comando lo que hace es mostrar por pantalla el directorio de trabajo. No hay que confundir el directorio de trabajo con el directorio home.

    El directorio de trabajo (o directorio actual) es aquel en que nos encontremos en cada momento.

    Ejemplo: tecleamos pwd y nos muestra:

    /home/lab2p7

    que es el directorio donde estamos nada mas arrancar (en el caso en que seamos lab2p7, claro).

  • 1Introduccin a Linux Pgina 9 de 31

    6.2 El comando cd nos permite cambiar el directorio de trabajo

    Escrito sin parmetros, cd nos devuelve a nuestro directorio inicial. Escrito con un parmetro nos enva el al directorio especificado por el

    parmetro.

    Varias cosas importantes:

    El directorio .. es el padre del directorio actual El directorio . es el directorio actual Podemos referirnos a un directorio de forma relativa o absoluta. Referirse a un directorio de forma absoluta es especificar toda su ruta desde la

    raz. Referirse a un directorio de forma relativa es especificar la ruta partiendo desde

    el directorio actual

    6.3 Ejemplo:

    Dentro del directorio /etc existe un subdirectorio llamado /ppp. Entonces, si estamos dentro del directorio /etc:

    cd /etc/ppp es referirse al fichero de forma absoluta, desde la raz. cd ppp es referirse al fichero de forma relativa, puesto que estoy dentro de /etc

    Desde un directorio se puede acceder a cualquiera de sus hijos y a su padre de forma directa.

    Como ejercicio, estando dentro del directorio /usr/X11 cambiar mediante cd al directorio /usr/local/bin de formas absoluta y relativa.

    Otros comandos para el manejo de directorios:

    mkdir : para crear un directorio. Puede hacerse de forma absoluta o relativa. P. ej. si estoy en /lab2px, tanto mkdir direc como mkdir /lab2px/direc crearan el directorio /root/lab2px

    rmdir : elimina un directorio. Tambin se puede referenciar de forma absoluta o relativa. El directorio debe estar vaco o el comando fallar.

    ls : muestra el contenido de un directorio. Si no escribimos argumentos, muestra el contenido del directorio de trabajo, en otro caso mostrar el contenido del directorio que le pasemos como argumento, ya sea de forma relativa o absoluta.

  • 1Introduccin a Linux Pgina 10 de 31

    Los modificadores ms importantes de ls son:

    -a : que muestra todos los archivos incluyendo los ocultos. (En UNIX los archivos ocultos comienzan por un punto) -l : que muestra toda la informacin. Tamao, dueo, grupo del dueo, permisos, fecha, hora, etc

    Los archivos que comienzan por un punto son archivos ocultos. Eso no quiere decir que no podamos acceder a su contenido, simplemente que al hacer un listado con ls no aparecern.

    7 Comandos bsicos para el manejo de archivos

    Un archivo en Linux/UNIX es simplemente una cantidad de informacin en forma de bytes agrupados en una unidad que designamos como archivo o fichero. Al sistema operativo le da igual lo que haya dentro del archivo, para l ste es slo una secuencia de bytes. Cada programa se encargar de tratar el archivo de forma correcta para utilizar su contenido.

    Un directorio es un archivo, aunque de forma abstracta pensamos que un directorio es un contenedor o carpeta en la que pueden existir archivos o ms directorios.

    Lo que realmente ocurre es que un directorio es un archivo que almacena informacin sobre otros archivos (a los que contiene) como su tamao, permisos, hora de creacin, etc.

    Una vez que utilizamos ls para ver el contenido de un directorio, pasemos a ver otra serie de comandos:

    file argumentos

    El comando file intenta averiguar el tipo del archivo o los archivos que le pasemos como argumentos.

    Determina si el archivo es texto, ejecutable, imagen, sonido, pgina HTML, o cualquier cosa. Si es incapaz de determinar el tipo de contenido muestra data.

    Este comando mira los primeros fragmentos del archivo intentando identificarlo.

    cp origen origen2 origen3 origen4 origenN destino

  • 1Introduccin a Linux Pgina 11 de 31

    Copia los archivos origen en destino. El destino puede ser un directorio o un archivo. mv origen origen2 origen3 origen4 origen n destino destino

    Mueve los archivos origen al destino. El destino puede ser un archivo en caso de que el origen sea un solo archivo o un directorio en caso contrario. En caso de ser un archivo, lo que conseguimos es cambiar el nombre al archivo.

    Mover un archivo tiene el mismo efecto que copiarlo y despus borrar el original.

    ln -s origen destino

    Crea un enlace simblico del origen al destino. Un enlace simblico es un archivo vaco cuyo nico fin es apuntar a otro archivo. Permite referirnos a un nico archivo de dos o ms maneras distintas.

    Por ejemplo ln /usr/local/bin/montarcd /root/ulb crear un enlace llamado /root/ulb.

    As, si estamos dentro del directorio /root y ejecutamos un cd /ulb realmente estamos haciendo un cd /usr/local/bin/montarcd, ya que para el sistema /root/ulb y /usr/local/bin/montarcd son lo mismo.

    La diferencia entre una copia de un archivo y un enlace simblico es que ste ltimo no ocupa espacio en disco, sino que apunta a un archivo, con lo que realmente tenemos una copia del archivo en vez de dos, con el ahorro de espacio que ello supone.

    rm archivo

    Destruye el contenido de un archivo. Nunca podremos recuperarlo, por lo que se aconseja utilizarlo con cuidado. Con el modificador -y nos pedir confirmacin antes de eliminar el objeto. Por otro lado, rm -r nos permite eliminar un directorio completo con todo su contenido aunque no est vaco.

    alias nuevo_comando=expresin

    Asocia nuevo_comando a expresin de forma que si escribimos como orden nuevo_comando se ejecuta expresin. Un ejemplo de esto sera alias dir=ls -l-color, con lo que conseguimos que al teclear dir el shell ejecute ls -l-color. Este comando (alias) es muy til, y se suelen inicializar en ficheros de arranque del shell.

  • 1Introduccin a Linux Pgina 12 de 31

    unalias nuevo_comando

    Destruye el efecto de la orden anterior.

    8 Ejecutando archivos

    Para ejecutar un archivo en Linux, hay que escribir su nombre, entonces:

    Linux comprobar si el comando es interno al shell o es un programa externo ejecutable. En este ltimo caso, Linux buscar en el PATH, que es un conjunto de directorios, el programa. Si lo encuentra y el usuario tiene permiso, lo ejecuta.

    Hay una diferencia con MS-DOS. Si el ejecutable est en el directorio en que estemos en ese momento, pero dicho directorio no est en el PATH, no lo ejecutar, ya que al contrario de DOS y por razones de seguridad que veremos en el futuro, por defecto Linux no ejecuta archivos que estn en el directorio de trabajo, solo los que estn en el PATH.

    Suponemos que el PATH est formado por dos directorios llamados /bin y /usr/bin. Yo estoy dentro del directorio /home/lab2p5 y observo un fichero ejecutable llamado programa. No me basta con teclear su nombre, ya que el shell buscar el comando en el PATH y no lo encontrar ya que el directorio actual no forma parte del PATH.

    Para ejecutarlo, tengo dos formas:

    Relativa: escribiendo ./programa. Obsrvese que . representa el directorio actual.

    Absoluta: escribiendo /home/lab2p5/programa

    9 Viendo el interior de los archivos

    Para ver que contiene un archivo necesitamos saber de qu tipo es lo que contiene. Esto es, un archivo que sea una pgina Web contendr cdigo HTML, slo comprensible por los navegadores de Internet.

    Un archivo de imagen JPEG contendr datos que slo el algoritmo de codificacin de imagen JPG ser capaz de entender, por lo cual este archivo slo podr ser visto en un programa visualizador de imgenes, y se podran seguir enumerando ejemplos de este tipo.

    Por tanto, los nicos archivos que podemos ver directamente (por llamarlo de alguna manera) son los archivos de texto. Para ello, tenemos varias herramientas simples:

  • 1Introduccin a Linux Pgina 13 de 31

    cat comando que visualiza el archivo que le pasemos como parmetro por pantalla.

    more igual que el anterior, pero ms completo. Puede ocurrir que el texto de mueva por la pantalla tan rpido que no nos de tiempo de verlo en caso de que ocupe ms de una pantalla, en cuyo caso se nos ir mostrando pantalla por pantalla hasta llegar al final.

    less ms potente an que more. vi muy antiguo y tedioso de utilizar, aunque resulta potente y til.

    Obviamente, todos estos comandos visualizan archivos de texto. En caso de que el archivo que pretendemos ver sea ejecutable o algn otro tipo de archivo binario, obtendremos por pantalla un montn de caracteres sin sentido para nosotros.

    Si queremos ver el interior de archivos binarios podemos usar un programa como od.

    10 Apagando el sistema

    No se puede apagar el sistema sin ms, se deben realizar una serie de pasos previos encargados de desmontar unidades de disco, limpiar los buffers del sistema, parar los demonios, etc.

    Para ello, se debe ejecutar el comando shutdown h now, con lo que el sistema se reiniciar de un modo ordenado, siendo este el momento en que podemos apagar la mquina.

    11 Comandos complementarios

    who El comando who presenta una lista de los usuarios trabajando en el sistema, junto con el tiempo de conexin y el dispositivo asociado a la conexin. El comando who con la opcin l (letra ele) :

    who l

    presenta el sistema (direccin simblica o IP) desde la que se realiza la conexin.

    users

    Presenta una lista de los usuarios conectados al sistema, y el nmero de estos.

  • 1Introduccin a Linux Pgina 14 de 31

    df

    El comando df muestra el grado de ocupacin de los volmenes en el sistema o archivos. Su sintaxis es:

    df [OPCIN]... [FICHERO]...

    -a, --all incluye los sistemas de ficheros con 0 bloques --block-size=TAM utiliza bloques de TAM bytes -h, --human-readable imprime los tamaos en formato legible (p.e. 1K 234M 2G) -H, --si anlogo, pero utiliza potencias de 1000 y no de 1024 -i, --inodes muestra la informacin de nodos-i en lugar del uso de bloques -k, --kilobytes como --block-size=1024 -l, --local limita el listado a los sistemas de ficheros locales -m, --megabytes como --block-size=1048576 --no-sync no llama a sync antes de obtener el modo de Introduccin a Linux: Comandos Pgina 16 de 16 empleo(por defecto) -P, --portability utiliza el formato POSIX para el resultado --sync llama a sync antes de obtener el modo de empleo -t, --type=TIPO restringe el listado a sistemas de ficheros de tipo TIPO -T, --print-type muestra el tipo del sistema de ficheros -x, --exclude- type=TIPOrestringe el listado a los sistemas de ficheros que no son del tipo TIPO

    du

    El comando du informe recursivo del grado de ocupacin, por archivos, de los directorios del sistema. Su sintaxis es: du [OPCIN]... [FICHERO]...

    Nota: Dentro del directorio /sbin/ se encuentra la mayora de los comandos de sistema.

    12 Otros comandos bsicos

    Algunos comandos que nos sern tiles en el laboratorio son los siguientes:

    passwd: Cambia nuestra contrasea. No debemos utilizar contraseas con, tildes u otros caracteres que no sean de ingls americano o no podremos acceder al entorno en ciertas ocasiones.

  • 1Introduccin a Linux Pgina 15 de 31

    ls: Lista el contenido de un directorio o un archivo, en funcin del argumento que le pasemos; si se le pasa el argumento -l, lista informacin detallada de cada archivo; si se le pasa el argumento -a, muestra tambin los archivos que empiezan por un punto |llamados archivos ocultos|.

    pwd: Nos indica el directorio en el que nos encontramos.

    mkdir: Crea un directorio.

    rmdir: Borra un directorio que est vaco.

    rm: Borra un archivo.

    rm -rf: Borra un directorio con todo lo que tenga. Mucho ojo con este comando, ya que evidentemente un fallo al usarlo puede tener efectos desastrosos en nuestra cuenta.

    cd: Cambia al directorio que se le pasa como parmetro.

    cp: Copia un archivo a otro directorio, o lo duplica con otro nombre.

    cp -r: Copia un directorio a otro directorio, o lo duplica con otro nombre.

    mv: Mueve un archivo o directorio, o le cambia el nombre.

    man: Muestra la ayuda de un comando.

    touch: Crea un archivo nuevo de tamao cero.

    hexdump -C: Muestra por pantalla el contenido del fichero que se le pasa como argumento, mostrando los valores numricos de sus bytes y sus caracteres ASCII asociados en el caso de que stos sean imprimibles.

    Debemos recordar que en Linux se distinguen las maysculas de las minsculas en los nombres de archivo y directorios: por ejemplo, en un mismo directorio pueden existir cuatro archivos distintos cuyos nombres sean

    Hola.txt, hola.txt, HOLA.tXt, y hoLa.txt.

    La funcin autocompletar es muy til al teclear nombres de archivos o directorios en la lnea de comandos: si comenzamos a escribir el nombre de un archivo o directorio existente y le damos al tabulador, se autocompleta dicho nombre hasta el carcter en el que exista una diferencia en los nombres de los ficheros que empiecen por la cadena tecleada; en caso de que slo haya un fichero posible, se autocompleta todo.

  • 1Introduccin a Linux Pgina 16 de 31

    Para acceder a un lpiz usb, lo conectaremos al PC y, tras unos segundos, aparecer como un subdirectorio en el directorio /media; para quitarlo, debemos pinchar con el botn derecho del ratn sobre su icono y escoger la opcin desmontar.

  • 1Introduccin a Linux Pgina 17 de 31

    Ejercicios Bsicos: Entra en el sistema, y luego abre un terminal.

    Primera Parte: Usa el comando ls para listar los archivos en el directorio actual.

    Crea un nuevo archivo utilizando el comando cat de la manera siguiente.

    $ cat > hola.txt

    Hola Mundo!

    Esto es solo una prueba.

    Pulsa la tecla [ENTER] al final de la lnea, y entonces las teclas [Ctrl] + [D], para denotar el final del archivo.

    Usa el comando ls nuevamente, para verificar que el archivo recin creado existe, una vez confirmado, visualiza el contenido del archivo.

    Visualiza el mismo archivo nuevamente, pero esta vez utiliza solo las teclas del cursor para ejecutar el comando sin tener que escribirlo de nuevo.

    Segunda Parte Crea un segundo archivo, que contenga cualquier dato aleatorio y llmalo nomina.txt:

    Verifica la existencia del archivo.

    Visualiza el contenido del archivo minimizando la escritura del comando necesario. Para ello, revisa el historial para encontrar el comando con el cual creaste el archivo anterior.

    Cambia el comando para que, en vez de crear el archivo, muestre su contenido en pantalla.

    Tercera Parte: Copia el archivo nomina.txt en un archivo nuevo llamado descuento.txt. Usa la tecla

    [Tab] para evitar la digitacin innecesaria del nombre completo del archivo.

    Ahora copia hola.txt a descuento.txt. Qu sucede?

  • 1Introduccin a Linux Pgina 18 de 31

    Borra el archivo original, hola.txt.

    Renombra descuento.txt a impuestos.txt.

    Trata de borrar el archivo hola.txt con el comando rm. Qu sucede?

    Trata de copiar nomina.txt de nuevo, pero no especifiques el nombre del archivo al cual se copiar. Qu ocurre?

    Cuarta Parte: Usa el comando pwd para ver en que directorio te encuentras.

    Si no ests en tu directorio home (/home/NOMBRE_DE_USUARIO), usa el comando cd sin ningn argumento, y ejecuta pwd de nuevo.

    Usa cd para visitar el directorio /, y listar sus archivo. El directorio home debe ser uno de ellos.

    Ve al directorio home y lista el contenido de nuevo. Debe existir un directorio por cada usuario del sistema incluyendo el tuyo (puedes utilizar el comando whoami para verificarlo).

    Regresa a tu directorio home para confirmar que ests nuevamente donde comenzaste el ejercicio.

    Quinta Parte: Crea un archivo de texto en tu directorio de trabajo y llmalo merengue, conteniendo

    las siguientes oraciones:

    Baile compadre Juan

    Quisqueya, Ma que te quiero como si fuera la ltima ma

    Renmbralo clasicos.txt.

    Crea un nuevo directorio en tu directorio de trabajo y llmalo merengue.

    Mueve el archivo clasicos.txt dentro del directorio merengue.

    Desde el escritorio grfico abre un explorador de archivos, y encuentra tu directorio de trabajo. Observa si existen el directorio merengue y el archivo clasicos.txt.

    Con un editor de texto grfico (gedit) edita el archivo clasicos.txt.

  • 1Introduccin a Linux Pgina 19 de 31

    Sexta Parte: Desde tu directorio de trabajo, lista los archivos en el directorio /usr/share:

    Cambia al directorio /usr/share y confrmalo con pwd. Lista los archivos en este directorio y los del directorio doc, todo en la misma lnea.

    Ahora lista los archivos en el directorio padre (los del directorio encima de ste).

    Ejecuta el siguiente comando e intenta entender su significado:

    $ echo ~

    Sptima Parte: Usa el comando hostname, sin opciones, para imprimir el nombre del host de la

    maquina en uso.

    Usa el man para desplegar la documentacin del comando hostname. Investiga cmo hacer que imprima la direccin IP de tu mquina en vez del nombre de host.

    Usa el comando locate para encontrar en el sistema los archivos que contienen el texto hostname. Cul de la lista de archivos desplegados es el programa hostname? Ejectalo ahora con su ruta y nombre absoluto para ver si es este realmente.

    Octava Parte: Utilizando el comodn [*] (wildcard) slo como argumento de un comando es

    expandido por el shell como una lista de todos los archivos en el directorio actual. Usa el comodn con el comando echo para probar el resultado.

    $ echo *

    Usa las comillas simple para que se imprima el smbolo [*] y que el shell no lo interprete.

    Agrgale otro archivo al directorio merengue creado anteriormente, llmalo modernos.txt:

    Dominicano soy - Fernando Villalona

    Bachata Rosa - Juan Lus Guerra

    Usa el comando cat para visualizar ambos archivos, por nombre y con comodines (*).

  • 1Introduccin a Linux Pgina 20 de 31

    Copia el directorio merengue y todo su contenido en uno llamado Merengue. Usa el comando cp.

    Finalmente, borra el directorio Merengue con el comando rm.

    Novena Parte: Explicar las diferencias existentes entre ls * y echo *.

    Explicar las diferencias existentes entre ls / y echo /.

    Crear un archivo que contenga la cantidad de archivos en un directorio.

    Crear dos archivos, uno llamado a.txt, que contenga hola; y otro llamado b.txt, que contenga adis. Luego concatenarlos en un nico archivo ab.txt.

    Dcima Parte: Usa el comando df para visualizar la cantidad de espacio en el disco duro usada y

    disponible.

    Revisa las pginas man del comando df, y encuentra la opcin que permitir que el comando despliegue la salida en manera ms amistosa de leer para los humanos. Experimenta con ambas las opciones de nica letra y las de nombres largos.

    Ejecuta el shell bash, y analiza a ver qu pasa. Recuerda que ya te encontrabas ejecutando un shell bash. Trata de salir del shell que has lanzado con el comando exit:

    Dcimo Primera Parte: Trata el comando ls con las opciones -a y -A. Cul es la diferencia entre ellas?

    Introduce el comando ls ltr y observa su efecto. Luego ejectalo desde el historial de la lnea de comandos.

    Dcimo Segunda Parte: Usa el comando find para listar todos los archivos y directorios debajo de tu directorio

    de trabajo. Experimenta con -type d y -type f para listar solo archivos y/o directorios.

  • 1Introduccin a Linux Pgina 21 de 31

    Usa el comando locate para encontrar los archivos que contienen la cadena passwd. Intenta la bsqueda ahora con el comando find, buscando en todo el sistema de archivos. Necesitars utilizar el comodn [*] en la cadena *passwd* en el patrn de bsqueda.

    Investiga qu hace el criterio de bsqueda del comando find iname.

    Usando cut visualiza la lista de usuarios que hay en el sistema. (Verifcalo con who):

    Visualiza en pantalla los usuarios sin duplicados y en orden alfabtico.

    Prueba con el comando last para desplegar el registro de quienes han ingresado en el sistema, con el comando tac invierte el orden. Para qu puedes ser esto til? Si la salida es extensa cmo la direcciona al comando less?

    Usa el comando sed para corregir el error ortogrfico sostema a sistema. Escribe un pequeo archivo en nano (editor de textos), para probar tu comando. Qu pasa si el error ocurre ms de una vez, y qu se puede hacer?

    Usa nl para enumerar las lneas que has escrito en el apartado anterior.

    Dcimo Tercera Parte: Crea un archivo vaco y utilizando tail -f monitoriza la actividad en l. Agrgale lneas

    de texto desde otro terminal, as:

    $ echo "slo es una prueba" >> archivo-vaco

    Una vez hayas escrito el archivo, usa el comando tr para lograr que cada vez que aparezca una letra entre la a y la f se cambie al nmeros correspondiente del 0 al 5.

    Intenta leer el comando binario ls (/bin/ls) con less. Si es necesario usa la opcin -f para forzar su visualizacin aunque no sea un archivo de texto.

    Ahora visualzalo con el comando od. Primero con los valores por defecto y luego con las opciones para desplegar la salida en hexadecimal.

    Dcimo Cuarta Parte: Utiliza el comando split para dividir el comando binario ls en fragmentos de 1Kb. Para

    ello, copia el comando ls en un directorio nuevo donde realizars este ejercicio.

  • 1Introduccin a Linux Pgina 22 de 31

    Ahora entra al directorio en el que has fragmentado el comando ls y vuelve a reponerlo. Ejectelo para comprobar que funciona correctamente (asegrate de ejecutar el tuyo y no el del sistema). Ejemplo: ./mi-ls

    Para que un archivo sea ejecutable es necesario usar el siguiente comando:

    $ chmod a+rx mi-ls

    donde mi-ls es el nombre del archivo que queremos hacer ejecutable.

    Dcimo Quinta Parte: Utiliza el comando cd para ir a tu directorio de trabajo inicial, y crea un directorio

    nuevo llamado perros.

    Crea otro directorio dentro del anterior llamado gatos, y otro ms dentro de este llamado ratones.

    Borra los tres directorios. Puedes borrarlos de uno en uno o todos juntos.

    Dcimo Sexta Parte: Copia el archivo /etc/passwd a tu directorio de trabajo, y entonces utiliza cat para ver su

    contenido.

    Renmbralo con el nombre usuarios utilizando el comando mv.

    Crea un directorio denominado programas y copia todo el contenido de /bin en l.

    Borra todos los archivos del directorio programas.

    Borra el directorio ahora vaco programas y el archivo usuarios.

    Dcimo Sptima Parte: El comando touch puede ser utilizado para crear archivos vacos. Como ejercicio crea

    uno de esta forma:

    $ touch Linux.txt

    Visualiza los atributos de este archivo con el comando ls.

  • 1Introduccin a Linux Pgina 23 de 31

    Espera unos minutos, y repite los dos pasos anteriores. Verifica que ha cambiado. Qu sucede cuando no especificamos el tiempo al comando como opcin?

    Intenta ajustar los atributos de tiempo de un archivo a valores futuristas.

    Una vez que acabes, borra el archivo.

  • 1Introduccin a Linux Pgina 24 de 31

    Anexo A.

    Ayuda en linux

    1.1 --help Posiblemente la primera opcin de ayuda en Linux, al menos para programas ejecutados desde la lnea de comandos, sea la propia ayuda del programa. Prueba a teclear comando --help|more y vers en pantalla una breve descripcin del programa y de sus opciones.

    1.2 man pages La forma ms rpida y completa de obtener ayuda en Linux es acudir a las man pages. Como contrapartida, la informacin no est presentada de forma exactamente intuitiva y puede ser un poco frustrante si no sabes ni siquiera por dnde empezar a buscar.

    Para invocar la ayuda, desde una terminal escribe man comando, donde comando es el tem sobre el que deseas ayuda. Por ejemplo teclea en una terminal: man rpm

    RPM(8) Red Hat Linux RPM(8)

    NAME rpm - RPM Package Manager

    SYNOPSIS QUERYING AND VERIFYING PACKAGES: rpm {-q|--query} [select-options] [query-options]

    rpm {-V|--verify} [select-options] [--nodeps] [--nofiles] [--nomd5] [--noscripts]

    rpm {-K|--checksig} [--nogpg] [--nopgp] [--nomd5] PACKAGE_FILE ...

    INSTALLING, UPGRADING, AND REMOVING PACKAGES: rpm {-i|--install} [install-options] PACKAGE_FILE ...

    rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--repackage] [--test] PACKAGE_NAME ... Manual page rpm(8) line 1

    Cuando, como en este caso, el texto de ayuda termina con tres puntos (...) quiere decir que no

    se muestra todo el texto. Para avanzar pulsa la barra espaciadora (o la tecla de avance pagina) y para retroceder, retroceder pagina. Para salir cuando hayas terminado, pulsa q

  • 1Introduccin a Linux Pgina 25 de 31

    Detrs del nombre del comando sobre el que se est mostrando la ayuda pueden aparecer nmeros o letras: en el ejemplo que estamos viendo o RPM(8). Este nmero (o letra) indica la seccin del manual en la que nos encontramos.

    Las pginas man se distribuyen junto con el programa al que sirven de ayuda, por lo que

    normalmente solo tendrs instaladas las man pages de los programas instalados, y ser ayuda adecuada a la versin instalada.

    1.3 Organizacin de las pginas man Para Linux todas las pginas man son parte del mismo manual, estructurado en secciones:

    Seccin 1: Programas ejecutables, comandos de la shell

    Seccin 2: Llamadas del sistema

    Seccin 3: Llamadas de bibliotecas

    Seccin 4: Archivos especiales (en /dev)

    Seccin 5: Formatos de archivo y convenciones

    Seccin 6 : Juegos

    Seccin 7: Miscelnea

    Seccin 8: Administracin del sistema

    Seccin 9: Rutinas del ncleo no estndar

    Seccin n: Documentacin nueva no ubicada aun (n de nueva; en desuso)

    Seccin o: Documentacin antigua mantenida temporalmente (o de old, en desuso)

    Seccin l: Documentacin local, especfica del sistema (l de local, en desuso)

    Es frecuente que algunas pginas man estn en varias secciones, si se llaman sin ms parmetros, se mostrar la pgina de la primera seccin que se encuentre. Si queremos saben en qu secciones mirar podemos usar man -f item_a_buscar:

    ignacio@localhost:~$ man -f ls ls (1) - list directory contents

    ignacio@localhost:~$ man -f man man (1) - an interface to the on-line reference manuals man (7) - macros to format man pages

    Puedes indicar la seccin que quieres leer: man 7 ls.

  • 1Introduccin a Linux Pgina 26 de 31

    1.4 Convenciones de sintaxis en man Normalmente todas las pginas man tienen la misma estructura, comenzando con el nombre del tem sobre el que trata la pgina, y sinopsis donde se suele incluir un esquema de la sintaxis:nombre_comando [indicadores opcionales] otros elementos.

    El texto en negrita representa lo que debe teclear el usuario; las palabras en cursiva o subrayadas son parmetros o argumentos debiendo escribir el valor en su lugar

    Los indicadores opcionales se suelen indicar mediante letras encerradas en corchetes, y puedes escribirlos juntos o separados: rpm -Va o tambin rpm -V -a. Normalmente cada delimitador tiene versin corta y larga. En este caso la larga sera: rpm --verify --all.

    Si encuentras varios elementos opcionales encerrados en corchetes y separados entre s por una barra vertical | esto te indica que no puedes usar estos elementos juntos. Y en cuanto a los argumentos, si incluyen unos puntos suspensivos quiere decir que puedes incluir varios. La pgina man tambin te informar si los argumentos van separados por espacios o comas.

    1.5 a propsito de ... apropos o su equivalente man -k te permite buscar en man palabras clave (en ingls).

    whatis y su equivalente man -f son muy parecidos a apropos pero solo buscan resultados entre los nombres de programas.

    1.6 man pages en html Si deseas ver las pginas de man en tu navegador, puedes desde consultarlas online, en alguno de los muchos sitios dedicados a ello, escribiendo en la barra de direcciones man: comando. Desde la lnea de terminal tambin puedes pasar una pgina man a html con man2html. Este programa tiene distintas formas de uso, pero quizs la ms sencilla sea simplemente (tras

    instalarlo) apuntar tu navegador a http://localhost/cgi-bin/man/man2html y empezar a usarlo (solamente para las man en ingls).

    1.7 info Las pginas de informacin que puedes invocar con info suelen ser ms detalladas que man, y contienen hipervnculos que la hacen navegable.

    El visor de ayuda info tiene sus propios comandos por lo que aprender a moverte entre sus archivos de ayuda puede ser un poco difcil. El propio visor de info trae un manual que puedes invocar tecleando info h.

  • 1Introduccin a Linux Pgina 27 de 31

    A continuacin los comandos ms usuales para usar info:

    Funcin Tecla Uso

    Comandos de programa y ventana:

    Quit q Salir de info

    Help h Te muestra un tutorial para moverte en info

    Referencia de comandos ? Muestra un esquema de las opciones y comandos de info

    Cambiar de ventana C-x o Si la pantalla de info esta dividida en varias ventanas, te permite cambiar a otra ventana.

    Borrar la ventana C-x 0 control - x - cero.

    Borrar todas las ventanas de info menos la presente

    C-x 1 control - x - uno

    Comandos de navegacin

    Next node n Avanzas al nodo siguiente en el mismo nivel

    Previous node p Retrocedes al nodo anterior en el mismo nivel. El orden de los nodos est preestablecido y no depende del orden en que vayas leyendo nodos.

    Up to parent node u Sube al nodo superior jerrquico

    Last node visited l Vuelve al nodo anteriormente visitado

    Beginning of node b va al inicio del nodo actual.

    Top of node t va al primer nodo del nivel

    menu m muestra un menu de nodos

    directory node d nodo directorio

    Seguir referencias Enter Pulsando Enter con el cursor en una linea que comience con un * (y no sea el menu) te llevara al nodo referenciado en la linea.

  • 1Introduccin a Linux Pgina 28 de 31

    Desplazamiento del texto

    abajo 1 linea tecla Abajo

    Arriba 1 linea tecla Arriba

    Bajar varias lineas barra espaciadora

    Arriba varias lineas tecla Retroceso (y tecla DEL)

    Al igual que las pginas man, puedes usar un navegador de internet para verlas en html: escribe en su barra de direcciones info: comando.

    Y tambin puedes instalar info2www y navegar por las pginas info desde la direccin http://localhost/cgi-bin/info2www.

    1.8 How to Los how to son documentos que explican como poder ejecutar determinada tardea en Linux. Por ejemplo, cmo hacer que el CD sea reconocido, o como conectar tu mdem, etc.

    Posiblemente tengas algunos instalados en tu sistema, tpicamente en /usr/doc/HOWTO, o /usr/share/doc/HOWTO/ y tambin diseminados por la red.

    1.9 Otras ayudas Puedes buscar documentacin adicional en usr/doc. Adems es prctica habitual en todas las distribuciones Linux que el navegador de internet predeterminado del sistema tenga como pgina de inicio un archivo con notas acerca de dicha distribucin, con enlaces a FAQs y grupos de ayuda. Por su parte los sistemas de escritorio ms conocidos como KDE o Gnome tambin disponen de ayudas accesibles desde sus propios mens.

  • 1Introduccin a Linux Pgina 29 de 31

    ANEXO B

    Otras cuestiones

    1. Entre en el sistema, y luego abra un terminal.

    2. Ejecute los comandos presentados en este orden, explicando su resultado:

    date whoami hostname uname uptime

    3. Mencione tres formas de cambiarse a su directorio home.

    4. Cambia al directorio /etc/init.d.

    5. Regrese a su directorio anterior.

    6. Ejecute el comando pwd y escriba su resultado.

    7. Cambie al directorio raz (/).

    8. Vuelva a su directorio HOME (directorio personal del usuario).

    9. Liste el contenido del directorio /etc en formato largo.

    10. Liste todos los archivos (incluyendo los ocultos) de su directorio personal.

    11. Ahora liste los archivos en los que podamos ver el tamao de los mismos.

    12. Liste los directorios que pertenecen solamente al directorio /var.

    13. Determine el tipo al que pertenece el archivo /dev/sda.

    14. Visualice el contenido del archivo en /etc/fstab.

    15. Crear un archivo de texto llamado herramientas que contengan 4 nombres de piezas.

    16. Ahora muestre el contenido del archivo.

    17. Cree un directorio con su nombre.

    18. Cree tres directorios en lnea, uno dentro del otro directorio; por ejemplo carpeta1/carpeta2/carpeta3 con un solo comando.

    19. Mostrar el contenido de los directorios creados.

    20. Mover el directorio carpeta3 al directorio con su nombre.

  • 1Introduccin a Linux Pgina 30 de 31

    21. Cambiar el nombre del directorio carpeta1 a dir1.

    22. Salga del directorio con su nombre y cambie el nombre del mismo a prueba.

    23. Borrar el directorio carpeta3 dentro del directorio prueba.

    24. Crear un archivo vaco de nombre fcld.txt.

    25. Cambiar la fecha de acceso del archivo.txt a 2010-02-16.

    26. Mostrar el contenido del archivo /etc/passwd en pantalla.

    27. Mostrar slo los directorios del directorio /etc/ en pantalla.

    28. Mostrar todo el contenido de /proc utilizando un paginador.

    29. Efecte la misma accin con el directorio /var/.

    30. Muestra las primeras 8 lneas del archivo /etc/passwd.

    31. Visualizar las ultimas 5 lneas del archivo /etc/group.

    32. Liste los archivos tipo dispositivo de carcter en /dev/.

    33. Despliegue todos los directorios de la carpeta /etc/ enumerados.

    34. Buscar los archivos cuyos nombres terminen en .conf en /etc/.

    35. Busque los archivos que tengan por extensin .txt utilizando el comando find.

    36. Contar el nmero de lneas que contiene el archivo /etc/X11/xorg.conf.

    37. Contar el nmero de caracteres contenidos en el archivo /etc/mtab.

    38. Contar el numero de palabras contenidas en el archivo /etc/login.defs.

    39. Visualizar la diferencia de los archivos /etc/passwd y /etc/passwd-.

    40. Mostrar la diferencia de los archivos /etc/mtab y /proc/mounts.

    41. Copia el archivo /etc/X11/xorg.conf a su directorio personal.

    42. Copiar de forma recursiva el contenido de /tmp a carpeta1.

    43. Cmo mostramos los archivos o directorios ocultos de su directorio?

    44. Cree un archivo oculto.

    $ls l /etc > .oculto.txt

    45. Mostrar el contenido del archivo .oculto.txt.

  • 1Introduccin a Linux Pgina 31 de 31

    46. Convierta el archivo oculto a ordinario.

    47. Cul es la tecla utilizada para el completado programable de los comandos en la shell?

    48. Donde se almacenan los archivos de cada usuario?

    49. Utilizando el comando cat, cree dos archivos, uno con 5 nombres, otro con 5 notas.

    50. Crear un alias ll para el comando ls l.

    51. Mencione dos formas de reiniciar su sistema.