Top Banner
TheRobotAcademy.com ROBOTS#1 27 Abril 2017 Linux for Robots
40

THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

Jan 22, 2018

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

TheRobotAcademy.com

ROBOTS#127 Abril 2017

Linux for Robots

Page 2: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

TheRobotAcademy.com

Iniciació

n a Linux

Sistema de

archivos

Comandos

Page 3: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

3

SISTEMA DE ARCHIVOS EN LINUX

/

/root

/etc

/proc

/var

/boot

/bin

/dev

/home

/lib

/mnt

/media /usr

/opt/srv

/sys /tmp/run

/sbin/lost+found

Page 4: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

TheRobotAcademy.com

Iniciació

n a Linux

Sistema de

archivos

Comandos

Page 5: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

5

1. Comandos esenciales (I)

2. Comandos esenciales (II)

3. Combinando comandos

4. Comandos personalizados

Primera ParteComandos

Page 6: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

1Comandos esenciales (I)

Page 7: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

7

NAVEGACIÓN POR DIRECTORIOS (I)

Mostrar el directorio actual pwd

Cambiar a otro directorio cd ruta/del/directorio

Volver al directorio anterior cd ..

Ir al home/usuario cd

Creación de un directorio mkdir nombre-directorio

Creación de un árbol de directorios mkdir –p /home/usuario/directorio1/directorio2

Page 8: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

8

NAVEGACIÓN POR DIRECTORIOS (II)

Ver el contenido del directorio ls

Listar todos los archivos (excepto los ocultos)

del directorio actual, en formato detallado.ls –l

Como ls –l pero mostrando el tamaño de

archivos y carpetas en formato más naturalls -lh

Listar todos los archivos (incluido los ocultos)

del directorio actual, en formato detallado.ls –la

Listar los archivos del directorio actual,

indicando el tipo de archivo.ls -F

Page 9: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

9

https://www.tutorialspoint.com/execute_bash_online.php

Bash en entorno webEjercicios prácticos

Page 10: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

10

OPERACIONES CON ARCHIVOS/DIRECTORIOS (I)

Crear y editar un archivo de texto nano fichero

Crear archivo de texto sin contenido touch nombre-del-archivo

Borrar el archivo rm archivo

Borrar el directorio denominado

"directorio", incluyendo todos sus archivos

y subdirectorios.rm -r directorio rm –rf (Borra todo el árbol)

Copiar el archivo o directorio denominado

"fichero" al directorio "/home/datos".cp fichero /home/datos/ cp –r directorio nueva-ruta

Mover el archivo o directorio denominado

“archivo" al directorio "/home/datos".mv archivo /home/datos/

Cambiar nombre de archivo mv nombre-original nuevo-nombre

💀

Page 11: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

2Comandos esenciales (II)Becoming the Boss

Page 12: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

12

Comandos Esencialesman

RTFM

Read The F Manual

• Al utilizar el commando manobtenemos el manual de cualquier programa o comando, de esta forma podemos leer sobre todas las opciones y funcionalidades.

man

lamming

Page 13: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

13

Comandos Esencialesman

Ejemplo de uso

man ls

Ejecuta man seguido del comando del que quieras consultar el manual

Page 14: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

14

Comandos Esencialestop

Monitorizando el sistema

• Ejecutando el comando topobtenemos el uso de recursos actual del sistema, identificando los recursos que consume cada proceso

top

Page 15: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

15

Comandos Esencialestop

Page 16: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

16

Comandos Esencialestop

Page 17: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

17

Prioridad del proceso encuanto a recursos(asignado internamentepor el sistema)

Identificador de procesoUsuario que ha ejecutadoel proceso

Consumo de memoria virtual

Comandos Esencialestop

Tamaño de memoriacompartida usadapor el proceso

Porcentaje de cpu consumidoPorcentaje de memoriaRAM consumida

Tiempo de cpuComando en síNivel de segmentación(prioridad de ejecucióntemporal asignada porel usuario)

Page 18: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

18

Comandos Esencialesdf

• Ejecutando dfobtenemos información sobre el espacio usado y disponible (en nuestro caso la tarjeta sd o cualquier memoria usbconectada)

df

df -h

Page 19: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

19

Comandos Esencialesps

Listando los procesos

• Al ejecutar el comando psobtenemos los procesos hijosdel terminal que hemosusado para ejecutar ps

ps

Page 20: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

20

Comandos Esencialesps

• A diferencia de ps, ps –efmuestra todoslos procesos del sistema

ps -ef

Listando los procesos

Page 21: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

21

Comandos Esencialeskill

Utilizamos el comando kill para matarprocesos de una forma más o menosforzosa, esto viene indicado por elmodificador -<signal>.

Este modificador, un número entre 0 y64 hace referencia a la señal queenviamos al proceso. Podemos vertodas las posibles señales ejecutandokill –l.

kill –<signal> <pid>

Matando procesos

