SlideShare a Scribd company logo
1 of 164
Download to read offline
Introducción a Linux
Alberto Labarga – Experimental Serendipity
Data analysis workshop for massive sequencing data
Granada, 13 de Junio de 2011
http://www.slideshare.net/alabarga/introduction-to-linux-for-bioinformatics
Proyecto GNU

• Richard Stallman
• Proyecto GNU creado en el año 1984.
    – Software Libre
    – Licencias GPL
    – Free Software Fundation
Estructura de GNU
Linux

• Linus Torvalds.
• Nucleo Linux (1991)
     – Compatible con Unix
     – Licenciado bajo GPL
     – Publicado en Internet
Nucleo de Linux
GNU + Linux
GNU + Linux
Componentes de una
   distribución
Componentes de una
   Distribución
Recomendaciones




http://www.jomuoru.net/wp-content/uploads/2010/03/gldt102-full.png
                                        http://distrowatch.com
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
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.
Shells
• Al arranque Bash ejecuta comandos hallados en el
  archivo ~/.bashrc,     permitiéndole a los usuarios
  personalizar su shell.
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.
putty download

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
winscp download

http://winscp.net/eng/docs/lang:es
Para empezar
Algunos comandos para ir jugando:

whoami – muestra el nombre del usuario
id – muestra la información sobre el usuario
who – muestra otros usuarios logueados
date – fecha/hora del servidor
cal – muestra el calendario
history – muestra el historial de comandos
Información del sistema
• uname
  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



• hostname
  alabarga@genome2:~$ hostname
  genome2
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)
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

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




 • También se puede usar find
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.
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
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 /.
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.
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í.
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
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.
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.
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.
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
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.
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.
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
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
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.
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.
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.
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
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
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).
Descriptores de Archivos
 • 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.


Flujo                               Descriptor               Abreviación


Standard In                              0                       stdin


Standard Out                             1                      stdout


Standard Error                           2                      stderr
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
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
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
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.
Vim: control
• vi my_file

• i # INSERT MODE
• R # replace MODE
• ESC # NORMAL (NON-EDITING) MODE
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
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#
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
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
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
Borrar archivos
• Se pueden suprimir (eliminar, borrar) archivos con el
  comando rm (remove).
• Uso:
   – rm [OPCIONES] {ARCHIVO...}
• Examples:
   – rm /tmp/borrar.txt
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
Borrar árboles de directorios
• Con la opción correcta, el comando rm puede borrar o
  eliminar arboles de directorios completos.

  rm –R backup
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".
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!
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.
"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."
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
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
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>
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
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/
Manipulación de ficheros
       de texto
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…]
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.
grep
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
Opciones para especificar el
  orden de clasificación
El comando uniq
• El programa uniq se utiliza para identificar,
  contar o suprimir registros duplicados en la
  información clasificada.
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
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„
tr
También podemos utilizar tr

• echo “HELLO” | tr 'A-Z' 'a-z'
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
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 }
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}
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.
A simple example (cont..)

     $ awk –F”:” „{print $1 “ “ $3}‟ /etc/passwd


   Awk
executable


           Field
         Separator                        Action to
                                       perform on line
                                     If pattern matches


                          pattern
                         to search                          The file
                                                          to operate
                                                             upon
sed/awk
sed '/^>/d' F5R3.fasta | sort | uniq | awk '{print ">SEQ"NR"n"$0 }'
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
Ejercicio
• ls -s | sed -e 's/^[ ]*//' | cut -d " " -f2
Comandos avanzados
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.
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 $?.
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
Ejemplos de Alias
Los siguientes alias podrían ser útiles. Puedes configurarlos en el archivo
~/.bashrc.

Buscar los 5 archivos mas grandes
alias findbig="find . -type f -exec ls -s {} ; | sort -n -r | head -5"



