PRACTICA 1 Introduccion A Linux

Practica 1 Introducción a Linux Sistemas Operativos Grado Sistemas de Información 1 Linux Linux posee un estilo y asp

Views 133 Downloads 4 File size 717KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Practica 1 Introducción a Linux

Sistemas Operativos Grado Sistemas de Información

1 Linux Linux posee un estilo y aspecto similares a los de cualquier sistema UNIX pero Linux es mucho más reciente que la mayoría de estos sistemas ya que su desarrollo comenzó en 1991 cuando Linux Torvalds escribió y bautizó con el nombre de Linux a un kernel pequeño 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 máquinas PC. Poco después del inicio de su desarrollo, el código fuente de Linux se puso a disposición mundial gratuitamente por medio de Internet. Como resultado, la historia de Linux representa un caso de colaboración por parte de múltiples usuarios de todo el mundo, que se comunicaban mayormente por Internet. A partir de un kernel inicial que implementaba parcialmente un pequeño subconjunto de los servicios del sistema UNIX, el sistema Linux creció para incluir buena parte de la funcionalidad UNIX. El sistema Linux básico es un entorno estándar para aplicaciones y programación de usuario, pero no impone ningún método estándar de gestión del conjunto de funcionalidades disponibles. Según 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 distribución Linux incluye los componentes estándar del sistema Linux y una serie de herramientas administrativas simplificando la instalación inicial y la siguiente actualización de Linux, y para gestionar la instalación y eliminación de otros paquetes del sistema. Una distribución moderna también incluye herramientas para la gestión de sistemas de archivos, entorno gráfico, exploraciones web,… La compatibilidad UNIX es uno de los principales objetivos de diseño de Linux. A partir de unos recursos limitados, intenta obtener la máxima funcionalidad posible. A medida que los PC fueron haciéndose más 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 más funcionalidades de UNIX. También posee como objetivos de diseño la velocidad y la eficiencia, pero buena parte del trabajo está dirigido a la estandarización. El estándar POSIX comprende un conjunto de funcionalidades de diversos aspectos de comportamiento del S.O. Linux está diseñado para ser compatible con los documentos POSIX relevantes Concretamente, la interfaz de programación de Linux se adhiere a la semántica de UNIX SVR4. Hay disponibles conjuntos separados de bibliotecas para implementar la semántica de BSD en aquellas situaciones en las que los comportamientos son significativamente distintos.

1Introducción a Linux

Página 2 de 31

Se dan muchos estándares en el mundo UNIX, pero la certificación completa de Linux de acuerdo con esos estándares va algo lenta debido a que a menudo esa certificación se obtiene pagando una licencia, y los gastos necesarios para certificar el cumplimiento de la mayoría de los estándares 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 implementación de estándares 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 mayoría de los S.O., las aplicaciones están separadas del propio S.O.: el código 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

1Introducción a Linux

Página 3 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 ejecución. Este modelo de S.O. puede observarse en la figura.

S.O. monolítico El sistema Linux está formado por tres cuerpos principales de código: • 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 estándar de funciones mediante las que las aplicaciones pueden interactuar con el kernel. Éstas

1Introducción a Linux

Página 4 de 31

implementan gran parte de la funcionalidad del S.O. que no necesita privilegios completos del código del kernel. • Las utilidades del sistema son programas que realizan tareas individuales especializadas de gestión. 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 sesión por parte de los terminales y actualizar los archivos de registro.

Componentes del sistema Linux. En Linux, el kernel está construido como un código binario monolítico para mejorar las prestaciones con el fin de que no sea necesario ningún cambio de contexto cuando un proceso invoca una función del S.O. o cuando se produce una interrupción hardware. El código 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 contraseña, 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 gustaría que accediesen a nuestros recursos. El nombre de usuario y contraseña serán especificados por el profesor de laboratorio. Una vez hemos entrado al sistema, debemos cambiar la contraseña con el comando passwd Para que nadie más pueda entrar con nuestra identidad.

1Introducción a Linux

Página 5 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 información. El manual de Linux es una herramienta que cualquier usuario debe saber utilizar de forma habitual. Se detalla esta información en el anexo A.

