linux for bioinformatics
DESCRIPTION
Introduction to Linux for bioinformatics - Alberto Labarga -Massive sequencing data analysis workshop -Granada 2011TRANSCRIPT
![Page 1: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/1.jpg)
Introducción a LinuxAlberto Labarga – Experimental SerendipityData analysis workshop for massive sequencing dataGranada, 13 de Junio de 2011
![Page 2: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/2.jpg)
http://www.slideshare.net/alabarga/introduction-to-linux-for-bioinformatics
![Page 3: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/3.jpg)
Proyecto GNU
• Richard Stallman
• Proyecto GNU creado en el año 1984.– Software Libre
– Licencias GPL
– Free Software Fundation
![Page 4: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/4.jpg)
Estructura de GNU
![Page 5: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/5.jpg)
Linux
• Linus Torvalds.
• Nucleo Linux (1991)– Compatible con Unix
– Licenciado bajo GPL
– Publicado en Internet
![Page 6: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/6.jpg)
Nucleo de Linux
![Page 7: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/7.jpg)
GNU + Linux
![Page 8: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/8.jpg)
GNU + Linux
![Page 9: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/9.jpg)
Componentes de una
distribución
![Page 10: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/10.jpg)
Componentes de una
Distribución
![Page 11: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/11.jpg)
![Page 12: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/12.jpg)
Recomendaciones
http://distrowatch.com
http://www.jomuoru.net/wp-content/uploads/2010/03/gldt102-full.png
![Page 13: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/13.jpg)
![Page 14: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/14.jpg)
![Page 15: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/15.jpg)
Shells
• Los usuarios de Linux con frecuencia utilizan un tipo
especial de programa llamado shell para interactuar con
el kernel.
• Sistemas UNIX disponen de diferentes Shell: Bourne
shell (sh), C shell (csh), Korn shell (ksh), TC shell (tcsh),
Bourne Again shell (bash).
• La más popular es la “bash” shell.– echo $SHELL
![Page 16: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/16.jpg)
Shells
• La shell se ejecuta dentro de una terminal emitiendo un
"prompt“ y esperando a que le digan qué hacer.
• Luego, el usuario le pide a la shell que ejecute un
programa escribiendo el nombre del programa.
• La shell bash se puede utilizar de modo interactivo o
como un lenguaje de escritura de gran alcance.
• La shell bash guarda el historial de las líneas de
comando ejecutadas. La líneas de comando se pueden
recuperar desde el historial.
![Page 17: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/17.jpg)
Shells
• Al arranque Bash ejecuta comandos hallados en el
archivo ~/.bashrc, permitiéndole a los usuarios
personalizar su shell.
![Page 18: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/18.jpg)
Inicio de sesión en una máquina
a través de la red• Al utilizar la opción ssh ("secure shell"), los usuarios
pueden iniciar una sesión fácilmente en máquinas
remotas ya sea en el mismo lugar o al otro lado del
mundo.
![Page 19: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/19.jpg)
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
putty download
![Page 20: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/20.jpg)
![Page 22: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/22.jpg)
![Page 23: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/23.jpg)
Para empezar
Algunos comandos para ir jugando:
whoami – muestra el nombre del usuarioid – muestra la información sobre el usuariowho – muestra otros usuarios logueadosdate – fecha/hora del servidorcal – muestra el calendariohistory – muestra el historial de comandos
![Page 24: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/24.jpg)
Información del sistema
• uname
• hostname
alabarga@genome2:~$ uname -a
Linux genome2 2.6.28-15-generic #49-Ubuntu SMP Tue Aug 18 19:25:34
UTC 2009 x86_64 GNU/Linux
alabarga@genome2:~$ hostname
genome2
![Page 25: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/25.jpg)
quién se encuentra en el
sistema• El comando whoami simplemente entrega el nombre del
usuario actual.
• Los usuarios pueden utilizar el comando who, w y
finger para determinar quién se encuentra en el sistema
y cómo iniciaron la sesión.
alabarga@genome2:~$ who
alabarga pts/0 2010-11-23 23:24 (159.red-88-24-133.staticip.rima-tde.net)
![Page 26: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/26.jpg)
Listado del contenido de un
directorio con ls• Desde una shell los usuarios pueden utilizar el comando
pwd para conocer donde se encuentran y ls para hacer
un listado del contenido del directorio..ls -al
• También se puede usar find
alabarga@genome2:~$ pwd
/home/alabarga
alabarga@genome2:~$ ls
101x GenomeStudio-Docs.zip
4store GenomeStudio-Software-2009.2.exe
alignment.html gpu
analisisMicroarrays.tar igv papersTesis
apache-solr-1.4.0.zip igv.log pmids.txt
apache-tomcat-6.0.20 IGVTools pubby-0.3
![Page 27: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/27.jpg)
Listado de árboles de
directorios• El comando ls, cuando se da un directorio como
argumento, éste lista el contenido del directorio.
• Por defecto, el comando ls sólo mostrará el contenido
del directorio del nivel más alto.
• Para que el comando ls liste los subdirectorios, puede
añadir la opción -R.
![Page 28: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/28.jpg)
El directorio de inicio del
usuario• Cada usuario del sistema Linux se le asigna un
directorio especial llamado su directorio de inicio “home
directory”.
• Cuando un usuario inicia sesión en el sistema por
primera vez se le ubica "en" su directorio de inicio, es
decir, el sistema configura su directorio de inicio como
su directorio de trabajo inicial.
• Habitualmente, el subdirectorio del usuario se posiciona
bajo el /home directory con el nombre de la cuenta del
usuario: /home/alabarga
![Page 29: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/29.jpg)
root vs./root vs./ (la raíz del
sistema de archivos)• La raíz o el "root" en inglés, es el nombre de usuario del
superusuario, es decir, el usuario con autoridad suprema
sobre el sistema.
• También es el nombre del directorio de inicio de ese
usuario, /root.
• Este término se utiliza para la base (¿la parte superior?)
del árbol de directorios del sistema de archivos, el
directorio /.
![Page 30: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/30.jpg)
El directorio temporal /tmp
• Los usuarios tienen acceso para compartir un espacio
de "borrador", en el directorio /tmp.
• El directorio /tmp le da a todos los usuarios acceso a
espacio adicional para cumplir con necesidades a corto
plazo sin cargar el espacio en su cuota.
• El sistema borra automáticamente los archivos puestos
en este directorio después de unos días.
![Page 31: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/31.jpg)
El directorio de configuración
/etc• Los archivos de configuración normalmente se colocan
en /etc o en un subdirectorio de /etc.
• Los usuarios comunes no pueden modificar los archivos
en /etc
• Los administradores de sistemas invierten bastante de
su tiempo trabajando con los archivos almacenados
aquí.
![Page 32: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/32.jpg)
Los directorios de comandos
/bin y /usr/bin• La mayoría de los comandos del sistema se encuentran
almacenados como archivos binarios en un formato
legíble para la máquina.
• Los comandos apropiados para el uso de usuarios
comunes se suelen ubicar en los directorios binarios /bin
o /usr/bin.
• Las utilidades más importantes como ls, cd, cp, mv y el
editor de texto vi, sin los cuales no se podría usar el
sistema van en /bin.
• Las utilidades adicionales como los compiladores, su
navegador de web y la suite de oficina van en /usr/bin
![Page 33: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/33.jpg)
Los directorios de comandos
/sbin y /usr/sbin• /sbin y /usr/sbin almacenan archivos de comandos para
que el superusuario root los utilice.
• Estos incluyen comandos para adjuntar y quitar
hardware, para iniciar y detener el sistema y para
realizar mantenimiento del sistema.
![Page 34: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/34.jpg)
El directorio "variable" /var
• Algunos archivos, cambian con frecuencia.
• Estos incluyen:– Correo electronico entrante y saliente,
– Log de sistemas,
– Sitios web sites,
– Archivos ftp, entre otros.
• Archivos y directorios con contenido variable suelen
recopilarse en el directorio /var.
• El colocar dichos archivos aquí hace más fácil
asignarles espacio y proteger los archivos más estables
que se encuentran en alguna otra parte del sistema.
![Page 35: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/35.jpg)
Cambio de sitio- El comando cd
• Los Procesos pueden cambiar sus cwd cuando sea
necesario.
• Esto incluye la shell de comando bash, la cual
proporciona el comando cd (del ingleś change directory)
para cambiar el directorio actual desde el intérprete de
comandos.
![Page 36: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/36.jpg)
Nombres de directorios
especiales
Simbolo Significado
. El actual directorio de trabajo
.. El directorio padre
~ El directorio home del usuario
- El anterior directorio de trabajo
/ El directorio raíz
![Page 37: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/37.jpg)
Creación de directorios
(nuevos, vacíos): mkdir• El comando para hacer un directorio nuevo es el
comando mkdir (del inglés make directory).
• Uso: – mkdir [OPCIONES] {DIRECTORIO...}
– Crea el(los) DIRECTORIO(s) si no existe(n). Falla y emite un mensaje
de error si uno o más de los DIRECTORIO(s) existen, pero los nuevos
directorios restantes son aún creados.
![Page 38: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/38.jpg)
Borrar directorios (vacíos): rmdir
• El comando para borrar un directorio es rmdir. (remover
directorio).
• Uso: – rmdir [OPCIONES] {DIRECTORIO...}
– Suprime el (los) DIRECTORIO(s) si están vacíos. Emite un mensaje de
error si uno o más del (los) DIRECTORIO(s) no está(n) vacío(s), pero
los directorios que quedan (vacíos) se borran. Tenga en cuenta que un
directorio que contiene sólo un subdirectorio no se considera como
vacío.
![Page 39: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/39.jpg)
Tamaño
• df # disk space
• free -g # memory info in Megabytes
• du -sh # disk space usage of current directory
• du -sh * # disk space usage of files/directories
• du -s * | sort -nr # shows disk space used by different
directories/files sorted by size
![Page 40: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/40.jpg)
Ver el contenido de un archivo
con cat• Aunque hay varios comandos disponibles para ver los
archivos, el comando más sencillo es cat.
• Cuando se le da una lista de archivos al comando cat
este concatena los archivos a la salida del terminal.
• También podemos usar more y less
![Page 41: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/41.jpg)
El comando head
• head [OPCIONES] [ARCHIVO...]
• Algunas veces todo lo que se necesita al examinar un
archivo es ver las primeras líneas del archivo. El
comando head nos permite hacer esto.
![Page 42: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/42.jpg)
El comando tail
• tail [OPCIONES] [ARCHIVO...]
• Para complementar head, el comando tail muestra las
últimas 10 líneas de cada FILE a la salida estándar.
• El comando tail tiene otra opción bastante útil: la opción
-f (follow). Con esta opción tail mostrará las últimas
líneas del archivo y luego "espera" y continua
presentando cualquier nueva línea al ser añadida al
archivo.
![Page 43: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/43.jpg)
Redireccionamiento de salidas
de los comandos a archivos• ls y cat ejecutan su salida y se presentan en el terminal.
• La mayoría de los comandos que generan texto en la
salida utilizan un concepto común de Unix denominado
"salida estándar".
• La shell bash permite a los usuarios "redireccionar" la
salida estándar a otros lugares.
• Por ahora, vamos a aprender el caso más fácil: la
utilización del caracter > para redireccionar la salida
estándar a un archivo.
![Page 44: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/44.jpg)
redirecciones
• La shell bash usa > para redirigir un flujo de stdout de
proceso a un archivo.
• Para agregar una salida de un comando a un archivo, en
lugar de sobrescribirlo, bash usa >>.
• bash usa < para hacer que lean entradas desde alguna
parte diferente al teclado.
ls > mis_archivos.txt
![Page 45: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/45.jpg)
Comando echo
• El comando echo toma cualquier texto que se teclee
como parte del comando y lo repite a la salida estándar
(usualmente lapantalla)
• Este comando sencillo junto con el redireccionamiento,
se puede utilizar para crear archivos de texto.
echo hola > saludo.txt
echo buenos dias >> saludo.txt
cat saludo.txt
![Page 46: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/46.jpg)
Entrada estándar (stdin), salida estándar
(stdout), error standard (stderror)
• Los programas de terminal suelen leer información como
un flujo desde una sola fuente tal como el teclado de
una terminal (stdin)
• Generalmente, escriben información como un flujo a un
solo destino como por ejemplo una pantalla (stdout)
• Generalmente, stdin y stdout están conectadas a la
terminal que ejecuta el comando.
• Se considera conveniente redirigir (stdin) desde (stdout)
hacia los archivos.
• Los programas Unix reportan condiciones de error a un
destino llamado error estándar (stderr).
![Page 47: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/47.jpg)
Descriptores de Archivos
Flujo Descriptor Abreviación
Standard In 0 stdin
Standard Out 1 stdout
Standard Error 2 stderr
• Como protocolo de Linux (y Unix), cada proceso hereda tres archivos abiertos tras el inicio.– Primero, descriptor de archivo 0, es la entrada estándar.
– Segundo, descriptor de archivo 1, es la salida estándar.
– Tercero, descriptor de archivo 2, es el error estándar.
![Page 48: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/48.jpg)
redirecciones
• Usualmente, stderr está conectado a una pantalla de
terminal y los mensajes de error se encuentran
entremezclados con las salidas estándar.
• Cuando se utiliza la shell bash, el flujo de stderr puede
redirigirse a un archivo mediante 2>.
• Al utilizar bash, el flujo de stderr puede combinarse con
el flujo de stdout mediante 2>&1 o >&
ls > rcsummary.out 2> rcsummary.err
ls > rcsummary.out 2>&1
![Page 49: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/49.jpg)
Redirección de stdin, stdout y
stderr en bash
sintaxis efecto
cmd < file Redirigir stdin desde file
cmd > file Redirigir stdout a file. Reescribir si existe
cmd >> file Redirigir stdout a file. Agregar si existe
cmd 2> file Redirigir stderr a file. Reescribir si existe
cmd 2>> file Redirigir stderr a file. Agregar si existe
cmd > file 2>&1 Combinar stdout y stderr a file
cmd >& file Combinar stdout y stderr a file
![Page 50: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/50.jpg)
Ejemplo
alabarga@genome2:~$ ls *.zz
ls: cannot access *.zz: No such file or directory
alabarga@genome2:~$ ls *.zz > zz.txt
ls: cannot access *.zz: No such file or directory
alabarga@genome2:~$ cat zz.txt
alabarga@genome2:~$ ls *.zz >& zz.txt
alabarga@genome2:~$ cat zz.txt
ls: cannot access *.zz: No such file or directory
![Page 51: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/51.jpg)
Tuberías
• El flujo de stdout desde un proceso puede estar
conectado al flujo de stdin de otro proceso mediante lo
que Unix llama una "tubería".
• Varios de los comandos en Unix están diseñados para
operar como un filtro, leer la entrada desde stdin y
enviar la salida a stdout.
• bash usa "|" para crear una tubería entre dos
comandos.
![Page 52: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/52.jpg)
Vim: control
• vi my_file
• i # INSERT MODE
• R # replace MODE
• ESC # NORMAL (NON-EDITING) MODE
![Page 53: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/53.jpg)
vim
• : # commands start with ':'
• :w # save command; if you are in editing mode you have
to hit ESC first!!
• :w new_filename # saves into new file
• :#,#w new_filename # saves specific lines (#,#) to new
file
• :q # quit file, don't save
• :q! # exits WITHOUT saving any changes you have
made
• :wq # save and quit
![Page 54: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/54.jpg)
Vim: moving around
• :# go to specified line number
• $ # moves cursor to end of line
• A # same as $, but switches to insert mode
• 0 (zero) # moves cursor to beginning of line
• CTRL-g # shows at status line filename and the line you
are on
• SHIFT-G # brings you to bottom of file, type line number
(isn't displayed) then SHIFT-G # brings you to specified
line#
![Page 55: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/55.jpg)
Vim: more commands
• d$ # deletes from cursor to the end of the line
• dd # deletes entire line
• :s/old_pat/new_pat/ # replaces first occurrence in a line
• :s/old_pat/new_pat/g # replaces all occurrence in a line
• :%s/old_pat/new_pat/g # replaces all occurrence in file
• u # undo last command
![Page 56: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/56.jpg)
Copiar archivos
• Puede copiar archivos de un directorio a otro o de un
nombre a otro (renombrarlos) con el comando cp (copy).
• Uso: – cp [OPCIONES] {FUENTE} {DESTINO}
– cp [OPCIONES] {FUENTE...} {DIRECTORIO}
• Ejemplos:– cp saludo.txt hola.txt
– cp hola.txt /tmp
![Page 57: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/57.jpg)
Mover/renombrar archivos
• Puede mover archivos de un directorio a otro o de un
nombre a otro (renombrarlos) con el comando mv
(mover).
• Uso: – mv [OPCION...] {FUENTE} {DESTINO}
– mv [OPCION...] {FUENTE...} {DIRECTORIO}
• Ejemplos:– mv saludo.txt borrar.txt
– mv borrar.txt /tmp
![Page 58: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/58.jpg)
Borrar archivos
• Se pueden suprimir (eliminar, borrar) archivos con el
comando rm (remove).
• Uso:– rm [OPCIONES] {ARCHIVO...}
• Examples:– rm /tmp/borrar.txt
![Page 59: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/59.jpg)
Copiar árboles de directorios
• El comando cp puede ser usado para copiar arboles de
directorios completos con la opción: -r (recursivo).
cp –R seq2011 backup
![Page 60: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/60.jpg)
Borrar árboles de directorios
• Con la opción correcta, el comando rm puede borrar o
eliminar arboles de directorios completos.
rm –R backup
![Page 61: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/61.jpg)
Nombres y comodines de
archivos• Conceptos clave
– Los nombres de archivos pueden contener casi cualquier caracter a
excepción de /.
– Aunque los nombres de archivos pueden contener casi cualquier
caracter eso no significa que deban contenerlos.
– Los archivos que comienzan con . son archivos "ocultos".
– Los caracteres *, ?, [...], y [^...] se pueden utilizar para encontrar los
archivos con nombres de archivos similares por medio de un proceso
llamado "comodines de archivo".
![Page 62: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/62.jpg)
Nombres de archivo
• En Linux, virtualmente cualquier caracter imprimible se
puede utilizar en el nombre de archivo y los nombres
pueden ser casi de cualquier longitud.– Los nombres de archivos de Linux pueden tener hasta 255 caracteres.
– Pueden contener cualquier caracter imprimible (y algunos que no lo
son) a excepción de la barra oblicua /.
• Caracteres "seguros" para nombres de archivos– A-Z a-z 0-9 . _ - + ~
– Watch those spaces!
![Page 63: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/63.jpg)
Archivos ocultos
• Los nombres de archivos y directorios (recuerde un
directorio es un tipo de archivo) que comienzan por un
punto (.) son archivos "ocultos".
• Estos archivos no aparecen en los listados de directorio
producidos por ls a menos que se utilice la opción de
comando especial -a.
![Page 64: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/64.jpg)
"Comodines"
• La shell de comando bash trata algunos de sus meta-
caracteres especiales como comodines.
• The shell performs a process called meta-character
expansion or wildcard expansion
• El shell realiza un proceso llamado expansión de meta-
caracteres o expansión de comodines– Genera una lista de nombres de archivos que coinciden con el patrón
descrito por la expresión del comodín
– Luego, pasa la lista generada al comando.
– Todo esto, se conoce comúnmente como "comodines de nombres de
archivos."
![Page 65: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/65.jpg)
Caracteres Comodines
Caracter Efecto
*coincide con cero o más caracteres (a excepción del punto inicial)
?coincide exactamente con un caracter (a excepción del punto inicial)
[...]coincide exactamente con un caracter de la lista o rango
[^...]coincide exactamente con un caracter no incluido en la lista o rango
![Page 66: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/66.jpg)
Ejemplo de Comodines
Patrón Genera la Lista
* todos los archivos en la lista
*.html page1.html page2.html
page*.htm* page1.html page2.html page3.htm page40.htm
image?.* image1.jpeg image2.jpeg
[ps]* page1.html page2.html page3.htm page40.htm script1.pl
[^ps]* image1.jpeg image2.jpeg image10.jpeg image11.jpeg
![Page 67: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/67.jpg)
Búsquedas
• find– find -name "*pattern*" # searches for *pattern* in and below current
directory
– find /usr/local -name "*blast*" # finds file names *blast* in directory
– find /usr/local -iname "*blast*" # same as above, but case insensitive
– find . -mtime -1
– find . -mtime -1 –ls
– find / -size +10000k
• additional useful arguments: -user <user name>, -group
<group name>, -ctime <number of days ago changed>
![Page 68: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/68.jpg)
Búsquedas
• locate– locate "*.dat" –q
– -i, in case you wanted to perform a case insensitive search
– -c, instead of writing file names on standard output, write the number of
matching entries only.
• which <application_name> # location of application
• whereis <application_name> # searches for executables
![Page 69: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/69.jpg)
wget
• Descarga recursos de modo recursivo, en ambiente no
interactivo de los protocolos HTTP, HTTPS y FTP.
• Cuando se llama con una URL como su argumento, el
comando wget recupera el contenido de la URL y lo
almacena en un archivo local en el directorio actual de
trabajo del mismo nombre.
export http_proxy=http://stargate.ugr.es:3128/
![Page 70: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/70.jpg)
Manipulación de ficheros
de texto
![Page 71: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/71.jpg)
Comando Word Count (wc)
• El comando wc cuenta el numero de caracteres,
palabras y lineas.
• Tomará su entrada ya sea de archivos llamados en su
línea de comandos o desde su entrada estándar.
wc [-c] [-l] [-w] [filename…]
![Page 72: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/72.jpg)
Búsqueda de Texto: grep
• grep es un comando que imprime en pantalla líneas
coincidentes con un patrón de una cadena de texto
especificado.
• grep suele utilizarse como filtro para reducir salida a
sólo lo deseado.
• grep -r buscará de modo recursivo bajo un directorio
determinado.
• grep -v imprime líneas NO coincidentes con una cadena
o patrón de texto.
• Muchas de las opciones permiten a los usuarios
especificar el formato de salida de grep.
![Page 73: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/73.jpg)
grep
![Page 74: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/74.jpg)
Ordenando todo: sort
• Conceptos clave– El comando sort clasifica datos en orden alfabético.
– sort -n ordena numéricamente.
– sort -u clasifica y suprime duplicados.
– sort -k y -t clasifica en un campo específico.
ls -s | sort -n
![Page 75: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/75.jpg)
Opciones para especificar el
orden de clasificación
![Page 76: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/76.jpg)
El comando uniq
• El programa uniq se utiliza para identificar,
contar o suprimir registros duplicados en la
información clasificada.
![Page 77: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/77.jpg)
sed: string replacement
• Line-oriented tool for pattern matching and replacement
(stream editor)
• Not really a programming language (cf. awk)
• E.g., apply same change to lots of source files
• Filter, i.e., does not modify input file
![Page 78: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/78.jpg)
Ejemplos
• Reemplazar: sed –e „s/regex/replacement/‟
• Borrar lineas 1-10: sed -e '1,10d„
• Borrar comentarios: sed -e '/^#/d„
• Borrar lineas en blanco: sed -e '/^$/d„
![Page 79: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/79.jpg)
tr
También podemos utilizar tr
• echo “HELLO” | tr 'A-Z' 'a-z'
![Page 80: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/80.jpg)
awk
• Special-purpose language for line-oriented
pattern processing
• pattern {action}
• action =
– if (conditional) statement else statement
– while (conditional) statement
– break
– continue
– variable=expression
– print expression-list
![Page 81: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/81.jpg)
awk
• Patterns = boolean combinations of regular expressions and relational expressions
• awk –f program < input > output
• Also delimiter-separated fields:
BEGIN {FS=c}
• Examples:– Print lines longer than 72 characters:
length > 72
– print first two fields in opposite order
{ print $2,$1 }
![Page 82: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/82.jpg)
awk examples
• Add up first column, print sum and average{s += $1 }
END {print “sum is”, s, “average is”, s/NR}
• Print all lines between start/stop words:
/start/,/stop/
• Print all lines whose first field differs from previous one:
$1 != prev {print; prev = $1}
![Page 83: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/83.jpg)
awk
• Problem : Get the userid of a user from the /etc/passwd file.
• Suppose /etc/passwd file contains the following entries
arun:x:504:504::/home/arun:/bin/bash
try:x:500:500::/home/try:/bin/bash
optima:x:501:501::/home/optima:/bin/bash
optimal:x:502:502::/home/optimal:/bin/bash
• awk will see this file as follows
– 1 line = 1 record (by default) so in total there are 4 records in the
file.
– 1 record = 7 fields separated by “:” (Not by default)
Note : Default field separator is space.
![Page 84: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/84.jpg)
A simple example (cont..)
$ awk –F”:” „{print $1 “ “ $3}‟ /etc/passwd
Awk
executable
pattern
to search
Action to
perform on line
If pattern matches
The file
to operate
upon
Field
Separator
![Page 85: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/85.jpg)
sed/awk
sed '/^>/d' F5R3.fasta | sort | uniq | awk '{print ">SEQ"NR"\n"$0 }'
![Page 86: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/86.jpg)
csplit/cut
• csplit -f out fasta_batch "%^>%" "/^>/" "{*}" # splits fasta
batch file into many files
# at '>„
• cat my_table | cut -d , -f1-3
• # cut command prints only specified sections of a table,
• # -d specifies here comma as column separator (tab is
• # default), -f specifies column numbers.
• cut -d: -f1,5 /etc/passwd
![Page 87: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/87.jpg)
Ejercicio
• ls -s | sed -e 's/^[ ]*//' | cut -d " " -f2
![Page 88: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/88.jpg)
Comandos avanzados
![Page 89: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/89.jpg)
Sustitución del Historial
• Como una alternativa a las teclas de dirección, la shell
bash también realiza "sustitución de historial", la cual
se desencadena por el signo de exclamación.
• El siguiente cuadro resume la sintaxis de sustitución
de historial más utilizada.
![Page 90: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/90.jpg)
Valores de retorno
• La shell bash almacena el valor de retorno del comando
ejecutado anteriormente en una variable especial
llamada ?.
• El valor de retorno del ultimo programa ejecutado e
puede examinarse con el comando echo $?.
![Page 91: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/91.jpg)
Ejecución de comandos
múltiples de modo condicional• La shell bash permite a los usuarios unir comandos
múltiples en una sola línea de comandos separando los
comandos con un ;.
• La shell bash usa && y || para unir dos comandos de
modo condicional. Cuando los comandos se unen de
este modo, el primero siempre se ejecutará. El segundo
comando puede que se ejecute o no dependiendo del
valor de retorno del primer comando.
• Ejemplo:
mkdir /tmp/boring && mv numbers.txt /tmp/boring
![Page 92: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/92.jpg)
Ejemplos de AliasLos siguientes alias podrían ser útiles. Puedes configurarlos en el archivo
~/.bashrc.
alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5"
Buscar los 5 archivos mas grandes
Ubicar los procesos bash:
alias psg="ps -aux ¦ grep bash"
Lista en formato largo:
alias ll='ls -l'
![Page 93: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/93.jpg)
Archivos de arranque del BASH
• Cuando el BASH es invocado de manera interactiva,
primero lee y ejecuta comandos desde el archivo
/etc/profile, si es que existe.
• Una vez leído este archivo, BASH ejecuta comandos del
primer archivo que exista y que BASH pueda leer de
entre los siguientes archivos: ~/.bash_profile,
~/.bash_login, y ~/.profile, en ese orden.
![Page 94: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/94.jpg)
Archivos de arranque del BASH
• Cuando salimos de una “sesión de login”, BASH lee y
ejecuta comandos desde el archivo ~/.bash_logout, si es
que este archivo existe.
![Page 95: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/95.jpg)
Usuarios
![Page 96: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/96.jpg)
Usuarios de Linux y el archivo
/etc/passwd• Conceptos Claves
– A un nivel inferior los usuarios son representados por un número
entero llamado Id del usuario (uid).
– Cada proceso que se desarrolla en el sistema se ejecuta como un uid
dado
– Cada archivo en el sistema de archivos es propiedad de un uid
– El archivo /etc/passwd asigna los uids a las cuentas de usuario.
– Las cuentas de usuarios asignan los uids al nombre del usuario,
contraseña, Id de Grupo (s), directorio de inicio y shell de inicio.
– La contraseña se puede cambiar con el comando passwd.
![Page 97: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/97.jpg)
Los usuarios de Linux y el
archivo /etc/passwd.• En Linux, usted primero se identifica al entrar con un
nombre particular de usuario nombre de usuario.
• Cada proceso que se ejecuta en el sistema tiene un
nombre de usuario asociado.
• El username, está asociado con las cosas que usted
hace, grabe o use.
• Cada usuario en el sistema tiene un unico userid (uid)
• Linux rastrea los userids como un número entero de
32bits
![Page 98: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/98.jpg)
Los usuarios de Linux y el
archivo /etc/passwd.• El sistema mantiene una base de datos que asigna los
nombres de usuarios a los userids.
• Esta base de datos se almacena en el archivo de
configuración /etc/passwd
• [elvis@station elvis]$ tail /etc/passwd
apache:x:48:48:Apache:/var/www:/bin/bash
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
elvis:x:501:501::/home/elvis:/bin/bash
![Page 99: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/99.jpg)
Archivo /etc/passwd
• El archivo /etc/passwd– El archivo de texto /etc/passwd contiene nombres de usuario y sus
correspondientes userids y alguna otra información.
![Page 100: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/100.jpg)
Las contraseñas y el archivo
/etc/shadow.• Exponer la forma encriptada de su contraseña es
peligroso en /etc/passwd es peligroso.
• Linux y Unix almacenan las contraseñas utilizando una
nueva técnica llamada "Shadow Passwords"
• El archivo contiene sólo información relacionada con las
contraseñas,
• Sus permisos no permiten ver su contenido.
![Page 101: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/101.jpg)
Los grupos Linux y el
archivo/etc/group.• Básicamente, un grupo es solo un group id (gid) de un
número entero
• Cada proceso que se ejecuta en el sistema opera bajo
na colección de grupos (gids).
• El archivo /etc/groupasigna gids a nombres y a
membresías de grupo.
• Cada archivo en el sistema de archivos pertenece a un
solo gid.
• Los usuarios tienen un solo grupo primario definido en
el archivo /etc/passwd.
• Los usuarios pueden ser miembros de múltiples grupos
secundarios definidos en el archivo /etc/groups.
![Page 102: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/102.jpg)
Grupos de Linux
• Cada proceso se ejecuta bajo el contexto de un usuario
dado.
• Los usuarios, los procesos que estos operan y los
archivos que poseen, pertenecen a la colección de
grupos
• Las membresías de grupo le permiten a los
administradores de sistemas manejar eficientemente las
colecciones de los usuarios que tienen objetivos
similares.
• Cada usuario es miembro de un grupo primario.
![Page 103: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/103.jpg)
El archivo /etc/group
• Para el kernel de Linux, un grupo es nombrado usando
un id de grupo (GID) de 32 bits
• El archivo /etc/group asocia nombres de grupo con GIDs
(para humanos).
• Define los usuarios que pertenecen a cada grupo.
![Page 104: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/104.jpg)
El archivo /etc/group
• Examine su archivo /etc/group
wrestle:x:201:ventura,hogan,elvis physics:x:202:einstein,maxwell,elvis emperors:x:203:nero,julius,elvis governor:x:204:ventura,pataki music:x:205:elvis,blondie,prince,madonna dwarfs:x:206:sleepy,grumpy,doc elvis:x:501: prince:x:502: madonna:x:504: blondie:x:505:
![Page 105: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/105.jpg)
Grupos primarios y secundarios
• Debido a que cada archivo debe tener un grupo
propietario, debe haber un grupo por defecto asociado
con cada usuario.– Este grupo por defecto se convierte en el propietario del grupo de los
archivos recién creados
– Este grupo se conoce como el grupo primario del usuario.
– Un grupo primario de usuario se define en el cuarto campo de una
entrada de usuario /etc/passwd.
• Usuarios pueden optar también por pertenecer a otros
grupos.– Estos grupos se llaman grupos secundarios
– Están definidos en el cuarto campo del archivo /etc/group file.
![Page 106: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/106.jpg)
Cambio de mis membresías de
grupo• Únicamente el usuario administrativo root, puede
cambiar las membresías de grupo. – Usando el comando usermod y groupmod.
– O la utilidad gráfica system-config-users
• El uso de estos comandos se verá en otro curso.
![Page 107: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/107.jpg)
Cambio de identidad
• El comando su le permite a un usuario cambiar el id del
usuario
• sudo permite ejecutar comandos como root
![Page 108: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/108.jpg)
Permisos
![Page 109: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/109.jpg)
Permisos de usuario
![Page 110: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/110.jpg)
Interpretación de Permisos
Para poder interpretar los permisos de archivos, se revisa el siguiente
ejemplo:
![Page 111: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/111.jpg)
Cambio de permisos de
archivos: chmod• El comando chmod se utiliza para modificar los permisos
de archivo
• El primer argumento para chmod usa una sintaxis
[ugoa]+/-[rwx] para describir cómo deberían cambiarse
los permisos.
chmod a+w filename
• También puede ser una representación numérica
chmod 775 filename
![Page 112: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/112.jpg)
• 000 = 0
• 001 = 1
• 010 = 2
• 011 = 3
• 100 = 4
• 101 = 5
• 110 = 6
• 111 = 7
![Page 113: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/113.jpg)
Usando el comando chmod
abreviación interpretación
+ Agregar
- Remover
= Asigna
r Lectura
w Escritura
x Ejecución
abreviación interpretación
u Usuario
g Grupo
o Otros
a Todos
![Page 114: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/114.jpg)
chgrp
• Si deseas compartir un archivo con un grupo de
personas, pero no con todo el mundo, debes hacer uso
del grupo propietario de archivo y de los permisos de
grupo.
• El grupo privado del creador no es usado para trabajar
en colaboración.
• Para compartir el archivo, se debe cambiar el propietario
del archivo de grupo.
• Esto se realiza con el comando llamado chgrp.
![Page 115: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/115.jpg)
chgrp
• chgrp GROUP ARCHIVO...
• Cambio de propietario de ARCHIVO(s) a GRUPO
• El primer argumento especifica el nuevo grupo
propietario de archivo, mientras que los argumentos
subsecuentes listan los archivos cuyo propietario de
grupo se va a cambiar.
• El propietario del grupo sólo lo puede cambiar el usuario
dueño del archivo, y el usuario debe ser un miembro del
nuevo grupo de propietarios del archivo.
![Page 116: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/116.jpg)
Cambio de los propietarios de
archivos con el comando chown • chown USER FILE...
– Cambie el propietario del (los) archivo(s) a USUARIO.
• El argumento USER es el nombre del nuevo usuario del
archivo y los argumentos siguientes son los nombres de
los archivos a cambiar.
• Sólo el usuario administrativo, root, puede usar chown,
![Page 117: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/117.jpg)
¿Quién puede Modificar los
Propietarios de archivos y los
Permisos?
Operación Usuarios Autorizados
chmod root y el propietario del archivo
chgrproot y el propietario de archivo (únicamente los grupos subscritos)
chown sólo root
![Page 118: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/118.jpg)
Utilitarios de Compresión
Standard de Linux• compress (.Z)
– Puede ser descomprimido con el comando uncompress
– No es usualmente instalado por defecto
• gzip (.gz)– el más versatil y más común utilitario de descompresión usado
• bzip2 (.bz)– produce la mas compacta compresión de archivos
– más uso intesivo de CPU
![Page 119: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/119.jpg)
Archivadores de Archivos
• El archivo contiene el directorio y sus archivos y
subdirectorios subyacentes, empaquetados como un
solo archivo.
• En Linux (y Unix), el comando más común para crear y
extraer archivos es el comando tar.
• El archivo contiene el directorio y sus archivos y
subdirectorios subyacentes, empaquetados como un
solo archivo.
• A estos paquetes de archivos suele dárseles la
extensión del nombre de archivo .tar.
![Page 120: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/120.jpg)
Comandos Básicos Tar
Opción Efecto
-c, --create Crea un empaquetador de archivos
-x, --extract Extraer un empaquetador de archivos
-t, --listList el contenido de un empaquetador de archivos
![Page 121: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/121.jpg)
Opciones del comando tar
Opción Efecto
-C, --directory=DIR Cambia al directorio DIR
-P, --absolute-reference sin / inicial desde los nombres de archivos
-v, --verbose Lista los archivos procesados
-Z, --compress internally compress archive
-z, --gzip internamente gzip el archivo
-j, --bzip2 internamente bzip2 el archivo
![Page 122: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/122.jpg)
Procesos
![Page 123: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/123.jpg)
The ps command
• El comando ps se utiliza comúnmente para enumerar los
procesos ejecutándose en un sistema.
• El comando ps, sin ningún argumento, muestra todos los
procesos que se iniciaron desde una sola terminal.
alabarga@genome2:~$ ps
PID TTY TIME CMD
22047 pts/0 00:00:00 bash
22472 pts/0 00:00:00 ps
![Page 124: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/124.jpg)
The ps command
• ps # Shows processes running by user
ps -e # Shows all processes on system
ps ax –tree # Shows the child-parent hierarchy of all processes
ps -o %t -p <pid> # Shows how long a particular process was
running.
• ps <pid> | cat
• ps aux | grep <user_name> # Shows all processes of one user
![Page 125: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/125.jpg)
top
![Page 126: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/126.jpg)
Los 5 estados del Proceso
Estado Descripción
Ejecutable (R) Los procesos en un estado ejecutable son procesos que si tienen la oportunidad de acceder la CPU
Dormido voluntario (interrumpible) (S)
Por lo general, este es un proceso que no tiene nada que hacer hastaque suceda algo interesante. Un ejemplo clásico es el demonio de red httpd, el cual es un proceso que implementa un servidor de red. En medio de solicitudes de un cliente (navegador de red), el servidor no tiene nada que hacer, y elige irse a dormir.
Dormido involuntario (no interrumpible) (D)
Cuando dos procesos tratan de acceder el mismo recurso de sistema al mismo tiempo. En estas situaciones, el kernel fuerza al proceso a dormir.
Procesos detenidos (suspendidos) (T)
Ocasionalmente, los usuarios deciden suspender procesos. Los procesos suspendidos no realizarán ninguna acción hasta no ser reiniciados por el usuario. En la shell bash, la secuencia de teclas CONTROL-Z puede utilizarse para suspender un proceso.
Procesos zombi (Z) cada proceso muriendo pasa a través de un estado zombi transitorio. No obstante, en ocasiones, algunos se quedan en ese estado.
![Page 127: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/127.jpg)
Programación de Procesos:
nice y renice• Una tarea primaria del kernel de Linux es la
programación de procesos.
• Cada proceso tiene un valor de niceness que influye en
su programación.
• Los comandos nice y renice pueden cambiar la
prioridad de programación de un proceso.
• renice -n <priority_value>
• # Changes the priority value, which range from 1-19
• # the higher the value the lower the priority, default is 10.
![Page 128: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/128.jpg)
Programación de Procesos
• Cada proceso tiene dos valores que influyen en su
programación.– (dinamica) valor de prioridad del proceso
– (fija) valor del niceness del proceso
![Page 129: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/129.jpg)
Prioridad de Procesos
• El kernel da a cada proceso una cantidad de
contadores.
• Cada vez que un proceso se programa en la CPU,
entrega uno de sus contadores.
• Cuando decide qué proceso programar en la próxima
CPU, el kernel escoge un proceso ejecutable con la
mayoría de contadores.
![Page 130: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/130.jpg)
Proceso Niceness
• Cada proceso también tiene un valor estático conocido
como su valor de niceness.
• El valor tiene un rango que va de -20 a 19 para cualquier
proceso, iniciando en 0 por defecto.
• Aquellos con un mayor valor de niceness (>0)– obtienen menos contadores
– menos tiempo en la CPU
• Aquellos con un valor niceness (< 0) – Obtienen mas contadores
– mas tiempo de CPU
![Page 131: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/131.jpg)
Iniciar un comando con
prioridad baja• El comando nice se utiliza para establecer un valor de
niceness del proceso al iniciar el proceso.
El comando renice puede utilizarse para cambiar el niceness de un proceso en ejecución.
![Page 132: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/132.jpg)
Hacer procesos mucho más
ambiciosos• Los usuarios normales no pueden bajar el niceness de
un proceso. Esto trae dos implicaciones:– Debido a que los procesos inician con un niceness de 0 por defecto, los
usuarios normales no pueden hacer procesos "ambiciosos" con valores
de niceness negativos.
– Una vez que a un proceso le han bajado el nice, los usuarios normales
no pueden volverlo "normal" otra vez .
• El administrador puede utilizar el comando renice como
root para elevar el niceness – Usuario normal no puede restaurar dicha situación.
![Page 133: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/133.jpg)
Envio de señales
• Las señales son una forma de bajo nivel de la
comunicación entre procesos que surgen de una
variedad de recursos, incluyendo el kernel, la terminal y
otros procesos.
• Las señales se distinguen por los números de señales
que tienen nombres y usos simbólicos.
• Los nombres simbólicos para los nombres de señales
pueden listarse con el comando kill -l.
• El comando kill envía señales a otros procesos.
![Page 134: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/134.jpg)
Envio de señales
• Tras recibir una señal, un proceso puede ya sea,
ignorarla, reaccionar de un modo especificado por
defecto de kernel o implementar un manejador de señal
personalizado.
• Convencionalmente, el número de señal 15 (SIGTERM)
se utiliza para solicitar la terminación de un proceso.
• La señal número 9 (SIGKILL) termina un proceso y no
puede anularse.
• Los comandos pkill y killall pueden utilizarse para enviar
señales a procesos especificados por nombre de
comando o el usuario a quienes pertenecen.
![Page 135: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/135.jpg)
Enviando Señales
• El comando kill se utiliza para enviar señales a otros
procesos.
![Page 136: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/136.jpg)
Enviando Señales
• kill <process-ID> # Kills a specific process
kill -9 <process-ID> # does not give the process any time
to perform cleanup procedures.
kill -l # List all of the signals that can be sent to a
proccess
• kill -s SIGSTOP <process-ID> # Suspend (put to sleep)
a specific process
• kill -s SIGCONT <process-ID> # Resume (wake up) a
specific process
![Page 137: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/137.jpg)
Control de Trabajo
• La shell bash permite a los comandos ejecutarse en
segundo plano como "trabajos".
• El comando jobs listará todos los trabajos en segundo
plano.
• La secuencia de teclas CONTROL-Z suspenderá y
enviará a segundo plano el actual trabajo que se
encuentra en primer plano.
• El comando bg reanuda un trabajo de segundo plano.
• El comando fg trae un trabajo de segundo plano a
primer plano.
![Page 138: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/138.jpg)
Ejecución de comandos en
segundo plano como trabajos• Cualquier comando que usted especifique puede
también ejecutarse en el segundo plano,adjuntándole el
signo (“&”) a la línea de comandos.
• Sólo los comandos de larga ejecución que no requieren
entradas desde el teclado y no generan grandes
cantidades de salida son apropiados para un segundo
plano.
find / -size +1024M > bigfiles.txt 2> /dev/null &
![Page 139: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/139.jpg)
Administración de múltiples
trabajos • Iniciando multiples jobs en background
Visualizando jobs en background (comando jobs)
Traer un trabajo al primer plano con fg (comando fg)
![Page 140: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/140.jpg)
Suspensión del trabajo de
primer plano con CONTROLZ• La secuencia CONTROL-Z es un método para
suspender procesos.
![Page 141: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/141.jpg)
Reiniciar un trabajo detenido en
el segundo plano• Un trabajo detenido puede reiniciarse en el segundo
plano con el comando incorporado bg.
![Page 142: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/142.jpg)
Matar Trabajos (Killing Jobs)
• El comando kill, utilizado para entregar señales para
procesos se implementa como un comando incorporado
de shell.
![Page 143: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/143.jpg)
Programación de Taeas
retrasadas: at• El comando at puede someter comandos para que se
ejecuten más tarde.
• El comando batch puede emitir comandos para que se
ejecuten cuando la carga de las máquinas sea baja.
• Los comandos pueden escribirse directamente o
someterse como un script.
![Page 144: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/144.jpg)
El demonio atd
• El demonio atd le permite a los usuarios someter
trabajos para ser realizados más tarde
• Para utilizar el demonio atd, éste debe estar
ejecutándose.
• Los usuarios pueden confirmar que atd se está
ejecutando simplemente al examinar la lista de procesos
en ejecución
![Page 145: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/145.jpg)
Programación de Taeas
periodicas: cron• La utilidad cron se utiliza para programar tareas
recurrentes.
• El comando crontab provee un frontend para editar
archivos crontab.
• El archivo crontab utiliza 5 campos para especificar la
información de temporización.
• la stdout de trabajos cron se envía por correo al
usuario.
![Page 146: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/146.jpg)
The cron Service
• El demonio crond es el demonio que realiza tareas
periódicamente en nombre del sistema o de usuarios
individuales.
• El demonio suele iniciarse cuando el sistema arranca,
por lo tanto, la mayoría de usuarios lo pueden ignorar. Al
listar todos los procesos y buscar crond puede confirmar
si el demonio crond está en ejecución.
![Page 147: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/147.jpg)
Usando el comando crontab
• Los usuarios rara vez administran su archivo crontab directamente (o inclusosaben dónde se almacena), en cambio, utilizan el comando crontab para editar la lista o quitarla.
– crontab {-e | -l | -r}
– crontab FILE
crontab -e
sudo /etc/init.d/cron restart
/var/spool/cron/crontabs/
![Page 148: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/148.jpg)
Sintaxis crontab
![Page 149: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/149.jpg)
Networking
![Page 150: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/150.jpg)
Salida de comando netstat
![Page 151: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/151.jpg)
Determinar tu(s) dirección(es)
IP: /sbin/ifconfig• El comando ifconfig muestra la configuración de todas
las interfaces de red activas.
• Los usuarios estándar pueden usar el comando para ver
información de configuración de interfaz, utilizando una
referencia absoluta.
![Page 152: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/152.jpg)
Shell scripts
![Page 153: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/153.jpg)
A shell script is a text file with a list of commands inside. Shell scripts are good for automating tasks you use often, or running batch jobs.
Enter the following in a new file, script.sh:
echo “Date and time is:”
date
echo “Your current directory is:”
pwd
Run the script like this: sh script.sh
Shell Scripts
![Page 154: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/154.jpg)
A more advanced shell script utilizing a loop:
for num in 1 2 3
do
echo “We are on $num…”
done
More Shell Scripts
![Page 155: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/155.jpg)
if [ $# -gt 1 ] then
seqfile="$1"
destdir="$2“
else
echo "Use: fsplit SEQFILE DESTDIR"
echo "Splits fasta file SEQFILE into
separate files in DESTDIR folder"
exit
fi
More Shell Scripts
![Page 156: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/156.jpg)
Linux training online
• http://manuals.bioinformatics.ucr.edu/home/linux-basics
• http://www.codecoffee.com/tipsforlinux/index-linux.html
![Page 157: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/157.jpg)
Ejercicio 1
• Download proteome of Halobacterium spec.
• wget
ftp://ftp.ncbi.nih.gov/genbank/genomes/Bacteria/Halobac
terium_sp_uid217/AE004437.faa
• grep '^>' AE004437.faa –count
• egrep 'W.H..H{1,2}' AE004437.faa --count
• awk --posix -v RS='>' '/W.H..(H){1,2}/ { print ">" $0;}'
AE004437.faa | less
![Page 158: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/158.jpg)
Ejercicio 2
for chr in `seq 1 22` X Y
do
wget -O - -q
http://hgdownload.cse.ucsc.edu/goldenPath/
hg19/chromosomes/chr1.fa.gz | gunzip -c >>
hg19.fa
done
![Page 159: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/159.jpg)
Ejercicio 3
# An example database
wget ftp://ftp.ncbi.nih.gov/genbank/genomes/Bacteria/Halobacterium_sp_uid217/AE004437.faa
# Prepare dababase for Blast search
formatdb -i AE004437.faa -p T -o
# Generate an example query
awk --posix -v RS='>' '/WWW/ { print ">" $0;}' AE004437.faa \
> blast_query_2seqs.fasta
# Run blast with tabular output (extract the hit only)
blastall -p blastp -i blast_query_2seqs.fasta -d AE004437.faa -m 8 -e 1e-5 | \
awk '{print $2}' | sort | uniq \
> ids_of_4hits
# Get the fasta file for hits
fastacmd -d AE004437.faa -i ids_of_4hits > hits.fasta
![Page 160: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/160.jpg)
Ejercicio 4
#!/bin/sh
# split fasta file into separate sequence files
#
if [ $# -gt 1 ] then
seqfile="$1"
destdir="$2“
else
echo "Use: fsplit SEQFILE DESTDIR"
echo "Splits fasta file SEQFILE into separate files in DESTDIR
folder"
exit
fi
mkdir $2
csplit -f $destdir/sequence $seqfile "%^>%" "/^>/" "{*}" -s
![Page 161: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/161.jpg)
More commands
• for i in *.input; do mv $i ${i/\.old/\.new}; done
• scp file.name user@remote_host:~/dir/newfile.name
• find /share/media/mp3/ -type f -name "*.mp3" -print0 |
xargs -0 -r -I file cp -v -p file --target-
directory=/bakup/iscsi/mp3
![Page 162: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/162.jpg)
Packages
![Page 163: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/163.jpg)
Installing packages
apt-cache search phylip
# searches for application "phylip" from command line
apt-cache show phylip
# provides description of the package
apt-get install phylip
apt-get update
# do once a month do update Debian packages
apt-get upgrade -u
# to upgrade after update
![Page 164: Linux for bioinformatics](https://reader030.vdocuments.us/reader030/viewer/2022020101/557b0d07d8b42a210a8b4808/html5/thumbnails/164.jpg)
aptitude
• El nuevo sistema de gestión de paquetes para
Debian/Ubuntu se llama aptitude
• Las operaciones realizadas quedan registradas en
/var/log/aptitude