Ubicar los procesos bash:
alias psg="ps -aux ¦ grep bash"


 Lista en formato largo:

  alias ll='ls -l'
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.
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.
Usuarios
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.
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
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
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.
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.
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.
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.
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.
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:
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.
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.
Cambio de identidad
• El comando su le permite a un usuario cambiar el id del
  usuario
• sudo permite ejecutar comandos como root
Permisos
Permisos de usuario
Interpretación de Permisos
Para poder interpretar los permisos de archivos, se revisa el siguiente
ejemplo:
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
•   000 = 0
•   001 = 1
•   010 = 2
•   011 = 3
•   100 = 4
•   101 = 5
•   110 = 6
•   111 = 7
Usando el comando chmod



                               abreviación   interpretación
abreviación   interpretación   +             Agregar
u             Usuario          -             Remover
g             Grupo            =             Asigna
o             Otros            r             Lectura
a             Todos            w             Escritura
                               x             Ejecución
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.
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.
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,
¿Quién puede Modificar los
  Propietarios de archivos y los
           Permisos?
Operación   Usuarios Autorizados



chmod       root y el propietario del archivo


            root y el propietario de archivo (únicamente los grupos
chgrp
            subscritos)


chown       sólo root
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
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.
Comandos Básicos Tar
Opción           Efecto


-c, --create     Crea un empaquetador de archivos


-x, --extract    Extraer un empaquetador de archivos


                 List el contenido de un empaquetador de
-t, --list
                 archivos
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
Procesos
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
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
top
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     Por lo general, este es un proceso que no tiene nada que hacer hasta
                       que suceda algo interesante. Un ejemplo clásico es el demonio de red
(interrumpible) (S)    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   Cuando dos procesos tratan de acceder el mismo recurso de sistema al
                       mismo tiempo. En estas situaciones, el kernel fuerza al proceso a
(no interrumpible)     dormir.
(D)
Procesos detenidos     Ocasionalmente, los usuarios deciden suspender procesos. Los
                       procesos suspendidos no realizarán ninguna acción hasta no ser
(suspendidos) (T)      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.
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.
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
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.
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
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.
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.
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.
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.
Enviando Señales
• El comando kill se utiliza para enviar señales a otros
  procesos.
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
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.
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 &
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)
Suspensión del trabajo de
  primer plano con CONTROLZ
• La secuencia CONTROL-Z es un método para
  suspender procesos.
Reiniciar un trabajo detenido en
       el segundo plano
• Un trabajo detenido puede reiniciarse en el segundo
  plano con el comando incorporado bg.
Matar Trabajos (Killing Jobs)
• El comando kill, utilizado para entregar señales para
  procesos se implementa como un comando incorporado
  de shell.
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.
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
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.
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.
Usando el comando crontab

