# Introducción a LINUX ###### tags: `UAX` `Estudiantes` `Bioinformática I` ## Acceder al terminal: * Puedes usar la web [DistroSea](https://distrosea.com/select/ubuntu/) para probar Ubuntu online. * Puedes intalar un emulador de terminal como [GitBash](https://git-scm.com/book/es/v2/Ap%C3%A9ndice-A%3A-Git-en-otros-entornos-Git-con-Bash) o [Cywing](https://www.cygwin.com/). * Instalar Ubuntu en una máquina virtual siguiendo este [tutorial](https://hackmd.io/@laurichi13/H13G0jQes). * En Windows instalar la aplicación [Ubuntu(WLS)](https://learn.microsoft.com/es-es/windows/wsl/install) desde Microsfot Store. * Si ya tienes Ubuntu o Mac: Puedes buscar en <<Aplicaciones>> o acceder a través del teclado con las teclas **Ctrl+Alt+T** ![](https://i.imgur.com/dXXwrti.png) ## Comandos básicos: * El comando `echo` muestra en la terminal lo que escribes: ```bash=s echo "hola" ``` * Comando `pwd` Print Working Directory muestra el directorio actual ```bash=s pwd ``` * Comando `mkdir`Makes Directory: Crea una carpeta nueva ```bash=s mkdir laura ``` * Comando `cd` Changes Directory: Cambia de directorio. Movimiento entre carpetas (La tecla TAB ayuda a autocompletar) ```bash=s cd laura cd .. ``` * Comando `rm` Remove Directory: Elimina una carpeta. ```bash=s rmdir laura ``` > :warning: Una órden es una órden... El terminal no te pregunta si estas seguro de borrar una carpeta... Así que ¡cuidado! * comando `ls` List-directory Muestra el contenido del directorio ```bash=s ls # Lista completa ls -l # Ordenada por fecha de creación/edición ls -lt # Orden reverso order de creación/edición ls -ltr ``` :notebook: Siempre lee el manual de instrucciones, si no estas seguro de como actua un comando o quieres más información. ```bash=s man ls man echo ``` * Crear un archivo vacío `touch` ```bash=s touch file1 ``` * Copiar un archivo o carpeta con el comando `cp`(Copy files) ```bash=s # Copiar archivo cp file1 file2 # Crear una carpeta nueva mkdir newFolder1 # Copiar newFolder1 newFolder2 cp -r newFolder1 newFolder2 ``` > :warning: -r significa recursive... es decir copia/mueve/borra la carpeta y todo el contenido. * Standard output el comando `>` permite guardar el output de cualquier comando en un archivo. ```bash=s # output en la pantalla ls -ltr # Output en un archivo de texto, ls -ltr > fileList.txt # El comando `nano` permite ver archivos de texto nano fileList.txt # Para que añada el output a un archivo existente sin sobreescribirlo ls -ltr >> fileList.txt ``` ## Actividad práctica :::info **Objetivos:** Manipular la terminal de Linux y reconocer comandos básicos. Diseñar un script sencillo usando el lenguaje bash. ::: ### 1. Manipulación de archivos en la línea de comandos - Descarga estos archivos en tu ordenador: [sequence.fasta](https://drive.google.com/file/d/1rJLjfOmkzLUhVWbvGWrE3rBnoq7YgOgQ/view?usp=drive_link) y [sequence2.fasta](https://drive.google.com/file/d/1xiSq3M5M5xg-RhQK3cHG4TVY82ZV_L-q/view?usp=drive_link) - Abre el emulador de terminal de Linux (Gitbash) - Crea una carpeta de trabajo llamada "seminario1" ````bash=s mkdir seminario1 ```` - Vuelve a home ````bash=s cd .. ```` - Ve a la carpeta de descargas ````bash=s cd Downloads ```` - Mueve los archivos descargados ````bash=s mv sequence.fasta ~/seminario1 mv sequence2.fasta ~/seminario1 ```` - Ve a la carpeta seminario 1 ````bash=s cd seminario1 ```` - Sigue las instrucciones: ````bash=s # Leer el archivo less sequence.fasta # Ver sólo las primeras diez líneas head sequence.fasta # Ver sólo las primeras 50 líneas head -n 50 sequence.fasta #Seleccionar una línea concreta de un fichero # Esta es la etsructura: head -numLinea fichero | tail -l head -n 15 sequence.fasta | tail -l #Ejemplo seleccionar línea numero 43 del fichero sequence.fasta (head -43 | tail -l) head -n 43 sequence.fasta | tail -l # Ver sólo las últimas diez líneas tail sequence.fasta # Ver varios archivos cat sequence.fasta sequence2.fasta # Unir varios archivos en un archivo final cat sequence.fasta sequence2.fasta > merged.fasta # Ver el resultado less merged.fasta # 'q' para salir # Contar las palabras con `wc` wc sequence.fasta # Ver el número de líneas de un archivo wc -l sequence.fasta # Bucar patrones específicos con el comando `grep` # Todas las líneas que contengan ">" grep ">" merged.fasta # Que cuente las coincidencias grep -c ">" merged.fasta # Invertido # Que empiece con "A"... grep "^A" merged.fasta #Si queremos que el contenido que estamos buscando se guarde en un archivo nuevo usar ">" grep ">" merged.fasta > resultado.txt ````` ### 2. Creación de un script ejecutable Ejemplo: Crear un script que al ejecutarse imprima el texto “Hola Mundo”. Paso 1: Abrir un editor de texto y crear un archivo llamado script.sh ``` nano saludo.sh ``` Paso 2: Escribir en el editor texto las líneas del script: #!/bin/bash echo "Hola mundo" >La primera línea: #!/bin/bash, es la directiva shebang que indica que el intérprete a utilizar es Bash. La siguiente línea es el comando 'echo', que se utiliza para imprimir texto en la salida estándar. En este caso, 'echo' imprime la cadena "Hello, World!". Paso 3: Hacer el script ejecutable, para ello escribimos el siguiente comando: ``` chmod +x saludo.sh ``` Paso 4: Ejecutamos el script escribiendo ./ y el nombre del script ``` $ ./saludo.sh ```