Curso Acelerado De Unix, Linea De Comandos, Y Manejo Basico Del Tema Del Software Open Source, Para Artistas Liberados De Ventanas Colgadas Inutilmente

preparate unos mates, imprimi este mail y sentate con tiempo delante de la compu.

asegurate que la mac tenga acceso a internet.

asegurate tambien de haber instalado Xcode; esto es fundamental para lo que vamos a hacer ahora; buscalo en el CD de Tiger, en la carpeta “Xcode Tools” (fijate en el attachment xcode.png); tenes un instalador para Xcode, dale nomas sin miedo; instalalo con las opciones “by default”

terminal

en el finder, anda al menu “Go”, submenu “Utilities” (tengo la compu en ingles, sori). tambien podes hacer shift+manzana+u para abrir la carpeta “/Applications/Utilities”.

en la ventana que aparece, busca una aplicacion llamada “Terminal”. no, nada que ver con los enfermos. para encontrarla rapidamente, tipea “T”, “E” y “R” en el teclado rapidamente y veras que el sistema te la selecciona.

abri “terminal”

veras una ventana que aparece con un cursor y una tilde. en mi caso, la ventana se parece a esto:

si, mi compu se llama “Eratosthenes”. otro dia te explico.

en tu caso tendra otros colores y otro texto, pero eso no importa ahora. un dia te explico como se hace para personalizar el asunto; en las preferencias de Terminal podes cambiar los colores (yo uso este formato desde hace aƱos, pero cada cual a lo suyooooooo).

carpetas

el “~” o tilde significa “home”, es decir, en el mac es un “shortcut” hacia “/Users/adrian” en mi caso, o “/Users/pirulo” en el tuyo, si tu nombre de usuario es pirulo, cosa que desconozco.

la “/” barra vertical significa la raiz del disco duro de donde buteo el sistema, en el mac es el icono del disco arriba de todo a la derecha en el finder.

para ubicar otros discos, usas “/Volumes”, por ejemplo, si conectas un disco externo a la mac, y el disco se llama “pirulo” en el finder, en la linea de comando lo podes ir a buscar con un “cd /Volumes/pirulo”, asi de facil.

cd es “change directory”. fijate que si, estando en “~” haces “cd Desktop” estaras en el Desktop del usuario conectado actualmente. es el mismo desktop que ves encima del fondo de pantalla, ni mas, ni menos. ahora veras como es esto.

podes hacer “cd /Applications” y veras todas las aplicaciones si tipeas “ls” (ele ese); el comando ls te “listea” los contenidos de la carpeta.

cd ~ te lleva a tu home de vuelta

hasta ahi vamos bien?

hace cd ~/Desktop

y ahora hace esto: mkdir test

no le des cualquier nombre, usa “test” ya que usare esta carpeta durante todo el tutorial; veras que en tu escritorio aparece una carpeta nueva llamada, precisamente, “test”. asi de facil.

ahora metete en esa carpeta nueva, con un “cd test” tendria que alcanzar. para salir de ahi, “cd ..” (cd-espacio-dos puntos) y con eso volvemos al escritorio. basico. y con “ls” podes ver los contenidos. basico.

tambien se pueden borrar carpetas, enteras, incluso con contenido pero eso es para otra vez; no borres la carpeta test, la usaremos dentro de un rato.

para limpiar la pantallita, tipea “clear”. tambien podes usar “manzana+k” pero no es estandar unix, solo para mac.

editar texto

ahora hace “vim archivo.txt” (si, “vi” como el pasado del verbo ver en brasilero, con eme al final)

aparece un editor de texto, medio raro pero que es lo mas.

ahora tenes que seguir escrupulosamente las indicaciones que te voy a dar, ya que no hay menuse.

tipea “i” (la letra i) que significa “insertar” (linda actividad, si las hay)

ahora empeza a escribir texto, lo que se te ocurra

cuando termines de escribir, apreta la tecla “esc” (escape, arriba de todo a la izquierda en el teclado)

ahora para guardar el texto y salir, tipea “:x” (dos puntos x)

mira en el finder, tenes un “archivo.txt” en tu carpeta “test” en el escritorio. el finder mantiene la coherencia visual.

vim es un editor de texto para el que hay que conocer los comandos, no queda otra; ya te mandare mas comandos. por ejemplo, si entras en vim sin haber dado el nombre del archivo antes y queres guardar lo tipeado, tipea “esc” para pasar en modo comando y “:w archivo.txt” para “escribir” (write) el contenido en el archivo.txt. si queres salir sin escribir nada, tipea “:q!” (dos puntos - cu - signo de exclamacion) que es un “file/exit/no quiero guardar gracias”, pero todo en 3 caracteres.

parco el creador de vim, si los hay.

y asi volves a la sempiterna linea de comandos.

por ahora hace lo siguiente (tipea la secuencia de comandos siguiente); basicamente vamos a tu “home” y vamos a crear un archivo especial:

cd ~
vim .vimrc

tipea “i” para empezar a entrar texto, y tipea lo siguiente:

set number
set autoindent
syntax on
set tabstop=4
set showmode
set showcmd
set mouse=a
set nowrap

tipea “esc” y “:x” para guardar la cosa en el disco.