5 Estructura de directorios básica en GNU/Linux Al igual que MS-DOS o Windows, los ficheros de UNIX están organizados en una estructura jerárquica de directorios. Lo primero que todo usuario comprueba nada más instalar GNU/Linux es que no tiene ni idea de dónde están 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 terminología mucho más lógica. Por ejemplo: Los discos duros comienzan con la letra hd (sd si nuestro disco es SATA) seguido de una letra y un número. La letra indica el número de disco duro y el dígito nos indica el número de la partición. Si tenemos hda1 = primera partición del primer disco duro. hdb3 = tercera partición 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 información. 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 raíz es /. De aquí cuelgan todos los directorios del sistema. Dentro del directorio raíz encontramos varios subdirectorios importantes:

1Introducción a Linux

Página 6 de 31



/dev Aquí encontramos todos los dispositivos físicos del sistema (todo nuestro hardware).



/etc



/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 deberíamos modificar el contenido de este directorio. Aquí se encuentra archivos que reciben o envían información al núcleo.



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

Aquí encontramos los archivos de configuración del sistema.

o /usr/X11R6 Aquí tenemos los programas de nuestro X-Window, el servidor gráfico. o /usr/bin

Aquí tenemos programas de uso general.

o /usr/doc

Aquí tenemos cierta documentación del sistema.

o /usr/etc global.

Aquí tenemos archivos de configuración de uso

o /usr/include Aquí tenemos las cabeceras de C y C++. Son archivos con extensión .h. Los programadores comprenderán 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 administración del sistema. o /usr/src

1Introducción a Linux

Aquí se almacenan los códigos fuentes de nuestros

Página 7 de 31

programas. Este directorio contiene información temporal de los programas.



/tmp



/var Este directorio contiene información variable, como registros, datos de los servidores, etc.



/boot Aquí tenemos los archivos de configuración del arranque del sistema (como por ejemplo GRUB).



/media Aquí encontramos todas las unidades físicas 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, música, películas, fotos ... También podemos referirnos a este directorio como /home/ o ~/Desktop

Aquí tenemos nuestro querido escritorio.

6 Comandos básicos 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).

1Introducción a Linux

Página 8 de 31

6.2 El comando cd nos permite cambiar el directorio de trabajo  Escrito sin parámetros, cd nos devuelve a nuestro directorio inicial.  Escrito con un parámetro nos envía el al directorio especificado por el parámetro. 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 raíz. • 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 raíz. • 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 crearían el directorio /root/lab2px rmdir : elimina un directorio. También se puede referenciar de forma absoluta o relativa. El directorio debe estar vacío 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.

1Introducción a Linux

Página 9 de 31

Los modificadores más 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 información. Tamaño, dueño, grupo del dueño, 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 aparecerán.

7 Comandos básicos para el manejo de archivos Un archivo en Linux/UNIX es simplemente una cantidad de información 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 sólo 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 más directorios. Lo que realmente ocurre es que un directorio es un archivo que almacena información sobre otros archivos (a los que “contiene”) como su tamaño, permisos, hora de creación, 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, página 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

1Introducción a Linux

Página 10 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 después borrar el original. ln -s origen destino Crea un enlace simbólico del origen al destino. Un enlace simbólico es un archivo vacío cuyo único fin es apuntar a otro archivo. Permite referirnos a un único archivo de dos o más 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 simbólico 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á confirmación antes de eliminar el objeto. Por otro lado, rm -r nos permite eliminar un directorio completo con todo su contenido aunque no esté vacío. alias nuevo_comando=expresión Asocia nuevo_comando a expresión de forma que si escribimos como orden nuevo_comando se ejecuta expresión. Un ejemplo de esto sería 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.

1Introducción a Linux

Página 11 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 estén en el directorio de trabajo, solo los que están 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. Obsérvese 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 página Web contendrá código HTML, sólo comprensible por los navegadores de Internet. Un archivo de imagen JPEG contendrá datos que sólo el algoritmo de codificación de imagen JPG será capaz de entender, por lo cual este archivo sólo podrá ser visto en un programa visualizador de imágenes, y se podrían 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:

1Introducción a Linux

Página 12 de 31

• cat comando que visualiza el archivo que le pasemos como parámetro por pantalla. • more igual que el anterior, pero más completo. Puede ocurrir que el texto de mueva por la pantalla tan rápido que no nos de tiempo de verlo en caso de que ocupe más de una pantalla, en cuyo caso se nos irá mostrando pantalla por pantalla hasta llegar al final. • less más potente aún 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 algún otro tipo de archivo binario, obtendremos por pantalla un montón 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 más, 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 máquina.

