###### tags: `UNIR` `Estudiantes` # Actividad práctica Clase 5: <font color = 'gray'> <p style="text-align:right;">Prof.: Laura J. Marcos-Zambrano </font> ## Comandos básicos bash: * 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 terminal de Linux o 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 "Hola mundo". Puedes escribir lo que quieras. 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 ```