Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tutoriallinux PDF
Tutoriallinux PDF
Néstor Aguirre
Grupo de Quı́mica Teórica
Universidad Nacional de Colombia
Versión preliminar
31 de agosto de 2007
1. Motivación
En el campo de quı́mica teórica, la simulación o cálculo de propiedades de un sistema molecular de
relevancia quı́mica, hace necesario el uso de una gran capacidad de cómputo y por lo tanto requiere un
sistema operativo flexible y totalmente manipulable, para obtener el máximo de su capacidad. Entorno a
esta idea, históricamente la gran mayorı́a de aplicaciones cientı́ficas orientadas a modelamiento de sistemas
moleculares se han desarrollado en sistemas basados en Unix, como lo es Linux, ... ese gran monstruo al
que muchos le temen. Esta guı́a ha sido desarrollada para que usted logre sobrevivir en un ambiente linux
cuando solo dispone de una consola; vale la pena aclarar, que linux dispone de entornos gráficos bastante
flexibles que permitirı́an una analogı́a directa con Windows, pero el mensaje es ... ¡¡ El máximo poder de
linux está en la lı́nea de comandos !!
1
Figura 1: Linea de Tiempo
2. Distribuciones Linux
Actualmente se encuentran una gran variedad de distribuciones de GNU/Linux, las cuales difieren
principalmente en su forma de administración y en su riqueza visual, pero siempre en el fondo son el
mismo sistema. En la figura 1 se puede observar a grandes rasgos las distribuciones mas populares hoy en
dı́a en orden cronológico de aparición teniendo en cuenta su descendientes directos.
Según mi experiencia personal, si usted tiene un gran temor de usar GNU/linux pero almenos le genera
una cierta curiosidad puede usar las distribuciones Live CD como Knoppix1 ; las cuales no se necesitan
instalar en un disco duro, tan solo se cargan en memoria RAM, por lo tanto son excelentes ya que no
va a modificar ni dañar su tan preciada instalación de Windows; este método solo permitirá que usted
1 http://www.knoppix.net/
2
se familiarice con el entorno GNU/linux y realice uno que otro trabajo sencillo. Sin embargo, si usted
ya ha decidido que linux es una buena razón para trasnochar debe decidirse por una de las siguientes
distribuciones que yo recomendarı́a: Slackware, openSUSE o Debian.
Slackware es la distribución mas limpia, en el sentido que posee los paquetes de software necesarios,
su instalación requiere desde 2 cds para un sistema usual, hasta 4 cds con programas adicionales y experi-
mentales que se pueden obtener de la red2 . La interfaz del programa de instalación es por texto, y necesita
un mayor conocimiento de Linux que la mayorı́a de las otras distribuciones. Esto puede ser una desventaja
para usuarios principiantes, pero no representa mayor dificultad para usuarios intermedios o avanzados.
Es ideal si usted no dispone de una conexión permanente a internet. El único inconveniente que Slackware
posee, corresponde al hecho que su configuración es bastante compleja, ya que esencialmente está orientado
a programadores, tanto ası́ que generalmente no se consigue software en su formato de instalción nativo
( *.tgz ), por lo tanto practicamente todo hay que compilarlo antes de instalarlo. Su administración es
básicamente a través de la lı́nea de comandos y edición de los archivos de configuración de cada paquete
de software. El valor agregado a esto es que usted obtendrá un sistema operativo con exactamente lo que
quiere, ¡¡¡ nada de procesos que desperdicien memoria o procesador !!!, un sistema operativo exactamente
a su medida y con absoluta estabilidad.
OpenSUSE es fácilmente la distribución mas sencilla de instalar, administrar y usar, practicamente
todo se puede hacer con un click, además que gráficamente en muy vistoso. Posee un paquete de software
para su administación supremamente avanzado conocido como Yast, desde el cual se puede configurar todo;
desde la imagen de fondo de escritorio, hasta la administración de un servidor web. Es ideal si usted no
dispone de una conexión permanente a internet, pues posee una gran cantidad de paquetes en los cds de
instalación. Su desventaja radica en que el administrador practicamente pierde el control del sistema ( se
dañó Yast y se daño SuSE ), además que consume muchos recursos, es decir, que no funcionará fluidamente
en computadores con bajas capacidades. Su instalación requiere de 5 cds para un sistema usual, hasta 7
cds para uso de software propietario y manejo de multiples idiomas o 1 dvd que incluye los primeros 5 cds,
que se pueden obtener de la red3 . Su instalación es bastante intuitiva pues está guiada a través de una
vistosa interface gráfica con menús de ayuda en el idioma que desee.
Debian GNU/Linux se encuentra en un nivel intermedio de complejidad. Es distribuido en tres
versiones:
sarge ( stable o estable ): es la versión establizada de Debian y es la recomendada para un uso en
producción o a nivel empresarial.
etch ( testing o de pruebas ): es la versión de pruebas de Debian, posee paquetes que han estado
previamente en la versión inestable obviamente con muchos menos errores, es la recomendada para
un sistema de escritorio. De aquı́ saldrá la futura versión estable.
sid ( unstable o inestable ): es la versión inestable de Debian y corresponde a la versión que usan los
desarrolladores del proyecto.
La distribución que yo le recomendarı́a es “etch”. Debian es perfecto cuando se dispone de una conec-
ción permanente a internet, ya que poseee un administrador de paquetes supremamente avanzado, el cual
entre muchas cosas más, revisará dependencias y hará cumplirlas automaticamente al instalar un paquete
y además lo configurará; éste es conocido como apt. Ası́ apt le permitirá vivir eternamente de actuali-
zaciones. Además es la distribución que tiene mayor número de plataformas soportadas. Para instalarlo
tiene básicamente dos modalidades: La modalidad usual, que corresponde a bajar todos los cds para su
instalación; pero no es una buena solución ya que solo para la versión estable son 14 cds4 y para etch 22
cds5 y la instalación por red, que corresponde a bajar cerca de 100 Mb6 , para quemar en un cd e instalar
el sistema básico para posteriormente bajar todos los paquetes que requiera por red. Personalmente ésta
es mi distribución preferida.
2 http://slackware.mirrors.easynews.com/linux/slackware/slackware-11.0-iso/
3 http://es.opensuse.org/Released Version
4 http://cdimage.debian.org/debian-cd/current/i386/iso-cd/
5 http://cdimage.debian.org/cdimage/weekly-builds/i386/iso-cd/
6 http://www.debian.org/devel/debian-installer/
3
3. Comandos básicos
El tutorial se basa en una serie de ejemplos que usted tiene que seguir secuencialmente para que tengan
sentido. En la definición de comandos los parámetros aparecerán en letra italica; si son opcionales estarán
encerrados entre parentesis angulares “[parámetro]” y si son excluyentes aparecerán como “( parámetro 1
|| parámetro 2 )”, es decir se escribirá el parámetro 1 o el 2.
Ahora hay que entrar en materia. Sea cual sea la distribución linux que usted haya elegido, tomaré como
punto de partida que usted ya ha sido capaz de instalarla correctamente o si no por lo menos ha utilizado
un liveCD y por lo tanto está ejecutando linux.
Lo primero que usted va a observar es una linea que dice login:, ahi introducirá el nombre de usua-
rio. porteriormente el le preguntará la contraseña password:. Como usted fué el que instaló el sistema
debe conocer estos valores. Muchas distribuciones linux inicializan directamente en ambiente gráfico, como
openSUSE o Knoppix, ası́ que para seguir este tutorial deberá presionar Ctrl+Alt+F1, para pasar a una
terminal.7
Una vez usted ha escrito correctamente el nombre de usuario y contraseña, le aparecerá un una serie
de letras que finalizan con alguno de los simbolos $ o #, lo cual dependerá de si ha entrado al sistema
como un usuario normal o como administrador8 respectivamente. Es este momento usted se encuentra
inmerso en una shell o mejor en una linea de comandos interactiva. Es costrumbre en linux la existencia
de programas que hacen cosas especı́ficas para que el usuario los mezcle y genera un programa mucho mas
robusto a través de un lenguaje de scrips, el arte de esto se conoce como programación en shell, lo cual no
es motivo de este tutorial; como se dijo anteriormente, se va a trabajar tan solo los comandos básicos que
le permitirán al menos sobrevivir en linux.
Antes de comenzar vale la pena tener en cuenta una serie de ayudas que la interface de lı́nea de
comandos nos ofrece, como por ejemplo el autocompletado y revisión del manual del comando de interés.
Autocompletado: Es una opción que nos permite ahorrar tiempo en escritura y se accede a ella a
través de la tecla TAB. Es decir que si usted escribe las letras, por ejemplo “ls” y posteriormente
TAB+TAB, la shell le escribirá en pantalla todos los comandos o archivos que comienzan por las
letras “ls”, pero si es el único comando o archivo que existe comenzando por “ls” con un solo TAB
bastará y automáticamente se completatará.
$ ls <TAB+TAB>
ls lsdev.pl lsmod.modutils lspgpot
lsattr lshal lsof lsusb
lsdev lsmod lspci
$ ls /usr/share/awk/g <TAB>
$ ls /usr/share/awk/group.awk
Manuales: Si usted no se acuerda de especı́ficamente que es lo qué hace un comando o mejor de
como debe usarlo, escriba anteponiendo al comando de interés en comando man, por ejemplo para
ver el manual del comando ls ...
$ man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.
7 Todo Linux dispone de almenos de seis terminales de texto y seis terminales gráficas a las cuales se accede
4
Mandatory arguments to long options are mandatory for short options
too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
...
SEE ALSO
The full documentation for ls is maintained as a Texinfo manual. If
the info and ls programs are properly installed at your site, the com-
mand
info ls
$ cd
$ wget http://www.docentes.unal.edu.co/areyesv/docs/QT3-guia-linux.tar.gz
--07:27:47-- http://www.docentes.unal.edu.co/areyesv/docs/QT3-guia-linux.tar.gz
=> ‘QT3-guia-linux.tar.gz’
Resolving www.docentes.unal.edu.co... 168.176.160.26
Connecting to www.docentes.unal.edu.co|168.176.160.26|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 213,119 (208K) [application/pdf]
Ahora hay que descomprimir el archivo y ver su contenido, esto con los siguientes comandos
5
$ tar xfz QT3-guia-linux.tar.gz
$ cd TutorialLinux
$ ls
$ ls CO
Aunque no entenda que fue lo que se hizo, no importa pues el motivo de este tutorial es que al final
por lo menos entienda los anteriores pasos.
A partir de los anteriores comandos, se puede observar que tendremos la siguiente estructura de direc-
torios con la cual trabajaremos
TutorialLinux/
|--- atomoDeCarbono.out
|--- bencenoIR.out
|--- CO
| |--- co.dat
| |--- co.inp
| |--- coIR.dat
| |--- coIR.inp
| |--- coIR.out
| |--- co.out
|--- hfv0.7.tar.gz
|--- listaDeEnergiasSTO-3G
|--- optimizacionBenceno.out
|--- winskin-0.11.zip
pwd:
Imprime en pantalla el directorio sobre el cual $ pwd
está localizado /home/nestor/TutorialLinux
cd [dir-dest]
Cambia de directorio $ cd /usr/local
$ pwd
/usr/local
Si no se selecciona ningún directorio destino, $ cd
por omisión “cd” lo envı́a al directorio “home” $ pwd
del usuario. /home/nestor
6
ls [directorio]
Muestra el contenido del directorio $ cd /usr/local
$ ls
Si no se selecciona un directorio, “ls” mostrará los
archivos del directorio en el cual se encuentra Adobe games lib sbin src
bin include man share
mkdir nombre-del-nuevo-directorio
Crea un nuevo directorio $ ls /home/nestor/TutorialLinux
atomoDeCarbono.out listaDeEnergiasSTO-3G
bencenoIR.out optimizacionBenceno.out
CO winskin-0.11.zip
hfv0.7.tar.gz
$ cd
$ mkdir TutorialLinux/prueba
$ ls TutorialLinux
atomoDeCarbono.out listaDeEnergiasSTO-3G
bencenoIR.out optimizacionBenceno.out
CO prueba
hfv0.7.tar.gz winskin-0.11.zip
rm -r directorio
Remueve un directorio con todo su contenido $ rm -r TutorialLinux/prueba
$ ls TutorialLinux
¡¡¡ Peligro, este comando borra bencenoIR.out optimizacionBenceno.out
recursivamente todo el contenido del CO winskin-0.11.zip
hfv0.7.tar.gz
directorio y una vez borrado no se
puede recuperar la información !!!
7
mv ( arch-fuente || dir-dest ) ( arch-dest || dir-
dest ) $ mv prueba.out prueba2.out
$ ls
Mueve un archivo o directorio.
También es usado para renombrar un archivo o atomoDeCarbono.out listaDeEnergiasSTO-3G
directorio bencenoIR.out optimizacionBenceno.out
CO prueba2.out
CO.old winskin-0.11.zip
hfv0.7.tar.gz
rm archivo
Remueve un archivo $ rm prueba2.data
$ ls
atomoDeCarbono.out hfv0.7.tar.gz
bencenoIR.out listaDeEnergiasSTO-3G
CO optimizacionBenceno.out
CO.old winskin-0.11.zip
3.3. Busqueda
find dir-inicial -name “patron”
Busca un directorio o archivo desde un directorio $ cd
$ find TutorialLinux/ -name ”*.out”
inicial de manera recursiva y con un patrón dado
TutorialLinux/CO/co.out
En el ejemplo se buscan todos los archivos que es TutorialLinux/CO/coIR.out
TutorialLinux/optimizacionBenceno.out
estén en la carpeta TutorialLinux, que terminen TutorialLinux/atomoDeCarbono.out
por las letras “.out” TutorialLinux/bencenoIR.out
TutorialLinux/CO.old/co.out
TutorialLinux/CO.old/coIR.out
8
cat archivo
Muestra un archivo completo $ cat listaDeEnergiasSTO-3G
#<Atomic number> <energy>
En el ejemplo la salida de more y cat coin- 1 -0.4665818504
ciden ya que la longitud del archivo no es la 2 -2.8077839566
suficiente para verlo por páginas 3 -7.3155260056
4 -14.3518804007
5 -24.1489886649
6 -37.0895866208
7 -53.5545361135
8 -73.6618169280
9 -97.9865050330
10 -126.6045250888
head archivo
Muestra las primeras lineas de un archivo $ head listaDeEnergiasSTO-3G
#<Atomic number> <energy>
Por omisión muestra las primeras 10 lineas del 1 -0.4665818504
archivo, pero éste número se puede modificar 2 -2.8077839566
3 -7.3155260056
agregando la opción -n #, donde # sustituye 4 -14.3518804007
por el número de lı́neas que se desean mostrar. 5 -24.1489886649
6 -37.0895866208
7 -53.5545361135
8 -73.6618169280
9 -97.9865050330
$ head -m 3 listaDeEnergiasSTO-3G
#<Atomic number> <energy>
1 -0.4665818504
2 -2.8077839566
tail archivo
Muestra las últimas lineas de un archivo $ tail listaDeEnergiasSTO-3G
1 -0.4665818504
Por omisión muestra las últimas 10 lineas del 2 -2.8077839566
archivo, pero éste número se puede modificar 3 -7.3155260056
agregando la opción -n #, donde # se sustituye 4 -14.3518804007
5 -24.1489886649
por el número de lı́neas que se desean mostrar.
6 -37.0895866208
7 -53.5545361135
8 -73.6618169280
9 -97.9865050330
10 -126.6045250888
$ tail -n 3 listaDeEnergiasSTO-3G
8 -73.6618169280
9 -97.9865050330
10 -126.6045250888
En la parte inferior aparecen los comandos disponibles y deben interpretarse como ∧ X = Crtl+x
9
$ pico listaDeEnergiasSTO-3G
GNU nano 1.9.99pre3 File: listaDeEnergiasSTO-3G
[ Read 11 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
vim archivo
Es un editor de texto avanzado, el cual manipula todo a través de comandos.
10
$ vim listaDeEnergiasSTO-3G
Gran cantidad de software distribuido para linux se encuentra en formato .tar.gz ası́ que es in-
dispensable saber manejarlo
...
hfv0.7/src/repulsionTest.f90
hfv0.7/src/PrimitiveGaussian_Class.f90
hfv0.7/src/integralsTest
hfv0.7/src/PuntualParticle_Class.f90
hfv0.7/src/RepulsionPrimitive_Class.f90
$ ls
atomoDeCarbono.out CO hfv0.7 listaDeEnergiasSTO-3G winskin-0.11.zip
bencenoIR.out CO.old hfv0.7.tar.gz optimizacionBenceno.out
$ ls hfv0.7
lib mod src
unzip archivo.zip
Descomprime archivos en el formato *.zip
Este formato de compresión es el mas popular en Windows, ası́ que tenı́a que incluirlo.
11
$ unzip winskin-0.11.zip
Archive: winskin-0.11.zip
creating: winskin/
inflating: winskin/winutils.dll
creating: winskin/pixmaps/
inflating: winskin/pixmaps/winskin_close.gif
inflating: winskin/pixmaps/winskin_replace.gif
inflating: winskin/pixmaps/winskin_menu.gif
inflating: winskin/pixmaps/winskin_resize2.gif
inflating: winskin/pixmaps/winskin_move.gif
inflating: winskin/pixmaps/winskin_resize.gif
inflating: winskin/pixmaps/winskin_remove.gif
inflating: winskin/plugininfo.xml
inflating: winskin/winskin.tcl
$ ls
atomoDeCarbono.out CO hfv0.7 listaDeEnergiasSTO-3G winskin
bencenoIR.out CO.old hfv0.7.tar.gz optimizacionBenceno.out winskin-0.11.zip
unzip archivo.zip
Comprime un conjunto de archivos o un directorio en el formato *.zip
12
$ zip -r CO.zip CO
adding: CO/ (stored 0%)
adding: CO/co.dat (deflated 78%)
adding: CO/co.inp (deflated 24%)
adding: CO/co.out (deflated 79%)
adding: CO/coIR.dat (deflated 70%)
adding: CO/coIR.inp (deflated 34%)
adding: CO/coIR.out (deflated 71%)
$ ls
atomoDeCarbono.out CO.old hfv0.7 optimizacionBenceno.out
bencenoIR.out CO.tar.gz hfv0.7.tar.gz winskin
CO CO.zip listaDeEnergiasSTO-3G winskin-0.11.zip
La posición de las carpetas que representan las unidades de almacenamiento extraible, dependen
de la distribución linux que usted esté utilizando y del administrador, generalmente se localizan en
/media o el en el caso de Slackware en /mnt.
13
$ ls /media
cdrom cdrom0 cdrom1 floppy floppy0 usb
$ mount
/dev/hda2 on / type reiserfs (rw,notail)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,nodev)
/dev/hda1 on /Windows/C type ntfs (rw)
/dev/hda5 on /Windows/D type vfat (rw)
/dev/hda8 on /home type reiserfs (rw)
$ mount /media/cdrom
$ mount
/dev/hda2 on / type reiserfs (rw,notail)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,nodev)
/dev/hda1 on /Windows/C type ntfs (rw)
/dev/hda5 on /Windows/D type vfat (rw)
/dev/hda8 on /home type reiserfs (rw)
/dev/hdc on /media/cdrom0 type iso9660 (ro,noexec,nosuid,nodev,user=nestor)
$ ls /media/cdrom
AcroRead lexhwz16.exe lxczhub.inf lxczpr.inf OCR tools
autorun.inf lexhwz.dll lxczhwd1.exe lxczsc9x.inf PROGRAM usbmon.dl_
Drivers lexusbci.dl_ lxczhwd1.ini lxczscin.dll pubs usbprint.sy_
FAX lexusb.in_ lxczinst.dll lxczusb.inf readme USBSCAN.SYS
lexcd.id lexusbin.ex_ lxczinst.drv lxczusb.ini setup.EXE
umount directorio
Desmonta una unidad de almacenamiento. En el ejemplo se desmonta la unidad de cdrom y se
verifica que realmente ha sido desmontada con el comando mount, para ası́ posteriormente expulsar
el cd mediante el comando “eject”
¡¡¡¡¡¡ Nota !!!!!!!!: Para que el procedimiento de desmontado tenga éxito, nadie puede estar usando
el directorio de montaje.
$ umount /media/cdrom
$ mount
/dev/hda2 on / type reiserfs (rw,notail)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,nodev)
/dev/hda1 on /Windows/C type ntfs (rw)
/dev/hda5 on /Windows/D type vfat (rw)
/dev/hda8 on /home type reiserfs (rw)
$ eject /media/cdrom
14
top
Trabaja de manera similar al administrador de tareas de Windows. Permite verificar los recursos
del sistema, ver los procesos que está corriendo, ver la carga promedio del sistema, la cantidad de
memoria que se está usando, etc. a intervalos de actualización de 1 sec. Se sale del programa digitando
la letra “q”.
$ top
4. Comentarios
Este tutorial fué desarrollado como parte del curso de Quı́mica Teórica III y en este momento se
encuentra en una versión bastante preliminar, ası́ que cualquier error gramático, ortográfico, entre otros,
reportelo enviando su descripción al correo electrónico nfaguirrec@unal.edu.co.
15