11 Comandos complementarios who El comando who presenta una lista de los usuarios trabajando en el sistema, junto con el tiempo de conexión y el dispositivo asociado a la conexión. El comando who con la opción –l (letra ele) : who –l presenta el sistema (dirección simbólica o IP) desde la que se realiza la conexión. users Presenta una lista de los usuarios conectados al sistema, y el número de estos.

1Introducción a Linux

Página 13 de 31

df El comando df muestra el grado de ocupación de los volúmenes en el sistema o archivos. Su sintaxis es: df [OPCIÓN]... [FICHERO]... -a, --all incluye los sistemas de ficheros con 0 bloques --block-size=TAM utiliza bloques de TAM bytes -h, --human-readable imprime los tamaños en formato legible (p.e. 1K 234M 2G) -H, --si análogo, pero utiliza potencias de 1000 y no de 1024 -i, --inodes muestra la información 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

Introducción a Linux: Comandos Página 16 de 16 empleo(por defecto) -P, --portability utiliza el formato --sync llama a sync antes de obtener empleo -t, --type=TIPO restringe el listado tipo TIPO -T, --print-type muestra el tipo del -x, --exclude- type=TIPOrestringe el de ficheros que no son del tipo TIPO

POSIX para el resultado el modo de a sistemas de ficheros de sistema de ficheros listado a los sistemas

du El comando du informe recursivo del grado de ocupación, por archivos, de los directorios del sistema. Su sintaxis es: du [OPCIÓN]... [FICHERO]... Nota: Dentro del directorio /sbin/ se encuentra la mayoría de los comandos de sistema.

12 Otros comandos básicos Algunos comandos que nos serán útiles en el laboratorio son los siguientes: • passwd: Cambia nuestra contraseña. No debemos utilizar contraseñas con, tildes u otros caracteres que no sean de inglés americano o no podremos acceder al entorno en ciertas ocasiones.

1Introducción a Linux

Página 14 de 31

• ls: Lista el contenido de un directorio o un archivo, en función del argumento que le pasemos; si se le pasa el argumento -l, lista información detallada de cada archivo; si se le pasa el argumento -a, muestra también 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é vacío. • 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 parámetro. • 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 tamaño cero. • hexdump -C: Muestra por pantalla el contenido del fichero que se le pasa como argumento, mostrando los valores numéricos de sus bytes y sus caracteres ASCII asociados en el caso de que éstos sean imprimibles. Debemos recordar que en Linux se distinguen las mayúsculas de las minúsculas 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 función autocompletar es muy útil al teclear nombres de archivos o directorios en la línea 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 carácter en el que exista una diferencia en los nombres de los ficheros que empiecen por la cadena tecleada; en caso de que sólo haya un fichero posible, se autocompleta todo.

1Introducción a Linux

Página 15 de 31

Para acceder a un lápiz usb, lo conectaremos al PC y, tras unos segundos, aparecerá como un subdirectorio en el directorio /media; para quitarlo, debemos pinchar con el botón derecho del ratón sobre su icono y escoger la opción desmontar.

1Introducción a Linux

Página 16 de 31

Ejercicios Básicos: 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 línea, y entonces las teclas [Ctrl] + [D], para denotar el final del archivo.



Usa el comando ls nuevamente, para verificar que el archivo recién 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 llámalo 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 digitación innecesaria del nombre completo del archivo.



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

1Introducción a Linux

Página 17 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 estás en tu directorio home (/home/NOMBRE_DE_USUARIO), usa el comando cd sin ningún 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 estás nuevamente donde comenzaste el ejercicio.

Quinta Parte: •

Crea un archivo de texto en tu directorio de trabajo y llámalo merengue, conteniendo las siguientes oraciones: Baile compadre Juan Quisqueya, Mía que te quiero como si fuera la última mía



Renómbralo clasicos.txt.



Crea un nuevo directorio en tu directorio de trabajo y llámalo merengue.



Mueve el archivo clasicos.txt dentro del directorio merengue.



Desde el escritorio gráfico 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 gráfico (gedit) edita el archivo clasicos.txt.

1Introducción a Linux

Página 18 de 31

Sexta Parte: •

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



Cambia al directorio /usr/share y confírmalo con pwd. Lista los archivos en este directorio y los del directorio doc, todo en la misma línea.



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



