![Page 1: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/1.jpg)
TheRobotAcademy.com
ROBOTS#127 Abril 2017
Linux for Robots
![Page 2: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/2.jpg)
TheRobotAcademy.com
Iniciació
n a Linux
Sistema de
archivos
Comandos
![Page 3: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/3.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/4.jpg)
TheRobotAcademy.com
Iniciació
n a Linux
Sistema de
archivos
Comandos
![Page 5: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/5.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/6.jpg)
1Comandos esenciales (I)
![Page 7: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/7.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/8.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/9.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/10.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/11.jpg)
2Comandos esenciales (II)Becoming the Boss
![Page 12: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/12.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/13.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/14.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/15.jpg)
15
Comandos Esencialestop
![Page 16: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/16.jpg)
16
Comandos Esencialestop
![Page 17: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/17.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/18.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/19.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/20.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/21.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/22.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/23.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/24.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/25.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/26.jpg)
3Combinando comandos
>
>>
&&
| pipes
![Page 27: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/27.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/28.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/29.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/30.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/31.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/32.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/33.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/34.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/35.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/36.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/37.jpg)
4Comandos personalizados
![Page 38: THE ROBOT ACADEMY: Meet Up Linux for ROBOTS#1 (17.04.27)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/38.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/39.jpg)
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)](https://reader033.vdocuments.us/reader033/viewer/2022051521/5a65d9a17f8b9a723f8b47ed/html5/thumbnails/40.jpg)