Este repositorio GitHub fue creado para el Taller de Filoinformática - UNLP, 2-6 Julio 2018, por Pablo Vinuesa, CCG-UNAM.
version: 2018-07-01
Una vez que domines los comandos básicos que se presentarán seguidamente, recomiendo revisar tutoriales mucho más detallados y completos como los siguientes:
En este Taller vamos a trabajar en sesiones locales, es decir, directamente sobre tu laptop o en las máquinas del salón de cómputo. Pero para hacer análisis con conjuntos grandes de datos (por ejemplo múltiples genomas), generamlente trabajaremos en servidores con múltimples CPUs y cores, a los cules accedemos estableciendo sesiones remotas con el comando ssh
un terminal y ejecuta el comando mostrado abajo
ssh -X $USER@***.***.***.19:/home/$USER
hostname
hostname -i
## pablo-lap
## 127.0.1.1
uname
uname -a
## Linux
## Linux pablo-lap 4.15.0-23-generic #25-Ubuntu SMP Wed May 23 18:02:16 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/os-release
## NAME="Ubuntu"
## VERSION="18.04 LTS (Bionic Beaver)"
## ID=ubuntu
## ID_LIKE=debian
## PRETTY_NAME="Ubuntu 18.04 LTS"
## VERSION_ID="18.04"
## HOME_URL="https://www.ubuntu.com/"
## SUPPORT_URL="https://help.ubuntu.com/"
## BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
## PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
## VERSION_CODENAME=bionic
## UBUNTU_CODENAME=bionic
# imprime el contenido de la variable de ambiente $HOME
echo "$HOME"
## /home/vinuesa
# imprime el contenido de la variable de ambiente $USER
echo "$USER"
# Nota que son equivalentes las siguientes expresiones
echo "$HOME"
echo "/home/$USER"
## vinuesa
## /home/vinuesa
## /home/vinuesa
# imprime el contenido de la variable de ambiente PATH; esto variará de máquina a máquina
echo "$PATH"
## /home/vinuesa/Software_downloads/get_homologues-x86_64-20160504/:/home/vinuesa/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/biotools/bin:/usr/local/biotools/bin/Snap:/usr/local/biotools/phylip-3.69/exe:/usr/local/biotools/FigTree.v1.2.3:/usr/local/biotools/dna2pep-1.1:/home/vinuesa/Software_downloads/get_homologues-x86_64-20170105:/usr/local/genome/bin:/usr/local/genome/lib:/usr/local/biotools/BLOCKS3.7_software/blimps3.7/blimps-3.7/bin/linux:/usr/local/biotools/ViennaRNA/ViennaRNA/bin:/usr/local/biotools/ViennaRNA/bin:/home/vinuesa/Software_downloads/BEASTv1.7.5/bin:/home/vinuesa/Software_downloads/Tracer_v1.5/bin:/home/vinuesa/Software_downloads/artemis:/usr/local/Bioperl_Scripts:/home/vinuesa/Software_downloads/guidance.v1.01/www/Guidance
# dónde me encuentro en el sistema?
pwd
## /home/vinuesa/Cursos/intro2phyloinfo_UNLP_Jul18
# ¿Dónde estoy en el sistema de archivos? - ruta absoluta
pwd
## /home/vinuesa/Cursos/intro2phyloinfo_UNLP_Jul18
# Qué contiene el directorio actual? - ejecuta el comando en tu terminal
ls
## administration.cmds
## Batch.cmds
## Category.cmds
## C.cmds
## clase3_GET_PHYLO_y_Stenotrophomonas_phylogenomics
## Filesystem.cmds
## Filesystem_commands.tab
## FORTRAN77.cmds
## hist_head.out
## hist_tail.out
## Intro2biocomputo_sistemas_en_sistemas_UNIX-Linux.pdf
## intro2filoinfo
## intro2linux
## intro_biocomputo_Linux_pt1.odp
## introduccion_a_la_pangenomica_microbiana_OMICAS-UAEM_Mar18.pdf
## linux_commands.tab
## linux_very_basic_commands_table.csv
## management.cmds
## Misc.cmds
## Network.cmds
## Pangenomica_y_filogenomica_bacteriana_OMICAS-UAEM_2Mar18.odp
## Phylogenomics_pan-genomics
## Process.cmds
## processing.cmds
## programming.cmds
## Programming.cmds
## README.md
## SCCS.cmds
## Shell.cmds
## System.cmds
## Text.cmds
## utilities.cmds
## working_with_linux_commands.code
## working_with_linux_commands.html
## working_with_linux_commands.pdf
## working_with_linux_commands.Rmd
# mostrar todos (-a all) los archivos, incluidos los ocultos - ejecuta el comando en tu terminal
ls -a
## .
## ..
## administration.cmds
## Batch.cmds
## Category.cmds
## C.cmds
## clase3_GET_PHYLO_y_Stenotrophomonas_phylogenomics
## Filesystem.cmds
## Filesystem_commands.tab
## FORTRAN77.cmds
## hist_head.out
## hist_tail.out
## Intro2biocomputo_sistemas_en_sistemas_UNIX-Linux.pdf
## intro2filoinfo
## intro2linux
## intro_biocomputo_Linux_pt1.odp
## introduccion_a_la_pangenomica_microbiana_OMICAS-UAEM_Mar18.pdf
## linux_commands.tab
## linux_very_basic_commands_table.csv
## management.cmds
## Misc.cmds
## Network.cmds
## Pangenomica_y_filogenomica_bacteriana_OMICAS-UAEM_2Mar18.odp
## Phylogenomics_pan-genomics
## Process.cmds
## processing.cmds
## programming.cmds
## Programming.cmds
## README.md
## .Rhistory
## SCCS.cmds
## Shell.cmds
## System.cmds
## Text.cmds
## utilities.cmds
## working_with_linux_commands.code
## working_with_linux_commands.html
## working_with_linux_commands.pdf
## working_with_linux_commands.Rmd
# mostrar los archivos y sus atributos
ls -l
## total 21184
## -rw-r--r-- 1 vinuesa vinuesa 78 Jul 1 16:33 administration.cmds
## -rw-r--r-- 1 vinuesa vinuesa 492 Jul 1 16:33 Batch.cmds
## -rw-r--r-- 1 vinuesa vinuesa 75 Jul 1 16:33 Category.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2835 Jul 1 16:33 C.cmds
## drwxr-xr-x 2 vinuesa vinuesa 4096 Jun 30 09:20 clase3_GET_PHYLO_y_Stenotrophomonas_phylogenomics
## -rw-r--r-- 1 vinuesa vinuesa 1814 Jul 1 16:33 Filesystem.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1814 Jul 1 16:33 Filesystem_commands.tab
## -rw-r--r-- 1 vinuesa vinuesa 54 Jul 1 16:33 FORTRAN77.cmds
## -rw-r--r-- 1 vinuesa vinuesa 0 Jul 1 16:33 hist_head.out
## -rw-r--r-- 1 vinuesa vinuesa 0 Jul 1 16:33 hist_tail.out
## -rw-r--r-- 1 vinuesa vinuesa 2302077 Jul 1 13:18 Intro2biocomputo_sistemas_en_sistemas_UNIX-Linux.pdf
## drwxr-xr-x 3 vinuesa vinuesa 4096 Jul 1 12:10 intro2filoinfo
## drwxr-xr-x 2 vinuesa vinuesa 4096 Jul 1 13:30 intro2linux
## -rw-r--r-- 1 vinuesa vinuesa 1683925 Jul 1 13:18 intro_biocomputo_Linux_pt1.odp
## -rw-r--r-- 1 vinuesa vinuesa 8755024 Jun 30 09:21 introduccion_a_la_pangenomica_microbiana_OMICAS-UAEM_Mar18.pdf
## -rw-r--r-- 1 vinuesa vinuesa 10193 Jul 1 16:32 linux_commands.tab
## -rw-r--r-- 1 vinuesa vinuesa 1705 Jul 1 13:18 linux_very_basic_commands_table.csv
## -rw-r--r-- 1 vinuesa vinuesa 1042 Jul 1 16:33 management.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2133 Jul 1 16:33 Misc.cmds
## -rw-r--r-- 1 vinuesa vinuesa 215 Jul 1 16:33 Network.cmds
## -rw-r--r-- 1 vinuesa vinuesa 7745946 Jun 30 09:21 Pangenomica_y_filogenomica_bacteriana_OMICAS-UAEM_2Mar18.odp
## drwxr-xr-x 3 vinuesa vinuesa 4096 Jun 30 09:21 Phylogenomics_pan-genomics
## -rw-r--r-- 1 vinuesa vinuesa 1138 Jul 1 16:33 Process.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2000 Jul 1 16:33 processing.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1735 Jul 1 16:33 programming.cmds
## -rw-r--r-- 1 vinuesa vinuesa 81 Jul 1 16:33 Programming.cmds
## -rw-r--r-- 1 vinuesa vinuesa 3590 Jun 30 09:43 README.md
## -rw-r--r-- 1 vinuesa vinuesa 528 Jul 1 16:33 SCCS.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1038 Jul 1 16:33 Shell.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1394 Jul 1 16:33 System.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2000 Jul 1 16:33 Text.cmds
## -rw-r--r-- 1 vinuesa vinuesa 567 Jul 1 16:33 utilities.cmds
## -rw-r--r-- 1 vinuesa vinuesa 6047 Jul 1 13:18 working_with_linux_commands.code
## -rw-r--r-- 1 vinuesa vinuesa 793996 Jul 1 16:33 working_with_linux_commands.html
## -rw-r--r-- 1 vinuesa vinuesa 257162 Jul 1 13:18 working_with_linux_commands.pdf
## -rw-r--r-- 1 vinuesa vinuesa 13718 Jul 1 16:35 working_with_linux_commands.Rmd
# mostrar todos (-a all) los archivos y sus atributos - ejecuta el comando en tu terminal
ls -la
## total 21192
## drwxr-xr-x 6 vinuesa vinuesa 4096 Jul 1 16:33 .
## drwxr-xr-x 21 vinuesa vinuesa 4096 Jul 1 12:57 ..
## -rw-r--r-- 1 vinuesa vinuesa 78 Jul 1 16:33 administration.cmds
## -rw-r--r-- 1 vinuesa vinuesa 492 Jul 1 16:33 Batch.cmds
## -rw-r--r-- 1 vinuesa vinuesa 75 Jul 1 16:33 Category.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2835 Jul 1 16:33 C.cmds
## drwxr-xr-x 2 vinuesa vinuesa 4096 Jun 30 09:20 clase3_GET_PHYLO_y_Stenotrophomonas_phylogenomics
## -rw-r--r-- 1 vinuesa vinuesa 1814 Jul 1 16:33 Filesystem.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1814 Jul 1 16:33 Filesystem_commands.tab
## -rw-r--r-- 1 vinuesa vinuesa 54 Jul 1 16:33 FORTRAN77.cmds
## -rw-r--r-- 1 vinuesa vinuesa 0 Jul 1 16:33 hist_head.out
## -rw-r--r-- 1 vinuesa vinuesa 0 Jul 1 16:33 hist_tail.out
## -rw-r--r-- 1 vinuesa vinuesa 2302077 Jul 1 13:18 Intro2biocomputo_sistemas_en_sistemas_UNIX-Linux.pdf
## drwxr-xr-x 3 vinuesa vinuesa 4096 Jul 1 12:10 intro2filoinfo
## drwxr-xr-x 2 vinuesa vinuesa 4096 Jul 1 13:30 intro2linux
## -rw-r--r-- 1 vinuesa vinuesa 1683925 Jul 1 13:18 intro_biocomputo_Linux_pt1.odp
## -rw-r--r-- 1 vinuesa vinuesa 8755024 Jun 30 09:21 introduccion_a_la_pangenomica_microbiana_OMICAS-UAEM_Mar18.pdf
## -rw-r--r-- 1 vinuesa vinuesa 10193 Jul 1 16:32 linux_commands.tab
## -rw-r--r-- 1 vinuesa vinuesa 1705 Jul 1 13:18 linux_very_basic_commands_table.csv
## -rw-r--r-- 1 vinuesa vinuesa 1042 Jul 1 16:33 management.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2133 Jul 1 16:33 Misc.cmds
## -rw-r--r-- 1 vinuesa vinuesa 215 Jul 1 16:33 Network.cmds
## -rw-r--r-- 1 vinuesa vinuesa 7745946 Jun 30 09:21 Pangenomica_y_filogenomica_bacteriana_OMICAS-UAEM_2Mar18.odp
## drwxr-xr-x 3 vinuesa vinuesa 4096 Jun 30 09:21 Phylogenomics_pan-genomics
## -rw-r--r-- 1 vinuesa vinuesa 1138 Jul 1 16:33 Process.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2000 Jul 1 16:33 processing.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1735 Jul 1 16:33 programming.cmds
## -rw-r--r-- 1 vinuesa vinuesa 81 Jul 1 16:33 Programming.cmds
## -rw-r--r-- 1 vinuesa vinuesa 3590 Jun 30 09:43 README.md
## -rw-r--r-- 1 vinuesa vinuesa 0 Jul 1 12:54 .Rhistory
## -rw-r--r-- 1 vinuesa vinuesa 528 Jul 1 16:33 SCCS.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1038 Jul 1 16:33 Shell.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1394 Jul 1 16:33 System.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2000 Jul 1 16:33 Text.cmds
## -rw-r--r-- 1 vinuesa vinuesa 567 Jul 1 16:33 utilities.cmds
## -rw-r--r-- 1 vinuesa vinuesa 6047 Jul 1 13:18 working_with_linux_commands.code
## -rw-r--r-- 1 vinuesa vinuesa 793996 Jul 1 16:33 working_with_linux_commands.html
## -rw-r--r-- 1 vinuesa vinuesa 257162 Jul 1 13:18 working_with_linux_commands.pdf
## -rw-r--r-- 1 vinuesa vinuesa 13718 Jul 1 16:35 working_with_linux_commands.Rmd
ls /
## bin
## boot
## cdrom
## dev
## etc
## home
## initrd.img
## initrd.img.old
## lib
## lib64
## libnss3.so
## lost+found
## media
## mnt
## opt
## proc
## root
## run
## sbin
## snap
## srv
## sys
## tmp
## usr
## var
## vmlinuz
## vmlinuz.old
### Lista todos los archivos del directorio /bin
# ejecuta primero este comando
ls /bin
### Veamos ahora los primeros 20 filtrando la salida con | head -20
# ahora filtra la salida añadiendo | head -20 (explicaremos con más detalle el comando '|')
ls /bin | head -20
## bash
## brltty
## bunzip2
## busybox
## bzcat
## bzcmp
## bzdiff
## bzegrep
## bzexe
## bzfgrep
## bzgrep
## bzip2
## bzip2recover
## bzless
## bzmore
## cat
## chacl
## chgrp
## chmod
## chown
### Lista los programas que inician con b del directorio /bin usando el comodín '*'
ls /bin/b*
## /bin/bash
## /bin/brltty
## /bin/bunzip2
## /bin/busybox
## /bin/bzcat
## /bin/bzcmp
## /bin/bzdiff
## /bin/bzegrep
## /bin/bzexe
## /bin/bzfgrep
## /bin/bzgrep
## /bin/bzip2
## /bin/bzip2recover
## /bin/bzless
## /bin/bzmore
### idem, pero con detalles de permisos etc de los archivos contenidos en /bin
ls -l /bin/b*
## -rwxr-xr-x 1 root root 1113504 Apr 4 13:30 /bin/bash
## -rwxr-xr-x 1 root root 748968 Apr 17 05:46 /bin/brltty
## -rwxr-xr-x 3 root root 34888 Jan 29 2017 /bin/bunzip2
## -rwxr-xr-x 1 root root 2022480 Dec 12 2017 /bin/busybox
## -rwxr-xr-x 3 root root 34888 Jan 29 2017 /bin/bzcat
## lrwxrwxrwx 1 root root 6 Jan 29 2017 /bin/bzcmp -> bzdiff
## -rwxr-xr-x 1 root root 2140 Jan 29 2017 /bin/bzdiff
## lrwxrwxrwx 1 root root 6 Jan 29 2017 /bin/bzegrep -> bzgrep
## -rwxr-xr-x 1 root root 4877 Jan 29 2017 /bin/bzexe
## lrwxrwxrwx 1 root root 6 Jan 29 2017 /bin/bzfgrep -> bzgrep
## -rwxr-xr-x 1 root root 3642 Jan 29 2017 /bin/bzgrep
## -rwxr-xr-x 3 root root 34888 Jan 29 2017 /bin/bzip2
## -rwxr-xr-x 1 root root 14328 Jan 29 2017 /bin/bzip2recover
## lrwxrwxrwx 1 root root 6 Jan 29 2017 /bin/bzless -> bzmore
## -rwxr-xr-x 1 root root 1297 Jan 29 2017 /bin/bzmore
# idem, pero ordenando los archivos por fechas de modificacion (-t), listando los mas recientes al final (-r), es decir, en orden reverso
ls -ltr /bin/b*
## -rwxr-xr-x 1 root root 1297 Jan 29 2017 /bin/bzmore
## lrwxrwxrwx 1 root root 6 Jan 29 2017 /bin/bzless -> bzmore
## -rwxr-xr-x 1 root root 14328 Jan 29 2017 /bin/bzip2recover
## -rwxr-xr-x 3 root root 34888 Jan 29 2017 /bin/bzip2
## -rwxr-xr-x 1 root root 3642 Jan 29 2017 /bin/bzgrep
## lrwxrwxrwx 1 root root 6 Jan 29 2017 /bin/bzfgrep -> bzgrep
## -rwxr-xr-x 1 root root 4877 Jan 29 2017 /bin/bzexe
## lrwxrwxrwx 1 root root 6 Jan 29 2017 /bin/bzegrep -> bzgrep
## -rwxr-xr-x 1 root root 2140 Jan 29 2017 /bin/bzdiff
## lrwxrwxrwx 1 root root 6 Jan 29 2017 /bin/bzcmp -> bzdiff
## -rwxr-xr-x 3 root root 34888 Jan 29 2017 /bin/bzcat
## -rwxr-xr-x 3 root root 34888 Jan 29 2017 /bin/bunzip2
## -rwxr-xr-x 1 root root 2022480 Dec 12 2017 /bin/busybox
## -rwxr-xr-x 1 root root 1113504 Apr 4 13:30 /bin/bash
## -rwxr-xr-x 1 root root 748968 Apr 17 05:46 /bin/brltty
# lista los archivos en /bin que empiezan por las letras b y c, y que terminen en 2 y t, respectivamente
ls /bin/b*2
ls /bin/c*t
## /bin/bunzip2
## /bin/bzip2
## /bin/cat
## /bin/chvt
# lista los archivos en /bin que empiezan por la letra c seguida de uno o dos caracteres más
ls /bin/c?
ls /bin/c??
## /bin/cp
## /bin/cat
# vamos a $HOME y generamos el directorio Cursos/intro2filoinfo
cd
mkdir Cursos && cd Cursos; mkdir intro2filoinfo
# AVANZADO: uso de condicionales: if [ CONDITION_IS_TRUE ]; then DO_THIS; else DOT_THAT; fi
if [ -d intro2filoinfo ]; then
echo "found dir intro2filoinfo"
else
mkdir intro2filoinfo
fi
## mkdir: no se puede crear el directorio «Cursos»: El archivo ya existe
## mkdir: no se puede crear el directorio «intro2filoinfo»: El archivo ya existe
## found dir intro2filoinfo
### comprueba los **permisos** del nuevo directorio con ls -l
pwd
ls -l
## /home/vinuesa/Cursos/intro2phyloinfo_UNLP_Jul18
## total 21184
## -rw-r--r-- 1 vinuesa vinuesa 78 Jul 1 16:33 administration.cmds
## -rw-r--r-- 1 vinuesa vinuesa 492 Jul 1 16:33 Batch.cmds
## -rw-r--r-- 1 vinuesa vinuesa 75 Jul 1 16:33 Category.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2835 Jul 1 16:33 C.cmds
## drwxr-xr-x 2 vinuesa vinuesa 4096 Jun 30 09:20 clase3_GET_PHYLO_y_Stenotrophomonas_phylogenomics
## -rw-r--r-- 1 vinuesa vinuesa 1814 Jul 1 16:33 Filesystem.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1814 Jul 1 16:33 Filesystem_commands.tab
## -rw-r--r-- 1 vinuesa vinuesa 54 Jul 1 16:33 FORTRAN77.cmds
## -rw-r--r-- 1 vinuesa vinuesa 0 Jul 1 16:33 hist_head.out
## -rw-r--r-- 1 vinuesa vinuesa 0 Jul 1 16:33 hist_tail.out
## -rw-r--r-- 1 vinuesa vinuesa 2302077 Jul 1 13:18 Intro2biocomputo_sistemas_en_sistemas_UNIX-Linux.pdf
## drwxr-xr-x 3 vinuesa vinuesa 4096 Jul 1 12:10 intro2filoinfo
## drwxr-xr-x 2 vinuesa vinuesa 4096 Jul 1 13:30 intro2linux
## -rw-r--r-- 1 vinuesa vinuesa 1683925 Jul 1 13:18 intro_biocomputo_Linux_pt1.odp
## -rw-r--r-- 1 vinuesa vinuesa 8755024 Jun 30 09:21 introduccion_a_la_pangenomica_microbiana_OMICAS-UAEM_Mar18.pdf
## -rw-r--r-- 1 vinuesa vinuesa 10193 Jul 1 16:32 linux_commands.tab
## -rw-r--r-- 1 vinuesa vinuesa 1705 Jul 1 13:18 linux_very_basic_commands_table.csv
## -rw-r--r-- 1 vinuesa vinuesa 1042 Jul 1 16:33 management.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2133 Jul 1 16:33 Misc.cmds
## -rw-r--r-- 1 vinuesa vinuesa 215 Jul 1 16:33 Network.cmds
## -rw-r--r-- 1 vinuesa vinuesa 7745946 Jun 30 09:21 Pangenomica_y_filogenomica_bacteriana_OMICAS-UAEM_2Mar18.odp
## drwxr-xr-x 3 vinuesa vinuesa 4096 Jun 30 09:21 Phylogenomics_pan-genomics
## -rw-r--r-- 1 vinuesa vinuesa 1138 Jul 1 16:33 Process.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2000 Jul 1 16:33 processing.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1735 Jul 1 16:33 programming.cmds
## -rw-r--r-- 1 vinuesa vinuesa 81 Jul 1 16:33 Programming.cmds
## -rw-r--r-- 1 vinuesa vinuesa 3590 Jun 30 09:43 README.md
## -rw-r--r-- 1 vinuesa vinuesa 528 Jul 1 16:33 SCCS.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1038 Jul 1 16:33 Shell.cmds
## -rw-r--r-- 1 vinuesa vinuesa 1394 Jul 1 16:33 System.cmds
## -rw-r--r-- 1 vinuesa vinuesa 2000 Jul 1 16:33 Text.cmds
## -rw-r--r-- 1 vinuesa vinuesa 567 Jul 1 16:33 utilities.cmds
## -rw-r--r-- 1 vinuesa vinuesa 6047 Jul 1 13:18 working_with_linux_commands.code
## -rw-r--r-- 1 vinuesa vinuesa 793996 Jul 1 16:33 working_with_linux_commands.html
## -rw-r--r-- 1 vinuesa vinuesa 257162 Jul 1 13:18 working_with_linux_commands.pdf
## -rw-r--r-- 1 vinuesa vinuesa 13718 Jul 1 16:35 working_with_linux_commands.Rmd
### generemos un subdirectorio por debajo del que acabamos de crear y movámonos a él
mkdir -p intro2filoinfo/lunes/sesion1_linux && cd intro2filoinfo/lunes/sesion1_linux
# imprime la ruta absoluta del directorio en el que nos encontramos ahora
pwd
# almacena la ruta (path) en una variable de nombre arbitrario (wkdir en este caso)
wkdir=$(pwd)
# imprime el contenido de la variable con echo, e interpolando el contenido de la misma con $
echo "$wkdir"
## /home/vinuesa/Cursos/intro2phyloinfo_UNLP_Jul18
## /home/vinuesa/Cursos/intro2phyloinfo_UNLP_Jul18
Vamos a copiar los archivos que necesitamos para lo que sigue de las prácticas a subdirectorios de nuestro directorio de trabajo
### copia el archivo $HOME/Descargas/linux_commands.tab al directorio actual
# Noten el punto al final del comando, significa: copia X al directorio actual
cp $HOME/Descargas/linux_commands.tab .
ls
## administration.cmds
## Batch.cmds
## Category.cmds
## C.cmds
## clase3_GET_PHYLO_y_Stenotrophomonas_phylogenomics
## Filesystem.cmds
## Filesystem_commands.tab
## FORTRAN77.cmds
## hist_head.out
## hist_tail.out
## Intro2biocomputo_sistemas_en_sistemas_UNIX-Linux.pdf
## intro2filoinfo
## intro2linux
## intro_biocomputo_Linux_pt1.odp
## introduccion_a_la_pangenomica_microbiana_OMICAS-UAEM_Mar18.pdf
## linux_commands.tab
## linux_very_basic_commands_table.csv
## management.cmds
## Misc.cmds
## Network.cmds
## Pangenomica_y_filogenomica_bacteriana_OMICAS-UAEM_2Mar18.odp
## Phylogenomics_pan-genomics
## Process.cmds
## processing.cmds
## programming.cmds
## Programming.cmds
## README.md
## SCCS.cmds
## Shell.cmds
## System.cmds
## Text.cmds
## utilities.cmds
## working_with_linux_commands.code
## working_with_linux_commands.html
## working_with_linux_commands.pdf
## working_with_linux_commands.Rmd
### Copia el directorio $HOME/intro2filoinfo/sesion1_linux/ a tu $HOME
# 1 vamos a nuestro $HOME
cd
pwd
# 2. Noten cp -r (recursively) y el punto '.' (directorio de destino), necesarios para copiar directorios completos
cp -r $wkdir .
ls -ltr
# usando rutas absolutas, abreviadas mediante el uso de la variable de ambiente $HOME
# cp -r /home/$USER/intro2filoinfo/lunes/sesion1_linux/ $HOME/Descargas
# generamos un nuevo directorio con un nombre sospechoso ;)
mkdir borrame
# qué hará este comando?
mv sesion1_linux borrame
# genera un listado recursivo de directorios y archivos con ls -R
ls -R borrame
# borra un archivo particular usando la ruta relativa al mismo
pwd
rm borrame/sesion1_linux/working_with_linux_commands.pdf
# elimina el directorio de nombre sospechoso;
# inténtalo primero con rm borrame
rm -rf borrame
Este comando es muy importante, ya que permite ahorrar mucho espacio en disco al evitar la multiplicación de copias fisicas en el disco duro del mismo archivo de gran tamaño (no es el caso de inux_basic_commands.tab)
# generamos la liga simbólica en nuestro $HOME
ln -s $wkdir/linux_commands.tab comandos_de_linux.tab
# confirmamos que se genero la liga
ls -l
# podemos renombrar la liga
mv comandos_de_linux.tab comandos_basicos.tab
ls
# y eliminarla
rm comandos_basicos.tab
ls
# sin perder el archivo original
ls -l $wkdir/linux_commands.tab
mv $wkdir/linux_commands.tab .
ls
rm linux_commands.tab
pwd
head linux_commands.tab
## /home/vinuesa/Cursos/intro2phyloinfo_UNLP_Jul18
## IEEE Std 1003.1-2008 utilities Name Category Description First appeared
## admin SCCS Create and administer SCCS files PWB UNIX
## alias Misc Define or display aliases
## ar Misc Create and maintain library archives Version 1 AT&T UNIX
## asa Text processing Interpret carriage-control characters System V
## at Process management Execute commands at a later time Version 7 AT&T UNIX
## awk Text processing Pattern scanning and processing language Version 7 AT&T UNIX
## basename Filesystem Return non-directory portion of a pathname; see also dirname Version 7 AT&T UNIX
## batch Process management Schedule commands to be executed in a batch queue
## bc Misc Arbitrary-precision arithmetic language Version 6 AT&T UNIX
tail linux_commands.tab
## val SCCS Validate SCCS files System III
## vi Text processing Screen-oriented (visual) display editor 1BSD
## wait Process management Await process completion Version 4 AT&T UNIX
## wc Text processing Line, word and byte or character count Version 1 AT&T UNIX
## what SCCS Identify SCCS files PWB UNIX
## who System administration Display who is on the system Version 1 AT&T UNIX
## write Misc Write to another user's terminal Version 1 AT&T UNIX
## xargs Shell programming Construct argument lists and invoke utility PWB UNIX
## yacc C programming Yet another compiler compiler PWB UNIX
## zcat Text processing Expand and concatenate data 4.3BSD
# le podemos indicar el numero de lineas a desplegar
head -3 linux_commands.tab
## IEEE Std 1003.1-2008 utilities Name Category Description First appeared
## admin SCCS Create and administer SCCS files PWB UNIX
## alias Misc Define or display aliases
tail -1 linux_commands.tab
## zcat Text processing Expand and concatenate data 4.3BSD
# el comando history permite acceder al historial de comandos ejecutados
# guardemos la cabecera y cola de nuestro historial en dos archivos independientes, respectivamente
history | head > hist_head.out
history | tail > hist_tail.out
# ahora concatenamos, es decir, pegamos o juntamos verticalmente un archivo detrás del otro
cat hist*out
# si queremos concatenar los archivos en un orden particular:
cat hist_tail.out hist_head.out
# si le pasamos a cat un solo nombre de archivo, simplemente lo despliega en pantalla
cat hist_head.out
# podemos numerar las líneas
cat -n hist*out
less linux_commands.tab | head
## IEEE Std 1003.1-2008 utilities Name Category Description First appeared
## admin SCCS Create and administer SCCS files PWB UNIX
## alias Misc Define or display aliases
## ar Misc Create and maintain library archives Version 1 AT&T UNIX
## asa Text processing Interpret carriage-control characters System V
## at Process management Execute commands at a later time Version 7 AT&T UNIX
## awk Text processing Pattern scanning and processing language Version 7 AT&T UNIX
## basename Filesystem Return non-directory portion of a pathname; see also dirname Version 7 AT&T UNIX
## batch Process management Schedule commands to be executed in a batch queue
## bc Misc Arbitrary-precision arithmetic language Version 6 AT&T UNIX
# vim es un editor muy potente, usado por defecto en los sistemas Linux.
# Es muy conveniente aprender a usarlo, pero require tiempo del que no disponemos aquí
# pueden usar el comando 'vimtutor' para estudiar el tutorial integrado de vim
# 'gedit' es un editor con ambiente gráfico, que usaremos rutinariamente en nuestras prácticas
# Noten el uso de & al final de la sentencia para enviar el proceso al fondo
# para evitar que bloquee la terminal
gedit linux_commands.tab &
# dame el número de lineas, palabras y caracteres del archivo
wc linux_commands.tab
# Cuántas líneas tiene el archivo linux_commands.tab?
wc -l linux_commands.tab
## 161 1553 10193 linux_commands.tab
## 161 linux_commands.tab
# saca la segunda columna del archivo y ordenalos
cut -f2 linux_commands.tab | head
## Category
## SCCS
## Misc
## Misc
## Text processing
## Process management
## Text processing
## Filesystem
## Process management
## Misc
# cuantos elementos unicos tiene?
cut -f2 linux_commands.tab | sort -u | wc -l
## 13
# cuenta las ocurrencias de las diferentes palabras contenidas en la segunda columna del archivo linux_commands.tab
cut -f2 linux_commands.tab | sort | uniq -c
## 11 Batch utilities
## 1 Category
## 9 C programming
## 28 Filesystem
## 1 FORTRAN77 programming
## 38 Misc
## 4 Network
## 14 Process management
## 1 Programming
## 10 SCCS
## 14 Shell programming
## 1 System administration
## 29 Text processing
# mira las opciones de cut y sort en la manpage
man cut | head -30
## CUT(1) User Commands CUT(1)
##
## NAME
## cut - remove sections from each line of files
##
## SYNOPSIS
## cut OPTION... [FILE]...
##
## DESCRIPTION
## Print selected parts of lines from each FILE to standard output.
##
## With no FILE, or when FILE is -, read standard input.
##
## Mandatory arguments to long options are mandatory for short options too.
##
## -b, --bytes=LIST
## select only these bytes
##
## -c, --characters=LIST
## select only these characters
##
## -d, --delimiter=DELIM
## use DELIM instead of TAB for field delimiter
##
## -f, --fields=LIST
## select only these fields; also print any line that contains no delimiter character, unless the -s option is specified
##
## -n (ignored)
##
## --complement
man sort | head -20
## SORT(1) User Commands SORT(1)
##
## NAME
## sort - sort lines of text files
##
## SYNOPSIS
## sort [OPTION]... [FILE]...
## sort [OPTION]... --files0-from=F
##
## DESCRIPTION
## Write sorted concatenation of all FILE(s) to standard output.
##
## With no FILE, or when FILE is -, read standard input.
##
## Mandatory arguments to long options are mandatory for short options too. Ordering options:
##
## -b, --ignore-leading-blanks
## ignore leading blanks
##
## -d, --dictionary-order
grep Filesystem linux_commands.tab | head
## basename Filesystem Return non-directory portion of a pathname; see also dirname Version 7 AT&T UNIX
## cat Filesystem Concatenate and print files Version 1 AT&T UNIX
## cd Filesystem Change the working directory Version 6 AT&T UNIX
## chgrp Filesystem Change the file group ownership PWB UNIX
## chmod Filesystem Change the file modes/attributes/permissions Version 1 AT&T UNIX
## chown Filesystem Change the file ownership Version 1 AT&T UNIX
## cksum Filesystem Write file checksums and sizes 4.4BSD
## cmp Filesystem Compare two files; see also diff Version 1 AT&T UNIX
## compress Filesystem Compress data 4.3BSD
## cp Filesystem Copy files Version 1 AT&T UNIX
# ojo: Linux es sensible a mayúsculas y minúsculas: prueba este comando para comprobarlo
grep filesystem linux_commands.tab
grep Filesystem linux_commands.tab | head
# grep -i lo hace insensible a la fuente
grep -i filesystem linux_commands.tab | head
## basename Filesystem Return non-directory portion of a pathname; see also dirname Version 7 AT&T UNIX
## cat Filesystem Concatenate and print files Version 1 AT&T UNIX
## cd Filesystem Change the working directory Version 6 AT&T UNIX
## chgrp Filesystem Change the file group ownership PWB UNIX
## chmod Filesystem Change the file modes/attributes/permissions Version 1 AT&T UNIX
## chown Filesystem Change the file ownership Version 1 AT&T UNIX
## cksum Filesystem Write file checksums and sizes 4.4BSD
## cmp Filesystem Compare two files; see also diff Version 1 AT&T UNIX
## compress Filesystem Compress data 4.3BSD
## cp Filesystem Copy files Version 1 AT&T UNIX
## basename Filesystem Return non-directory portion of a pathname; see also dirname Version 7 AT&T UNIX
## cat Filesystem Concatenate and print files Version 1 AT&T UNIX
## cd Filesystem Change the working directory Version 6 AT&T UNIX
## chgrp Filesystem Change the file group ownership PWB UNIX
## chmod Filesystem Change the file modes/attributes/permissions Version 1 AT&T UNIX
## chown Filesystem Change the file ownership Version 1 AT&T UNIX
## cksum Filesystem Write file checksums and sizes 4.4BSD
## cmp Filesystem Compare two files; see also diff Version 1 AT&T UNIX
## compress Filesystem Compress data 4.3BSD
## cp Filesystem Copy files Version 1 AT&T UNIX
# filtra las lineas que contienen Filesystem o Text processing
egrep 'Filesyst|Text processing' linux_commands.tab
## asa Text processing Interpret carriage-control characters System V
## awk Text processing Pattern scanning and processing language Version 7 AT&T UNIX
## basename Filesystem Return non-directory portion of a pathname; see also dirname Version 7 AT&T UNIX
## cat Filesystem Concatenate and print files Version 1 AT&T UNIX
## cd Filesystem Change the working directory Version 6 AT&T UNIX
## chgrp Filesystem Change the file group ownership PWB UNIX
## chmod Filesystem Change the file modes/attributes/permissions Version 1 AT&T UNIX
## chown Filesystem Change the file ownership Version 1 AT&T UNIX
## cksum Filesystem Write file checksums and sizes 4.4BSD
## cmp Filesystem Compare two files; see also diff Version 1 AT&T UNIX
## comm Text processing Select or reject lines common to two files Version 4 AT&T UNIX
## compress Filesystem Compress data 4.3BSD
## cp Filesystem Copy files Version 1 AT&T UNIX
## csplit Text processing Split files based on context PWB UNIX
## cut Text processing Cut out selected fields of each line of a file System III
## dd Filesystem Convert and copy a file Version 5 AT&T UNIX
## df Filesystem Report free disk space Version 1 AT&T UNIX
## diff Text processing Compare two files; see also cmp Version 5 AT&T UNIX
## dirname Filesystem Return the directory portion of a pathname; see also basename System III
## du Filesystem Estimate file space usage Version 1 AT&T UNIX
## ed Text processing The standard text editor Version 1 AT&T UNIX
## ex Text processing Text editor 1BSD
## expand Text processing Convert tabs to spaces 3BSD
## file Filesystem Determine file type Version 4 AT&T UNIX
## find Filesystem Find files Version 1 AT&T UNIX
## fold Text processing Filter for folding lines 1BSD
## head Text processing Copy the first part of files PWB UNIX[citation needed]
## iconv Text processing Codeset conversion HP-UX
## join Text processing Merges two sorted text files based on the presence of a common field Version 7 AT&T UNIX
## link Filesystem Create a hard link to a file Version 1 AT&T UNIX
## ln Filesystem Link files Version 1 AT&T UNIX
## lp Text processing Send files to a printer System V
## ls Filesystem List directory contents Version 1 AT&T UNIX
## mkdir Filesystem Make directories Version 1 AT&T UNIX
## mkfifo Filesystem Make FIFO special files 4.4BSD[dubious – discuss]
## more Text processing Display files on a page-by-page basis 3BSD
## mv Filesystem Move files Version 1 AT&T UNIX
## nl Text processing Line numbering filter System III
## paste Text processing Merge corresponding or subsequent lines of files Version 32V AT&T UNIX
## patch Text processing Apply changes to files 4.3BSD
## pathchk Filesystem Check pathnames
## pr Text processing Print files Version 1 AT&T UNIX
## pwd Filesystem print working directory - Return working directory name Version 5 AT&T UNIX
## rm Filesystem Remove directory entries Version 1 AT&T UNIX
## rmdir Filesystem Remove directories Version 1 AT&T UNIX
## sed Text processing Stream editor Version 7 AT&T UNIX
## sort Text processing Sort, merge, or sequence check text files Version 1 AT&T UNIX
## tail Text processing Copy the last part of a file PWB UNIX[citation needed]
## touch Filesystem Change file access and modification times Version 7 AT&T UNIX
## tr Text processing Translate characters Version 4 AT&T UNIX
## tsort Text processing Topological sort Version 7 AT&T UNIX
## unexpand Text processing Convert spaces to tabs 3BSD
## uniq Text processing Report or filter out repeated lines in a file Version 3 AT&T UNIX
## unlink Filesystem Call the unlink function Version 1 AT&T UNIX
## vi Text processing Screen-oriented (visual) display editor 1BSD
## wc Text processing Line, word and byte or character count Version 1 AT&T UNIX
## zcat Text processing Expand and concatenate data 4.3BSD
grep Filesystem linux_commands.tab > Filesystem_commands.tab
# vamos a HOME
cd
wkdir=$(pwd)
cadena_loca="cadena arbitraria s dlfdf ladf adf asñldf"
# recuerda, para recuperar el valor de la variable tenemos que dereferenciarla con '$'
# podemos usar echo para imprimir texto junto con variables; toda la cadena debe estar
# escrita entre comillas para que echo la interprete como un solo argumento
echo "working in: $wkdir"
echo "$cadena_loca"
## working in: /home/vinuesa
## cadena arbitraria s dlfdf ladf adf asñldf
if [ -d intro2filoinfo ]; then
echo "dir intro2filoinfo exists, will move into it"
cd intro2filoinfo
else
mkdir intro2filoinfo && cd intro2filoinfo
fi
## dir intro2filoinfo exists, will move into it
#>>> AVANZADO: usa un bucle for, acoplado a las herramientas de filtrado arriba mostradas,
# para generar archivos que contengan solo los comandos de las diferentes categorias
# nombrando a los archivos por estas
for type in $(cut -f2 linux_commands.tab | sort -u); do
grep "$type" linux_commands.tab > ${type}.cmds
done
# o en una línea for type in $(cut -f2 linux_commands.tab | sort -u); do grep "$type" linux_commands.tab > ${type}.cmds; done
veamos el resultado de ejecutar el bucle anterior:
ls *cmds
## administration.cmds
## Batch.cmds
## Category.cmds
## C.cmds
## Filesystem.cmds
## FORTRAN77.cmds
## management.cmds
## Misc.cmds
## Network.cmds
## Process.cmds
## processing.cmds
## programming.cmds
## Programming.cmds
## SCCS.cmds
## Shell.cmds
## System.cmds
## Text.cmds
## utilities.cmds
Este es un ejemplo hipotético. Asumimos que tenemos un directorio seq_data con las secuencias a alinear en formato FASTA.
# 1. ir al directorio con las secuencias
cd $HOME/seq_data
# 2. corremos el alineador muscle dentro de un bucle for
# pasándole cada archivo fasta del directorio en forma
# del alias $f; muscle lee $f (muscle < $f) y escribe
# el lineamiento a un nuevo archivo (> ${f%.*}_musAln.fas)
# que se llamará así: nombre_de_archivo_original_musAln.fas
for f in *fasta; do muscle < $f > ${f%.*}_musAln.fas; done