---
# System prepended metadata

title: Seminario Introducción a Linux
tags: [Estudiantes, UAX]

---

###### tags: `UAX` `Estudiantes`
# Seminario Introducción a Linux 

Tema 1: Introducción a la Bioinformática - Grado en Biotecnología (Universidad Alfonso X el Sabio)
:woman: Autora: Laura Judith Marcos Zambrano 

## Acceder al terminal: 

Puedes buscar en <<Aplicaciones>> o acceder a tarvés del teclado con la steclas **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. 

```
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 

Para esta actividad vamos a crear una carpeta compartida en nuestra máquina virtual y manejar archivos usando la línea de comandos. 

### Crear carpeta compartida. 

1. Crear la carpeta compartida en ambas máquinas.

    1.1 Crear una carpeta nueva en nuestro escritorio de windows/Mac y llamarla `compartida`

    ![](https://i.imgur.com/X7GnTAe.png)
    

:warning: Descargar los archivos: [secuencia1](https://drive.google.com/file/d/1rJLjfOmkzLUhVWbvGWrE3rBnoq7YgOgQ/view?usp=sharing) y [secuencia2](https://drive.google.com/file/d/1xiSq3M5M5xg-RhQK3cHG4TVY82ZV_L-q/view?usp=sharing) y guardalos en la carpeta de Windows/Mac. 
    
 1.2 Crear una carpeta con la línea de comandos en la máquina virtual en ubuntu y llamarla `compartida`.  

```bash=1
mkdir compartida
```

2. En la máquina virtual hacer click derecho en el icono de la carpeta abajo en la derecha <<Preferencias de Carpeta compartida>>
    ![](https://i.imgur.com/dAsez2e.jpg)
3. Hacer click en el botón <<Añadir nueva carpeta compartida>>
    
    ![](https://i.imgur.com/I0RV9NK.png)

4. Señalar la ruta de la carpeta: `/Escritorio/compartida` 
nombre de la carpeta: "compartida" y directorio en la máquina virtual 
`/home/$user/compartida`

>La ruta de la carpeta creada la puedes ver con el comando `pwd`

![](https://i.imgur.com/ODLj7M8.png)

5. En el terminal de Ubuntu en la máquina virtual escribir la siguiente línea de código para que la carpeta esté montada con los permisos requeridos: 

    ```bash=s
    sudo mount -t vboxsf compartida /home/$user/compartida
    ```

> Donde "compartida" es el nombre que le hemos dado a la carpeta en nuestro ordenador, y `/home/$user/compartida`corresponde al punto de montaje (El directorio en ubuntu)
 
## Ver archivos compartidos y usar algunos comandos para manipular secuencias 

 ````bash=s
# Ir a la carpeta compartida:
cd compartida

# 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
head -numLinea fichero | tail -1

#Seleccionar línea numero 43 del fichero sequence.fasta
head -43 | tail -1

# 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