Ejecuta el siguiente comando e intenta entender su significado: $ echo ~

Séptima Parte: •

Usa el comando hostname, sin opciones, para imprimir el nombre del host de la maquina en uso.



Usa el man para desplegar la documentación del comando hostname. Investiga cómo hacer que imprima la dirección IP de tu máquina en vez del nombre de host.



Usa el comando locate para encontrar en el sistema los archivos que contienen el texto ‘hostname’. ¿Cuál de la lista de archivos desplegados es el programa hostname? Ejecútalo ahora con su ruta y nombre absoluto para ver si es este realmente.

Octava Parte: •

Utilizando el comodín [*] (wildcard) sólo como argumento de un comando es expandido por el shell como una lista de todos los archivos en el directorio actual. Usa el comodín con el comando echo para probar el resultado. $ echo *



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



Agrégale otro archivo al directorio merengue creado anteriormente, llámalo modernos.txt: Dominicano soy - Fernando Villalona Bachata Rosa - Juan Luís Guerra



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

1Introducción a Linux

Página 19 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 adiós. Luego concatenarlos en un único archivo ab.txt.

Décima Parte: •

Usa el comando df para visualizar la cantidad de espacio en el disco duro usada y disponible.



Revisa las páginas man del comando df, y encuentra la opción que permitirá que el comando despliegue la salida en manera más 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:

Décimo Primera Parte: •

Trata el comando ls con las opciones -a y -A. ¿Cuál es la diferencia entre ellas?



Introduce el comando ls –ltr y observa su efecto. Luego ejecútalo desde el historial de la línea de comandos.

Décimo 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.

1Introducción a Linux

Página 20 de 31



Usa el comando locate para encontrar los archivos que contienen la cadena “passwd”. Intenta la búsqueda ahora con el comando find, buscando en todo el sistema de archivos. Necesitarás utilizar el comodín [*] en la cadena *passwd* en el patrón de búsqueda.



Investiga qué hace el criterio de búsqueda del comando find –iname.



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



Visualiza en pantalla los usuarios sin duplicados y en orden alfabético.



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 ¿cómo la direcciona al comando less?



Usa el comando sed para corregir el error ortográfico ‘sostema’ a ‘sistema’. Escribe un pequeño archivo en nano (editor de textos), para probar tu comando. ¿Qué pasa si el error ocurre más de una vez, y qué se puede hacer?



Usa nl para enumerar las líneas que has escrito en el apartado anterior.

Décimo Tercera Parte: •

Crea un archivo vacío y utilizando tail -f monitoriza la actividad en él. Agrégale líneas de texto desde otro terminal, así: $ echo "sólo es una prueba" >> archivo-vacío



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 números correspondiente del 0 al 5.



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



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

Décimo 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 realizarás este ejercicio.

1Introducción a Linux

Página 21 de 31



Ahora entra al directorio en el que has fragmentado el comando ls y vuelve a reponerlo. Ejecútelo para comprobar que funciona correctamente (asegúrate 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.

Décimo 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 más dentro de este llamado ratones.



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

Décimo Sexta Parte: •

Copia el archivo /etc/passwd a tu directorio de trabajo, y entonces utiliza cat para ver su contenido.



Renómbralo 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 vacío programas y el archivo usuarios.

Décimo Séptima Parte: •

El comando touch puede ser utilizado para crear archivos vacíos. Como ejercicio crea uno de esta forma: $ touch Linux.txt



Visualiza los atributos de este archivo con el comando ls.

1Introducción a Linux

Página 22 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 opción?



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



Una vez que acabes, borra el archivo.

1Introducción a Linux

Página 23 de 31

Anexo A. Ayuda en linux 1.1 --help Posiblemente la primera opción de ayuda en Linux, al menos para programas ejecutados desde la línea de comandos, sea la propia ayuda del programa. Prueba a teclear comando --help|more y verás en pantalla una breve descripción del programa y de sus opciones.

1.2 man pages La forma más rápida y completa de obtener ayuda en Linux es acudir a las man pages. Como contrapartida, la información no está presentada de forma exactamente intuitiva y puede ser un poco frustrante si no sabes ni siquiera por dónde 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} [--noscripts]

[select-options]

[--nodeps]

[--nofiles] [--nomd5]

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

