Introducción a Linux Ahora yo: Martin Altmann, PhD Maximiliano Moyano D’Angelo Magister Astronomía Universidad de Chile Temario • Introducción a Linux/Unix – Historia. • Generalidades de Linux. • Red de Calan. • Editores Básicos (emacs,vi). • Comandos Básicos. • Comandos Útiles. • Herramientas Avanzadas. • Herramientas Astronómicas. Introducción a Linux Historia -A pesar del éxito comercial de UNIX y de su aceptación como sistema operativo libre inicial, el código fuente de UNIX no podía ser explicado en aulas universitarias, lo que comenzó a restringuir su entendimiento. - Ante esta situación, el profesor Andrew Tenembaum, de la Universidad de Vrije, en Amsterdam, creo MINIX (de MiniUNIX). MINIX había sido desarrollado en una IBM PC y, sin embargo ofrecía las mismas llamadas al sistema que UNIX V7. Tenembaum hizo público el código de MINIX. -En 1990, Linus Torvals, un estudiante de 23 años de la Universidad de Helsinki, en Finlandia, comenzó a desarrollar, como hobby, un proyecto basado en el MINIX de Andrew Tenembaum. - En octubre de 1991, anuncio la primera versión "oficial" de LINUX, la 0.02, que ya era capaz de ejecutar el SHELL bash y el compilador gcc de GNU. Introducción a Linux – Definición El término Linux estrictamente se refiere al núcleo linux, pero es más comúnmente utilizado para describir al sistema operativo tipo Unix (que implementa el estándar POSIX - Sistema Operativo Portable basado en UNIX ), que utiliza primordialmente filosofía y metodologías libres y que está formado mediante la combinación del núcleo Linux con las bibliotecas y herramientas del proyecto GNU (sistema operativo completo libre) y de muchos otros proyectos/grupos de software (libre o no libre). El kernel o núcleo de linux se podría definir como el corazón del sistema. Es el encargado de que el software y el hardware funcionen de forma adecuada en el computador en el que se encuentra. Las funciones más importantes del mismo, aunque no las únicas, son: • Administración de la memoria, para todos los programas en ejecución. • Administración del tiempo de procesador, que estos programas en ejecución utilizan. Generalidades de Linux • Sistema Operativo libre, es decir gratis, por consiguiente no hay que pagar licencia para usarlo. • Codigo Fuente disponible. • Multitarea, es decir varios procesos o programas se pueden ejecutar al mismo tiempo. • Multiusuario, varios usuarios pueden iniciar sesión al mismo tiempo. • Gran capacidad y seguridad para trabajar en red. • Muchas mas… Distribuciones de Linux • “Una distribución no es otra cosa, que una recopilación de programas y ficheros, organizados y preparados para su instalación que utilizan el nucleo de linux como base” • Algunas distribuciones más conocidas son: – REDHAT(www.redhat.com) – DEBIAN (http://www.es.debian.org/) – SUSE (http://www.novell.com/es-es/linux/suse/) Gestores de Ventanas “Un gestor de ventanas no es otra cosa que el conjunto de programas, ventanas, funcionalidades, que hacen posible que el usuario pueda interactuar con el sistema de forma gráfica y no en modo texto” Ventaja: hacen más fácil el trabajo, con un ambiente más parecido a Windows. Desventaja: en algunos casos utilizan muchos recursos del sistema. Gestores comunes: KDE,GNOME,FVWM2 y muchos más. Red de Calan Pagina Web del Departamento www.das.uchile.cl Seccion: Uso Local -> Diagrama Red de Computación. -> Configuración de Impresoras. -> Hágalo Ud. Mismo. Editores Básicos vi Provee capacidad de edición de texto básicas. Hay aspectos importantes acerca de vi: - vi es proporcionado con todos los sistemas UNIX. - vi usa una pequeña cantidad de memoria, lo cual permite una operación eficiente cuando la red está muy ocupada. -vi usa teclas alfanuméricas standares para los comandos. -no necesita servidor X o gestor de ventanas para funcionar, solo una interfaz de comandos. Editores Básicos vi – comandos :q :q! :w archivo. i ESC :help => salirse de vi. => => salirse de vi sin importar modificación. escribir las modificaciones o crear => => => insertar texto. salir del modo de insertar texto. ayuda de vi. Editores Básicos emacs Es el editor de textos más potentes que existe para linuxUnix. Características principales: - reconocimiento de formatos (convenciones de sintaxis) - facilidad de configuracion y personalizable (comandos nuevos, asignar combinacion de teclas diferentes,etc) -Extensibilidad , lenguaje de programación propio para agregar nuevas funcionalidades. -Extenso y complejo, gran cantidad de comandos. Editores Básicos emacs – comandos -bash se ejecuta en modo parecido a vi. En este modo F1 para ayuda y F10 para menus. -ctrl+x+s : guardar documento actual. -ctrl+x+c: salir de emacs. -ctrl+s:buscar en el documento. Comandos Básicos Terminal: una interfaz de comandos que permite interactuar con el PC a traves de la pantalla, mouse, cursos,etc. Existen gran variedad con distintas características de memoria, shells disponibles, etc. Shell: interprete de comandos de linux. Los más conocidos: tcsh,bash. Comandos Básicos man : ayuda acerca de un comando, al ejecutarlo se abre vi con la ayuda solicitada. Sintaxis: >man “nombre comando” Para consultar su ayuda basta ejecutar: >man man Comandos Básicos info: muestra información general acerca de un comando. Sintaxis: >info “nombre comando” Para consultar su ayuda basta ejecutar: >man info Comandos Básicos chmod: cambia permisos de lectura, escritura y ejecución en archivos o directorios. Sintaxis: >chmod [ugo] [+/-] [wrx] “nombre archivo/directorio” u : permisos del usuario. g: permisos a usuarios del grupo. o: otros usuarios no pertenecientes al grupo. Opciones más comunes: chmod –R +resto recursivamente. cambia permisos Comandos Básicos ls : lista el contenido del directorio actual. Sintaxis: >ls “nombre directorio” Opciones más comunes: ls –l ls –a ocultos. ls –R ls –lh humano” listado mas detallado. listado completo incluyendo archivos entra recursivamente en subdirectorios. lista tamaño de archivos en “formato Comandos Básicos mkdir: crea un directorio nuevo en el directorio actual. Sintaxis: >mkdir “nombre directorio” Comandos Básicos rmdir: borra un directorio vacio. Sintaxis: >rmdir “nombre directorio” Comandos Básicos cp: copia archivos y directorios. Sintaxis: >cp [opciones] “origen” “destino” Opciones más comunes: cp –R/r +resto copia recursivamente Comandos Básicos xhost: permite o restringue el despliegue de ventanas X-Window en el pc actual. Sintaxis: >xhost [+/-] +:permite el despligue de ventanas externas. -:prohibe el despligue de ventanas externas. Comandos Básicos setenv: cambia o agrega una variable de entorno, comando que funciona bajo tcsh. Sintaxis: >setenv “variable entorno” valor Opciones más comunes: setenv DISPLAY maquina_actual:0.0 Comandos Básicos mv: mueve o renombra archivos Sintaxis: >mv origen destino >mv archivos directorio Comandos Básicos mount: monta un sistema de archivos Sintaxis: >mount “origen driver” “directorio destino” Opciones más comunes: mount mount mount mount /media/cdrecorder/ monta el grabador de cd en ese directorio /media/dvd/ monta el dvd en ese directorio. /media/sda1/ monta el pentdrive /dev/hda1 /media/windows monta disco duro en ese directorio. Comandos Básicos ps: muestra la lista de procesos ejecutándose. Sintaxis: >ps Opciones más comunes: ps –A muestra todos los procesos que se ejecutan. ps – - User “nombre usuario” muestra procesos de ese usuario. Comandos Básicos kill /killall: el primero mata los procesos según un identificador, el segundo termina todo proceso relacionado con un identificador. Sintaxis: >kill -9 codigo_proceso >killall “nombre_proceso” Comandos Básicos who: muestra quien esta logeado en esa máquina específica en ese instante. Sintaxis: >who Comandos Básicos passwd: cambia el password del usuario. Sintaxis: >passwd Comandos Básicos rm: elimina archivos o directorios Sintaxis: >rm [opcion] “nombre archivo o directorio” Opciones más comunes: rm –r “nombre directorio” borra recursivamente hacia dentro del directorio. rm –f “nombre archivo” borra sin preguntar. rm –r –f “nombre directorio” borra todo dentro del directorio, incluyendolo, sin preguntar. CUIDADO! Comandos Básicos cd: entra o sale de directorios. Sintaxis: >cd “nombre_directorio” Opciones más comunes: cd ../ volver un directorio atrás. cd “sin parametros” vuelve al directorio “home” Comandos Básicos lpr / lpq: el primero imprime el archivo ascii o ps indicado, el segundo muestra el estado actual de las impresiones. Sintaxis: >lpr –P”nombre_impresora”[d/”sin” d] “nombre_archivo” >lpq Opciones más comunes: lpr –Plasercolord ejemplo.ps imprime el archivo ejemplo.ps en la impresora lasercolor en formato doble hoja o duplex. lpq muestra el estado de las impresiones. Comandos Básicos more : muestra la salida de un comando pantalla por pantalla Sintaxis: > comandos | more . Comandos Básicos pwd: muestra el directorio actual donde nos encontramos. Sintaxis: >pwd hostname: muestra el nombre de nuestra maquina. Sintaxis: >hostname top: para ver los procesos y el uso de memoria y CPU. Para salir “q”. Lista comandos utiles • pine: para ver el mail en calan. • acroread: para ver archivos PDF. • gs/ghostview : para ver archivos PS. • cal:muestra el calendario. • date:muestra la fecha actual. • finger: muestra información de un usuario. • mozilla/netscape:navegador de internet. Herramientas Avanzadas • Linux tiene la capacidad para compartir recursos entre máquinas. • Podemos ejecutar programas tanto de nuestra máquina como de otras. • Todo lo anterior es aplicable a un máquina propia tanto como en una a la que nos conectamos remotamente. SSH • Programa que nos permite conectarnos remotamente a otra máquina y ejecutar comandos en ella. Sintaxis: ssh nombre_usuario@maquina Ejemplo: ssh calan podemos omitir el nombre de usuario si queremos conectarnos como el usuario en uso. ssh max@io cuando cambiamos de usuario tenemos que especificarlo. ssh mmoyano@calan.das.uchile.cl cuando nos conectamos desde un lugar que no es area local debemos de especificar tanto nombre de usuario como ruta completa a la máquina que nos queremos conectar. SSH - Para poder ejecutar programas de la máquina remota con despliegue gráfico debemos antes permitir el despliegue hacia nuestra máquina. Es decir: >xhost + - Una vez conectados a la otra máquina debemos de actualizar la variable de entorno DISPLAY para que contenga nuestra máquina. Es decir: >setev DISPLAY “nuestra_maquina”:0.0 - Hecho lo anterior podemos trabajar normalmente como si trabajáramos en nuestra propia máquina. Copiar remotamente archivos • SCP: para copiar archivos remotamente entre distintas máquinas. Sintaxis: > scp archivos nombre_usuario@maquina:directorio_destino/ Ejemplo: scp hola.txt mmoyano@calan.das.uchile.cl:/remote/centauro/mmoyano/ Copiar remotamente archivos • rsync: para copiar archivos remotamente entre distintas máquinas, con la salvedad que solo actualiza archivos distintos. Sintaxis: > rsync --rsh=ssh -vrtlap directorio_origen user@maquina:directorio_destino Ejemplo: rsync --rsh=ssh -vtrlap Tarea1 max@io:/jupiter/max/ Copiar remotamente archivos • sftp: para conectarse a otra maquina y copiar interactivamente los archivos necesarios. Sintaxis: > sftp nombre_usuario@maquina Una vez conectado para copiar un archivo basta hacer >get archivo La mayoria de los comandos usuales son validos. >help para ayuda. Ejemplo: sftp max@io Herramientas Astronomicas • SKYVIEW skyview.gsfc.nasa.gov/ • SIMBAD simbad.ustrasbg.fr/Simbad • ADS adsabs.harvard.edu/ • ASTRO-PH xxx.lanl.gov/ Lo logramos!!!! • Aprendimos LINUX con el tio MAX. Martin FIN!!!!!!