Está en la página 1de 41

HABILIDADES BÁSICAS

EN LINUX VOL.1
Sesión 2: Comandos básicos
En esta Sesión aprenderás...
1. Edición de texto “plano” (gedit y nano)

2. Uso de wildcard “*” (expresiones regulares básicas)

3. Comandos básicos para explorar, filtrar y modificar texto en la consola

4. Parseo de texto con grep

5. El flujo de información en la consola (STDIN y STDOUT)

6. Pipelines “ | “
¿Para qué sirve esto?
● Todos los comandos que aprenderemos hoy sirven para manipular archivos
○ Para ver su contenido, extraer partes del mismo, o modificarlo

● El uso de el asterisco “ * ” te permitirá familiarizarte al concepto de


expresiones regulares

● El uso del pipe “ | “ te enseñará a encadenar comandos para lograr procesos


complejos
Pipe o Pleca

TAB
“|“
Tópico 0
o Tabulador
Teclas importantes

Shift
Tópico 1
Hola Mundo
STDIN y STDOUT
El comando más simple, “hacer eco”
echo ARGUMENTO
es un comando que imprime un mensaje en la consola de comandos.

El ARGUMENTO que usaremos es el clásico mensaje “Hola mundo, soy yo!”


● Ejecuta:
echo “Hola mundo, soy yo!”
Anatomía general de un comando
Argumentos
(pueden ser
El comando uno o más)

Nota: el comando echo acepta solo un argumento, que debe ser una palabra o una frase entrecomillada
Ejercicio
Envía otros mensajes con el comando echo. Por ejemplo:

● “Adios Mundo”

● “Ya podemos salir?”

● “El dióxido de cloro para tratar COVID es una estafa”


Ejercicio
Envía otros mensajes con el comando echo. Por ejemplo:

● “Adios Mundo”

● “Ya podemos salir?”

● “El dióxido de cloro para tratar COVID es una estafa”


Como fluye la información en la consola
(STDIN y STDOUT)
Tu. interacción con la Consola de Comandos se
establece con dos canales de comunicación:

STDIN: o entrada estándar. Es la información que


TU ingresas a la consola.

STDOUT: o salida estandar. Es la información STDIN


resultado del comando que ejecutas

STDOUT
En el siguiente ejemplo, ¿cuál es STDIN y cual es
STDOUT? ¿Cuál es el proceso?
.

STDIN

STDOUT
En el siguiente ejemplo, ¿cuál es STDIN y cual es
STDOUT? ¿Cuál es el proceso?
.

STDIN
echo “Adios Mundo”

STDOUT

Adios Mundo
¿Dudas?
Tópico 2
gedit y nano
gedit: el bloc de notas
gedit es un programa para editar texto “plano”.
● En Ubuntu, busca gedit con el GNOME, y escribe Hola mundo

Texto plano: cualquier serie de caracteres que no tiene adornos, Esto no es texto
como negritas, itálicas, o cualquier otro formato. plano, es texto
con formato
Ejercicio
Abre gedit y redacta tus planes para el domingo

● Guarda tu archivo

● Localizalo y abrelo con el Nautilus

HAGÁMOSLO EN VIVO
nano: lo mismo pero desde consola
nano también es un programa para editar texto “plano”, pero sin interfaz gráfica
● En tu terminal de comandos, ejecuta nano, y escribe Hola mundo
Esto no es texto
plano, es texto
con formato
Ejercicio
Abre nano y redacta tus planes para el domingo

● Guarda tu archivo

● Localizalo y abrelo con el Nautilus

HAGÁMOSLO EN VIVO

Estos son los comandos para usar


nano (guardar, cerrar, etc)

El símbolo “^” se lee como cap, o


gorrito, y en nano significa que
debes presionar Ctrl Izq
¿Dudas?
cuando quieras mas info de un comando, ejecuta:

man comando
Tópico 3
La expresión regular más simple
*
La expresiones regulares

También conocidas como regexp o Regular Expressions

● Son patrones para encontrar palabras

● Son uno de los elementos más poderosos de LINUX

● Pero también son de las cosas más difíciles de entender a la perfección

● Comenzaremos por la expresión regular más simple, el comodín o wildcard “*”


Ejemplo simple de regexp
En la siguiente lista:

● Limon
● Limonada
● Mangada
● Mango

Hay por lo menos 3 Expresiones Regulares que facilitarían la búsqueda de


palabras similares….
En la siguiente lista:

Ejemplo simple de regexp ● Limon


● Limonada
regexp 1: ● Mangada
● Mango
Limon*

Esta expresión regular te sirve para representar todo lo que está hecho de
limón.

● El asterisco significa: puede contener cualquier caracter de aquí en


adelante

● la regexp se leería como “todo lo que empiece con Limon”


En la siguiente lista:

Ejemplo simple de regexp ● Limon


● Limonada
regexp 2: ● Mangada
● Mango
*ada

Esta expresión regular te sirve para representar todo lo que es una


bebida fresca y efervescente (limonada, naranjada, etc.).

● El asterisco significa: puede contener cualquier caracter desde


antes hasta aquí

● la regexp se leería como “todo lo que termine en ada”