1Introducción a Linux

Página 24 de 31

Detrás del nombre del comando sobre el que se está mostrando la ayuda pueden aparecer números o letras: en el ejemplo que estamos viendo o RPM(8). Este número (o letra) indica la sección del manual en la que nos encontramos. Las páginas man se distribuyen junto con el programa al que sirven de ayuda, por lo que normalmente solo tendrás instaladas las man pages de los programas instalados, y será ayuda adecuada a la versión instalada.

1.3 Organización de las páginas man Para Linux todas las páginas man son parte del mismo manual, estructurado en secciones: •

Sección 1: Programas ejecutables, comandos de la shell



Sección 2: Llamadas del sistema



Sección 3: Llamadas de bibliotecas



Sección 4: Archivos especiales (en /dev)



Sección 5: Formatos de archivo y convenciones



Sección 6 : Juegos



Sección 7: Miscelánea



Sección 8: Administración del sistema



Sección 9: Rutinas del núcleo no estándar



Sección n: Documentación nueva no ubicada aun (n de nueva; en desuso)



Sección o: Documentación antigua mantenida temporalmente (o de old, en desuso)



Sección l: Documentación local, específica del sistema (l de local, en desuso)

Es frecuente que algunas páginas man estén en varias secciones, si se llaman sin más parámetros, se mostrará la página de la primera sección 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 sección que quieres leer: man 7 ls.

1Introducción a Linux

Página 25 de 31

1.4 Convenciones de sintaxis en man Normalmente todas las páginas man tienen la misma estructura, comenzando con el nombre del ítem sobre el que trata la página, 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 parámetros 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 también rpm -V -a. Normalmente cada delimitador tiene versión corta y larga. En este caso la larga sería: 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 página man también te informará si los argumentos van separados por espacios o comas.

1.5 a propósito de ... apropos o su equivalente man -k te permite buscar en man palabras clave (en inglés). 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 páginas 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 línea de terminal también puedes pasar una página man a html con man2html. Este programa tiene distintas formas de uso, pero quizás la más sencilla sea simplemente (tras instalarlo) apuntar tu navegador a http://localhost/cgi-bin/man/man2html y empezar a usarlo (solamente para las man en inglés).

1.7 info Las páginas de información que puedes invocar con info suelen ser más detalladas que man, y contienen hipervínculos 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 difícil. El propio visor de info trae un manual que puedes invocar tecleando info –h.

1Introducción a Linux

Página 26 de 31

A continuación los comandos más usuales para usar info: Función

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

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 jerárquico

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.

Comandos de navegación

1Introducción a Linux

Página 27 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 páginas man, puedes usar un navegador de internet para verlas en html: escribe en su barra de direcciones info: comando. Y también puedes instalar info2www y navegar por las páginas info desde la dirección 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, cómo hacer que el CD sea reconocido, o como conectar tu módem, etc. Posiblemente tengas algunos instalados en tu sistema, típicamente en /usr/doc/HOWTO, o /usr/share/doc/HOWTO/ y también diseminados por la red.

1.9 Otras ayudas Puedes buscar documentación adicional en usr/doc. Además es práctica habitual en todas las distribuciones Linux que el navegador de internet predeterminado del sistema tenga como página de inicio un archivo con notas acerca de dicha distribución, con enlaces a FAQs y grupos de ayuda. Por su parte los sistemas de escritorio más conocidos como KDE o Gnome también disponen de ayudas accesibles desde sus propios menús.

1Introducción a Linux

Página 28 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 raíz (/). 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 tamaño 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 línea, 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.

1Introducción a Linux

Página 29 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 vacío 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 sólo los directorios del directorio /etc/ en pantalla. 28. Mostrar todo el contenido de /proc utilizando un paginador. 29. Efectúe la misma acción con el directorio /var/. 30. Muestra las primeras 8 líneas del archivo /etc/passwd. 31. Visualizar las ultimas 5 líneas del archivo /etc/group. 32. Liste los archivos tipo dispositivo de carácter 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 extensión .txt utilizando el comando find. 36. Contar el número de líneas que contiene el archivo /etc/X11/xorg.conf. 37. Contar el número 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. ¿Cómo 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.

1Introducción a Linux

Página 30 de 31

46. Convierta el archivo oculto a ordinario. 47. ¿Cuál 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.

1Introducción a Linux

Página 31 de 31