el archivo “.vimrc” es un archivo oculto; en unix todo archivo que empieza por un punto es oculto. y es el archivo de preferencias de vim (los archivos de preferencias en unix terminan en “rc”, que no se que quiere decir).

ahora abri de vuelta el .vimrc con el comando “vim .vimrc” y veras la diferencia.

preferencias de terminal

en unix hay varios programas que hacen linea de comando: los tres mas conocidos son “sh”, “csh”, “bash” y “tcsh” (yo uso este ultimo). el programa “terminal” es simplemente una aplicacion que “contiene” uno de estas lineas de comando. nada mas. el “sh” significa siempre “shell” o “cascara”, ya que se dice que la linea de comando “envuelve” el OS.

los comandos entre las diferentes lineas de comando cambian ligeramente, pero los comandos estandar son identicos. cuanto comando, comandante.

para nuestro ejercicio, vos fijate de que estas usando “bash”:

cuando abris una ventana de terminal con bash, se parece a esto

el mundo open source

ahora tipea lo siguiente:

vim ~/.bash_login

y adentro, tipeas “i” para entrar en modo de insercion, y tipea lo siguiente (o copy pastealo)

export PATH="/usr/local/bin:/usr/local/sbin:$PATH"

y apreta “esc” y luego “:x” para grabar el archivo y salir de vim.

si, ya se, es criptico, no te preocupes que ya iras entendiendo. por lo pronto, como veras, vim, en su uso basico, no es tan complicado, es siempre lo mismo, y esta bueno conocer un editor de texto (que ademas, es una masa).

lo que acabamos de hacer es un programa; para ejecutarlo, tipea . ~/.bash_login (es decir, y ATENCION con esto: punto-espacio-tilde-barra-punto-bash_login, ok?)

no dice nada la pantalla, todo bien.

ahora movete a tu carpeta “test”, la que creaste un par de etapas antes: “cd ~/Desktop/test”

tipea los siguientes comandos, uno despues de otro, sin chistar; es decir, tipeas un comando, y esperas a que termine de ejecutarse. ahi ejecutas el otro, y asi sucesivamente (lo mejor es que hagas copy paste)

curl -O ftp://ftp.gnu.org/gnu/readline/readline-5.1.tar.gz
tar xzvf readline-5.1.tar.gz
cd readline-5.1
./configure --prefix=/usr/local
make
sudo make install
cd ..

bueno, habras notado de que despues del comando “sudo make install” el sistema te pide el password; tipealo y listo.

“sudo” es “super user do”, es decir, es pedirle al sistema unix que haga algo extremadamente sensible, que solamente el usuario administrador total, superusuario, hiperman, supradios de la computadora, puede hacer: el usuario root, que aunque no lo veamos, siempre esta.

felicitaciones, acabas de compilar tu primer proyecto open source.

lo que has hecho ahi arriba es lo siguiente:

  1. bajar de una url (curl) un fichero zipeado (formato .tar.gz) del proyecto gnu, llamado readline, version 5.1.
  2. luego lo descomprimiste
  3. te metiste en la carpeta resultante de la descompresion
  4. configuraste la compilacion segun tu propia computadora
  5. hiciste (“make”) el binario mediante compilacion
  6. y lo instalaste como superusuario (“make install”)
  7. finalmente, volves a la carpeta superior en la jerarquia carpetistica.

“make” es un programa que sirve para automatizar compilaciones complejas, con muchas etapas y dependencias; la idea es que “configure” genera un “makefile” que es ejecutado por make. asi funciona esto. y el binario final, esta perfectamente adaptado a tu computadora. esta compilado para ella. mejor, imposible.

vamos por otro; el lenguaje ruby, ultima version disponible, la 1.8.4:

curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.4.tar.gz
tar xzvf ruby-1.8.4.tar.gz
cd ruby-1.8.4
./configure --prefix=/usr/local --enable-pthread --with-readline-dir=/usr/local
make
sudo make install
cd ..

como siempre, asegurate de copiar rigurosamente los comandos, preferentemente copy/paste.

sigamos, para instalar “rubygems”:

curl -O http://rubyforge.org/frs/download.php/5207/rubygems-0.8.11.tgz
tar xzvf rubygems-0.8.11.tgz
cd rubygems-0.8.11
sudo /usr/local/bin/ruby setup.rb
cd ..

y ahora, vamos a cambiar de comando, para instalar “rails”, el framework de creacion de aplicaciones web, que se instala mediante rubygems (comando “gem”):

sudo gem install rails --include-dependencies

bueno, ya con esto tendras suficiente. otro dia vemos para mysql ;)

mira en la carpeta “test” en tu escritorio, tenes el codigo fuente de las tres aplicaciones open source, para que veas como son, y los makefile y todo eso, y ahora sabes usar un editor de texto, asi que te invito a que tipees esto y que veas que bueno esta “vim”:

vim ~/Desktop/test/ruby-1.8.4/array.c

es un archivo de codigo fuente en lenguaje C, del proyecto ruby, escrito por el GENIO ABSOLUTO DE LA PROGRAMACION MUNDIAL, BARRILETE COSMICO DE QUE PLANETA VINISTE matsumoto. y con colores, lineas, todo lo que hace falta para leer codigo comodamente.

espero no haberte mareado :)