•   Los usuarios rara vez administran su archivo crontab directamente (o incluso
    saben 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/
Sintaxis crontab
Networking
Salida de comando netstat
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.
Shell scripts
Shell Scripts
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
More Shell Scripts
A more advanced shell script utilizing a loop:

for num in 1 2 3
do
   echo “We are on $num…”
done
More Shell Scripts
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
Linux training online
• http://manuals.bioinformatics.ucr.edu/home/linux-basics
• http://www.codecoffee.com/tipsforlinux/index-linux.html
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
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
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
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
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
Packages
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
aptitude

• El nuevo sistema de gestión de paquetes para
  Debian/Ubuntu se llama aptitude
• Las operaciones realizadas quedan registradas en
  /var/log/aptitude

More Related Content

What's hot

Course 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild CardsCourse 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild CardsAhmed El-Arabawy
 
Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux Ahmed El-Arabawy
 
Quick Guide with Linux Command Line
Quick Guide with Linux Command LineQuick Guide with Linux Command Line
Quick Guide with Linux Command LineAnuchit Chalothorn
 
Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals Ahmed El-Arabawy
 
Course 102: Lecture 3: Basic Concepts And Commands
Course 102: Lecture 3: Basic Concepts And Commands Course 102: Lecture 3: Basic Concepts And Commands
Course 102: Lecture 3: Basic Concepts And Commands Ahmed El-Arabawy
 
Unix Command-Line Cheat Sheet BTI2014
Unix Command-Line Cheat Sheet BTI2014Unix Command-Line Cheat Sheet BTI2014
Unix Command-Line Cheat Sheet BTI2014Noé Fernández-Pozo
 
Unix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell ScriptUnix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell Scriptsbmguys
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scriptingvceder
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernelguest547d74
 
XPDDS18: A dive into kbuild - Cao jin, Fujitsu
XPDDS18: A dive into kbuild - Cao jin, FujitsuXPDDS18: A dive into kbuild - Cao jin, Fujitsu
XPDDS18: A dive into kbuild - Cao jin, FujitsuThe Linux Foundation
 
[ko] Kernel Networking Stack 진입 장벽 허물기
[ko] Kernel Networking Stack 진입 장벽 허물기[ko] Kernel Networking Stack 진입 장벽 허물기
[ko] Kernel Networking Stack 진입 장벽 허물기Juhee Kang
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/CoreShay Cohen
 
Unix OS & Commands
Unix OS & CommandsUnix OS & Commands
Unix OS & CommandsMohit Belwal
 
Slug 2009 06 SELinux For Sysadmins
Slug 2009 06 SELinux For SysadminsSlug 2009 06 SELinux For Sysadmins
Slug 2009 06 SELinux For SysadminsPaulWay
 

What's hot (20)

Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Linux kernel architecture
Linux kernel architectureLinux kernel architecture
Linux kernel architecture
 
Basic 50 linus command
Basic 50 linus commandBasic 50 linus command
Basic 50 linus command
 
Course 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild CardsCourse 102: Lecture 4: Using Wild Cards
Course 102: Lecture 4: Using Wild Cards
 
Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux Course 102: Lecture 2: Unwrapping Linux
Course 102: Lecture 2: Unwrapping Linux
 
Quick Guide with Linux Command Line
Quick Guide with Linux Command LineQuick Guide with Linux Command Line
Quick Guide with Linux Command Line
 
Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals
 
Course 102: Lecture 3: Basic Concepts And Commands
Course 102: Lecture 3: Basic Concepts And Commands Course 102: Lecture 3: Basic Concepts And Commands
Course 102: Lecture 3: Basic Concepts And Commands
 
Unix Command-Line Cheat Sheet BTI2014
Unix Command-Line Cheat Sheet BTI2014Unix Command-Line Cheat Sheet BTI2014
Unix Command-Line Cheat Sheet BTI2014
 
Unix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell ScriptUnix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell Script
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scripting
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
XPDDS18: A dive into kbuild - Cao jin, Fujitsu
XPDDS18: A dive into kbuild - Cao jin, FujitsuXPDDS18: A dive into kbuild - Cao jin, Fujitsu
XPDDS18: A dive into kbuild - Cao jin, Fujitsu
 
[ko] Kernel Networking Stack 진입 장벽 허물기
[ko] Kernel Networking Stack 진입 장벽 허물기[ko] Kernel Networking Stack 진입 장벽 허물기
[ko] Kernel Networking Stack 진입 장벽 허물기
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
 
Unix OS & Commands
Unix OS & CommandsUnix OS & Commands
Unix OS & Commands
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Slug 2009 06 SELinux For Sysadmins
Slug 2009 06 SELinux For SysadminsSlug 2009 06 SELinux For Sysadmins
Slug 2009 06 SELinux For Sysadmins
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 

Viewers also liked

Que Es Software Libre Y Que Es Linux
Que Es Software Libre Y Que Es LinuxQue Es Software Libre Y Que Es Linux
Que Es Software Libre Y Que Es Linuxguesteef8875
 
Métodos y Resultados Actuales en Bioinformática: know-how y know-what de las ...
Métodos y Resultados Actuales en Bioinformática: know-how y know-what de las ...Métodos y Resultados Actuales en Bioinformática: know-how y know-what de las ...
Métodos y Resultados Actuales en Bioinformática: know-how y know-what de las ...Mikel Egaña Aranguren, Ph.D.
 
Inteligencia Artificial en Bioinformática. Algunas Aplicaciones.
Inteligencia Artificial en Bioinformática. Algunas Aplicaciones.Inteligencia Artificial en Bioinformática. Algunas Aplicaciones.
Inteligencia Artificial en Bioinformática. Algunas Aplicaciones.Alberto Labarga
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013François Belleau
 
Knowledge management for integrative omics data analysis
Knowledge management for integrative omics data analysisKnowledge management for integrative omics data analysis
Knowledge management for integrative omics data analysisCOST action BM1006
 
Semantic Web from the 2013 Perspective
Semantic Web from the 2013 PerspectiveSemantic Web from the 2013 Perspective
Semantic Web from the 2013 PerspectiveAdrian Paschke
 
Towards an understanding of diversity in biological and biomedical systems
Towards an understanding of diversity in biological and biomedical systemsTowards an understanding of diversity in biological and biomedical systems
Towards an understanding of diversity in biological and biomedical systemscursoNGS
 
Workshop NGS data analysis - 2
Workshop NGS data analysis - 2Workshop NGS data analysis - 2
Workshop NGS data analysis - 2Maté Ongenaert
 
Linked Data in Healthcare and Life Sciences
Linked Data in Healthcare and Life SciencesLinked Data in Healthcare and Life Sciences
Linked Data in Healthcare and Life SciencesJames G. Boram Kim
 
Comandos basicos linux
Comandos basicos linuxComandos basicos linux
Comandos basicos linuxmaomaq
 
SEO y Web Semántica en Congreso Web
SEO y Web Semántica en Congreso WebSEO y Web Semántica en Congreso Web
SEO y Web Semántica en Congreso WebLakil Essady
 
Generating Biomedical Hypotheses Using Semantic Web Technologies
Generating Biomedical Hypotheses Using Semantic Web TechnologiesGenerating Biomedical Hypotheses Using Semantic Web Technologies
Generating Biomedical Hypotheses Using Semantic Web TechnologiesMichel Dumontier
 

Viewers also liked (20)

Tz2014 workshop rundeck
Tz2014 workshop rundeckTz2014 workshop rundeck
Tz2014 workshop rundeck
 
Que Es Software Libre Y Que Es Linux
Que Es Software Libre Y Que Es LinuxQue Es Software Libre Y Que Es Linux
Que Es Software Libre Y Que Es Linux
 
Métodos y Resultados Actuales en Bioinformática: know-how y know-what de las ...
Métodos y Resultados Actuales en Bioinformática: know-how y know-what de las ...Métodos y Resultados Actuales en Bioinformática: know-how y know-what de las ...
Métodos y Resultados Actuales en Bioinformática: know-how y know-what de las ...
 
Applying Ontology Design Patterns in bio-ontologies
Applying Ontology Design Patterns in bio-ontologiesApplying Ontology Design Patterns in bio-ontologies
Applying Ontology Design Patterns in bio-ontologies
 
Aplicación de la Web Semántica en Bioinformática
Aplicación de la Web Semántica en BioinformáticaAplicación de la Web Semántica en Bioinformática
Aplicación de la Web Semántica en Bioinformática
 
Inteligencia Artificial en Bioinformática. Algunas Aplicaciones.
Inteligencia Artificial en Bioinformática. Algunas Aplicaciones.Inteligencia Artificial en Bioinformática. Algunas Aplicaciones.
Inteligencia Artificial en Bioinformática. Algunas Aplicaciones.
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013
 
Knowledge management for integrative omics data analysis
Knowledge management for integrative omics data analysisKnowledge management for integrative omics data analysis
Knowledge management for integrative omics data analysis
 
Introduction of Linked Data for Science
Introduction of Linked Data for ScienceIntroduction of Linked Data for Science
Introduction of Linked Data for Science
 
Life Sciences Linked Data
Life Sciences Linked DataLife Sciences Linked Data
Life Sciences Linked Data
 
Introduccion a Linux
Introduccion a LinuxIntroduccion a Linux
Introduccion a Linux
 
Semantic Web from the 2013 Perspective
Semantic Web from the 2013 PerspectiveSemantic Web from the 2013 Perspective
Semantic Web from the 2013 Perspective
 
Bio2RDF @ W3C HCLS2009
Bio2RDF @ W3C HCLS2009Bio2RDF @ W3C HCLS2009
Bio2RDF @ W3C HCLS2009
 
Towards an understanding of diversity in biological and biomedical systems
Towards an understanding of diversity in biological and biomedical systemsTowards an understanding of diversity in biological and biomedical systems
Towards an understanding of diversity in biological and biomedical systems
 
Workshop NGS data analysis - 2
Workshop NGS data analysis - 2Workshop NGS data analysis - 2
Workshop NGS data analysis - 2
 
Linked Data in Healthcare and Life Sciences
Linked Data in Healthcare and Life SciencesLinked Data in Healthcare and Life Sciences
Linked Data in Healthcare and Life Sciences
 
Comandos basicos linux
Comandos basicos linuxComandos basicos linux
Comandos basicos linux
 
Curso básico Linux
Curso básico LinuxCurso básico Linux
Curso básico Linux
 
SEO y Web Semántica en Congreso Web
SEO y Web Semántica en Congreso WebSEO y Web Semántica en Congreso Web
SEO y Web Semántica en Congreso Web
 
Generating Biomedical Hypotheses Using Semantic Web Technologies
Generating Biomedical Hypotheses Using Semantic Web TechnologiesGenerating Biomedical Hypotheses Using Semantic Web Technologies
Generating Biomedical Hypotheses Using Semantic Web Technologies
 

Similar to Linux for bioinformatics

Introducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXIntroducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXJose Pla
 
Semana 12 filesystem basico
Semana 12  filesystem basicoSemana 12  filesystem basico
Semana 12 filesystem basicovictdiazm
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformaticsAlberto Labarga
 
Comandos basicos
Comandos basicosComandos basicos
Comandos basicosiran_isma10
 
Equipo 7:Comandos basicos y aplicaciones en linux
Equipo 7:Comandos basicos y aplicaciones en linuxEquipo 7:Comandos basicos y aplicaciones en linux
Equipo 7:Comandos basicos y aplicaciones en linuxiran_isma10
 
Presentación sistemas archivos
Presentación sistemas archivosPresentación sistemas archivos
Presentación sistemas archivoselpropio_88
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhatmmartinv
 
Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Enrique Villafuerte
 
Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Alan Resendiz
 
Sistemas de ficheros
Sistemas de ficherosSistemas de ficheros
Sistemas de ficherosdaniimc
 
40 Comandos básicos de Linux.docx
40 Comandos básicos de Linux.docx40 Comandos básicos de Linux.docx
40 Comandos básicos de Linux.docxGladys648508
 

Similar to Linux for bioinformatics (20)

Introducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXIntroducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUX
 
Linux básico
Linux básicoLinux básico
Linux básico
 
Semana 12 filesystem basico
Semana 12  filesystem basicoSemana 12  filesystem basico
Semana 12 filesystem basico
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformatics
 
Comandos basicos
Comandos basicosComandos basicos
Comandos basicos
 
Equipo 7:Comandos basicos y aplicaciones en linux
Equipo 7:Comandos basicos y aplicaciones en linuxEquipo 7:Comandos basicos y aplicaciones en linux
Equipo 7:Comandos basicos y aplicaciones en linux
 
Linux Para Asterisk
Linux Para AsteriskLinux Para Asterisk
Linux Para Asterisk
 
Presentación sistemas archivos
Presentación sistemas archivosPresentación sistemas archivos
Presentación sistemas archivos
 
Comandos Linux 1.ppt
Comandos Linux 1.pptComandos Linux 1.ppt
Comandos Linux 1.ppt
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhat
 
Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781
 
Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.
 
Sistemas de ficheros
Sistemas de ficherosSistemas de ficheros
Sistemas de ficheros
 
Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2
 
Curso Linux Basico
Curso Linux BasicoCurso Linux Basico
Curso Linux Basico
 
Linux
LinuxLinux
Linux
 
40 Comandos básicos de Linux.docx
40 Comandos básicos de Linux.docx40 Comandos básicos de Linux.docx
40 Comandos básicos de Linux.docx
 
Clase3 (consola linux)
Clase3 (consola linux)Clase3 (consola linux)
Clase3 (consola linux)
 
Presentación linux
Presentación linuxPresentación linux
Presentación linux
 
Intro comandos unix
Intro comandos   unixIntro comandos   unix
Intro comandos unix
 

More from cursoNGS

Utilidad de la genómica en la salud humana
Utilidad de la genómica en la salud humanaUtilidad de la genómica en la salud humana
Utilidad de la genómica en la salud humanacursoNGS
 
NGS analysis of micro-RNA
NGS analysis of micro-RNANGS analysis of micro-RNA
NGS analysis of micro-RNAcursoNGS
 
Differential expression in RNA-Seq
Differential expression in RNA-SeqDifferential expression in RNA-Seq
Differential expression in RNA-SeqcursoNGS
 
Discovery and annotation of variants by exome analysis using NGS
Discovery and annotation of variants by exome analysis using NGSDiscovery and annotation of variants by exome analysis using NGS
Discovery and annotation of variants by exome analysis using NGScursoNGS
 
NGS Data Preprocessing
NGS Data PreprocessingNGS Data Preprocessing
NGS Data PreprocessingcursoNGS
 
Computational infrastructure for NGS data analysis
Computational infrastructure for NGS data analysisComputational infrastructure for NGS data analysis
Computational infrastructure for NGS data analysiscursoNGS
 
Introduction to NGS
Introduction to NGSIntroduction to NGS
Introduction to NGScursoNGS
 
Introduccion a la bioinformatica
Introduccion a la bioinformaticaIntroduccion a la bioinformatica
Introduccion a la bioinformaticacursoNGS
 

More from cursoNGS (8)

Utilidad de la genómica en la salud humana
Utilidad de la genómica en la salud humanaUtilidad de la genómica en la salud humana
Utilidad de la genómica en la salud humana
 
NGS analysis of micro-RNA
NGS analysis of micro-RNANGS analysis of micro-RNA
NGS analysis of micro-RNA
 
Differential expression in RNA-Seq
Differential expression in RNA-SeqDifferential expression in RNA-Seq
Differential expression in RNA-Seq
 
Discovery and annotation of variants by exome analysis using NGS
Discovery and annotation of variants by exome analysis using NGSDiscovery and annotation of variants by exome analysis using NGS
Discovery and annotation of variants by exome analysis using NGS
 
NGS Data Preprocessing
NGS Data PreprocessingNGS Data Preprocessing
NGS Data Preprocessing
 
Computational infrastructure for NGS data analysis
Computational infrastructure for NGS data analysisComputational infrastructure for NGS data analysis
Computational infrastructure for NGS data analysis
 
Introduction to NGS
Introduction to NGSIntroduction to NGS
Introduction to NGS
 
Introduccion a la bioinformatica
Introduccion a la bioinformaticaIntroduccion a la bioinformatica
Introduccion a la bioinformatica
 

Recently uploaded

Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 

Recently uploaded (15)

Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 

Linux for bioinformatics

  • 1. Introducción a Linux Alberto Labarga – Experimental Serendipity Data analysis workshop for massive sequencing data Granada, 13 de Junio de 2011
  • 3. Proyecto GNU • Richard Stallman • Proyecto GNU creado en el año 1984. – Software Libre – Licencias GPL – Free Software Fundation
  • 5. Linux • Linus Torvalds. • Nucleo Linux (1991) – Compatible con Unix – Licenciado bajo GPL – Publicado en Internet
  • 9. Componentes de una distribución
  • 10. Componentes de una Distribución
  • 11.
  • 13.
  • 14.
  • 15. 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
  • 16. 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.
  • 17. Shells • Al arranque Bash ejecuta comandos hallados en el archivo ~/.bashrc, permitiéndole a los usuarios personalizar su shell.
  • 18. 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.
  • 20.
  • 22.
  • 23. Para empezar Algunos comandos para ir jugando: whoami – muestra el nombre del usuario id – muestra la información sobre el usuario who – muestra otros usuarios logueados date – fecha/hora del servidor cal – muestra el calendario history – muestra el historial de comandos
  • 24. Información del sistema • uname 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 • hostname alabarga@genome2:~$ hostname genome2
  • 25. 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)
  • 26. 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 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 • También se puede usar find
  • 27. 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.
  • 28. 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
  • 29. 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 /.
  • 30. 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.
  • 31. 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í.
  • 32. 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
  • 33. 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.
  • 34. 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.
  • 35. 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.
  • 36. 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
  • 37. 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.
  • 38. 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.
  • 39. 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
  • 40. 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
  • 41. 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.
  • 42. 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.
  • 43. 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.
  • 44. 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
  • 45. 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
  • 46. 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).
  • 47. Descriptores de Archivos • 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. Flujo Descriptor Abreviación Standard In 0 stdin Standard Out 1 stdout Standard Error 2 stderr
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. 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.
  • 52. Vim: control • vi my_file • i # INSERT MODE • R # replace MODE • ESC # NORMAL (NON-EDITING) MODE
  • 53. 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
  • 54. 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#
  • 55. 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
  • 56. 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
  • 57. 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
  • 58. Borrar archivos • Se pueden suprimir (eliminar, borrar) archivos con el comando rm (remove). • Uso: – rm [OPCIONES] {ARCHIVO...} • Examples: – rm /tmp/borrar.txt
  • 59. 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
  • 60. Borrar árboles de directorios • Con la opción correcta, el comando rm puede borrar o eliminar arboles de directorios completos. rm –R backup
  • 61. 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".
  • 62. 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!
  • 63. 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.
  • 64. "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."
  • 65. 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
  • 66. 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
  • 67. 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>
  • 68. 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
  • 69. 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/
  • 71. 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…]
  • 72. 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.
  • 73. grep
  • 74. 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
  • 75. Opciones para especificar el orden de clasificación
  • 76. El comando uniq • El programa uniq se utiliza para identificar, contar o suprimir registros duplicados en la información clasificada.
  • 77. 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
  • 78. 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„
  • 79. tr También podemos utilizar tr • echo “HELLO” | tr 'A-Z' 'a-z'
  • 80. 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
  • 81. 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 }
  • 82. 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}
  • 83. 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.
  • 84. A simple example (cont..) $ awk –F”:” „{print $1 “ “ $3}‟ /etc/passwd Awk executable Field Separator Action to perform on line If pattern matches pattern to search The file to operate upon
  • 85. sed/awk sed '/^>/d' F5R3.fasta | sort | uniq | awk '{print ">SEQ"NR"n"$0 }'
  • 86. 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
  • 87. Ejercicio • ls -s | sed -e 's/^[ ]*//' | cut -d " " -f2
  • 89. 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.
  • 90. 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 $?.
  • 91. 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
  • 92. Ejemplos de Alias Los siguientes alias podrían ser útiles. Puedes configurarlos en el archivo ~/.bashrc. Buscar los 5 archivos mas grandes alias findbig="find . -type f -exec ls -s {} ; | sort -n -r | head -5" Ubicar los procesos bash: alias psg="ps -aux ¦ grep bash" Lista en formato largo: alias ll='ls -l'
  • 93. 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.
  • 94. 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.
  • 96. 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.
  • 97. 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
  • 98. 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
  • 99. 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.
  • 100. 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.
  • 101. 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.
  • 102. 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.
  • 103. 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.
  • 104. 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:
  • 105. 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.
  • 106. 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.
  • 107. Cambio de identidad • El comando su le permite a un usuario cambiar el id del usuario • sudo permite ejecutar comandos como root
  • 110. Interpretación de Permisos Para poder interpretar los permisos de archivos, se revisa el siguiente ejemplo:
  • 111. 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
  • 112. 000 = 0 • 001 = 1 • 010 = 2 • 011 = 3 • 100 = 4 • 101 = 5 • 110 = 6 • 111 = 7
  • 113. Usando el comando chmod abreviación interpretación abreviación interpretación + Agregar u Usuario - Remover g Grupo = Asigna o Otros r Lectura a Todos w Escritura x Ejecución
  • 114. 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.
  • 115. 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.
  • 116. 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,
  • 117. ¿Quién puede Modificar los Propietarios de archivos y los Permisos? Operación Usuarios Autorizados chmod root y el propietario del archivo root y el propietario de archivo (únicamente los grupos chgrp subscritos) chown sólo root
  • 118. 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
  • 119. 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.
  • 120. Comandos Básicos Tar Opción Efecto -c, --create Crea un empaquetador de archivos -x, --extract Extraer un empaquetador de archivos List el contenido de un empaquetador de -t, --list archivos
  • 121. 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
  • 123. 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
  • 124. 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
  • 125. top
  • 126. 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 Por lo general, este es un proceso que no tiene nada que hacer hasta que suceda algo interesante. Un ejemplo clásico es el demonio de red (interrumpible) (S) 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 Cuando dos procesos tratan de acceder el mismo recurso de sistema al mismo tiempo. En estas situaciones, el kernel fuerza al proceso a (no interrumpible) dormir. (D) Procesos detenidos Ocasionalmente, los usuarios deciden suspender procesos. Los procesos suspendidos no realizarán ninguna acción hasta no ser (suspendidos) (T) 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.
  • 127. 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.
  • 128. 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
  • 129. 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.
  • 130. 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
  • 131. 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.
  • 132. 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.
  • 133. 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.
  • 134. 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.
  • 135. Enviando Señales • El comando kill se utiliza para enviar señales a otros procesos.
  • 136. 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
  • 137. 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.
  • 138. 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 &
  • 139. 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)
  • 140. Suspensión del trabajo de primer plano con CONTROLZ • La secuencia CONTROL-Z es un método para suspender procesos.
  • 141. Reiniciar un trabajo detenido en el segundo plano • Un trabajo detenido puede reiniciarse en el segundo plano con el comando incorporado bg.
  • 142. Matar Trabajos (Killing Jobs) • El comando kill, utilizado para entregar señales para procesos se implementa como un comando incorporado de shell.
  • 143. 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.
  • 144. 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
  • 145. 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.
  • 146. 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.
  • 147. Usando el comando crontab • Los usuarios rara vez administran su archivo crontab directamente (o incluso saben 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/
  • 150. Salida de comando netstat
  • 151. 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.
  • 153. Shell Scripts 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
  • 154. More Shell Scripts A more advanced shell script utilizing a loop: for num in 1 2 3 do echo “We are on $num…” done
  • 155. More Shell Scripts 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
  • 156. Linux training online • http://manuals.bioinformatics.ucr.edu/home/linux-basics • http://www.codecoffee.com/tipsforlinux/index-linux.html
  • 157. 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
  • 158. 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
  • 159. 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
  • 160. 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
  • 161. 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
  • 163. 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
  • 164. aptitude • El nuevo sistema de gestión de paquetes para Debian/Ubuntu se llama aptitude • Las operaciones realizadas quedan registradas en /var/log/aptitude