En la siguiente lista:

Ejemplo simple de regexp ● Limon


● Limonada
● Mangada
● Mango
regexp 3:

¿ Cuál sería la regexp que representa todo lo que está


hecho de mango en el ejemplo?

… Escuchemos sus respuestas ...


Las regexp se pueden ocupar para enlistar archivos
Ejemplo:

1. En tus Documentos, crea una carpeta llamada prueba_regexp


(mkdir ARGUMENTO)

2. Crea los siguientes 6 archivos, dentro de la carpeta /home/Usuario/Documentos/prueba_regexp

fumadores_seguimiento_de_6_años.txt
fumadores_seguimiento_de_9_años.txt
fumadores_seguimiento_de_12_años.txt
controles_seguimiento_de_6_años.txt
controles_seguimiento_de_9_años.txt
controles_seguimiento_de_12_años.txt recuerda, puedes usar gedit o
nano para crear los archivos...
Las regexp se pueden ocupar para enlistar archivos
Ejemplo:

1. Enlista todos los archivos que perteneces a datos de fumadores, con el comando…

ls /home/Usuario/Documentos/prueba_regexp/fumadores*

2. Enlista todos los archivos pertenecientes a datos de controles:

ls /home/Usuario/Documentos/prueba_regexp/controles*

3. Enlista todos los archivos con datos de seguimiento de 9 años…

Hagámoslo en vivo
¿Dudas?
Para profundizar en regexp, puedes usar este tutorial muy
dinámico: https://regexone.com/
Tópico 4
Manejo de datos desde Consola
BASH permite realizar manejo de datos con...
● Filtrado de datos de acuerdo a palabras clave

● Filtrado de datos según el número de líneas

● Ordenamiento de datos

● Extracción de columnas específicas

● Reemplazo de caracteres o palabras completas


Trabajemos con datos COVID
● El dataset compartido en esta clase proviene de la página Our World in Data
https://ourworldindata.org/coronavirus-source-data

● Contiene información sobre casos acumulados de COVID, y nuevos casos para distintos países, y
distintas fechas.

● Haremos un par de preguntas a los datos, y obtendrémos las respuestas desde la Consola de
Comandos usando solo BASH
Trabajemos con datos COVID
Sigue los pasos:
1. Crea la carpeta en /home/Usuario/Documentos/Ejercicio_COVID

2. En esa carpeta deposita el archivo owid-covid-data.tsv que se proporcionó via Google Drive

3. Ejecuta uno a uno los siguientes comandos...


Explorar los datos con less
less ARGUMENTO (el ARGUMENTO es una ruta absoluta al archivo para revisar)
es un comando que despliega el contenido de un archivo, y te permite recorrerlo arriba y abajo para
conocer el texto. Ejecuta:
less /home/Usuario/Documentos/Ejercicio_COVID/owid-covid-data.tsv
El resultado de less se imprime en la consola (es decir, aparece como texto de respuesta en la terminal)

nota: less es un comando interactivo, así que “atrapará” tu teclado. Para salir de less, sólo debes presionar
la tecla Q .

nota2: para conocer más sobre less, ejecuta:


man less
nota3: prueba la opción -S, ejecutando:

less -S owid-covid-data.tsv
¿Qué contiene el archivo owid-covid-data.tsv?

Abre ese mismo archivo, pero ahora con libre Office Calc, para explorar de manera visual los
nombres de las columnas.

Hagámoslo en vivo * Notarás algunas columnas interesantes, y otras no tanto


¿Qué contiene el archivo owid-covid-data.tsv?
De toda esa información, nos interesa conocer solo la data de México, y tenemos dos preguntas
puntuales:

● ¿Cual ha sido el día con más casos nuevos COVID en México?

● A la última fecha registrada, ¿cuál es el total de fallecimientos?

Hagámoslo en vivo
Tip:

● Los comandos a utilizar son less, cut, sort,


grep, y tail.

● Recuerda que el comando man seguido del


comando que te interesa, te da información
sobre su uso.

● También usaremos google para ayudarnos a


aprender a programar.
Ejercicio
Responde las mismas preguntas pero para Estados Unidos

● ¿Cual ha sido el día con más casos nuevos COVID en Estados Unidos?

● A la fecha, cuál es el total de muertes

Hagámoslo de tarea

Responde las mismas preguntas pero para Francia

● ¿Cual ha sido el día con más casos nuevos COVID en Francia?

● A la fecha, cuál es el total de muertes

Hagámoslo de tarea
¿Dudas?
Contacto
iaguilaror@gmail.com
tw: @_iaguilar
fb: israel.aguilar.3192
Respuestas
De toda esa información, nos interesa conocer solo la data de México, y tenemos dos preguntas
puntuales:

● ¿Cual ha sido el día con más casos nuevos COVID en México?


Respuesta:
grep Mexico owid-covid-data.tsv | cut -f3,4,6 | sort -n -k3 | tail -n1

● A la última fecha registrada, ¿cuál es el total de fallecimientos?


Respuesta:

grep Mexico owid-covid-data.tsv | cut -f3,4,8 | tail -n1

También podría gustarte