Tutorial de LINUX para Pronóstico Numérico 1er Cuatrimestre 2010 - PowerPoint PPT Presentation

slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Tutorial de LINUX para Pronóstico Numérico 1er Cuatrimestre 2010 PowerPoint Presentation
Download Presentation
Tutorial de LINUX para Pronóstico Numérico 1er Cuatrimestre 2010

play fullscreen
1 / 29
Tutorial de LINUX para Pronóstico Numérico 1er Cuatrimestre 2010
157 Views
Download Presentation
oliver
Download Presentation

Tutorial de LINUX para Pronóstico Numérico 1er Cuatrimestre 2010

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Tutorial de LINUX para Pronóstico Numérico 1er Cuatrimestre 2010

  2. ¿Qué es Linux? Linux es el kernel (núcleo) del sistema operativo. Está basado en los sistemas UNIX y fue escrito por Linus Torvalds en 1991. El kernel es la parte mas importante de un SO porque se encarga de manejar tanto los programas como la memoria de la computadora y el resto del hardware (periféricos, video, audio, etc), intercomunicando todos entre sí. Algunas de sus principales características son: multitarea: muchos procesos ejecutandose simultaneamente multiusuario: varios usuarios trabajando simultaneamente en la misma maquina multiplataforma: Puede funcionar en distintas arquitecturas (una PC de escritorio, una supercomputadora, un celular, etc)

  3. ¿Qué es GNU/Linux? GNU/Linux es un sistema operativo completo. Tiene el núcleo y todos los programas necesarios para satisfacer todas las necesidades del usuario. GNU viene de "GNU is Not Unix" y es el sistema GNU un intento de Richard Stallman, creador del movimiento de Software Libre, de crear un sistema operativo totalmente libre (Free speech, not free beer). Cada distribución GNU/Linux compila muchos de estos programas del sistema GNU junto con el kernel Linux, le dan una imagen particulare incluyen herramientas auxiliares para manejo e instalación de programas. También existen muchas aplicaciones no libres que fueron adaptadas para estos sitemas operativos (Skype, Acrobat reader, etc)

  4. ¿Cómo se usa? Al encender la computadora se accede a este menú, denominado “grub”, que permite seleccionar entre los sistemas operativos instalados en el equipo: En este menú deben seleccionar la opción “ubuntu”

  5. ¿Cómo se usa? Primer paso: Ingresar usuario y contraseña en la pantalla de inicio del sistema. A partir de este momento se abrirá el entorno gráfico. En el mismo podemos encontrar muchas de las herramientas presentes en otros sistemas operativos como windows: editores de texto, herramientas de oficina, escritorio, ventanas, administradores de archivos, etc, etc. Algunas versiones de linux cuentan con 2 o más escritorios que se pueden seleccionar mediante un menú. Este modo gráfico permite interactuar con el sistema operativo en una forma intuitiva y muy similar a la de otros sistemas.

  6. Por otra parte tenemos el SHELL, que es el programa que permite la comunicación entre el usuario y el sistema operativo. Éste consta de una serie de comandos que vamos a utilizar a lo largo de la materia. Para ingresar estos comandos, primero debemos abrir una TERMINAL o CONSOLA. Podemos abrir tantas terminales como sea necesario. En general cuando iniciamos una terminal, esta nos posiciona en nuestro directorio HOME (salvo que le indiquemos lo contrario en la configuracion). En linux existe un único directorio raiz, y todos los discos o unidades de almacenamiento aparecen como directorios dentro de ese directorio raiz (no vemos unidades C: D: , etc como en Windows, por ejemplo). El directorio raiz se identifica como “/” , y nuestro directorio HOME es /home/mi_usuario/ Para saber en que directorio estoy se utiliza el comando pwd paula@rossby:/media/BAROK/pronostico_2010$ pwd /media/BAROK/pronostico_2010

  7. Ejemplo de la estructura de directorios en linux.

  8. Algo importante a tener en cuenta: Linux distingue entre mayúsculas y minúsculas (Case sensitive) por lo que si en lugar de pwd ingresamos PWD o Pwd no obtendremos ningún resultado. Supongamos que queremos cambiar el directorio entonces podemos usar el comando cd (change directory) cd /usr/local Algunos casos especiales: cd ../ (me lleva a la carpeta inmediatamente superior). cd ./ (me deja donde estoy, increible pero esto sirve para algo…) cd pepe (me lleva al directorio pepe que esta en la carpeta donde estoy parado) cd /pepe (me lleva al directorio pepe ubicado en el directorio raiz, notar la diferencia entre el comando anterior y éste, uno usa un camino relativo, mientras que el otro detalla la ubicación completa de la carpeta). cd (me lleva a mi HOME).

  9. Para crear una carpeta usamos el comandomkdir (make directory) cd /home/mi_usuario mkdir pronostico (creo el directorio pepe en mi HOME) O bien puedo hacer: mkdir /home/mi_usuario/pronostico Si el directorio pepe está vacío puedo borrarlo usando el comando rmdir rmdir pronostico (si lo borran, vuelvan a crearlo!) Para ver el contenido de una carpeta, podemos usar el comando ls (list) cd /home ls Mostrará un listado de los directorios y los archivos contenidos en dicha carpeta. Si queremos más informacion sobre los mismos podemos agregar algunos parámetros al comando ls

  10. ls –l -rwx------ 1 paula root 294912 2010-03-21 17:56 linux_2010.ppt -rwx------ 1 paula root 429568 2010-03-21 17:55 linux.ppt Esto nos da informacion sobre los permisos del archivo El dueño del archivo (quien fue el que lo copio/creo en dicha carpeta) , la fecha de copia/cración y finalmente el nombre del archivo. Si se trata de una carpeta delante de los permisos aparece una letra d drwx------ 2 paula root 32768 2010-03-21 17:56 pronostico_2010 Los permisos se aplican a 3 tipos de usuarios: dueño del arhivo / grupo / otros usuarios Cada usuario puede tener los siguientes privilegios: -Leer el archivo (read) (r), ejecutarlo (execute) (x) o modificarlo (write) (w)

  11. Los permisos se pueden modificar usando el comando chmod, pero solo el dueño del archivo tiene autorización para modificar los permisos de un archivo. En general mi_usuario tiene permiso de escribir solo en la carpeta /home/mi_usuario/ y las subcarpetas contenidas en este directorio. Algunas variantes del comando ls: ls –sh (muestra el tamaño de cada archivo en Kb o MB) ls –t (ordena los archivos según su fecha de modificación). Si no especificamos nada ls nos muestra el contenido de la carpeta actual. ls /usr/local (me muestra el contenido de esa carpeta) ls *.ctl (me muestra los archivos en la carpeta actual que terminan en .ctl ) Las opciones también se pueden combinar ls -t *.ctl

  12. ¿Cómo muevo un archivo o carpeta? Con el comando mv (move): mv archivo1 archivo2 (mueve dentro de la misma carpeta el archivo1 al archivo2. Een este caso equivale a cambiarle el nombre.) mv /home/mi_usuario/WRFLAB/namelist.input /home/mi_usuario (mueve el archivo namelist.input de la carpeta /home/mi_usuario/WRFLAB a la carpeta /home/mi_usuario) El comando mv también se puede usar para varios archivos al mismo tiempo: mv archivo1 archivo2 directorio o para carpetas: mv /home/mi_usuario/pepe /home/mi_usuario/pepe2 si pepe y pepe2 son subcarpetas esto mueve la carpeta pepe a la carpeta pepe2

  13. ¿Cómo muevo un archivo o carpeta? • El comando cp (copy), copia archivos (a diferencia del mv, no los borra de su posición original). • cp /home/mi_usuario/namelist.input/home/mi_usuario/WRFLAB crea una copia en el directorio /home/mi_usuario/WRFLAB del archivo namelist.input presente en el directorio /home/mi_usuario/ ¿Cómo crear accesos directos? El comando ln (link) permite crear algo similar a los accesos directos es decir puede crear un archivo en una carpeta, que se comporte como un link a otra ubicación. • ln –s /home/mi_usuario/WRFLAB/namelist.input /home/mi_usuario/prueba.txt • En este caso prueba.txt es solo un link, cualquier programa que lea prueba.txt va a estar accediendo en realidad a /home/mi_usuario/WRFLAB/namelist.input

  14. El comando rm (remove): Los archivos en las distribuciones de linux más recientes se pueden borrar utilizando la herramienta de administración de archivos en la interfase gráfica. En este caso, al igual que en el Windows los archivos eliminados van a una papelera de reciclaje, desde donde pueden ser eliminados definitivamente o restaurados. Utilizando los comandos de la consola podemos borrar archivos con el comando rm. A diferencia del método anterior, los archivos son eliminados definitivamente y sin preguntar. Es por eso que hay que ser muy cuidadoso en el uso de este comando. rm pepe.txt (elimina el arhcivo pepe.txt de la carpeta actual). Mayor cuidado hay que tener cuando se utilizan * rm * (elimina todos!!! los archivos en la carpeta actual).

  15. ¿Cómo editar archivos de texto? En las diferentes distribuciones de linux existen muchos editores de texto, acá listamos algunos de los que permiten editar texto plano y que podemos utilizar en el curso. Gedity kedit: Editores de texto plano con interfase gráfica. (se abren tipeando gedit okedit en la consola). Existen otros editores que trabajan a través de la consola y que se controlan totalmente mediante el teclado, como el vi y el vim . Estos permiten realizar cambios en los archivos de texto en forma rápida, pero requieren aprender una serie de comandos para su manejo.

  16. Editemos el siguiente archivo de texto, que en realidad va a ser un pequeño script : > cd /home/mi_usuario/pronostico > kedit prueba.sh Y les abrirá una ventana de este tipo … En ella escribirán: #!/bin/bash echo 'hola mundo'

  17. ¿Como ejecutar un programa? Para correr un archivo ejecutable, ya sea un programa compilado o un script, tenemos que posicionarnos en el directorio que lo contiene. En el caso de nuestro script, fue creado en : /home/mi_usuario/pronostico/prueba.sh ¿es un archivo ejecutable? > ls -l prueba.sh -rw-r--r-- 1 mi_usuario mi_usuario 32 2010-03-22 01:58 prueba.sh Como vimos anteriormente, el comando para cambiar los permisos es chmod ¿Cómo se usa este comando?

  18. ¿Dónde encuentro las instrucciones para utilizar los comandos? Afortunadamente, existe el comando man, que especifica el modod de uso de otros comandos >man chmod CHMOD(1) User Commands CHMOD(1) NAME chmod - change file mode bits SYNOPSIS chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE... (...) >chmod +x prueba.sh >ls -l prueba.sh

  19. Ahora que el script es ejecutable, podemos correrlo … Para ello indicamos la ubicación y el nombre > ./prueba.sh Si hubiésemos estado en otro directorio, escribiríamos el path completo > /home/mi_usuario/prueba.sh Si queremos direccionar la salida de un programa a un archivo, hacemos: > /home/mi_usuario/prueba.sh > salida.txt > gedit salida.txt & Con ciertos programas, va a ser necesario forzarlos a que “devuelvan el prompt”, para que podamos seguir usando la consola > xcalc > xcalc & Ahora que el script es ejecutable, podemos correrlo … Para ello indicamos la ubicación y el nombre > ./prueba.sh Si hubiésemos estado en otro directorio, escribiríamos el path completo > /home/mi_usuario/prueba.sh Si queremos direccionar la salida de un programa a un archivo, hacemos: > /home/mi_usuario/prueba.sh > salida.txt > gedit salida.txt & Con ciertos programas, va a ser necesario forzarlos a que “devuelvan el prompt”, para que podamos seguir usando la consola > xcalc > xcalc &

  20. Creemos ahora este otro script > gedit dice_hora & while ((1)) do date sleep 1 done Prueben ahora ejecutarlo sin & > bash dice_hora Para detener el proceso, deben usar la combinación CTRL+C Si mando ahora la salida a un archivo, y lo corro en el background : > bash dice_hora > salida.txt &

  21. Para ir viendo las salidas que guarda usamos el comandotail : >tail salida.txt (nos muestra la última parte del archivo al momento de ejecutar el comando) >tail –f salida.txt (nos muestra la última parte del archivo a medida que se va actualizando) Si queremos “matar” un proceso que está corriendo en el background o que se “colgó”, debemos usar el comando kill >kill -9 PID Donde PID representa el número de proceso, que puede obtenerse de: >ps ax Y buscan la línea que dice : bash dice_hora > kill -9 29263 29263 pts/3 S 0:00 bash dice_hora

  22. Otro problema es que si nosotros cerramos la terminal durante la ejecución de un programa este se interrumpe (aun si fue iniciado con el “&”). Para evitar esto existe el comando nohup . nohup comando & (en este caso el comando se va a ejecutar aunque se cierre la consola donde lo ejecutamos y aunque se cierre la sesión de la máquina). Por ejemplo nohup bash dice_hora> salida.txt & Existen otro métodos más sofisticados, como el comando screen, pero no están disponibles por defecto en todas las distribuciones

  23. Comandos … y algunas cosas más. • Si presionamos la flecha hacia arriba, obtenemos el último comando que tipeamos, si repetimos la operación aparecen los anteriores. • La tecla tab activa la función autocompletar. Supongamos que en el directorio actual existe 2 programa wrf.exe y real.exe y que queremos ejecutar wrf.exe. Entonces podemos tipear el comando completo ./wrf.exe o bien directamente tipear ./w + [tab] y automaticamente la máquina completa lo que falta. Esto funciona porque en nuestra carpeta existía un único archivo que empezaba con w. - El comando diff nos dice si dos archivos (de cualquier tipo) son iguales o no. >diff archivo1 archivo2 - El comando gzip se puede utilizar para comprimir un archivo. gzip archivo . El resultado será un nuevo archivo con el nombre del anterior pero extensión .gz. Para descomprimir archivos se utiliza el comando gunzip. - locate permite encontrar archivos y carpetas. - history nos da el resumen de los últimos 100 comandos que tipeamos en la pantalla.

  24. Scripts: Al igual que como se hace en GrADS o en Matlab, se pueden hacer scripts para el shell de Linux. Estos son archivos de texto que contienen una serie de comandos que van a ser ejecutados en orden. (ya vimos unos ejemplos) Además de estos comandos, los scripts de LINUX permiten utilizar estructuras similares a la de los lenguajes de programación con el if, el for el case, etc. Estos scripts son útiles a la hora de realizar tareas repetitivas o tareas que deben ejecutarse rutinariamente (automatización de procesos). Para más información sobre las nociones básicas ver http://www.ee.surrey.ac.uk/Teaching/Unix/index.html (muy recomendable). http://tldp.org/LDP/gs/node5.html http://www.fsid.cvut.cz/cz/U201/LINUX.HTML

  25. Conectividad Vamos a revisar ahora algunos comandos que nos permiten conectarnos con otras computadoras y con internet, con diferentes objetivos. wget Permite bajar archivos a partir de un url >wget -c http://www.fcen.uba.ar/prensa/cable/2010/pdf/Cable_739.pdf -o wget.log >wget -c -i ./cosas_para_bajar.txt -o wget.log ftp (file transfer protocol) Permite conectarse a un servidor ftp e intercambiar archivos >ftp ftp.cdc.noaa.gov Bla bla Name (ftp.cdc.noaa.gov:paula): anonymous 331 Please specify the password. Password: pgonzalez@cima.fcen.uba.ar 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>

  26. Conectividad Dentro del prompt del ftp nos movemos en la estructura de archivos como en unix/linux: ftp> ls ftp> cd Datasets ftp> cd ncep.reanalysis.derived/pressure/ ftp> ls ftp> get air.mon.ltm.nc Para intercambiar un archivo en la otra dirección el comando es “put”. ftp> !ls lista el contenido de la carpeta local. Para moverme en los directorios locales el comando es “lcd”. Se termina la conexión con “quit”.

  27. Conectividad ssh (secure shell) Este comando sirve para conectarse a otra computadora (que tenga GNUlinux/unix como sistema operativo) conociendo el ip o el nombre del equipo > ssh -X paula@portal.cima.fcen.uba.ar > ssh -X alumnos@192.168.1.142 Uno ingresa la contraseña que tiene en ese equipo y puede trabajar de la misma manera que lo haría en el equipo local. scp (secure copy) Sirve para copiar archivo desde y hacia otros equipos sintaxis: >scp origen destino >scp alumnos@192.168.1.142:archivo . Pasa “archivo” desde el home(punto indicado por :) del equipo 192.168.1.142 al directorio local (indicado por el .). Si luego de los : utilizo /, tengo que escribir el path completo. Por ejemplo, :cosas/archivo es igual a :/home/alumnos/cosas/archivo

  28. Conectividad sintaxis: >scp origen destino >scp cosas/archivo alumnos@192.168.1.142: Pasa “archivo” desde el directorio “cosas” hacia el home (punto indicado por :) del equipo 192.168.1.142.

  29. Fin de la presentación!!!