Taller básico de GNU Linux Prof. Matías E. García www.profmatiasgarcia.com.ar Qué es GNU Linux? Es un Sistema Operativo, como MacOS, MS Windows o Android, pero de código abierto (Open Source) y gratuito. Es Software Libre. Kernel: Linux Herramientas básicas del S.O.: GNU . Es decir, GNU Linux es el software necesario para que tu PC te permita utilizar programas como: editores de texto, juegos, navegadores de Internet, reproductores multimedia, etc. GNU Linux puede usarse mediante una interfaz gráfica al igual que MS Windows o MacOS, pero también puede usarse mediante línea de comandos como MS-DOS o UNIX. GNU Linux es seguro y sigue la filosofía de los sistemas UNIX; su robusto sistema de permisos y usuarios no permite a los mismos borrar ni instalar programas, ni tocar archivos del sistema. Esto sólo lo puede hacer el superusuario o 'root', que es el único que tiene los permisos adecuados para hacerlo. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Qué es GNU Linux? Es uno de los sistemas operativos más robustos, estables y rápidos. Tiene una gran variedad de entornos gráficos. Es multitarea: Se pueden utilizar varios programas a la vez. Es multiusuario: varios usuarios pueden usar la misma maquina al mismo tiempo, ya sea mediante terminales serie, terminales virtuales o por red. Es multiplataforma: hay una amplia gama de plataformas hardware soportadas: x86(386, 486, Pentium, Pentium Pro, Pentium II, k5, k6, athlon,...),m68k (Amiga, Atari),Dec Alpha,Sun SPARC, ARM, MIPS, y PowerPC. Tiene protección de la memoria entre procesos, de manera que uno de ellos no puede colgar el sistema. Es un sistema fiable; se utiliza para tareas de alta complejidad y rendimiento, mas del 90% de los servidores en internet tienen GNU Linux. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Qué es GNU Linux? Existen muchísimas distribuciones GNU Linux: Cada una incluye un conjunto herramientas, software preinstalado de Distintas formas programas los Distintos entornos gráficos En general compatibles entre si de empaquetar Entre las mas comunes están: Ubuntu, Debian, Fedora, Linux Mint, CentOS, Elementary OS, Huayra Linux, openSuse, Red Hat, Arch, Manjaro, Kali Linux, SteamOS... Linux se desarrolla bajo la Licencia Publica General GNU y su código fuente esta disponible para cualquiera. Aun así, esto no significa que las diferentes distribuciones sean gratuitas, las compañías y los desarrolladores pueden cobrar por ello siempre y cuando el código fuente este disponible. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Breve historia... Linux tiene su origen en UNIX. Éste apareció en los años sesenta, desarrollado por los investigadores Dennis Ritchie y Ken Thompson, de los Laboratorios Telefónicos Bell. Andrew Tanenbaum desarrolló un sistema operativo parecido a UNIX (llamado Minix) para enseñar a sus alumnos el diseño de un sistema operativo. Richard Stallman decide desarrollar un OS libre basado en UNIX al cual llama GNU (GNU's not UNIX). También crea la Free Software Foundation donde desarrollan gran parte del software para ese OS. Un estudiante finlandés llamado Linus Torvalds, constatando que no era posible extender Minix, decidió escribir su propio sistema operativo compatible con UNIX, al cual llamo Linux. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar UNIX: El comienzo Años 60: en los Laboratorios Bell se comienza el desarrollo de Multics, un OS multiusuario, multitarea, multicomplicado. Nunca se terminó. Años 70: Thompson y Ritchie empiezan a escribir un sistema operativo, deciden llamarlo UNIX. Kernigan y Ritchie crean el lenguaje C. En 1972 UNIX se reescribe en C, con lo que puede ejecutarse en cualquier maquina que tenga un compilador de C. Se convierte en el primer SO realmente portable. AT&T pone a disposición del público el código fuente. Años 80: UNIX se extiende y aparecen variantes (Ej: BSD). AT&T decide no seguir con UNIX y las variantes comerciales toman el mercado. El código fuente no se distribuye y los programas no pueden modificarse ni compartirse. Esta situación desagrada a la mayoría de los usuarios, las abusivas licencias comerciales rompían el espíritu de colaboración. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar GNU Richard Stallman, del MIT, se decide a cambiar las cosas y comienza a escribir un SO libre, que pudiera ser copiado y modificado por quien quisiera. Se basa en UNIX intentando mejorarlo donde pudiera. Elige el nombre para recalcar la diferencia entre UNIX (mayoritariamente comercial) y su sistema (que será libre): GNU (Gnu’s Not UNIX). Para administrar los recursos disponibles del proyecto GNU crea la Free Software Foundation y esta desarrolla la licencia GPL. A finales de los 80 la FSF ya tenía gran cantidad de los programas necesarios implementados pero les faltaba una parte importante: el kernel. Su propio kernel, llamado Hurd, tardaría bastante en estar listo (a día de hoy todavía no lo está). Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Linux En 1990 el IEEE publico un estándar sobre Sistemas Operativos, que especificaba como debía ser el interfaz externo de las diversas áreas de un Sistema Operativo. Se llamó POSIX: Portable Operating System Interface. En aquellos momentos uno de los núcleos más conocidos era Minix, desarrollado como un proyecto educativo por Andrew Tanenbaum y distribuido con su libro sobre diseño de Sistemas Operativos. En 1991 en el grupo de noticias comp.os.minix, un estudiante de la Universidad de Helsinki, Linus Benedict Torvalds, anunció que estaba trabajando en un Sistema Operativo basado en Minix. Decidió hacerlo libre y accesible para todos y pronto empezó a desarrollarse rápidamente gracias a colaboradores de todo el mundo. “Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers? [...] I'm working on a free version of a minixlookalike for AT-386 computers. It has finally reached the stage where it's even usable, [...] and I am willing to put out the sources for wider distribution. It is just version 0.02, but I've successfully run bash/gcc/gnumake/gnu-sed/compress etc under it.“ Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Entornos gráficos Trata de poner, con un conjunto de imágenes y objetos gráficos, la información y acciones disponibles de una PC a un click del mouse. Existen varios entornos gráficos de escritorio para Linux: Los clásicos Gnome y KDE, Unity para Ubuntu, XFCE y LXDE para PCs con pocos recursos, los mas nuevos Plasma, Mate, Cinnamon y Pantheon. Equivalente al entorno de ventanas de MS Windows. Compatibles entre sí Cuestión de gustos Se pueden instalar varios en una misma PC, dependiendo la distribución de GNU Linux instalada. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Configuración básica Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Actualización del sistema Las actualizaciones son imprescindibles en cualquier sistema operativo, bien sea de Microsoft, bien sea UNIX, de Apple, GNU Linux, etc, ya que solucionan vulnerabilidades y mejoran su funcionamiento. En las distribuciones GNU Linux no solo vamos a obtener las actualizaciones del sistema operativo en si, sino tambien de la mayorıa del software que tenemos instalado en la PC, de tal forma que es un proceso mucho mas rapido y compacto que en otros sistemas operativos. Existen comandos de actualización que pueden ser ejecutados directamente desde la consola, facilitando enormemente la tarea de actualización. $ yum update (Fedora, CentOS) $ apt-get update (Debian, Ubuntu, Mint...) $ apt-get upgrade Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar $ yast (Suse) Instalación de software La instalación de software se puede realizar por interfaz gráfica o por consola. Para instalar aplicaciones en GNU Linux mediante la consola, usamos el comando apt-get. Aunque algunos usuarios prefieren el uso de aptitude: una interfaz para APT que tiene fama de resolver mejor las dependencias que apt-get, y de eliminar paquetes inútiles. Ejemplo: $ sudo apt-get install firefox o $ sudo aptitude install firefox El comando apt-get también funciona para desinstalar software añadiendo el sufijo remove, y si además añadimos la orden --purge podemos eliminar todos los datos de un programa, para que no quede rastro de él en nuestro sistema. Ejemplo: $ sudo apt-get remove --purge firefox Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Usuarios y permisos La forma de definir que puede y que no puede hacer un usuario es a través de los permisos de los ficheros. Cada fichero tiene asociados TRES tipos de permisos diferentes: Permiso de lectura: permite ver el contenido del fichero. Permiso de escritura: permite alterar el contenido del fichero. Permiso de ejecución: permite ejecutar el fichero (en un directorio permite acceder a él). Los permisos de un fichero solo pueden ser alterados por su propietario y por el administrador, el usuario root. Cada usuario estará asociado a un grupo, compuesto por usuarios con características comunes. Se definen TRES conjuntos de usuarios: El propietario del fichero Los miembros del grupo del propietario del fichero El resto de usuarios. Para cada uno de estos grupos definiremos los tres permisos diferentes. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Sistema de archvios/ficheros En el sistema de ficheros de los UNIX, todo, absolutamente todo, está representado por un fichero. No existe el concepto de extensiones, un programa es un fichero que tiene permisos para ser ejecutado. Tampoco existen diferentes unidades lógicas correspondientes a los diferentes sistemas de archivos. Todo lo que hay en el sistema cuelga del directorio raíz /. El árbol de directorios de UNIX tiene una estructura bastante rígida, que hace fácil la búsqueda de ficheros de configuración, ayuda, etc. cuando hace falta. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Sistema de archivos/ficheros /bin: Abreviación de la palabra binaries (del inglés, ejecutables). Aquí se guardan muchos de los programas básicos y esenciales para el funcionamiento del sistema como los comandos ls, cp, etc. /boot: En este directorio se encuentran los ficheros del núcleo del sistema, los que ejecuta al arrancar. /dev: Viene del ingles device (dispositivo). Este directorio contiene ficheros que representan los dispositivos del sistema. Estos ficheros son fundamentales para que el sistema funcione correctamente. /etc: Aquí se encuentran ficheros relativos a la configuración local del sistema, y de los programas, por ejemplo: /etc/passwd guarda información de cada uno de los usuarios. /home: De este directorio cuelgan los los directorios de inicio (home directory) de los usuarios “normales” (todos excepto el root). /mnt: Generalmente de este directorio cuelgan los ficheros de los dispositivos “montados” en el sistema, es decir, ficheros que son accesibles desde el sistema en ese momento. /usr: En /usr están la mayoría de los programas, las bibliotecas de funciones, las fuentes del kernel, etc.. De /usr cuelgan otros directorios lib y bin, que tienen las bibliotecas y los ejecutables que utilizan normalmente los usuarios, pero que no son imprescindibles para el sistema, como awk, diff, grep, Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar La consola Ventana en la que se teclean los comandos que se quieren ejecutar. También recibe el nombre de interprete de comandos, terminal o Shell. Puede ser mas difícil de aprender (a veces) Hay que aprenderse los comandos Pero muuuucho mas flexible El usuario no depende de las opciones que hay en la GUI Es mucho mas eficiente Al no haber clicks y movimientos de cursor, permite automatizar tareas repetitivas. También optimiza la posibilidad de ejecutar tareas en nodos remotos. Los comandos se ejecutan tecleando su nombre y la tecla Enter Los comandos aceptan opciones y argumentos Suelen tener las siguientes formas: $ $ $ $ comando comando comando comando --opción –o --opción=bla –o bla Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar La consola: Directorios Crear un directorio $ mkdir nombredir Borrar un directorio (vacio) $ rmdir nombredir Moverse a un directorio $ cd nombredir Averiguar cual es el directorio actual $ pwd Obtener la lista de los ficheros en el directorio actual $ ls [directorio|fichero] Opciones $ $ $ $ ls ls ls ls -l: -a: -t: –r: Con detalles Todos (incluidos ocultos) Ordenar por fecha de modificación Ordenación inversa Se pueden combinar las opciones. Ej: $ ls -lrt Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar La consola: Ficheros Al hacer un listado largo de un fichero (ls –l) o directorio (ls –ld) obtenemos: -rw-r--r-- 1 user1 group 0 2009-10-23 17:51 fichero.txt drwxr-xr-x 2 user2 group 4096 2009-10-23 17:52 directorio Fecha y hora de la última modificación Usuario Grupo al que pertenece Nombre Triadas de permisos: rwxr-x r-x -: fichero d: directorio l: link (enlace) x: ejecución w: escritura r: lectura usuario (u) grupo (g) otros (o) Tamaño del fichero en bytes (usar ls –h para formatos más legibles) Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar La consola: Ficheros Borrar un fichero $ rm fichero Renombrar un fichero $ mv fichero_orig fichero_final Cambiar de directorio un fichero $ mv fichero_orig path/fichero_final Símbolos especiales: ? Un caracter * Conjunto de caracteres Copiar un fichero $ cp dirorigen/fichero_orig dirfinal/fichero_final Copiar un directorio $ cp –r dirorigen dirfinal Cambiar los permisos de los ficheros $ chmod [u|g|o|a][+|-][r|w|x] fichero Ej: chmod u+x fichero Cambiar propietario de un fichero $ chown propietario fichero Buscar un fichero $ find <directorio> fichero Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar La consola: otros Ayuda sobre un comando $ man comando Interrumpir un comando ejecutado <CTRL + c> Ayuda para completar comandos y nombre de ficheros <TAB> Editores de ficheros $ vi fichero $ nano fichero $ pluma fichero Ejecutar un script Descomprimir archivos tar.gz $ tar xvf <archivo.tar> Cambio de contraseña del usuario $ passwd $ sh script Ejecutar un programa $./programa Conocer la ip de nuestra PC $ ifconfig Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar La consola: procesos Un proceso es toda acción que se lleva a cabo dentro de un sistema UNIX. Un proceso siempre es lanzado desde otro proceso. Procesos padre (parent process) y procesos hijo (child process). PID: número identificador de los procesos. Asignado directamente por el sistema. Distinto para todos los procesos que se ejecutan simultáneamente en el sistema. $ ps –ef lista de procesos ejecutándose en el computador, independientemente del terminal. root root bcus 118 123 4550 1 1 2665 0 0 10 Aug Aug 10:37 20 20 55 ? ? console 0:20 1:01 0:00 LmSpool LnMailslot ps-ef Ocho campos: 1: 2: 3: 4: 5: 6: 7: 8: Usuario que ordena la ejecución del proceso (UID). Número de identificación del proceso (PID). Número de identificación del proceso padre (PPID). Tiempo de utilización del procesador para reparto de gastos. Fecha u hora de comienzo del proceso. Para abortar la ejecución Terminal desde la que se ejecuta el proceso. de un proceso Tiempo de ejecución del proceso. $ kill PID Nombre del proceso. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Webgrafía y Licencia Free Software Foundation https://www.fsf.org/ Aguilar Sierra, Alejandro. “Curso básico de Linux”. (2002) Fernandez Escudero, Felix. “Curso GNU/Linux.” IES Virgen de la Paloma, Madrid (2013) Murillo García, José Luis. “¿Software Libre?”. http://edulibre.info/IMG/pdf/Software_libre_y_educacion.pdf Este documento se encuentra bajo Licencia Creative Commons 2.5 Argentina (BY-NC-SA), por la cual se permite su exhibición, distribución, copia y posibilita hacer obras derivadas a partir de la misma, siempre y cuando se cite la autoría del Prof. Matías E. García y sólo podrá distribuir la obra derivada resultante bajo una licencia idéntica a ésta. Autor: Matías E. García . Prof. & Tec. en Informática Aplicada www.profmatiasgarcia.com.ar [email protected] Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar Descripción de la Charla Título: Ahora que tengo Linux en la compu, qué hago?. Modalidad: Taller 90 minutos. Descripción: Taller básico sobre GNU Linux. Se presentara el uso básico del sistema, configuración, actualización y utilización. Se explicara el manejo de archivos, instalación de software y utilización de programas de ofimática, audio y vídeo. Se diferenciara entre distribuciones y entornos de escritorio. Ventajas del uso del Software Libre frente al Privativo. Está destinada a los recién llegados al mundo del Software Libre. Nivel: todos Disertante: Prof. Matías E. Garcia, [email protected] Temas: Software Libre, Linux, basico Observaciones: Necesitare de un proyector, llevo mi propia Notebook. Taller básico de GNU Linux Prof. Matías E. García ~ www.profmatiasgarcia.com.ar