Señal 3: Termina de forma segura.

Señal 9: Fuerza la terminacióndel proceso bruscamente.

Page 22: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

22

Comandos Esencialeskill

Ejemplo de uso

Abre un nuevo terminal y ejecuta ps

Abre un segundo terminal y ejecuta kill -9 <pid> correspondiente al primer bash que ejecutamos, en este ejemplo:

kill -9 1358

Has matado al procesobash con pid 1358

Page 23: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

23

Comandos Esencialescat

Leyendo contenido desde el terminal

• Ejecutando cat se concatena el contenido de un archivo de textoy se muestrapor el terminal.

cat

Page 24: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

24

Comandos Esencialescpuinfo & meminfo

Leyendo información del sistema

cat /proc/cpuinfo cat /proc/meminfo

Page 25: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

25

1. Comandos esenciales (I)

2. Comandos esenciales (II)

3. Combinando comandos

4. Comandos personalizados

Segunda ParteComandos

Page 26: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

3Combinando comandos

>

>>

&&

| pipes

Page 27: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

27

Guardando el resultado

comandos > archivo

Comandos cuya salida final se quiera guardar en archivo de texto.

Archivo dónde se quiera escribir el resultado de la ejecución

Este operador guarda el resultado de la ejecución en un archivo de texto creándolo si no existe o sustituyendo su contenido si ya existe.

>

Combinando comandos>

Page 28: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

28

Guardando el resultado

comandos >> archivo

La diferencia entre > y >> es que este último concatena el resultado de la ejecución al contenido del archivo si es que este ya existía. Si no, funciona exactamente como >.

>>

>>Combinando comandos

Page 29: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

29

Combinando comandos&&

echo “hola” > saludo.txt && mv saludo.txt meetup

Para ahorrar tiempo y evitar tener que ejecutar todos los comandos uno a uno, podemos utilizar el conector “&&”.

Page 30: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

30

Combinando comandos

¿Qué es eso de “combinar comandos”?

Comando 1 Comando 2 Comando n. . .

Cuando combinamos comandos, la salida del comando n es la entrada del comando n+1. De esta forma podemos concatenar todos los comandos que queramos para obtener con una sola línea, una salida de información muy específica.

Para combinar comandos utilizamos el carácter “|” a modo de separador.

PIPES

Page 31: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

31

PIPESgrep

• Utilizado como comando en una combinación, podemos filtrar la salida del comando anterior para mostrar solo las líneas que cumplan el filtro indicado por grep.

grep

Filtrando con grep

ls | grep Do

Page 32: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

32

Filtrando con grep, un ejemplo simple

ps –ef | grep ssh

Proceso para listar todos losprocesos del sistema

Lista solo las líneas delcommando anterior quecontenga la cadena “ssh”

¿Qué salida se obtendría?

PIPESgrep

Page 33: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

33

Filtrando con grep, un ejemplo simpleAparece incluido en la lista elcomando anterior grep ssh

¿Cómo lo evitamos?

PIPESgrep

Page 34: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

34

Filtrando con grep, refinando la salida| grep –v grep

Con –v <cadena> se filtra la salida del comando anterior eliminando aquellas líneasque contengan a <cadena>

PIPESgrep

Page 35: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

35

Filtrando con grep y extrayendo con awk

Tiene una sintaxis de “awk /patron/ ‘{acción}’”, en este caso al no indicar patrón, realiza para cada línea la acción de imprimir el segundo campo de la misma.

awk

| awk ‘{print $2}’

| awk ‘{print $2,$4}’

PIPESgrep + awk

Page 36: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

36

Filtrando con grep, extrayendo con awk y ejecutando con xargs

¿Podemos complicarlo algo más?

ps -ef| grep ssh | grep –v grep | awk ‘{print $2}’ | xargs kill -9

El commando xargs permite tratar individualmente cada línea resultante del commando anterior. Con cada uno de estos datos, ejecuta el commando que se especifique a continuación.

xargs

PIPESgrep + awk + xargs

Page 37: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

4Comandos personalizados

Page 38: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

38

Alias es una herramienta que permite precisamente ponerun alias a cierto comando o combinación de comandos. Deesta forma no tendremos que recordar el comandocompleto, solo el alias que hemos inventado.

Comandos personalizados¿Qué es Alias?

Veamos los pasos que debemos seguir para crear un alias…

Page 39: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)

39

1

2

3

4

Alias viene por defecto instalado en Raspbian, el primer paso por lo tanto no seráinstalarlo, sino modificar el archivo oculto /home/pi/. bashrc

Guarda el archivo tras escribir una nueva línea con la siguiente estructura:alias nombre_personalizado=‘commando real’

Ejecuta el siguiente comando para hacer efectivo el alias:

Prueba el commando utilizando su alias desde el shell

sudo nano .bashrc

Comandos personalizadosPaso a paso

alias off=‘sudo halt’

source .bashrc

off

Page 40: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)