<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.cima.fcen.uba.ar/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Paola.corrales</id>
	<title>Wikicima - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.cima.fcen.uba.ar/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Paola.corrales"/>
	<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php/Especial:Contribuciones/Paola.corrales"/>
	<updated>2026-04-19T10:48:07Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=Rstudio&amp;diff=1747</id>
		<title>Rstudio</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=Rstudio&amp;diff=1747"/>
		<updated>2020-05-27T20:19:42Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Usando RStudio Server en el servidor ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el servidor del CIMA que estás usando tiene RStudio Server instalado y corriendo (preguntá a tu soporte amigo), podés acceder a él desde cualquier computadora y correr R remotamente. &lt;br /&gt;
&lt;br /&gt;
=== Desde la red del CIMA ===&lt;br /&gt;
&lt;br /&gt;
Si tu computadora está conectada a la red del CIMA, lo único que tenés que hacer es ir a un explorador e ir a la dirección SERVIDOR:8787. Donde SERVIDOR es la dirección del servidor que quieras usar. Esto te va a llevar a la página de login donde tenés que usar tu usuario y contraseña del servidor. En la imágen de abajo, por ejemplo, se muestra la página de login en vegeta.cima.fcen.uba.ar&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Screenshot_from_2020-05-27_16.10.52.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez iniciada la sesión, se te va a abrir una sesión de RStudio igual que cualquier otra:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Screenshot_from_2020-05-27_16.17.19.png|500px]]&lt;br /&gt;
&lt;br /&gt;
=== Desde cualquier otra red ===&lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
&lt;br /&gt;
Si tu computadora está conectada a una red externa (por ejemplo, en tu casa), primero hay que hacer un tunel para conectarse a través de portal, lo cual necesita un poco de preparación previa. Primero, necesitás crear las llaves ssh desde tu computadora. Podés correr estos comandos, cambiando el usuario en la primera línea para configurar las llaves si nunca lo hiciste. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export USUARIO=tu usuario en el servidor&lt;br /&gt;
&lt;br /&gt;
ssh-keygen&lt;br /&gt;
ssh-copy-id $USUARIO@portal.cima.fcen.uba.ar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esto genera un par de claves rsa. Cuando te pida que confirmes el lugar donde guardar la clave (&amp;quot;Enter file in which to save the key (/home/USUARIO/.ssh/id_rsa)&amp;quot;) dale enter. Luego te va a pedir una contraseña para esa clave (opcional). Luego va a copiar la clave pública a portal.cima.fcen.uba.ar. Te va a pedir tu contraseña (la que usás para entrar al servidor, no la de la clave que acabás de crear).&lt;br /&gt;
&lt;br /&gt;
Ahora entrá a portal con el comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USUARIO@portal.cima.fcen.uba.ar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si todo anduvo bien, no debería pedirte contraseña y deberías estar en portal. Ahora vamos a hacer lo mismo, pero para poder logearte sin contraseña desde portal hacia el servidor donde querés correr RStudio Server. Es decir, sin salir de portal, corré estos comandos, modificando tu usuario y el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export USUARIO=tu usuario en el servidor&lt;br /&gt;
export SERVIDOR=el servidor que tiene rstudio server&lt;br /&gt;
&lt;br /&gt;
ssh-keygen&lt;br /&gt;
ssh-copy-id $USUARIO@$SERVIDOR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Va a pasar lo mismo que antes. Finalmente, probá que todo esté andando usando corriendo este comando para entrar al servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USUARIO@$SERVIDOR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si todo salió bien, no debería pedirte contraseña y está todo listo.&lt;br /&gt;
&lt;br /&gt;
==== Corriendo RStudio ====&lt;br /&gt;
&lt;br /&gt;
Ahora cerrá esa terminal y abrí una nueva en tu computadora local y corré este comando, reemplazando USUARIO y SERVIDOR por tu usuario y el servidor donde está corriendo RStudio Server; el puerto 4571 es aleatorio y podés usar cualquiera que no esté en uso.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -f USUARIO@portal.cima.fcen.uba.ar -L 4571:SERVIDOR:8787 -N &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si todo salió bien, ahora andá a un explorador y andá a &amp;quot;localhost:4571&amp;quot; y vas a ver la ventana de login de RStudio! 🎉️&lt;br /&gt;
&lt;br /&gt;
=== Poniendo las cosas en un script ===&lt;br /&gt;
&lt;br /&gt;
Para no tener que acordarse y escribir todo eso cada vez que querés usar RStudio Server desde tu compu, podés meter eso en un script. Si corrés el comando de abajo (agregando tu usuario, servidor y cambiando el puerto si querés), se va a crear un script ejecutable en ~/bin/rstudioserver. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;#!/bin/bash&lt;br /&gt;
export USUARIO=tu usuario&lt;br /&gt;
export SERVER=servidor con rstudio&lt;br /&gt;
export PUERTO=4571&lt;br /&gt;
export NOMBRE=rstudio_tunnel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pkill -f $NOMBRE&lt;br /&gt;
bash -c &amp;quot;exec -a $NOMBRE ssh -f $USUARIO@portal.cima.fcen.uba.ar -L $PUERTO:$SERVIDOR:8787 -N &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
firefox localhsot:$PUERTO&#039; &amp;gt; ~/bin/rstudioserver&lt;br /&gt;
chmod +x ~/bin/rstudioserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La penúltima línea asume que tenés firefox instalado. Podés cambiar esa línea por alguna que ejecute tu explorador favorito.&lt;br /&gt;
&lt;br /&gt;
Una vez que corras esas líneas, abrí una nueva terminal y vas a poder abrir RStudio Server con sólo escribir rstudioserver. &lt;br /&gt;
&lt;br /&gt;
Si tenés varios servidores donde corrés RStudio Server, podés crear archivos distintos. Lo importante es que cambies PUERTO y NOMBRE para que sean distintos.&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=Rstudio&amp;diff=1746</id>
		<title>Rstudio</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=Rstudio&amp;diff=1746"/>
		<updated>2020-05-27T20:12:39Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: /* Desde la red del CIMA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Usando RStudio Server en el servidor ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el servidor del CIMA que estás usando tiene RStudio Server instalado y corriendo (preguntá a tu soporte amigo), podés acceder a él desde cualquier computadora y correr R remotamente. &lt;br /&gt;
&lt;br /&gt;
=== Desde la red del CIMA ===&lt;br /&gt;
&lt;br /&gt;
Si tu computadora está conectada a la red del CIMA, lo único que tenés que hacer es ir a un explorador e ir a la dirección SERVIDOR:8787. Donde SERVIDOR es la dirección del servidor que quieras usar. Esto te va a llevar a la página de login donde tenés que usar tu usuario y contraseña del servidor. En la imágen de abajo, por ejemplo, se muestra la página de login en vegeta.cima.fcen.uba.ar&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Screenshot_from_2020-05-27_16.10.52.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez iniciada la sesión, se te va a abrir una sesión de RStudio igual que cualquier otra:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Screenshot_from_2020-05-27_16.17.19.png|500px]]&lt;br /&gt;
&lt;br /&gt;
=== Desde cualquier otra red ===&lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
&lt;br /&gt;
Si tu computadora está conectada a una red externa (por ejemplo, en tu casa), primero hay que hacer un tunel, lo cual necesita un poco de preparación previa. Primero, desde tu computadora corré estos comandos, cambiando el usuario en la primera línea. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export USUARIO=tu usuario en el servidor&lt;br /&gt;
&lt;br /&gt;
ssh-keygen&lt;br /&gt;
ssh-copy-id $USUARIO@portal.cima.fcen.uba.ar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esto genera un par de claves rsa. Cuando te pida que confirmes el lugar donde guardar la clave (&amp;quot;Enter file in which to save the key (/home/USUARIO/.ssh/id_rsa)&amp;quot;) dale enter. Luego te va a pedir una contraseña para esa clave (opcional). Luego va a copiar la clave pública a portal.cima.fcen.uba.ar. Te va a pedir tu contraseña (la que usás para entrar al servidor, no la de la clave que acabás de crear).&lt;br /&gt;
&lt;br /&gt;
Ahora entrá a portal con el comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USUARIO@portal.cima.fcen.uba.ar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si todo anduvo bien, no debería pedirte contraseña y deberías estar en portal. Ahora vamos a hacer lo mismo, pero para poder logearte sin contraseña desde portal hacia el servidor donde querés correr RStudio Server. Es decir, sin salir de portal, corré estos comandos, modificando tu usuario y el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export USUARIO=tu usuario en el servidor&lt;br /&gt;
export SERVIDOR=el servidor que tiene rstudio server&lt;br /&gt;
&lt;br /&gt;
ssh-keygen&lt;br /&gt;
ssh-copy-id $USUARIO@$SERVIDOR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Va a pasar lo mismo que antes. Finalmente, probá que todo esté andando usando corriendo este comando para entrar al servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USUARIO@$SERVIDOR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si todo salió bien, no debería pedirte contraseña y está todo listo. &lt;br /&gt;
&lt;br /&gt;
==== Corriendo RStudio ====&lt;br /&gt;
&lt;br /&gt;
Ahora cerrá esa terminal y abrí una nueva en tu computadora local y corré este comando, reemplazando USUARIO y SERVIDOR por tu usuario y el servidor donde está corriendo RStudio Server; el puerto 4571 es aleatorio y podés usar cualquiera que no esté en uso.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -f USUARIO@portal.cima.fcen.uba.ar -L 4571:SERVIDOR:8787 -N &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si todo salió bien, ahora andá a un explorador y andá a &amp;quot;localhost:4571&amp;quot; y vas a ver la ventana de login de RStudio! 🎉️&lt;br /&gt;
&lt;br /&gt;
=== Poniendo las cosas en un script ===&lt;br /&gt;
&lt;br /&gt;
Para no tener que acordarse y escribir todo eso cada vez que querés usar RStudio Server desde tu compu, podés meter eso en un script. Si corrés el comando de abajo (agregando tu usuario, servidor y cambiando el puerto si querés), se va a crear un script ejecutable en ~/bin/rstudioserver. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;#!/bin/bash&lt;br /&gt;
export USUARIO=tu usuario&lt;br /&gt;
export SERVER=servidor con rstudio&lt;br /&gt;
export PUERTO=4571&lt;br /&gt;
export NOMBRE=rstudio_tunnel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pkill -f $NOMBRE&lt;br /&gt;
bash -c &amp;quot;exec -a $NOMBRE ssh -f $USUARIO@portal.cima.fcen.uba.ar -L $PUERTO:$SERVIDOR:8787 -N &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
firefox localhsot:$PUERTO&#039; &amp;gt; ~/bin/rstudioserver&lt;br /&gt;
chmod +x ~/bin/rstudioserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La penúltima línea asume que tenés firefox instalado. Podés cambiar esa línea por alguna que ejecute tu explorador favorito.&lt;br /&gt;
&lt;br /&gt;
Una vez que corras esas líneas, abrí una nueva terminal y vas a poder abrir RStudio Server con sólo escribir rstudioserver. &lt;br /&gt;
&lt;br /&gt;
Si tenés varios servidores donde corrés RStudio Server, podés crear archivos distintos. Lo importante es que cambies PUERTO y NOMBRE para que sean distintos.&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=terminal&amp;diff=1464</id>
		<title>terminal</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=terminal&amp;diff=1464"/>
		<updated>2019-06-09T21:27:19Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La terminal es una interfaz de línea de comando que permite interactuar con la computadora. Al igual que cualquier GUI (por Graphical User Interface) con la que hayamos trabajado en Windows o Linux, la terminal nos permite acceder a directorios (carpetas) y archivos, generar nuevos archivos y moverlos a otras ubicaciones entre otro millón de cosas.&lt;br /&gt;
&lt;br /&gt;
Entonces, ¿porqué &amp;quot;complicarnos&amp;quot;  con la terminal si puedo hacer lo mismo con un par de clicks del mouse? Cuando queremos interactuar con la computadora de manera compleja, hacer tareas repetitivas o por ejemplo conectarnos de manera remota con otras computadoras, necesitamos saber usar la terminal.&lt;br /&gt;
&lt;br /&gt;
= ¿Cómo funciona? =&lt;br /&gt;
&lt;br /&gt;
Al abrir la terminal nos encontramos con una pantalla negra y en la primera linea algo como lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:terminal.png]]&lt;br /&gt;
&lt;br /&gt;
Esto va a ser &amp;lt;code&amp;gt;usuario@nombredelacomputadora:~$&amp;lt;/code&amp;gt;. Acá el &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; indica el directorio raíz y el &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; o &#039;&#039;&#039;prompt&#039;&#039;&#039; indica que la shell está esperando instrucciones.&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;shell&#039;&#039;&#039; es un programa que interpreta nuestras ordenes y las traduce en lenguaje computadora. A travez de la shell podemos hacer cosas tan simples como copiar un archivo con un simple comando hasta correr un modelo de simulación numérica.&lt;br /&gt;
&lt;br /&gt;
== Herramientras básicas ==&lt;br /&gt;
&lt;br /&gt;
Las herramientas básicas vienen pre-instaladas con el sistema operativo en en el paquete [https://wiki.debian.org/coreutils coreutils] (o GNU Core Utilities). Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
&lt;br /&gt;
Desktop     Downloads   Pictures      Test&lt;br /&gt;
Documents   Music       terminal.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este comando lista el contenido dentro del directorio actual. Y su nombre viene de &amp;quot;list&amp;quot;. Se puede extender las capacidades de los comandos con &#039;&#039;&#039;flags&#039;&#039;&#039; usando la siguiente sintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ [comando] -flags&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si quisieramos más información sobre los archivos y directorios que están en el directorio actual usamos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls -l&lt;br /&gt;
drwxr-xr-x  2 pao pao   4,0K may 19 15:24  Desktop&lt;br /&gt;
drwxr-xr-x 17 pao pao   4,0K mar 16 13:52  Documents&lt;br /&gt;
drwxr-xr-x 10 pao pao    16K jun  9 16:38  Downloads&lt;br /&gt;
drwxr-xr-x  2 pao pao   4,0K ene 19  2018  Music&lt;br /&gt;
drwxr-xr-x 19 pao pao   4,0K jun  8 18:35  Pictures&lt;br /&gt;
-rw-r--r--  1 pao pao  11132 jun  9 16:38  terminal.png&lt;br /&gt;
drwxr-xr-x  2 pao pao   4096 jun  9 17:54  Test&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existen una infinidad de comandos, cada uno con sus flags y a diferencia de una interfaz gráfica donde tenemos botones, al trabajar en la terminal es necesario conocerlos. Esto se aprende con práctica pero también googleando aquello que queremos resolver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Navegando entre directorios ==&lt;br /&gt;
&lt;br /&gt;
Lo primero es saber donde estamos parados dentro de la computadora, para eso existe el comando &amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt; (que viene de &amp;quot;print working directory&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ pwd&lt;br /&gt;
/home/pao&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este caso estamos parados en el &#039;&#039;&#039;home&#039;&#039;&#039;. La respuesta de este comando puede ser distinta dependiendo del sistema operativo, pero dentro del mundo de linux no debería variar mucho.&lt;br /&gt;
&lt;br /&gt;
El home es la carpeta principal del usuario, donde se guardará todo. Pero por encima hay toda una estructura de archivos que organizan los programas instalados, las herramientas de sistema y los &amp;quot;homes&amp;quot; de otros usuarios dentro de la misma computadora.&lt;br /&gt;
&lt;br /&gt;
Otra manera de ver donde estamos, es revisando el contenido del directorio con &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; y reconoceer así el directorio.&lt;br /&gt;
&lt;br /&gt;
Si queremos &amp;quot;movernos&amp;quot; dentro de la computadora hacia otro directorio, el comando indicado es &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; (que vienen de &amp;quot;change directory&amp;quot;, para esta altura seguro ya descubrieron el patrón).&lt;br /&gt;
&lt;br /&gt;
Por ejemplo queremos movernos al directorio &amp;quot;Test&amp;quot; (ojo, shell es case sensitive, las mayusculas y minusculas no son intercambiables!):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cd Test&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este comando no devuelve nada pero si usamos &amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt;, veremos que ahora estamos en un nuevo directorio.&lt;br /&gt;
&lt;br /&gt;
Para volver al directorio anterior usamos &amp;lt;code&amp;gt;..&amp;lt;/code&amp;gt;, es un &amp;quot;directorio especial&amp;quot; que representa el directorio previo o parent directory. También existe un &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; que representa el directorio actual. Pueden verlos usando &amp;lt;code&amp;gt;$ ls -a&amp;lt;/code&amp;gt; para mostrar todos (&amp;quot;all&amp;quot;) los elementos en el directorio actual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cd ..&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Path absolutos y relativos ===&lt;br /&gt;
&lt;br /&gt;
En el ejemplo anterior usamos &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; para movernos y el nombre del directorio al cual queremos ir. Cómo el directorio Test estaba adentro del directorio de trabajo accedimos sin problemas pero si ubieramos estado en otro lado nos hubiera dicho que no existe un directorio Test. Esto es así porque le estamos dando el path relativo (relativo al directorio donde estamos parados). Pero &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; también puede interpretar la ubicación exacta o absoluta de un directorio. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cd /home/pao/Test&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algunos trucos ===&lt;br /&gt;
&lt;br /&gt;
Muchas veces escribimos mal el nombre de un directorio o archivo, a veces son super largos o el path absoluto es enorme. Existen varios atajos para hacernos la vida más simple:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Tab&amp;lt;/code&amp;gt;: La tecla Tab completa el nombre del archivo o directorio. Basta con escribir las primeras letras del nombre y luego con la tecla tab se termina de escribir automáticamente el nombre. &lt;br /&gt;
[[Archivo:tabKey.png]]&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + a&amp;lt;/code&amp;gt;: Principio de línea. Se manda el cursos al principio de la línea de comando. También funciona la tecla Inicio.&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + a&amp;lt;/code&amp;gt;: Final de línea. Se manda el cursos al final de la línea de comando. O también la tecla Fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manipulando archivos y directoios ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt;: Para crear directorios usamos el comando &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; (por supuesto de &amp;quot;make directory&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
$ mkdir Test2&lt;br /&gt;
$ ls&lt;br /&gt;
Desktop     Downloads   Pictures      Test&lt;br /&gt;
Documents   Music       terminal.png  Test2&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La ubicación del nuevo directorio dependerá de la ubicación relativa o absoluta que le dimos. En este caso, se creará en el directorio donde estamos trabajando.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;: si quisieramos copiar un archivo en otra ubicaación usamos &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt; (de &amp;quot;copy&amp;quot;). Este comando necesita saber que copiar y donde copiarlo: &amp;lt;code&amp;gt;cp [origen] [destino]&amp;lt;/code&amp;gt;, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cp [origen] [destino]&lt;br /&gt;
$ cp terminal.png Test&lt;br /&gt;
$ ls Test&lt;br /&gt;
$ terminal.png&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt; tiene una flag &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; que permite copiar recursivamente un directorio y su contenido.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt;: el comando &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; (&amp;quot;move&amp;quot;) permite mover un archivo (parecido al &amp;lt;code&amp;gt;ctrl+C&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;ctrl+V&amp;lt;/code&amp;gt; en una interfáz gráfica). Pero también permite cambiarle el nombre a un archivo si los &amp;quot;movemos&amp;quot; en el mismo lugar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ mv [origen] [destino]&lt;br /&gt;
$ mv Test/terminal.png Test/terminal2.png&lt;br /&gt;
$ ls Test&lt;br /&gt;
terminal2.png&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt;: si queremos borrar un archivo usamos &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt; (de &amp;quot;remove&amp;quot;). Para borrar directorios podemos agregar una flag. Pero cuidado esta acción es irreversible. La terminal no tiene papelera y no existe el &amp;lt;code&amp;gt;Ctrl+z&amp;lt;/code&amp;gt;, cuidado con con lo borran!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rm [fichero]&lt;br /&gt;
$ rm Test/terminal2.png&lt;br /&gt;
$ ls Test&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;: &amp;lt;I&amp;gt;&#039;list&#039;&amp;lt;/I&amp;gt;, lista el contenido de un directorio (un directorio es el equivalente de &#039;carpeta&#039; de Windows)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
20160324_bash.pdf  install.inf  prueba.bash  Terminal.png  test.bash&lt;br /&gt;
$ ls -l&lt;br /&gt;
total 244&lt;br /&gt;
-rw-r--r-- 1 lluis lluis 221654 Jun  6 10:49 20160324_bash.pdf&lt;br /&gt;
-rw-rw-r-- 1 lluis lluis    328 Apr 25 14:53 install.inf&lt;br /&gt;
-rwxr--r-- 1 lluis lluis    114 Jun  6 11:27 prueba.bash&lt;br /&gt;
-rw-r--r-- 1 lluis lluis  11172 Apr 11 16:27 Terminal.png&lt;br /&gt;
-rw-r--r-- 1 lluis lluis   4056 Jun  6 10:49 test.bash&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Atributos de un archivo ===&lt;br /&gt;
Al hacer un list con &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt;, nos aparecen la lista de elementos en el directorio con sus atributos:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;: lista el contenido de un directorio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls -l&lt;br /&gt;
[AtributosDueñx][AtributosGrupo][AtributosTodxs] [ID] [Dueñx] [Grupo] [Tamaño] [Fecha] [NombreFichero]&lt;br /&gt;
total 244&lt;br /&gt;
-rw-r--r-- 1 lluis lluis 221654 Jun  6 10:49 20160324_bash.pdf&lt;br /&gt;
-rw-rw-r-- 1 lluis lluis    328 Apr 25 14:53 install.inf&lt;br /&gt;
-rwxr--r-- 1 lluis lluis    114 Jun  6 11:27 prueba.bash&lt;br /&gt;
drwxr-xr-x 2 lluis lluis   4096 Jun  6 12:25 parTUXza&lt;br /&gt;
-rw-r--r-- 1 lluis lluis  11172 Apr 11 16:27 Terminal.png&lt;br /&gt;
-rwxr--r-- 1 lluis lluis   4056 Jun  6 10:49 test.bash&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el archivo pdf 20160324_bash.pdf tiene los siguientes atributos:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-rw-r--r-- 1 lluis lluis 221654 Jun  6 10:49 20160324_bash.pdf&amp;lt;/code&amp;gt;, fichero pdf&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;I&amp;gt;-rw-&amp;lt;/I&amp;gt;: El dueño del archivo sólo puede leerlo y modificarlo.&lt;br /&gt;
** &amp;lt;I&amp;gt;r--&amp;lt;/I&amp;gt;: El grupo sólo puede leerlo&lt;br /&gt;
** &amp;lt;I&amp;gt;r--&amp;lt;/I&amp;gt;: Todo el mundo sólo puede leerlo&lt;br /&gt;
** &amp;lt;I&amp;gt;lluis&amp;lt;/I&amp;gt;: Dueño del archivo&lt;br /&gt;
** &amp;lt;I&amp;gt;lluis&amp;lt;/I&amp;gt;: Grupo del archivo&lt;br /&gt;
** &amp;lt;I&amp;gt;221654&amp;lt;/I&amp;gt;: Tamaño en bytes del archivo&lt;br /&gt;
** &amp;lt;I&amp;gt;Jun  6 10:49&amp;lt;/I&amp;gt;: fecha de la última modificación del archivo&lt;br /&gt;
&lt;br /&gt;
Otros archivos tiene permisos de ejecución, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-rwxr--r-- 1 lluis lluis   4056 Jun  6 10:49 test.bash&amp;lt;/code&amp;gt;:   script de shell, &amp;lt;code&amp;gt;-rwx&amp;lt;/code&amp;gt; indica que sólo el dueño puede ejecutarlo.&lt;br /&gt;
* &amp;lt;code&amp;gt;drwxr-xr-x 2 lluis lluis   4096 Jun  6 12:25 parTUXza&amp;lt;/code&amp;gt;:    directorio (&amp;lt;code&amp;gt;drwx&amp;lt;/code&amp;gt;), para linux, los directorios son ejectuables para todos!&lt;br /&gt;
&lt;br /&gt;
=== Comodines ===&lt;br /&gt;
&lt;br /&gt;
Los comodines son símbolos o expresiones que actual básicamente como cómodines y te permiten ahorrar tiempo. Por ejemplo &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; funcionan como cualquier cantidad de caracteres:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cp *.png Test/&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este caso todos los archivos que terminen con &amp;quot;.png&amp;quot; serán copiados a la carpeta Test, sin importar que nombre tengan antes del .png.&lt;br /&gt;
&lt;br /&gt;
Hay muchos otros, por ejemplo &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; es como  el &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; pero solo para un caracter. No es necesario aprenderlos a todos, es cuestión de práctica y a medida que los necesitamos.&lt;br /&gt;
&lt;br /&gt;
=== Más recursos ===&lt;br /&gt;
&lt;br /&gt;
Parte de este material está inspirado en la clase [https://swcarpentry.github.io/shell-novice/ The Unix Shell] de The Carpentries donde hay muchos ejemplos, ejercicios y clases más avanzadas. Es recomendable darle una mirada.&lt;br /&gt;
&lt;br /&gt;
== Ayuda == &lt;br /&gt;
&lt;br /&gt;
Es posible acceder a la ayuda de un comando con una flag específica &amp;lt;code&amp;gt;-h --h --help&amp;lt;/code&amp;gt; (esto depende del comando). O en algunos casos, también está disponible la documentación completa a la que se accede con `man`.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ [comando] --h&lt;br /&gt;
$&lt;br /&gt;
$ man [comando]&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables de sistema ==&lt;br /&gt;
El sistema operativo se configura a través de unas variables de sistema generales&lt;br /&gt;
* &amp;lt;CODE&amp;gt;$HOME:&amp;lt;/CODE&amp;gt; Ubicación inicial al abrir una terminal cómo usuarix (&amp;lt;CODE&amp;gt;/home/[usuarix]&amp;lt;/CODE&amp;gt;)&lt;br /&gt;
* &amp;lt;CODE&amp;gt;$PATH:&amp;lt;/CODE&amp;gt; Directorios que ya están cargados automáticamente al abrir un terminal. Suelen ser directorios con aplicaciones, así no hace falta saber dónde se encuentran las aplicaciones. Por ejemplo:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
/home/lluis/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &amp;lt;CODE&amp;gt;$LD_LIBRARY_PATH:&amp;lt;/CODE&amp;gt; Librerias cargadas en el sistema&lt;br /&gt;
&lt;br /&gt;
= Shell scripting =&lt;br /&gt;
La shell es un programa que interpreta nuestras ordenes y las traduce en lenguaje computadora. Les usuaries acceden al kernel y a las componentes de la computadora a través de ella.&lt;br /&gt;
&lt;br /&gt;
Esta shell permite la ejecución de &#039;&#039;&#039;scripts&#039;&#039;&#039; para automatizar esas tareas que sean repetitivas. Estos &#039;&#039;&#039;scripts&#039;&#039;&#039; se pueden programar en distintas shells. En esta introducción se dan detalles de &amp;lt;code&amp;gt;bash: bourn-again Shell&amp;lt;/code&amp;gt; (hay distitnas shells: csh, sh, ksh, ...). En estas shells se pueden utilizar todos los &amp;lt;I&amp;gt;coreutils&amp;lt;/I&amp;gt;. Los scripts constituyen un lenguajde de programación interpreatado que es masivamente utilizando dentro del entorno linux&lt;br /&gt;
&lt;br /&gt;
Los scripts de shell son programas ejecutables interpretados por el kernel. Deben tener permiso de ejecución para poder correr. Para cambiar los permisos u modos de un archivo o directorio se utiliza el comando &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; (&amp;quot;change mode&amp;quot; o cambiar modo):&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ chmod u+x [ScriptShell]&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
O bien directamente al llamar &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; (si el script es de bash)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ bash [ScriptShell]&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este es el ejemplo más sencillo de script, con nombre &amp;lt;code&amp;gt;hola.bash&amp;lt;/code&amp;gt; (se elige la extensión &amp;lt;code&amp;gt;.bash&amp;lt;/code&amp;gt;, pero no es obligatorio) &lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Hola mundo!!&amp;quot;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La primera línea indica que tipo de shell vamos a usar, al incluir esto no va a ser necesario usar el comando &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Al ejecutarse:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ./hola.bash&lt;br /&gt;
Hola mundo!!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* Shell va a interpretar que queremos ejecutar el archivo porque usamos &amp;lt;code&amp;gt;./&amp;lt;/code&amp;gt; seguido del nombre del archivo.&lt;br /&gt;
&lt;br /&gt;
== Conceptos básicos ==&lt;br /&gt;
&lt;br /&gt;
Un script es básicamente un archivo de texto con sentencias u órdenes a ser interpretadas por una computadora. Estos son algunos elementos básicos:&lt;br /&gt;
* &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;: carácter para comentarios, todo lo que va a la derecha no va a ser tenido en cuenta por la computadora.&lt;br /&gt;
* &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;: carácter para concatenar líneas de código&lt;br /&gt;
* &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt;: permite mostrar en la terminal cualquier cosa que pongamos a la derecha del comando.&lt;br /&gt;
&lt;br /&gt;
* Variables: Se utilizan cómo &amp;lt;code&amp;gt;$[NombreVariable]&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;${[NombreVariable]}&amp;lt;/code&amp;gt;. Se asignan con &amp;lt;code&amp;gt;&#039;=&#039;&amp;lt;/Code&amp;gt; (sin espacios!!!)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
number=3                   #nueva variable&lt;br /&gt;
echo &amp;quot;Numero: &amp;quot;${number}   #quiero mostrar en la terminar el valor de &amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ chmod u+x test.bash&lt;br /&gt;
$ ./test.bash&lt;br /&gt;
Numero: 3&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Asignación de un valor después de ejecutar un comando (con &amp;lt;code&amp;gt;``&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fecha=`date &amp;quot;+%Y/%m/%d&amp;quot;`  #date permite manipular fechas y horas.&lt;br /&gt;
echo &amp;quot;HOY: &amp;quot;${fecha}     &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
HOY: 2018/06/06&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* if: Al igual que otros lenguajes, bash permite usar control de flujo. Por ejemplo &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; permite incluir una condición:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
valor=&#039;Hola&#039;&lt;br /&gt;
&lt;br /&gt;
if test ${valor} == &#039;Hola&#039;; then&lt;br /&gt;
  echo &amp;quot;Hello !&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;Goodbye&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Hello&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* while do: permite repetir un determinado número de veces una instrucción mientras se cumpla una determinada condición:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
hoy=`date +%Y%m%d`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;hoy: &amp;quot;${hoy}&lt;br /&gt;
&lt;br /&gt;
i=0&lt;br /&gt;
while test $i -le 10; do&lt;br /&gt;
  nuevodia=`date +%Y%m%d -d&amp;quot;${hoy} $i days&amp;quot;`&lt;br /&gt;
  echo &amp;quot;i: &amp;quot;$i&amp;quot; fecha:&amp;quot;${nuevodia}&lt;br /&gt;
  i=`expr $i + 1`&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
hoy: 20180611&lt;br /&gt;
i: 0 fecha:20180611&lt;br /&gt;
i: 1 fecha:20180612&lt;br /&gt;
i: 2 fecha:20180613&lt;br /&gt;
i: 3 fecha:20180614&lt;br /&gt;
i: 4 fecha:20180615&lt;br /&gt;
i: 5 fecha:20180616&lt;br /&gt;
i: 6 fecha:20180617&lt;br /&gt;
i: 7 fecha:20180618&lt;br /&gt;
i: 8 fecha:20180619&lt;br /&gt;
i: 9 fecha:20180620&lt;br /&gt;
i: 10 fecha:20180621&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pueden encontrar más ejemplos en [https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocKexterntools#BootCampIPSLpresentations-documentations-handsonsessions IPSL boot camp] [[File:20160324_bash.pdf]] y sus ejemplos [[File:test_bash.doc]] (antes de utilizar, renombrar cómo &amp;lt;code&amp;gt;test.bash&amp;lt;/code&amp;gt; y darle atributos de ejecución)&lt;br /&gt;
&lt;br /&gt;
= Entorno servidores/clústers =&lt;br /&gt;
&lt;br /&gt;
Los servidores y clúster de computación, son otras máquinas, con sus usuarios y entorno linux. Normalmente se encuentran conectadas a internet y se accede a estas máquinas de manera remota desde otra computadora o llamada &amp;quot;local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Para acceder de manera remota es necesario tener un usuario y conocer el nombre de la máquina y su dominio.&lt;br /&gt;
&lt;br /&gt;
== Acceso ==&lt;br /&gt;
El acceso a los clúster de computación (HPC del Inglés) o servidores se realiza en la mayoría de los casos via &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ssh [NombreUsuarioenServidor]@[nombreServidor].[domino]&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el CIMA dispone de un clúster de computación llamado &amp;lt;I&amp;gt;hydra&amp;lt;/I&amp;gt; y con el domino &amp;lt;code&amp;gt;cima.fcen.uba.ar&amp;lt;/code&amp;gt;. Si Juan Perez quiere acceder a Hydra usa el siguiente comando (al apretar enter, el sistema te pide la clave pero no aparece ningún cursor):&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ssh juan.perez@hhydra.cima.fcen.uba.ar&lt;br /&gt;
juan.perez@hydra.cima.fcen.uba.ar&#039;s password:&lt;br /&gt;
[juan.perez@hydra ~]$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* Una vex en el servidor/clúster le usuarie tiene un entorno linux estándard. Al trabajar en un espacio compartido es necesario tener cuidado ya que los cambios podrían afectar a otras personas.&lt;br /&gt;
* Para salir, se usa la instrucción &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
[juan.perez@hydra ~]$ exit&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copiado de ficheros ==&lt;br /&gt;
Para copiar archivos guardados en servidores se puede utilizar herramientas gráficas, pero la experiencia recomienda hacerlo desdel terminal. Para tal caso, existen las instrucciones &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; (más potente y muy útil para sincronizar copias):&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rsync [NombreUsuarixOrig]@[origen]:[fichero/directorio] [NombreUsuarixDest]@[destino]:[directorio] &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[NombreUsuarixOrig]&amp;lt;/code&amp;gt;: Nombre del usuarix en la máquina donde se encuentra el fichero o directorio a copiar&lt;br /&gt;
* &amp;lt;code&amp;gt;[origen]&amp;lt;/code&amp;gt;: nombre de la máquina y su doiminio (&amp;lt;code&amp;gt;[NombreMaquina].[dominio]&amp;lt;/code&amp;gt;) donde se encuentra el fichero o directorio &lt;br /&gt;
* &amp;lt;code&amp;gt;[fichero/directorio]&amp;lt;/code&amp;gt;: fichero o directorio a copiar&lt;br /&gt;
* &amp;lt;code&amp;gt;[NombreUsuarixDest]&amp;lt;/code&amp;gt;: Nombre del usuarix en la máquina donde se quiere copiar el fichero o directorio&lt;br /&gt;
* &amp;lt;code&amp;gt;[destino]&amp;lt;/code&amp;gt;: nombre de la máquina y dominio (&amp;lt;code&amp;gt;[NombreMaquina].[dominio]&amp;lt;/code&amp;gt;) a la cuál se quiere hacer la copia&lt;br /&gt;
* &amp;lt;code&amp;gt;[directorio]&amp;lt;/code&amp;gt;: nombre de directorio en la máquina destino donde se quiere hacer la copia&lt;br /&gt;
&lt;br /&gt;
Cuando se quiere copiar, siempre nos pedirá la clave de acceso de la máquina remota.&lt;br /&gt;
El destino o el origen no pueden ser los dos remotos. Uno tiene que ser una máquina local. Cuando es la máqiuna local, no se indica &amp;lt;code&amp;gt;[NombreUsuarx]@[maquina]&amp;lt;/code&amp;gt;&lt;br /&gt;
Si no se indica destino de la copia, se copia directamente en el &amp;lt;code&amp;gt;${HOME}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Copia de un fichero local al $HOME de hydra&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rsync documento.txt juan.perez@hydra.cima.fcen.uba.ar:&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* Copia de un fichero de hydra del directorio &amp;lt;code&amp;gt;${HOME}/experimentos/WRFsensSFC/run/&amp;lt;/code&amp;gt; a la máquina en local al directorio &amp;lt;code&amp;gt;${HOME}/estudios/WRFsensSFC/simulacion/control&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rsync juan.perez@hydra.cima.fcen.uba.ar:experimentos/WRFsensSFC/run/wrfout_d01_2002-12-01_00:00:00 estudios/WRFsensSFC/simulacion/control&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=terminal&amp;diff=1462</id>
		<title>terminal</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=terminal&amp;diff=1462"/>
		<updated>2019-06-09T20:55:38Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La terminal es una interfaz de línea de comando que permite interactuar con la computadora. Al igual que cualquier GUI (por Graphical User Interface) con la que hayamos trabajado en Windows o Linux, la terminal nos permite acceder a directorios (carpetas) y archivos, generar nuevos archivos y moverlos a otras ubicaciones entre otro millón de cosas.&lt;br /&gt;
&lt;br /&gt;
Entonces, ¿porqué &amp;quot;complicarnos&amp;quot;  con la terminal si puedo hacer lo mismo con un par de clicks del mouse? Cuando queremos interactuar con la computadora de manera compleja, hacer tareas repetitivas o por ejemplo conectarnos de manera remota con otras computadoras, necesitamos saber usar la terminal.&lt;br /&gt;
&lt;br /&gt;
= ¿Cómo funciona? =&lt;br /&gt;
&lt;br /&gt;
Al abrir la terminal nos encontramos con una pantalla negra y en la primera linea algo como lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:terminal.png]]&lt;br /&gt;
&lt;br /&gt;
Esto va a ser &amp;lt;code&amp;gt;usuario@nombredelacomputadora:~$&amp;lt;/code&amp;gt;. Acá el &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; indica el directorio raíz y el &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; o &#039;&#039;&#039;prompt&#039;&#039;&#039; indica que la shell está esperando instrucciones.&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;shell&#039;&#039;&#039; es un programa que interpreta nuestras ordenes y las traduce en lenguaje computadora. A travez de la shell podemos hacer cosas tan simples como copiar un archivo con un simple comando hasta correr un modelo de simulación numérica.&lt;br /&gt;
&lt;br /&gt;
== Herramientras básicas ==&lt;br /&gt;
&lt;br /&gt;
Las herramientas básicas vienen pre-instaladas con el sistema operativo en en el paquete [https://wiki.debian.org/coreutils coreutils] (o GNU Core Utilities). Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
&lt;br /&gt;
Desktop     Downloads   Pictures      Test&lt;br /&gt;
Documents   Music       terminal.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este comando lista el contenido dentro del directorio actual. Y su nombre viene de &amp;quot;list&amp;quot;. Se puede extender las capacidades de los comandos con &#039;&#039;&#039;flags&#039;&#039;&#039; usando la siguiente sintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ [comando] -flags&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si quisieramos más información sobre los archivos y directorios que están en el directorio actual usamos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls -l&lt;br /&gt;
drwxr-xr-x  2 pao pao   4,0K may 19 15:24  Desktop&lt;br /&gt;
drwxr-xr-x 17 pao pao   4,0K mar 16 13:52  Documents&lt;br /&gt;
drwxr-xr-x 10 pao pao    16K jun  9 16:38  Downloads&lt;br /&gt;
drwxr-xr-x  2 pao pao   4,0K ene 19  2018  Music&lt;br /&gt;
drwxr-xr-x 19 pao pao   4,0K jun  8 18:35  Pictures&lt;br /&gt;
-rw-r--r--  1 pao pao  11132 jun  9 16:38  terminal.png&lt;br /&gt;
drwxr-xr-x  2 pao pao   4096 jun  9 17:54  Test&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existen una infinidad de comandos, cada uno con sus flags y a diferencia de una interfaz gráfica donde tenemos botones, al trabajar en la terminal es necesario conocerlos. Esto se aprende con práctica pero también googleando aquello que queremos resolver.&lt;br /&gt;
&lt;br /&gt;
== Navegando entre directorios ==&lt;br /&gt;
&lt;br /&gt;
Lo primero es saber donde estamos parados dentro de la computadora, para eso existe el comando &amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt; (que viene de &amp;quot;print working directory&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ pwd&lt;br /&gt;
/home/pao&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este caso estamos parados en el &#039;&#039;&#039;home&#039;&#039;&#039;. La respuesta de este comando puede ser distinta dependiendo del sistema operativo, pero dentro del mundo de linux no debería variar mucho.&lt;br /&gt;
&lt;br /&gt;
El home es la carpeta principal del usuario, donde se guardará todo. Pero por encima hay toda una estructura de archivos que organizan los programas instalados, las herramientas de sistema y los &amp;quot;homes&amp;quot; de otros usuarios dentro de la misma computadora.&lt;br /&gt;
&lt;br /&gt;
Otra manera de ver donde estamos, es revisando el contenido del directorio con &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; y reconoceer así el directorio.&lt;br /&gt;
&lt;br /&gt;
Si queremos &amp;quot;movernos&amp;quot; dentro de la computadora hacia otro directorio, el comando indicado es &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; (que vienen de &amp;quot;change directory&amp;quot;, para esta altura seguro ya descubrieron el patrón).&lt;br /&gt;
&lt;br /&gt;
Por ejemplo queremos movernos al directorio &amp;quot;Test&amp;quot; (ojo, shell es case sensitive, las mayusculas y minusculas no son intercambiables!):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cd Test&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este comando no devuelve nada pero si usamos &amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt;, veremos que ahora estamos en un nuevo directorio.&lt;br /&gt;
&lt;br /&gt;
Para volver al directorio anterior usamos &amp;lt;code&amp;gt;..&amp;lt;/code&amp;gt;, es un &amp;quot;directorio especial&amp;quot; que representa el directorio previo o parent directory. También existe un &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; que representa el directorio actual. Pueden verlos usando &amp;lt;code&amp;gt;$ ls -a&amp;lt;/code&amp;gt; para mostrar todos (&amp;quot;all&amp;quot;) los elementos en el directorio actual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cd ..&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Path absolutos y relativos ===&lt;br /&gt;
&lt;br /&gt;
En el ejemplo anterior usamos &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; para movernos y el nombre del directorio al cual queremos ir. Cómo el directorio Test estaba adentro del directorio de trabajo accedimos sin problemas pero si ubieramos estado en otro lado nos hubiera dicho que no existe un directorio Test. Esto es así porque le estamos dando el path relativo (relativo al directorio donde estamos parados). Pero &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; también puede interpretar la ubicación exacta o absoluta de un directorio. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cd /home/pao/Test&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algunos trucos ===&lt;br /&gt;
&lt;br /&gt;
Muchas veces escribimos mal el nombre de un directorio o archivo, a veces son super largos o el path absoluto es enorme. Existen varios atajos para hacernos la vida más simple:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Tab&amp;lt;/code&amp;gt;: La tecla Tab completa el nombre del archivo o directorio. Basta con escribir las primeras letras del nombre y luego con la tecla tab se termina de escribir automáticamente el nombre. [[Archivo:tabKey.png]]&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + a&amp;lt;/code&amp;gt;: Principio de línea. Se manda el cursos al principio de la línea de comando. También funciona la tecla Inicio.&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + a&amp;lt;/code&amp;gt;: Final de línea. Se manda el cursos al final de la línea de comando. O también la tecla Fin.&lt;br /&gt;
&lt;br /&gt;
== Manipulando archivos y directoios ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt;: Para crear directorios usamos el comando &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; (por supuesto de &amp;quot;make directory&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
$ mkdir Test2&lt;br /&gt;
$ ls&lt;br /&gt;
Desktop     Downloads   Pictures      Test&lt;br /&gt;
Documents   Music       terminal.png  Test2&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La ubicación del nuevo directorio dependerá de la ubicación relativa o absoluta que le dimos. En este caso, se creará en el directorio donde estamos trabajando.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;: si quisieramos copiar un archivo en otra ubicaación usamos &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt; (de &amp;quot;copy&amp;quot;). Este comando necesita saber que copiar y donde copiarlo: &amp;lt;code&amp;gt;cp [origen] [destino]&amp;lt;/code&amp;gt;, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cp [origen] [destino]&lt;br /&gt;
$ cp terminal.png Test&lt;br /&gt;
$ ls Test&lt;br /&gt;
$ terminal.png&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt; tiene una flag &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; que permite copiar recursivamente un directorio y su contenido.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt;: el comando &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; (&amp;quot;move&amp;quot;) permite mover un archivo (parecido al &amp;lt;code&amp;gt;ctrl+C&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;ctrl+V&amp;lt;/code&amp;gt; en una interfáz gráfica). Pero también permite cambiarle el nombre a un archivo si los &amp;quot;movemos&amp;quot; en el mismo lugar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ mv [origen] [destino]&lt;br /&gt;
$ mv Test/terminal.png Test/terminal2.png&lt;br /&gt;
$ ls Test&lt;br /&gt;
terminal2.png&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt;: si queremos borrar un archivo usamos &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt; (de &amp;quot;remove&amp;quot;). Para borrar directorios podemos agregar una flag. Pero cuidado esta acción es irreversible. La terminal no tiene papelera y no existe el &amp;lt;code&amp;gt;Ctrl+z&amp;lt;/code&amp;gt;, cuidado con con lo borran!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rm [fichero]&lt;br /&gt;
$ rm Test/terminal2.png&lt;br /&gt;
$ ls Test&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;: &amp;lt;I&amp;gt;&#039;list&#039;&amp;lt;/I&amp;gt;, lista el contenido de un directorio (un directorio es el equivalente de &#039;carpeta&#039; de Windows)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
20160324_bash.pdf  install.inf  prueba.bash  Terminal.png  test.bash&lt;br /&gt;
$ ls -l&lt;br /&gt;
total 244&lt;br /&gt;
-rw-r--r-- 1 lluis lluis 221654 Jun  6 10:49 20160324_bash.pdf&lt;br /&gt;
-rw-rw-r-- 1 lluis lluis    328 Apr 25 14:53 install.inf&lt;br /&gt;
-rwxr--r-- 1 lluis lluis    114 Jun  6 11:27 prueba.bash&lt;br /&gt;
-rw-r--r-- 1 lluis lluis  11172 Apr 11 16:27 Terminal.png&lt;br /&gt;
-rw-r--r-- 1 lluis lluis   4056 Jun  6 10:49 test.bash&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Atributos de un archivo ===&lt;br /&gt;
Al hacer un list con &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt;, nos aparecen la lista de elementos en el directorio con sus atributos:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;: lista el contenido de un directorio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls -l&lt;br /&gt;
[AtributosDueñx][AtributosGrupo][AtributosTodxs] [ID] [Dueñx] [Grupo] [Tamaño] [Fecha] [NombreFichero]&lt;br /&gt;
total 244&lt;br /&gt;
-rw-r--r-- 1 lluis lluis 221654 Jun  6 10:49 20160324_bash.pdf&lt;br /&gt;
-rw-rw-r-- 1 lluis lluis    328 Apr 25 14:53 install.inf&lt;br /&gt;
-rwxr--r-- 1 lluis lluis    114 Jun  6 11:27 prueba.bash&lt;br /&gt;
drwxr-xr-x 2 lluis lluis   4096 Jun  6 12:25 parTUXza&lt;br /&gt;
-rw-r--r-- 1 lluis lluis  11172 Apr 11 16:27 Terminal.png&lt;br /&gt;
-rwxr--r-- 1 lluis lluis   4056 Jun  6 10:49 test.bash&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el archivo pdf 20160324_bash.pdf tiene los siguientes atributos:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-rw-r--r-- 1 lluis lluis 221654 Jun  6 10:49 20160324_bash.pdf&amp;lt;/code&amp;gt;, fichero pdf&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;I&amp;gt;-rw-&amp;lt;/I&amp;gt;: El dueño del archivo sólo puede leerlo y modificarlo.&lt;br /&gt;
** &amp;lt;I&amp;gt;r--&amp;lt;/I&amp;gt;: El grupo sólo puede leerlo&lt;br /&gt;
** &amp;lt;I&amp;gt;r--&amp;lt;/I&amp;gt;: Todo el mundo sólo puede leerlo&lt;br /&gt;
** &amp;lt;I&amp;gt;lluis&amp;lt;/I&amp;gt;: Dueño del archivo&lt;br /&gt;
** &amp;lt;I&amp;gt;lluis&amp;lt;/I&amp;gt;: Grupo del archivo&lt;br /&gt;
** &amp;lt;I&amp;gt;221654&amp;lt;/I&amp;gt;: Tamaño en bytes del archivo&lt;br /&gt;
** &amp;lt;I&amp;gt;Jun  6 10:49&amp;lt;/I&amp;gt;: fecha de la última modificación del archivo&lt;br /&gt;
&lt;br /&gt;
Otros archivos tiene permisos de ejecución, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-rwxr--r-- 1 lluis lluis   4056 Jun  6 10:49 test.bash&amp;lt;/code&amp;gt;:   script de shell, &amp;lt;code&amp;gt;-rwx&amp;lt;/code&amp;gt; indica que sólo el dueño puede ejecutarlo.&lt;br /&gt;
* &amp;lt;code&amp;gt;drwxr-xr-x 2 lluis lluis   4096 Jun  6 12:25 parTUXza&amp;lt;/code&amp;gt;:    directorio (&amp;lt;code&amp;gt;drwx&amp;lt;/code&amp;gt;), para linux, los directorios son ejectuables para todos!&lt;br /&gt;
&lt;br /&gt;
== Comodines ==&lt;br /&gt;
&lt;br /&gt;
Los comodines son símbolos o expresiones que actual básicamente como cómodines y te permiten ahorrar tiempo. Por ejemplo &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; funcionan como cualquier cantidad de caracteres:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cp *.png Test/&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este caso todos los archivos que terminen con &amp;quot;.png&amp;quot; serán copiados a la carpeta Test, sin importar que nombre tengan antes del .png.&lt;br /&gt;
&lt;br /&gt;
Hay muchos otros, por ejemplo &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; es como  el &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; pero solo para un caracter. No es necesario aprenderlos a todos, es cuestión de práctica y a medida que los necesitamos.&lt;br /&gt;
&lt;br /&gt;
== Ayuda == &lt;br /&gt;
&lt;br /&gt;
Es posible acceder a la ayuda de un comando con una flag específica &amp;lt;code&amp;gt;-h --h --help&amp;lt;/code&amp;gt; (esto depende del comando). O en algunos casos, también está disponible la documentación completa a la que se accede con `man`.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ [comando] --h&lt;br /&gt;
$&lt;br /&gt;
$ man [comando]&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables de sistema ==&lt;br /&gt;
El sistema operativo se configura a través de unas variables de sistema generales&lt;br /&gt;
* &amp;lt;CODE&amp;gt;$HOME:&amp;lt;/CODE&amp;gt; Ubicación inicial al abrir una terminal cómo usuarix (&amp;lt;CODE&amp;gt;/home/[usuarix]&amp;lt;/CODE&amp;gt;)&lt;br /&gt;
* &amp;lt;CODE&amp;gt;$PATH:&amp;lt;/CODE&amp;gt; Directorios que ya están cargados automáticamente al abrir un terminal. Suelen ser directorios con aplicaciones, así no hace falta saber dónde se encuentran las aplicaciones. Por ejemplo:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
/home/lluis/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &amp;lt;CODE&amp;gt;$LD_LIBRARY_PATH:&amp;lt;/CODE&amp;gt; Librerias cargadas en el sistema&lt;br /&gt;
&lt;br /&gt;
= Shell scripting =&lt;br /&gt;
La shell es la envolvente del &#039;&#039;hardware&#039;&#039; y el kernel del ordenador. El usari.x. accede al kernel y a las componentes del ordenador a través de ella.&lt;br /&gt;
&lt;br /&gt;
Esta shell permite la ejecución de &#039;&#039;&#039;scripts&#039;&#039;&#039; para automatizar esas tareas que sean repetitivas. Estas &#039;&#039;&#039;scripts&#039;&#039;&#039; se pueden programar en distintas shells. En esta introducción se dan detalles de la &amp;lt;code&amp;gt;bash: bourn-again Shell&amp;lt;/code&amp;gt; (hay distitnas shells: csh, sh, ksh, ...). En estas shells se pueden utilizar todos los &amp;lt;I&amp;gt;coreutils&amp;lt;/I&amp;gt;. Estas scripts constituyen un lenguajde de programación interpreatado que es masivamente utilizando dentro del entorno linux&lt;br /&gt;
&lt;br /&gt;
Estas scripts de shell son programas ejecutables interpretados por el kernel. Así que tienen que tener permiso de ejecución. Se realiza con la aplicación &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; (&amp;lt;I&amp;gt;change mode&amp;lt;/I&amp;gt;, cambiar el modo):&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ chmod u+x [ScriptShell]&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
O bien directamente al llamar &amp;lt;ode&amp;gt;bash&amp;lt;/code&amp;gt; (si el script es de bash)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ bash [ScriptShell]&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El ejemplo más senzillo de script, con nombre &amp;lt;code&amp;gt;hola.bash&amp;lt;/code&amp;gt; (se elige la extensión &amp;lt;code&amp;gt;.bash&amp;lt;/code&amp;gt;, pero no es obligatorio)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Hola mundo!!&amp;quot;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* Al ejecutarse:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ./hola.bash&lt;br /&gt;
Hola mundo!!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* En la primera línea se dice que se va a ejecutar con &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conceptos básicos ==&lt;br /&gt;
Utilizando un script test llamado &amp;lt;code&amp;gt;test.bash&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;: carácter para comentarios&lt;br /&gt;
* &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;: carácter para concatenar líneas de código&lt;br /&gt;
* &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt;: impresión en la terminal&lt;br /&gt;
&lt;br /&gt;
* Variables: Se utilizan cómo &amp;lt;code&amp;gt;$[NombreVariable]&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;${[NombreVariable]}&amp;lt;/code&amp;gt;. Se asignan con &amp;lt;code&amp;gt;&#039;=&#039;&amp;lt;/Code&amp;gt; (sin espacios!!!)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
number=3&lt;br /&gt;
echo &amp;quot;Numero: &amp;quot;${number}&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ chmod u+x test.bash&lt;br /&gt;
$ ./test.bash&lt;br /&gt;
Numero: 3&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Asignación de un valor después de ejecutar un comando (con &amp;lt;code&amp;gt;``&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fecha=`date &amp;quot;+%Y/%m/%d&amp;quot;`&lt;br /&gt;
echo &amp;quot;HOY: &amp;quot;${fecha}&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
HOY: 2018/06/06&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* IF: Condición&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
valor=&#039;Hola&#039;&lt;br /&gt;
&lt;br /&gt;
if test ${valor} == &#039;Hola&#039;; then&lt;br /&gt;
  echo &amp;quot;Hello !&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;Goodbye&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Hello&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DO: bucles. Repetición de un número de veces una instrucción&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
hoy=`date +%Y%m%d`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;hoy: &amp;quot;${hoy}&lt;br /&gt;
&lt;br /&gt;
i=0&lt;br /&gt;
while test $i -le 10; do&lt;br /&gt;
  nuevodia=`date +%Y%m%d -d&amp;quot;${hoy} $i days&amp;quot;`&lt;br /&gt;
  echo &amp;quot;i: &amp;quot;$i&amp;quot; fecha:&amp;quot;${nuevodia}&lt;br /&gt;
  i=`expr $i + 1`&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
hoy: 20180611&lt;br /&gt;
i: 0 fecha:20180611&lt;br /&gt;
i: 1 fecha:20180612&lt;br /&gt;
i: 2 fecha:20180613&lt;br /&gt;
i: 3 fecha:20180614&lt;br /&gt;
i: 4 fecha:20180615&lt;br /&gt;
i: 5 fecha:20180616&lt;br /&gt;
i: 6 fecha:20180617&lt;br /&gt;
i: 7 fecha:20180618&lt;br /&gt;
i: 8 fecha:20180619&lt;br /&gt;
i: 9 fecha:20180620&lt;br /&gt;
i: 10 fecha:20180621&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Más ejemplos en [https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocKexterntools#BootCampIPSLpresentations-documentations-handsonsessions IPSL boot camp] [[File:20160324_bash.pdf]] y sus ejemplos [[File:test_bash.doc]] (antes de utilizar, renombrar cómo &amp;lt;code&amp;gt;test.bash&amp;lt;/code&amp;gt; y darle atributos de ejecución)&lt;br /&gt;
&lt;br /&gt;
= Entorno servidores/clústers =&lt;br /&gt;
&lt;br /&gt;
Los servidores y clúster de computación, son otras máquinas, con sus usuarixs y entorno linux. Normalmente se encuentran conectadas a internet y se accede a estas máquinas de manera remota des de otra computadora o llamada &amp;lt;I&amp;gt;&#039;local&#039;&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se acceden a ellos una vez se obtiene una cuenta de usuarix.&lt;br /&gt;
&lt;br /&gt;
== Acceso ==&lt;br /&gt;
El acceso a los clúster de computación (HPC del Inglés) o servidores se accede la mayoría de los casos via &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ssh [NombreUsuarioenServidor]@[nombreServidor].[domino]&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el CIMA dispone de un clúster de computación llamado &amp;lt;I&amp;gt;hydra&amp;lt;/I&amp;gt; y con el domino &amp;lt;code&amp;gt;cima.fcen.uba.ar&amp;lt;/code&amp;gt;, así que el acceso a él seria (Se introduce el pasword, sin que aparezca un cursor):&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ssh juan.perez@hhydra.cima.fcen.uba.ar&lt;br /&gt;
password&lt;br /&gt;
[juan.perez@hydra ~]$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* Una vex en el servidor/clúster el usuarix tiene un entorno linux estándard. Al trbajar en un espacio compartido se pide tener un poco más de cuidado que con la compu personal.&lt;br /&gt;
* Para salir, la instrucción &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
[juan.perez@hydra ~]$ exit&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copiado de ficheros ==&lt;br /&gt;
Para copiar ficheros se podrían utilizar herramientas gráficas, pero la experiencia recomienda hacerlo desdel terminal. Para tal caso, existen las instrucciones &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; (más potente y muy útil para sincronizar copias)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rsync [NombreUsuarixOrig]@[origen]:[fichero/directorio] [NombreUsuarixDest]@[destino]:[directorio] &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[NombreUsuarixOrig]&amp;lt;/code&amp;gt;: Nombre del usuarix en la máquina donde se encuentra el fichero o directorio a copiar&lt;br /&gt;
* &amp;lt;code&amp;gt;[origen]&amp;lt;/code&amp;gt;: nombre de la máquina y su doiminio (&amp;lt;code&amp;gt;[NombreMaquina].[dominio]&amp;lt;/code&amp;gt;) donde se encuentra el fichero o directorio &lt;br /&gt;
* &amp;lt;code&amp;gt;[fichero/directorio]&amp;lt;/code&amp;gt;: fichero o directorio a copiar&lt;br /&gt;
* &amp;lt;code&amp;gt;[NombreUsuarixDest]&amp;lt;/code&amp;gt;: Nombre del usuarix en la máquina donde se quiere copiar el fichero o directorio&lt;br /&gt;
* &amp;lt;code&amp;gt;[destino]&amp;lt;/code&amp;gt;: nombre de la máquina y dominio (&amp;lt;code&amp;gt;[NombreMaquina].[dominio]&amp;lt;/code&amp;gt;) a la cuál se quiere hacer la copia&lt;br /&gt;
* &amp;lt;code&amp;gt;[directorio]&amp;lt;/code&amp;gt;: nombre de directorio en la máquina destino donde se quiere hacer la copia&lt;br /&gt;
&lt;br /&gt;
Cuando se quiere copiar, siempre nos pedirá la clave de acceso de la máquina remota.&lt;br /&gt;
El destino o el origen no pueden ser los dos remotos. Uno tiene que ser una máquina local. Cuando es la máqiuna local, no se indica &amp;lt;code&amp;gt;[NombreUsuarx]@[maquina]&amp;lt;/code&amp;gt;&lt;br /&gt;
Si no se indica destino de la copia, se copia directamente en el &amp;lt;code&amp;gt;${HOME}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Copia de un fichero local al $HOME de hydra&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rsync documento.txt juan.perez@hydra.cima.fcen.uba.ar:&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* Copia de un fichero de hydra del directorio &amp;lt;code&amp;gt;${HOME}/experimentos/WRFsensSFC/run/&amp;lt;/code&amp;gt; a la máquina en local al directorio &amp;lt;code&amp;gt;${HOME}/estudios/WRFsensSFC/simulacion/control&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rsync juan.perez@hydra.cima.fcen.uba.ar:experimentos/WRFsensSFC/run/wrfout_d01_2002-12-01_00:00:00 estudios/WRFsensSFC/simulacion/control&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=terminal&amp;diff=1461</id>
		<title>terminal</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=terminal&amp;diff=1461"/>
		<updated>2019-06-09T20:30:57Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La terminal es una interfaz de línea de comando que permite interactuar con la computadora. Al igual que cualquier GUI (por Graphical User Interface) con la que hayamos trabajado en Windows o Linux, la terminal nos permite acceder a directorios (carpetas) y archivos, generar nuevos archivos y moverlos a otras ubicaciones entre otro millón de cosas.&lt;br /&gt;
&lt;br /&gt;
Entonces, ¿porqué &amp;quot;complicarnos&amp;quot;  con la terminal si puedo hacer lo mismo con un par de clicks del mouse? Cuando queremos interactuar con la computadora de manera compleja, hacer tareas repetitivas o por ejemplo conectarnos de manera remota con otras computadoras, necesitamos saber usar la terminal.&lt;br /&gt;
&lt;br /&gt;
= ¿Cómo funciona? =&lt;br /&gt;
&lt;br /&gt;
Al abrir la terminal nos encontramos con una pantalla negra y en la primera linea algo como lo siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:terminal.png]]&lt;br /&gt;
&lt;br /&gt;
Esto va a ser &amp;lt;code&amp;gt;usuario@nombredelacomputadora:~$&amp;lt;/code&amp;gt;. Acá el &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; indica el directorio raíz y el &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; o &#039;&#039;&#039;prompt&#039;&#039;&#039; indica que la shell está esperando instrucciones.&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;shell&#039;&#039;&#039; es un programa que interpreta nuestras ordenes y las traduce en lenguaje computadora. A travez de la shell podemos hacer cosas tan simples como copiar un archivo con un simple comando hasta correr un modelo de simulación numérica.&lt;br /&gt;
&lt;br /&gt;
== Herramientras básicas ==&lt;br /&gt;
&lt;br /&gt;
Las herramientas básicas vienen pre-instaladas con el sistema operativo en en el paquete [https://wiki.debian.org/coreutils coreutils] (o GNU Core Utilities). Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
&lt;br /&gt;
Desktop     Downloads   Movies      Pictures      Test&lt;br /&gt;
Documents   Library     Music       terminal.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este comando lista el contenido dentro del directorio actual. Y su nombre viene de &amp;quot;list&amp;quot;. Se puede extender las capacidades de los comandos con &#039;&#039;&#039;flags&#039;&#039;&#039; usando la siguiente sintaxis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ [comando] -flags&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si quisieramos más información sobre los archivos y directorios que están en el directorio actual usamos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls -l&lt;br /&gt;
&lt;br /&gt;
.....&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Existen una infinidad de comandos, cada uno con sus flags y a diferencia de una interfaz gráfica donde tenemos botones, al trabajar en la terminal es necesario conocerlos. Esto se aprende con práctica pero también googleando aquello que queremos resolver.&lt;br /&gt;
&lt;br /&gt;
== Navegando entre directorios ==&lt;br /&gt;
&lt;br /&gt;
Lo primero es saber donde estamos parados dentro de la computadora, para eso existe el comando &amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt; (que viene de &amp;quot;print working directory&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ pwd&lt;br /&gt;
/home/pao&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este caso estamos parados en el &#039;&#039;&#039;home&#039;&#039;&#039;. La respuesta de este comando puede ser distinta dependiendo del sistema operativo, pero dentro del mundo de linux no debería variar mucho.&lt;br /&gt;
&lt;br /&gt;
El home es la carpeta principal del usuario, donde se guardará todo. Pero por encima hay toda una estructura de archivos que organizan los programas instalados, las herramientas de sistema y los &amp;quot;homes&amp;quot; de otros usuarios dentro de la misma computadora.&lt;br /&gt;
&lt;br /&gt;
Otra manera de ver donde estamos, es revisando el contenido del directorio con &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; y reconoceer así el directorio.&lt;br /&gt;
&lt;br /&gt;
Si queremos &amp;quot;movernos&amp;quot; dentro de la computadora hacia otro directorio, el comando indicado es &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; (que vienen de &amp;quot;change directory&amp;quot;, para esta altura seguro ya descubrieron el patrón).&lt;br /&gt;
&lt;br /&gt;
Por ejemplo queremos movernos al directorio &amp;quot;Test&amp;quot; (ojo, shell es case sensitive, las mayusculas y minusculas no son intercambiables!):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cd Test&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este comando no devuelve nada pero si usamos &amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt;, veremos que ahora estamos en un nuevo directorio.&lt;br /&gt;
&lt;br /&gt;
Para volver al directorio anterior usamos &amp;lt;code&amp;gt;..&amp;lt;/code&amp;gt;, es un &amp;quot;directorio especial&amp;quot; que representa el directorio previo o parent directory. También existe un &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; que representa el directorio actual. Pueden verlos usando &amp;lt;code&amp;gt;$ ls -a&amp;lt;/code&amp;gt; para mostrar todos (&amp;quot;all&amp;quot;) los elementos en el directorio actual&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cd ..&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Path absolutos y relativos ===&lt;br /&gt;
&lt;br /&gt;
En el ejemplo anterior usamos &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; para movernos y el nombre del directorio al cual queremos ir. Cómo el directorio Test estaba adentro del directorio de trabajo accedimos sin problemas pero si ubieramos estado en otro lado nos hubiera dicho que no existe un directorio Test. Esto es así porque le estamos dando el path relativo (relativo al directorio donde estamos parados). Pero &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; también puede interpretar la ubicación exacta o absoluta de un directorio. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cd /home/pao/Test&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algunos trucos ===&lt;br /&gt;
&lt;br /&gt;
Muchas veces escribimos mal el nombre de un directorio o archivo, a veces son super largos o el path absoluto es enorme. Existen varios atajos para hacernos la vida más simple:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Tab&amp;lt;/code&amp;gt;: La tecla Tab completa el nombre del archivo o directorio. Basta con escribir las primeras letras del nombre y luego con la tecla tab se termina de escribir automáticamente el nombre. [[Archivo:tabKey.png]]&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + a&amp;lt;/code&amp;gt;: Principio de línea. Se manda el cursos al principio de la línea de comando. También funciona la tecla Inicio.&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl + a&amp;lt;/code&amp;gt;: Final de línea. Se manda el cursos al final de la línea de comando. O también la tecla Fin.&lt;br /&gt;
&lt;br /&gt;
== Manipulando archivos y directoios ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt;: Para crear directorios usamos el comando &amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt; (por supuesto de &amp;quot;make directory&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
$ mkdir Test2&lt;br /&gt;
$ ls&lt;br /&gt;
Desktop     Downloads   Movies      Pictures      Test&lt;br /&gt;
Documents   Library     Music       terminal.png  Test2&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La ubicación del nuevo directorio dependerá de la ubicación relativa o absoluta que le dimos. En este caso, se creará en el directorio donde estamos trabajando.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;: si quisieramos copiar un archivo en otra ubicaación usamos &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt; (de &amp;quot;copy&amp;quot;). Este comando necesita saber que copiar y donde copiarlo: &amp;lt;code&amp;gt;cp [origen] [destino]&amp;lt;/code&amp;gt;, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cp [origen] [destino]&lt;br /&gt;
$ cp terminal.png Test&lt;br /&gt;
$ ls Test&lt;br /&gt;
$ terminal.png&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt; tiene una flag &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; que permite copiar recursivamente un directorio y su contenido.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt;: el comando &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; (&amp;quot;move&amp;quot;) permite mover un archivo (parecido al &amp;lt;code&amp;gt;ctrl+C&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;ctrl+V&amp;lt;/code&amp;gt; en una interfáz gráfica). Pero también permite cambiarle el nombre a un archivo si los &amp;quot;movemos&amp;quot; en el mismo lugar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ mv [origen] [destino]&lt;br /&gt;
$ mv Test/terminal.png Test/terminal2.png&lt;br /&gt;
$ ls Test&lt;br /&gt;
terminal2.png&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt;: si queremos borrar un archivo usamos &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt; (de &amp;quot;remove&amp;quot;). Para borrar directorios podemos agregar una flag. Pero cuidado esta acción es irreversible. La terminal no tiene papelera y no existe el &amp;lt;code&amp;gt;Ctrl+z&amp;lt;/code&amp;gt;, cuidado con con lo borran!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rm [fichero]&lt;br /&gt;
$ rm Test/terminal2.png&lt;br /&gt;
$ ls Test&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;: &amp;lt;I&amp;gt;&#039;list&#039;&amp;lt;/I&amp;gt;, lista el contenido de un directorio (un directorio es el equivalente de &#039;carpeta&#039; de Windows)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
20160324_bash.pdf  install.inf  prueba.bash  Terminal.png  test.bash&lt;br /&gt;
$ ls -l&lt;br /&gt;
total 244&lt;br /&gt;
-rw-r--r-- 1 lluis lluis 221654 Jun  6 10:49 20160324_bash.pdf&lt;br /&gt;
-rw-rw-r-- 1 lluis lluis    328 Apr 25 14:53 install.inf&lt;br /&gt;
-rwxr--r-- 1 lluis lluis    114 Jun  6 11:27 prueba.bash&lt;br /&gt;
-rw-r--r-- 1 lluis lluis  11172 Apr 11 16:27 Terminal.png&lt;br /&gt;
-rw-r--r-- 1 lluis lluis   4056 Jun  6 10:49 test.bash&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Atributos de un archivo ===&lt;br /&gt;
Al hacer un list con &amp;lt;code&amp;gt;ls -l&amp;lt;/code&amp;gt;, nos aparecen la lista de elementos en el directorio con sus atributos:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;: lista el contenido de un directorio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ls -l&lt;br /&gt;
[AtributosDueñx][AtributosGrupo][AtributosTodxs] [ID] [Dueñx] [Grupo] [Tamaño] [Fecha] [NombreFichero]&lt;br /&gt;
total 244&lt;br /&gt;
-rw-r--r-- 1 lluis lluis 221654 Jun  6 10:49 20160324_bash.pdf&lt;br /&gt;
-rw-rw-r-- 1 lluis lluis    328 Apr 25 14:53 install.inf&lt;br /&gt;
-rwxr--r-- 1 lluis lluis    114 Jun  6 11:27 prueba.bash&lt;br /&gt;
drwxr-xr-x 2 lluis lluis   4096 Jun  6 12:25 parTUXza&lt;br /&gt;
-rw-r--r-- 1 lluis lluis  11172 Apr 11 16:27 Terminal.png&lt;br /&gt;
-rwxr--r-- 1 lluis lluis   4056 Jun  6 10:49 test.bash&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el archivo pdf 20160324_bash.pdf tiene los siguientes atributos:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-rw-r--r-- 1 lluis lluis 221654 Jun  6 10:49 20160324_bash.pdf&amp;lt;/code&amp;gt;, fichero pdf&lt;br /&gt;
&lt;br /&gt;
** &amp;lt;I&amp;gt;-rw-&amp;lt;/I&amp;gt;: El dueño del archivo sólo puede leerlo y modificarlo.&lt;br /&gt;
** &amp;lt;I&amp;gt;r--&amp;lt;/I&amp;gt;: El grupo sólo puede leerlo&lt;br /&gt;
** &amp;lt;I&amp;gt;r--&amp;lt;/I&amp;gt;: Todo el mundo sólo puede leerlo&lt;br /&gt;
** &amp;lt;I&amp;gt;lluis&amp;lt;/I&amp;gt;: Dueño del archivo&lt;br /&gt;
** &amp;lt;I&amp;gt;lluis&amp;lt;/I&amp;gt;: Grupo del archivo&lt;br /&gt;
** &amp;lt;I&amp;gt;221654&amp;lt;/I&amp;gt;: Tamaño en bytes del archivo&lt;br /&gt;
** &amp;lt;I&amp;gt;Jun  6 10:49&amp;lt;/I&amp;gt;: fecha de la última modificación del archivo&lt;br /&gt;
&lt;br /&gt;
Otros archivos tiene permisos de ejecución, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-rwxr--r-- 1 lluis lluis   4056 Jun  6 10:49 test.bash&amp;lt;/code&amp;gt;:   script de shell, &amp;lt;code&amp;gt;-rwx&amp;lt;/code&amp;gt; indica que sólo el dueño puede ejecutarlo.&lt;br /&gt;
* &amp;lt;code&amp;gt;drwxr-xr-x 2 lluis lluis   4096 Jun  6 12:25 parTUXza&amp;lt;/code&amp;gt;:    directorio (&amp;lt;code&amp;gt;drwx&amp;lt;/code&amp;gt;), para linux, los directorios son ejectuables para todos!&lt;br /&gt;
&lt;br /&gt;
== Comodines ==&lt;br /&gt;
&lt;br /&gt;
Los comodines son símbolos o expresiones que actual básicamente como cómodines y te permiten ahorrar tiempo. Por ejemplo &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; funcionan como cualquier cantidad de caracteres:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ cp *.png Test/&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este caso todos los archivos que terminen con &amp;quot;.png&amp;quot; serán copiados a la carpeta Test, sin importar que nombre tengan antes del .png.&lt;br /&gt;
&lt;br /&gt;
Hay muchos otros, por ejemplo &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; es como  el &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; pero solo para un caracter. No es necesario aprenderlos a todos, es cuestión de práctica y a medida que los necesitamos.&lt;br /&gt;
&lt;br /&gt;
== Ayuda == &lt;br /&gt;
&lt;br /&gt;
Es posible acceder a la ayuda de un comando con una flag específica &amp;lt;code&amp;gt;-h --h --help&amp;lt;/code&amp;gt; (esto depende del comando). O en algunos casos, también está disponible la documentación completa a la que se accede con `man`.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ [comando] --h&lt;br /&gt;
$&lt;br /&gt;
$ man [comando]&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variables de sistema ==&lt;br /&gt;
El sistema operativo se configura a través de unas variables de sistema generales&lt;br /&gt;
* &amp;lt;CODE&amp;gt;$HOME:&amp;lt;/CODE&amp;gt; Ubicación inicial al abrir una terminal cómo usuarix (&amp;lt;CODE&amp;gt;/home/[usuarix]&amp;lt;/CODE&amp;gt;)&lt;br /&gt;
* &amp;lt;CODE&amp;gt;$PATH:&amp;lt;/CODE&amp;gt; Directorios que ya están cargados automáticamente al abrir un terminal. Suelen ser directorios con aplicaciones, así no hace falta saber dónde se encuentran las aplicaciones. Por ejemplo:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
/home/lluis/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &amp;lt;CODE&amp;gt;$LD_LIBRARY_PATH:&amp;lt;/CODE&amp;gt; Librerias cargadas en el sistema&lt;br /&gt;
&lt;br /&gt;
= Shell scripting =&lt;br /&gt;
La shell es la envolvente del &#039;&#039;hardware&#039;&#039; y el kernel del ordenador. El usari.x. accede al kernel y a las componentes del ordenador a través de ella.&lt;br /&gt;
&lt;br /&gt;
Esta shell permite la ejecución de &#039;&#039;&#039;scripts&#039;&#039;&#039; para automatizar esas tareas que sean repetitivas. Estas &#039;&#039;&#039;scripts&#039;&#039;&#039; se pueden programar en distintas shells. En esta introducción se dan detalles de la &amp;lt;code&amp;gt;bash: bourn-again Shell&amp;lt;/code&amp;gt; (hay distitnas shells: csh, sh, ksh, ...). En estas shells se pueden utilizar todos los &amp;lt;I&amp;gt;coreutils&amp;lt;/I&amp;gt;. Estas scripts constituyen un lenguajde de programación interpreatado que es masivamente utilizando dentro del entorno linux&lt;br /&gt;
&lt;br /&gt;
Estas scripts de shell son programas ejecutables interpretados por el kernel. Así que tienen que tener permiso de ejecución. Se realiza con la aplicación &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; (&amp;lt;I&amp;gt;change mode&amp;lt;/I&amp;gt;, cambiar el modo):&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ chmod u+x [ScriptShell]&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
O bien directamente al llamar &amp;lt;ode&amp;gt;bash&amp;lt;/code&amp;gt; (si el script es de bash)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ bash [ScriptShell]&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El ejemplo más senzillo de script, con nombre &amp;lt;code&amp;gt;hola.bash&amp;lt;/code&amp;gt; (se elige la extensión &amp;lt;code&amp;gt;.bash&amp;lt;/code&amp;gt;, pero no es obligatorio)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo &amp;quot;Hola mundo!!&amp;quot;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* Al ejecutarse:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ./hola.bash&lt;br /&gt;
Hola mundo!!&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* En la primera línea se dice que se va a ejecutar con &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conceptos básicos ==&lt;br /&gt;
Utilizando un script test llamado &amp;lt;code&amp;gt;test.bash&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;: carácter para comentarios&lt;br /&gt;
* &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;: carácter para concatenar líneas de código&lt;br /&gt;
* &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt;: impresión en la terminal&lt;br /&gt;
&lt;br /&gt;
* Variables: Se utilizan cómo &amp;lt;code&amp;gt;$[NombreVariable]&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;${[NombreVariable]}&amp;lt;/code&amp;gt;. Se asignan con &amp;lt;code&amp;gt;&#039;=&#039;&amp;lt;/Code&amp;gt; (sin espacios!!!)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
number=3&lt;br /&gt;
echo &amp;quot;Numero: &amp;quot;${number}&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ chmod u+x test.bash&lt;br /&gt;
$ ./test.bash&lt;br /&gt;
Numero: 3&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Asignación de un valor después de ejecutar un comando (con &amp;lt;code&amp;gt;``&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
fecha=`date &amp;quot;+%Y/%m/%d&amp;quot;`&lt;br /&gt;
echo &amp;quot;HOY: &amp;quot;${fecha}&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
HOY: 2018/06/06&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* IF: Condición&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
valor=&#039;Hola&#039;&lt;br /&gt;
&lt;br /&gt;
if test ${valor} == &#039;Hola&#039;; then&lt;br /&gt;
  echo &amp;quot;Hello !&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;Goodbye&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
Hello&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DO: bucles. Repetición de un número de veces una instrucción&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
hoy=`date +%Y%m%d`&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;hoy: &amp;quot;${hoy}&lt;br /&gt;
&lt;br /&gt;
i=0&lt;br /&gt;
while test $i -le 10; do&lt;br /&gt;
  nuevodia=`date +%Y%m%d -d&amp;quot;${hoy} $i days&amp;quot;`&lt;br /&gt;
  echo &amp;quot;i: &amp;quot;$i&amp;quot; fecha:&amp;quot;${nuevodia}&lt;br /&gt;
  i=`expr $i + 1`&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
** Ejecutando&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
hoy: 20180611&lt;br /&gt;
i: 0 fecha:20180611&lt;br /&gt;
i: 1 fecha:20180612&lt;br /&gt;
i: 2 fecha:20180613&lt;br /&gt;
i: 3 fecha:20180614&lt;br /&gt;
i: 4 fecha:20180615&lt;br /&gt;
i: 5 fecha:20180616&lt;br /&gt;
i: 6 fecha:20180617&lt;br /&gt;
i: 7 fecha:20180618&lt;br /&gt;
i: 8 fecha:20180619&lt;br /&gt;
i: 9 fecha:20180620&lt;br /&gt;
i: 10 fecha:20180621&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Más ejemplos en [https://forge.ipsl.jussieu.fr/igcmg_doc/wiki/DocKexterntools#BootCampIPSLpresentations-documentations-handsonsessions IPSL boot camp] [[File:20160324_bash.pdf]] y sus ejemplos [[File:test_bash.doc]] (antes de utilizar, renombrar cómo &amp;lt;code&amp;gt;test.bash&amp;lt;/code&amp;gt; y darle atributos de ejecución)&lt;br /&gt;
&lt;br /&gt;
= Entorno servidores/clústers =&lt;br /&gt;
&lt;br /&gt;
Los servidores y clúster de computación, son otras máquinas, con sus usuarixs y entorno linux. Normalmente se encuentran conectadas a internet y se accede a estas máquinas de manera remota des de otra computadora o llamada &amp;lt;I&amp;gt;&#039;local&#039;&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se acceden a ellos una vez se obtiene una cuenta de usuarix.&lt;br /&gt;
&lt;br /&gt;
== Acceso ==&lt;br /&gt;
El acceso a los clúster de computación (HPC del Inglés) o servidores se accede la mayoría de los casos via &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ssh [NombreUsuarioenServidor]@[nombreServidor].[domino]&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el CIMA dispone de un clúster de computación llamado &amp;lt;I&amp;gt;hydra&amp;lt;/I&amp;gt; y con el domino &amp;lt;code&amp;gt;cima.fcen.uba.ar&amp;lt;/code&amp;gt;, así que el acceso a él seria (Se introduce el pasword, sin que aparezca un cursor):&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ ssh juan.perez@hhydra.cima.fcen.uba.ar&lt;br /&gt;
password&lt;br /&gt;
[juan.perez@hydra ~]$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* Una vex en el servidor/clúster el usuarix tiene un entorno linux estándard. Al trbajar en un espacio compartido se pide tener un poco más de cuidado que con la compu personal.&lt;br /&gt;
* Para salir, la instrucción &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
[juan.perez@hydra ~]$ exit&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copiado de ficheros ==&lt;br /&gt;
Para copiar ficheros se podrían utilizar herramientas gráficas, pero la experiencia recomienda hacerlo desdel terminal. Para tal caso, existen las instrucciones &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; (más potente y muy útil para sincronizar copias)&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rsync [NombreUsuarixOrig]@[origen]:[fichero/directorio] [NombreUsuarixDest]@[destino]:[directorio] &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[NombreUsuarixOrig]&amp;lt;/code&amp;gt;: Nombre del usuarix en la máquina donde se encuentra el fichero o directorio a copiar&lt;br /&gt;
* &amp;lt;code&amp;gt;[origen]&amp;lt;/code&amp;gt;: nombre de la máquina y su doiminio (&amp;lt;code&amp;gt;[NombreMaquina].[dominio]&amp;lt;/code&amp;gt;) donde se encuentra el fichero o directorio &lt;br /&gt;
* &amp;lt;code&amp;gt;[fichero/directorio]&amp;lt;/code&amp;gt;: fichero o directorio a copiar&lt;br /&gt;
* &amp;lt;code&amp;gt;[NombreUsuarixDest]&amp;lt;/code&amp;gt;: Nombre del usuarix en la máquina donde se quiere copiar el fichero o directorio&lt;br /&gt;
* &amp;lt;code&amp;gt;[destino]&amp;lt;/code&amp;gt;: nombre de la máquina y dominio (&amp;lt;code&amp;gt;[NombreMaquina].[dominio]&amp;lt;/code&amp;gt;) a la cuál se quiere hacer la copia&lt;br /&gt;
* &amp;lt;code&amp;gt;[directorio]&amp;lt;/code&amp;gt;: nombre de directorio en la máquina destino donde se quiere hacer la copia&lt;br /&gt;
&lt;br /&gt;
Cuando se quiere copiar, siempre nos pedirá la clave de acceso de la máquina remota.&lt;br /&gt;
El destino o el origen no pueden ser los dos remotos. Uno tiene que ser una máquina local. Cuando es la máqiuna local, no se indica &amp;lt;code&amp;gt;[NombreUsuarx]@[maquina]&amp;lt;/code&amp;gt;&lt;br /&gt;
Si no se indica destino de la copia, se copia directamente en el &amp;lt;code&amp;gt;${HOME}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Copia de un fichero local al $HOME de hydra&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rsync documento.txt juan.perez@hydra.cima.fcen.uba.ar:&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
* Copia de un fichero de hydra del directorio &amp;lt;code&amp;gt;${HOME}/experimentos/WRFsensSFC/run/&amp;lt;/code&amp;gt; a la máquina en local al directorio &amp;lt;code&amp;gt;${HOME}/estudios/WRFsensSFC/simulacion/control&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
$ rsync juan.perez@hydra.cima.fcen.uba.ar:experimentos/WRFsensSFC/run/wrfout_d01_2002-12-01_00:00:00 estudios/WRFsensSFC/simulacion/control&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=Archivo:terminal.png&amp;diff=1460</id>
		<title>Archivo:terminal.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=Archivo:terminal.png&amp;diff=1460"/>
		<updated>2019-06-09T19:41:19Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: Screenshot terminal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot terminal&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=parTUXza&amp;diff=1383</id>
		<title>parTUXza</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=parTUXza&amp;diff=1383"/>
		<updated>2019-05-14T14:36:23Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;El Centro de Investigaciones del Mar y la Atmósfera ([http://www.cima.fcen.uba.ar/ CIMA]) y el Departamento de Ciencias de la Atmósfera y los Océanos ([http://www.at.fcen.uba.ar/ DCAO]) de la Facultad de Ciencias Exactas y Naturales ([https://exactas.uba.ar/ FCEyN]) de la Universidad de Buenos Aires ([http://www.uba.ar/ UBA]), organizán un evento de difusión del sistema operativo GNU/Linux, la parTUXza.&lt;br /&gt;
&lt;br /&gt;
La tercera edición del evento está repartida en dos días:&lt;br /&gt;
* Martes 11 de junio de 2019: Instalación del sistema operativo GNU/Linux&lt;br /&gt;
* Jueves 13 de junio de 2019: Introducción al manejo y herramientas del sistema operativo GNU/Linux&lt;br /&gt;
&lt;br /&gt;
Ambas actividades se realizarán en el pabellón II, Facultad de Ciencias Exactas y Naturales (FCEyN), en Ciudad Universitaria de la UBA.&lt;br /&gt;
&lt;br /&gt;
Intendente Güiraldes 2160 - Pabellón 2 &lt;br /&gt;
&lt;br /&gt;
Ciudad Universitaria&lt;br /&gt;
&lt;br /&gt;
C1428EGA - C.A. Buenos Aires - Argentina&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTA:&#039;&#039;&#039; para una mejor organización agradeceríamos a les asistentes que rellanaran el siguiente formulario&lt;br /&gt;
&lt;br /&gt;
[https://goo.gl/forms/iIvzN2crLVmrSOuf2 formulario parTUXza]&lt;br /&gt;
&lt;br /&gt;
= parTUXza =&lt;br /&gt;
&lt;br /&gt;
La [http://www.cima.fcen.uba.ar/ CIMA]/[http://www.at.fcen.uba.ar/ DCAO] `Linux install party&#039; pretende popularizar el manejo del sistema operativo GNU/Linux. Por este motivo organiza una &#039;install party&#039; durante la cual se facilitará la instalación de dicho software a les asistentes al evento.&lt;br /&gt;
&lt;br /&gt;
En la presente edición se instalará la versión GNU/Linux [https://www.debian.org/ Debian 9] de nombre stretch.&lt;br /&gt;
&lt;br /&gt;
Martes 11 de junio. Aula 8 del DCAO del pabellón II de [https://exactas.uba.ar/ FCEyN] (2do piso lado río)&lt;br /&gt;
&lt;br /&gt;
== Programa ==&lt;br /&gt;
* 13:00-14:00 Ayuda a librerar el espacio de disco para quienes no lo hayan podido realizar previamente&lt;br /&gt;
* 14:00-14:30 Introducción al sistema operativo GNU/Linux [[Archivo:IntroLinux.pdf]]&lt;br /&gt;
* 14:30-17:30 Instalación del sistema operativo GNU/Linux [[InstallDebian9]]&lt;br /&gt;
* 17:30-18:00 Recomendaciones de software para la sesión de introducción a GNU/Linux&lt;br /&gt;
&lt;br /&gt;
== Requisitos ==&lt;br /&gt;
* Traer una computadora personal.&lt;br /&gt;
* Disponer de al menos 250 GB de espacio de disco duro libre y defragmentado. Seguir las instrucciones de [[PrepararDiscoWin]] para quienes que no sepan cómo hacerlo.&lt;br /&gt;
* Disponer de la información básica de las características del ordenador: espacio de disco duro libre, versión y key-product de Windows instalada (quien la quiera mantener), memoria y bits (32 o 64) de la CPU.&lt;br /&gt;
* La computadora tiene que tener WIFI y/o entrada de red Ethernet.&lt;br /&gt;
&lt;br /&gt;
= Introducción al GNU/Linux =&lt;br /&gt;
Se darán charlas y talleres de 1 hora a fin de visualizar software básico de GNU/Linux para usuaries nueves. Son pequeñas introducciones de libre asistencia. La persona interesada puede asistir a la que le parezca más conveniente a partir de un programa de las sesiones. Se busca dar a conocer los elementos básicos del sistema GNU/Linux, así como de software de una marcada utilidad en las ciéncias de la Tierra.&lt;br /&gt;
&lt;br /&gt;
Jueves 13 de junio. &lt;br /&gt;
* Mañana: Aula 9 del [http://www.at.fcen.uba.ar/ DCAO] 2do piso, lado río&lt;br /&gt;
* Tarde: Aula 9 del [http://www.at.fcen.uba.ar/ DCAO] 2do piso, lado río&lt;br /&gt;
&lt;br /&gt;
== Programa ==&lt;br /&gt;
&lt;br /&gt;
* 09:00-10:00: Introducción a la [[interfaz linux]]: Cómo manejarse con el entorno de ventanas de Linux, personalización, equivalencias de software Windows-GNU/Linux, ... &lt;br /&gt;
* 10:00-11:00: Introducción a la  [[terminal]]: Perder el medio a la pantalla negra, bash scripting e interacción con servidores&lt;br /&gt;
* 11:00-11:30: Introducción a [[Editores]]: vi, vim, emacs, gedit, ... &lt;br /&gt;
* 11:30-12:30: Introducción a [[repositorios]]: Introducción a SVN y GIT&lt;br /&gt;
* 14:00-15:00: Introducción a [[CDO/NCOs]]: Instrucciones básicas&lt;br /&gt;
* 15:00-16:00: Introducción a [[R]]: Instrucciones básicas &lt;br /&gt;
* 16:00-17:00: Introducción a [[python 3]]: Instrucciones básicas&lt;br /&gt;
* 17:00-18:00: Sesión para dudas/consultas...&lt;br /&gt;
&lt;br /&gt;
== Requisitos ==&lt;br /&gt;
Se recomienda asistir con un ordenador con el sistema GNU/Linux instalado para relizar los distintos ejercicios y prácticas planteadas en cada sesión.&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=732</id>
		<title>R</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=732"/>
		<updated>2018-06-06T02:18:40Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- línea sólo para empezar la página --&amp;gt;&lt;br /&gt;
[https://www.r-project.org/ R] es un entorno y lenguaje de programación con un enfoque al análisis estadístico. Es un software libre utilizado ampliamente en la comunidad científica, principalmente para análisis estadísticos y visualización. &lt;br /&gt;
&lt;br /&gt;
R es un lenguaje Orientado, es decir, las variables, datos, funciones, resultados, etc., se guardan en la memoria de la computadora en forma de objetos&lt;br /&gt;
con un nombre específico. El usuario puede modificar o manipular estos objetos con operadores (aritméticos, lógicos, y comparativos) y funciones (que a su vez son objetos).&lt;br /&gt;
&lt;br /&gt;
A las funcionalidades base de R se suman las librerías o paquetes específicos que amplían el uso del lenguaje. Actualmente en CRAN (el repositorio oficial de R) hay 12576 paquetes disponibles. &lt;br /&gt;
&lt;br /&gt;
R puede usarse desde la terminal pero también existe [https://www.rstudio.com/ RStudio], una interfaz gŕafica (IDE) que permite utilizar R de manera fácil y rápida.&lt;br /&gt;
&lt;br /&gt;
Para la introducción a R de la Linux ParTUXza nesecitarás R y RStudio instalados.&lt;br /&gt;
&lt;br /&gt;
=== Instrucciones para instalar R ===&lt;br /&gt;
&lt;br /&gt;
Desde la terminal de tu computadora abrí el siguiente archivo con algún editor de texto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y copia la siguiente línea al final:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cran.rstudio.com/bin/linux/debian stretch-cran34/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Luego desde la terminal ejecutá lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install dirmngr&lt;br /&gt;
sudo apt-key adv --keyserver keys.gnupg.net --recv-key &#039;E19F5F87128899B192B1A2C2AD5F960A256A04AF&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actualizá el repositorio:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y ahora si, instalá R base:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install r-base&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instrucciones para instalar RStudio ===&lt;br /&gt;
&lt;br /&gt;
Descargá el instalador con el siguiente comando desde la terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://download1.rstudio.org/rstudio-xenial-1.1.414-amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y ahora, a instalar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i rstudio-xenial-1.1.414-amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Materiales para el taller ===&lt;br /&gt;
&lt;br /&gt;
Podés descargar la presentación del taller en pdf desde [https://www.dropbox.com/s/rtie50rpl7k9mob/Intro_R_taller_6_6_2018.pptx.pdf?dl=0 aquí.]&lt;br /&gt;
&lt;br /&gt;
Para los ejemplos prácticos necesitarás el código y el archivo de datos que se encuentran [https://www.dropbox.com/s/nds8qqg3pzs6jjt/IntroduccionR.zip?dl=0 acá.] Descomprimilos y guardalos en alguna carpeta juntos.&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=698</id>
		<title>R</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=698"/>
		<updated>2018-06-03T23:38:27Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- línea sólo para empezar la página --&amp;gt;&lt;br /&gt;
[https://www.r-project.org/ R] es un entorno y lenguaje de programación con un enfoque al análisis estadístico. Es un software libre utilizado ampliamente en la comunidad científica, principalmente para análisis estadísticos y visualización. &lt;br /&gt;
&lt;br /&gt;
R es un lenguaje Orientado, es decir, las variables, datos, funciones, resultados, etc., se guardan en la memoria de la computadora en forma de objetos&lt;br /&gt;
con un nombre específico. El usuario puede modificar o manipular estos objetos con operadores (aritméticos, lógicos, y comparativos) y funciones (que a su vez son objetos).&lt;br /&gt;
&lt;br /&gt;
A las funcionalidades base de R se suman las librerías o paquetes específicos que amplían el uso del lenguaje. Actualmente en CRAN (el repositorio oficial de R) hay 12576 paquetes disponibles. &lt;br /&gt;
&lt;br /&gt;
R puede usarse desde la terminal pero también existe [https://www.rstudio.com/ RStudio], una interfaz gŕafica (IDE) que permite utilizar R de manera fácil y rápida.&lt;br /&gt;
&lt;br /&gt;
Para la introducción a R de la Linux ParTUXza nesecitarás R y RStudio instalados.&lt;br /&gt;
&lt;br /&gt;
=== Instrucciones para instalar R ===&lt;br /&gt;
&lt;br /&gt;
Desde la terminal de tu computadora abrí el siguiente archivo con algún editor de texto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y copia la siguiente línea al final:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cran.rstudio.com/bin/linux/debian stretch-cran34/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Luego desde la terminal ejecutá lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install dirmngr&lt;br /&gt;
sudo apt-key adv --keyserver keys.gnupg.net --recv-key &#039;E19F5F87128899B192B1A2C2AD5F960A256A04AF&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actualizá el repositorio:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y ahora si, instalá R base:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install r-base&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instrucciones para instalar RStudio ===&lt;br /&gt;
&lt;br /&gt;
Descargá el instalador con el siguiente comando desde la terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://download1.rstudio.org/rstudio-xenial-1.1.414-amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y ahora, a instalar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i rstudio-xenial-1.1.414-amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Materiales para el taller ===&lt;br /&gt;
Proximamente&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=697</id>
		<title>R</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=697"/>
		<updated>2018-06-03T23:37:45Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- línea sólo para empezar la página --&amp;gt;&lt;br /&gt;
[https://www.r-project.org/ R] es un entorno y lenguaje de programación con un enfoque al análisis estadístico. Es un software libre utilizado ampliamente en la comunidad científica, principalmente para análisis estadísticos y visualización. &lt;br /&gt;
&lt;br /&gt;
R es un lenguaje Orientado, es decir, las variables, datos, funciones, resultados, etc., se guardan en la memoria de la computadora en forma de objetos&lt;br /&gt;
con un nombre específico. El usuario puede modificar o manipular estos objetos con operadores (aritméticos, lógicos, y comparativos) y funciones (que a su vez son objetos).&lt;br /&gt;
&lt;br /&gt;
A las funcionalidades base de R se suman las librerías o paquetes específicos que amplían el uso del lenguaje. Actualmente en CRAN (el repositorio oficial de R) hay 12576 paquetes disponibles. &lt;br /&gt;
&lt;br /&gt;
R puede usarse desde la terminal pero también existe [https://www.rstudio.com/ RStudio], una interfaz gŕafica (IDE) que permite utilizar R de manera fácil y rápida.&lt;br /&gt;
&lt;br /&gt;
Para la introducción a R de la Linux ParTUXza nesecitarás R y RStudio instalados.&lt;br /&gt;
=== Instrucciones para instalar R ===&lt;br /&gt;
&lt;br /&gt;
Desde la terminal de tu computadora abrí el siguiente archivo con algún editor de texto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y copia la siguiente línea al final:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cran.rstudio.com/bin/linux/debian stretch-cran34/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Luego desde la terminal ejecutá lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install dirmngr&lt;br /&gt;
sudo apt-key adv --keyserver keys.gnupg.net --recv-key &#039;E19F5F87128899B192B1A2C2AD5F960A256A04AF&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actualizá el repositorio:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y ahora si, instalá R base:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install r-base&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instrucciones para instalar RStudio ===&lt;br /&gt;
&lt;br /&gt;
Descargá el instalador con el siguiente comando desde la terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://download1.rstudio.org/rstudio-xenial-1.1.414-amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y ahora, a instalar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i rstudio-xenial-1.1.414-amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Materiales para el taller ===&lt;br /&gt;
Proximamente&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=696</id>
		<title>R</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=696"/>
		<updated>2018-06-03T23:35:57Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- línea sólo para empezar la página --&amp;gt;&lt;br /&gt;
[https://www.r-project.org/ R] es un entorno y lenguaje de programación con un enfoque al análisis estadístico. Es un software libre utilizado ampliamente en la comunidad científica, principalmente para análisis estadísticos y visualización. &lt;br /&gt;
&lt;br /&gt;
R es un lenguaje Orientado, es decir, las variables, datos, funciones, resultados, etc., se guardan en la memoria de la computadora en forma de objetos&lt;br /&gt;
con un nombre específico. El usuario puede modificar o manipular estos objetos con operadores (aritméticos, lógicos, y comparativos) y funciones (que a su vez son objetos).&lt;br /&gt;
&lt;br /&gt;
A las funcionalidades base de R se suman las librerías o paquetes específicos que amplían el uso del lenguaje. Actualmente en CRAN (el repositorio oficial de R) hay 12576 paquetes disponibles. &lt;br /&gt;
&lt;br /&gt;
R puede usarse desde la terminal pero también existe [https://www.rstudio.com/ RStudio], una interfaz gŕafica (IDE) que permite utilizar R de manera fácil y rápida.&lt;br /&gt;
&lt;br /&gt;
=== Instrucciones para instalar R ===&lt;br /&gt;
&lt;br /&gt;
Desde la terminal de tu computadora abrí el siguiente archivo con algún editor de texto&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y copia la siguiente línea al final:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cran.rstudio.com/bin/linux/debian stretch-cran34/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Luego desde la terminal ejecutá lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install dirmngr&lt;br /&gt;
sudo apt-key adv --keyserver keys.gnupg.net --recv-key &#039;E19F5F87128899B192B1A2C2AD5F960A256A04AF&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actualizá el repositorio:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y ahora si, instalá R base:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install r-base&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Instrucciones para instalar RStudio ===&lt;br /&gt;
&lt;br /&gt;
Descargá el instalador con el siguiente comando desde la terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://download1.rstudio.org/rstudio-xenial-1.1.414-amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y ahora, a instalar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i rstudio-xenial-1.1.414-amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
	<entry>
		<id>http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=695</id>
		<title>R</title>
		<link rel="alternate" type="text/html" href="http://wiki.cima.fcen.uba.ar/index.php?title=R&amp;diff=695"/>
		<updated>2018-06-03T23:18:50Z</updated>

		<summary type="html">&lt;p&gt;Paola.corrales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- línea sólo para empezar la página --&amp;gt;&lt;br /&gt;
[https://www.r-project.org/ R] es un entorno y lenguaje de programación con un enfoque al análisis estadístico. Es un software libre utilizado ampliamente en la comunidad científica, principalmente para análisis estadísticos y visualización. &lt;br /&gt;
&lt;br /&gt;
R es un lenguaje Orientado, es decir, las variables, datos, funciones, resultados, etc., se guardan en la memoria de la computadora en forma de objetos&lt;br /&gt;
con un nombre específico. El usuario puede modificar o manipular estos objetos con operadores (aritméticos, lógicos, y comparativos) y funciones (que a su vez son objetos).&lt;br /&gt;
&lt;br /&gt;
A las funcionalidades base de R se suman las librerías o paquetes específicos que amplían el uso del lenguaje. Actualmente en CRAN (el repositorio oficial de R) hay 12576 paquetes disponibles. &lt;br /&gt;
&lt;br /&gt;
R puede usarse desde la terminal pero también existe [https://www.rstudio.com/ RStudio], una interfaz gŕafica (IDE) que permite utilizar R de manera fácil y rápida.&lt;/div&gt;</summary>
		<author><name>Paola.corrales</name></author>
	</entry>
</feed>