Documentos Aula SUN UCM CURSO DE INICIACIÓN A LINUX 26 Mayo 2008 Autores: Sergio Velasco Alicia Martín Aula SUN UCM de Software Libre 1 ÍNDICE 1 ­Conociendo Linux....................................................................................... 3 1.1 ­ ¿Qué es Unix?...................................................................... 4 1.2 ­ ¿Qué es GNU?..................................................................... 4 1.3 ­ ¿Qué es Linux?.................................................................... 4 1.4 ­ ¿Qué es X?.......................................................................... 4 1.5 ­ ¿Qué son las distribuciones?................................................. 4 2 ­ Entorno gráfico.......................................................................................... 5 2.1 ­ Principales elementos del escritorio Gnome........................... 6 3 – Directorios................................................................................................ 6 4 ­ Tipos de usuarios....................................................................................... 9 5 ­ Terminal de Linux...................................................................................... 9 5.1 ­ Copiar archivos.................................................................... 11 5.2 ­ Comandos relacionados con procesos.................................... 11 6 ­ Creación de un archivo de datos.................................................................. 13 7 ­ Montaje y desmontaje de unidades de almacenamiento................................. 14 8 ­ Permisos de carpetas y archivos................................................................... 14 9 ­ Instalación de programas............................................................................ 16 10 ­ Acceso remoto a las máquinas del aula......................................................... 16 2 CURSO INICIACIÓN A LINUX AULA SUN UCM Este curso esta basado en los cursos de iniciacion a Linux que se imparten periodicamente en el Aula Sun.Son cursos introductorios,basicos,orientados a personas que no hayan tenido contacto con Linux,de tal forma que al paso de otros sistemas operativos a Linux les sea sencillo,y que puedan descubrir las ventajas de este sistema. Las máquinas del aula trbajand con la distribucion Ubuntu,aunque la mayoria de las aplicaciones que veremos seran para usar en terminal,y los comandos no varian mucho de unas distribuciones a otras. Esperamos que este curso,a pesar de no ser quiza tan productivo como el impartido en el propio aula,debido a su carácter meramente practico,les sea util para introducirse en el sistema operativo Linux. 1­ Conociendo GNU/Linux GNU/Linux es un sistema operativo derivado de UNIX, que se distribuye en forma libre. 1.1­ ¿Qué es UNIX? UNIX es un sistema operativo multitarea, multiusuario, creado en 1969 por los investigadores Thompson y Ritchie de los Laboratorios Bell, en los Estados Unidos. Las primeras versiones fueron escritas en assembler, pero muy pronto fue re­escrito en lenguaje C. En sus primeros años, no se lo utilizo comercialmente, sino que se lo usaba para proyectos de investigacion en laboratorios y se distribuia gratuitamente en las universidades, donde tuvo mucha aceptación. En 1975, Bell decidió comercializarlo. Dado que el sistema se vendia con una licencia que permitia modificarlo y redistribuirlo, a lo largo del tiempo fueron surgiendo una gran variedad de sistemas derivados del UNIX original. Los mas conocidos, actualmente, son: Solaris, AIX, HPUX, ́ SCO, BSD. Por esta razón, varias veces se hizo necesario normalizar estos sistemas, para que cumplan con determinadas normas (POSIX, UNIX95, etc), para permitir la compatibilidad entre los diferentes sistemas. De estas normas, el sistema operativo GNU/Linux satisface la norma POSIX­1, y casi completamente la POSIX­2. 3 1.2­ ¿Qué es GNU? La sigla GNU significa GNU is Not Unix. En 1984, Richard Stallman fundo el Proyecto GNU con el objetivo de conseguir un sistema operativo libre y abierto. Esto es, un sistema operativo tal que los usuarios puedan usarlo, leer el codigo fuente, modificarlo, y redistribuirlo. A partir de ese momento, un gran numero de colaboradores se fueron sumando al proyecto, ́ desarrollando software libre para reemplazar cada una de las herramientas del sistema UNIX. La filosofía GNU apoya el crecimiento de la sociedad como un conjunto, haciendo especial hincapie en la valoracion de las libertades personales, aun cuando esto puede estar en conflicto con intereses empresariales. 1.3­ ¿Qué es Linux? En 1991, Linus Torvalds completo el sistema con su kernel (que es la aplicacion encargada de comunicar los procesos con el hardware de la computadora). A este kernel lo bautizo Linux. De esta manera, se formó el sistema GNU/Linux. 1.4­ ¿Qué es X? El sistema operativo GNU/Linux cuenta con una interfaz grafica, llamada XFree86 o simplemente X. El protocolo X fue desarrollado por el MIT, principalmente como un logro academico para proporcionar un entorno grafico a UNIX. La licencia mediante la cual se distribuye permite usarlo, modificarlo, redistribuirlo e incluso relicenciarlo. 1.5­ Que son las distribuciones? El codigo fuente del sistema GNU y del kernel Linux esta accesible a todo el mundo, sin ́ embargo,hacer funcionar un sistema a partir del codigo fuente es bastante dificil. Por eso, un sistema operativo se distribuye (normalmente) en formato binario, es decir ya compilado. Poco despues de que apareciera el kernel Linux, comenzaron a aparecer las primeras distribuciones, que agrupaban versiones probadas de varios programas, junto con el kernel, de tal manera que formaban un sistema operativo listo para usar. A medida que fue pasando el tiempo, algunas distribuciones se fueron haciendo mas sofisticadas,otras desaparecieron, otras se hicieron comerciales y aparecieron mucha mas. Existen ́ distribuciones de muchos tipos: distribuciones que ocupan 1 diskette y distribuciones que llegan a ocupar 10 Cds; distribuciones orientadas a una finalidad en especial (redes, seguridad, etc) y distribuciones de uso general. 4 Cada usuario de GNU/Linux suele elegir la distribucion con la que se siente mas comodo, y no ́ tiene sentido entrar en discusiones acerca de cual es mejor. A menos que aclaremos lo contrario, lo que se enseña en este curso es aplicable a la gran mayoría de los sistemas UNIX, y a cualquiera de las distribuciones de GNU/Linux. 2­ Entorno gráfico La distribucion Ubuntu de Linux dispone de dos entornos gráficos, Kde y Gnome.Las máquinas del aula tienen predeterminado el uso de Gnome,pero podemos seleccionar al loguearnos que sesión es la que queremos iniciar. Ambos entornos permiten hacer mas fácil y atractivo el uso de Linux, a pesar de que todo lo que podamos hacer dentro de la interfaz gráfica, lo podemos hacer igualmente en modo terminal utilizando los comandos adecuados. Entorno gráfico gnome. 2.1­ Principales elementos del entorno Gnome Al iniciar nuestra sesión en su entorno Gnome observaremos una pantalla como la de 5 la imagen anterior.En ella podemos diferenciar varios elementos: Escritorio: ocupa toda la pantalla y sobre el se situan otros objetos. Iconos: representan objetos accesibles,carpetas,archivos... Paneles: cada una de las barras que encontramos en la parte superior e inferior de la pantalla,y que facilitan el trabajo con el entorno. A su vez constan de otros elementos: Menú Aplicaciones: Desde este menú se pueden iniciar la mayoria de aplicaciones disponibles. Menú Lugares:encontramos los directorios de uso mas comun,asi como un buscador de archivos y un menú de acceso de documentos recientes. Menú Sistema: contiene una serie de elementos que permiten la configuracion del sistema,como puede ser la apariencia del sistema,la resolución de la pantalla, la configuración de la red.... 3­ Directorios Toda máquina dispondrá de un directorio raiz unico.Además tendremos los siguientes: /home Aquí se guardan los archivos de los usuarios. La accesibilidad a este directorio es configurable. Si se instala alguna aplicación en un usuario en concreto, solo será accesible para ese usuario, salvo que éste de permisos de ejecución al resto. /media Almacenamiento externo al disco duro /mnt Aquí aparecen las unidades de CD o USB que hayamos montado en nuestro equipo. Siempre que queramos extraer una unidad habrá que desmontarla primero. 6 /bin En este directorio se almacenan los binarios de la máquina, esto es, los comandos más básicos /boot Este directorio corresponde al sistema operativo Gestores de arranque: Estos gestores sirven para seleccionar que sistema operativo queremos que arranque en la máquina si es que tenemos varios instalados. Existen dos gestores: Lillo y Grub. En las máquinas del aula el gestor existente es Grub, y esta almacenado en el directorio /boot/grub/menú /dev Aquí es donde figuran los drivers y discos duros del sistema. Los archivos que se encuentran en este directorio estan relacionados con periféricos de la máquina, por ejemplo: /dev/fd0 es el archivo que representa la primera disketera, /dev/hda representa al primer disco rıgido IDE, /dev/hda1 representa la primera particion del primer disco rígido IDE, ́ /dev/tty representa la consola actual que se esta usando. Asi: echo hola > /dev/tty nos mostrara la misma salida que un simple echo hola. Estas identificaciones corresponden al sistema de archivos utilizado por las distribuciones de GNU/ Linux. En otros sistemas UNIX (como BSD, Solaris, etc) las identificaciones seran distintas, pero ́ las podremos encontrar en el mismo directorio /dev. Un dispositivo curioso es /dev/null. Se trata de un dispositivo que borra todo aquello que se mueva a él, como un agujero negro. Otro dispositivo interesante es /dev/random, que nos muestra ”basura random”, es decir, cualquier tipo de caracteres generados al azar según los procesos que se esten ejecutando en la máquina y la entrada del usuario. /etc Permanecen almacenados los archivos de computación de la máquina /etc/init.d alberga los demonios, esto es, programas que ejecuta la máquina en nombre del administrador (por ejemplo en el arranque). Generalmente los archivos que se encuentran en este directorio pueden ser editados solo por el administrador de la máquina, es decir el superusuario, normalmente llamado root”. /lib Librerías de Ubuntu. Contiene las librerías necesarias para ejecutar los comandos que se encuentran en /bin y /sbin. Las librerías son rutinas que los programas utilizan frecuentemente, y pueden ser compartidas por varios programas al mismo tiempo. Esto se debe a que las librerías no estan incluídas dentro de los programas, para que sea sencillo reusar el codigo, y aprovechar mejor el espacio. ́ /usr Dispone de programas para los usuarios. Contiene archivos que serán 7 utilizados una vez que el sistema ya esta funcionando. No son imprescindibles para el funcionamiento del sistema. Por dentro se subdivide nuevamente en un arbol muy parecido al del directorio raiz.Encontramos, ́ ademas, directorios como src (donde se suelen guardar los archivos con el codigo fuente del sistema), games (que tiene juegos), X11R6 (que contiene el sistema X), share (que contiene archivos a los que pueden acceder todos los programas y todos los usuarios). Directorio usr en nuestra máquina /opt Opcional.Incluye programas extas a la distribucion. Directorio opt en nuestras máquinas 4­ Tipos de usuarios Existen dos tipos de usuarios: Usuario normal: estan alojados en /home. No permiten hacer ningun tipo de modificacion en la máquina. Superusuario: root 8 Si desde un usuario normal quisieramos hacer alguna tarea administrativa que solo el root puede hacer, podríamos utilizar el comando sudo “orden”,de tal modo que la máquina entenderá que es el root el que esta haciendo la tarea. Al utilizar sudo siempre nos pedirá la contraseña de root,asi que en caso de no tenerla, tampoco servirá de nada este comando. 5­ Terminal de Linux Para abrir una terminal buscaremos el menú Aplicaciones, seleccionaremos Accesorios y buscaremos entre las opciones Terminal. El promt de cada terminal es distinto. Nosotros utilizaremos la terminal bash, aunque existen otras como csh o ksh Características de la terminal bash: Permite completar palabras con el tabulador Permite el cambio de usuario mediante el comando su nombreusuario,y tras pedirnos la contraseña Muestra en distinto color las carpetas (azul) y los archivos (negro). Ejemplo de terminal bash Comandos básicos de la terminal bash ~ /home/usuario pwd Nos dice el directorio en el que nos encontramos ls Hace un listado de los archivos que tengamos en el directorio ls­t Lista cronologicamente los archivos del directorio, desde los más recientes a los mas antiguos 9 ls ­a Muestra todos los archivos,incluyendo los ocultos ls ­l Muestra información adicional sobre los archivos, como pueden ser el usuario o grupo al que pertenecesn, los permisos.... man Manual (hay que especificar seccion y pagina que deseamos ver) date Ejecutando este comando obtendremos la fecha y hora actual who Permite ver los usuarios que estan utilizando el sistema incluyendo la fecha y hora de conexión who am i muestra informacion solo de nuestra conexión uptime Permite ver cuanto tiempo hace que se ha iniciado el sistema en nuestra máquina echo Comando sencillo que se encarga de repetir todo lo que recibe por linea de cd .. Reotrocedemos al directorio anterior comandos. mkdir Crea una carpeta dentro de un directorio rm Borra archivos (para borrar carpetas rm ­r).Estos archivos seran irrecuperables help Seguido de un comando nos dará información sobre él y sobre la sintaxis de uso clear Limpia la terminal 10 Ejemplo de aplicación de algunos comandos en terminal 5.1­ Copiar archivos: El comando cp es el que se utiliza para copiar archivos. Si escribimos cp viejo nuevo, copiaremos el archivo viejo con el nombre nuevo. Es decir, el archivo origen se escribe primero y a continuacion el archivo que se va a crear. Una vez hecha la ́ copia, tendremos dos archivos diferentes, con el mismo contenido. Por otro lado, tambien podemos ejecutar cp archivo1 archivo2 directorio, de forma que los archivos archivo1 y archivo2 se copiarán dentro de directorio. 5.2­ Comandos relacionados con procesos: top Nos muestra algunos de los procesos que estan ejecutandose, ordenados por el tiempo de procesador de la computadora que consumen. 11 ps Nos muestra la lista de procesos que se estan ejecutando en la computadora ps ax muestra los procesos tanto de nuestro usuario como los del resto, incluidos aquellos que no tienen usuario Crtl z Sirve para suspender una tarea en ejecución. Ctrl c Sirve para detener una aplicación que se esta ejecutando en foreground kill Sirve para interrumpir la ejecución de un determinado proceso. El comando envía una señal al proceso por la que normalmente se cierra. Su sintaxis sera: kill PID proceso 6­ Creación de un archivo de datos. 12 Para crear y guardar un archivo de datos necesitamos abrir una aplicación que nos permita realizar lo deseado. Existe un editor de textos sencillo del entorno Gnome, conocido como gedit. Llamaremos al programa a traves de la terminal Se abrirá entonces una ventana como la siguiente: Podremos empezar a escribir en la posición del cursor. Una vez introducido, en el menú archivo, seleccionaremos la opción Guardar como,y daremos un nombre y una ubicación a nuestro documento. 7­ Montaje y desmontaje de unidades de almacenamiento. 13 En Linux existe un único sistema de ficheros, a diferencia de en Windows, donde existe un sistema de ficheros por cada unidad de almacenamiento. Asi, para poder acceder a los contenidos de un sistema de ficheros de una unidad o dispositivo, es necesario montarlo en el sistema de ficheros de Linux. Y una vez que hayamos terminado de trabajar con el dispositivo será necesario desmontarlo para poder sacarlo fisicamente del ordenador. El dispositivo más utilizado es el pen­drive o memoria USB. Para montar una memoria de este tipo será suficiente con que insertemos la memoria en uno de los puertos y hagamos click en el icono que aparece en el escritorio.Se abrirá entonces un navegador de archivos que nos mostrará el contenido del dispositivo. Hemos de recordar desmontarlo antes de extraerlo puesto que si no lo hacemos, tendremos problemas al trabajar con el dispositivo en otro sistema operativo. 8­ Permisos de carpetas y archivos: Si en una terminal ejecutamos el comando ls ­l dentro de un directorio, nos mostrará un listado de todos los archivos y carpetas contenidos en él, indicandonos además, al comienzo de la línea, que tipo de permisos tienen estos archivos. 14 Veamos que significan exactamente estos simbolos: Los tres primeros caracteres se refieren a los permisos que tenga el dueño del archivo sobre el (r: lectura, w: escritura, x: ejecucion).El segundo grupo de tres caracteres se refieren a los permisos que tiene el grupo sobre el archivo, y los últimos tres, a los permisos que tienen el resto de usuarios no pertenecientes al grupo sobre el archivo. Para cambiar los permisos a los archivos se utiliza el comando chmod (chmod ­R si es una carpeta) con la siguiente estructura: chmod XXX donde X es un número que indicará el tipo de permisos que queremos dar, tal y como se ve en la viñeta. El primer número corresponderá a los permisos que otorguemos al dueño, el segundo al grupo y el tercero, al resto de usuarios. 7 5 4 9­ Si queremos otrgar todos los permisos Si queremos dar permisos de lectura y ejecución pero no de escrritura Si queremos dar permiso sólo de lectura. Instalación de programas 15 Se pueden instalar programas de dos modos: Desde los repositorios: podremos obtener software específico para nuestra distribución Por descarga: requerirán una compilación y una posterior instalación En modo gráfico, la instalación de programas se puede hacer desde el menú Aplicaciones, seleccionando Añadir y quitar. 10­ Acceso remoto a las máquinas del aula El acceso remoto a las máquinas se puede realizar mediante el protoclo ssh (lo que equivaldria al protocolo telnet en Windows) Un ejemplo de la forma de utilizar el protocolo seria: ssh usuario@sunny0X.fis.ucm.es donde X sera un numero desde 1 hasta 9. De esta forma accederemos a una terminal de la máquina en cuestión, desde la que podremos llamar programas o ver los archivos que tengamos en esa máquina. 16