the robot academy: meet up linux for robots#1 (17.04.27)
TRANSCRIPT
TheRobotAcademy.com
ROBOTS#127 Abril 2017
Linux for Robots
TheRobotAcademy.com
Iniciació
n a Linux
Sistema de
archivos
Comandos
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
TheRobotAcademy.com
Iniciació
n a Linux
Sistema de
archivos
Comandos
5
1. Comandos esenciales (I)
2. Comandos esenciales (II)
3. Combinando comandos
4. Comandos personalizados
Primera ParteComandos
1Comandos esenciales (I)
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
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
9
https://www.tutorialspoint.com/execute_bash_online.php
Bash en entorno webEjercicios prácticos
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
💀
2Comandos esenciales (II)Becoming the Boss
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
13
Comandos Esencialesman
Ejemplo de uso
man ls
Ejecuta man seguido del comando del que quieras consultar el manual
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
15
Comandos Esencialestop
16
Comandos Esencialestop
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)
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
19
Comandos Esencialesps
Listando los procesos
• Al ejecutar el comando psobtenemos los procesos hijosdel terminal que hemosusado para ejecutar ps
ps
20
Comandos Esencialesps
• A diferencia de ps, ps –efmuestra todoslos procesos del sistema
ps -ef
Listando los procesos
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.
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
23
Comandos Esencialescat
Leyendo contenido desde el terminal
• Ejecutando cat se concatena el contenido de un archivo de textoy se muestrapor el terminal.
cat
24
Comandos Esencialescpuinfo & meminfo
Leyendo información del sistema
cat /proc/cpuinfo cat /proc/meminfo
25
1. Comandos esenciales (I)
2. Comandos esenciales (II)
3. Combinando comandos
4. Comandos personalizados
Segunda ParteComandos
3Combinando comandos
>
>>
&&
| pipes
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>
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
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 “&&”.
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
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
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
33
Filtrando con grep, un ejemplo simpleAparece incluido en la lista elcomando anterior grep ssh
¿Cómo lo evitamos?
PIPESgrep
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
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
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
4Comandos personalizados
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…
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