Prontuario
Introducción
Es posible que encuentre prontuarios similares en Internet bajo los términos refcard o how-to. Le resultará útil tener a mano este documento hasta que domine la sintaxis de una herramienta o un contexto en el que necesite trabajar.
Hojee las siguientes secciones para saber dónde se encuentra cada cosa y, así, no perder tiempo cuando lo necesite.
Prontuario: directivas y comandos de ensamblador
1. Directivas en ensamblador
a. SECTION
La directiva section se utiliza para definir una sección en el programa ensamblador. Una sección es una parte del programa que contiene instrucciones o datos específicos.
Por ejemplo, mostrar el mensaje «¡Hola, mundo!» en la salida estándar (normalmente, la pantalla):
section .data
message db '¡Hola, mundo!', 0
section .text
global _start
_start:
mov eax, 4
mov ebx, 1
mov ecx, message
mov edx, 13
int 0x80
mov eax, 1
xor ebx, ebx
int 0x8
b. EXTERN
La directiva extern se utiliza para declarar símbolos externos, es decir, símbolos definidos en otros archivos fuente o bibliotecas.
Por ejemplo, llamar a la función printf para mostrar el mensaje «¡Hola, mundo!» en la salida estándar:
extern printf
section .data
format db '¡Hola, mundo!', 0
section .text
global _start
_start:
push format
call printf
add esp, 4
mov eax, 1
xor ebx, ebx
int 0x80
c. EQU
La directiva equ se utiliza para definir una constante con un valor específico.
Por ejemplo, calcular el área de un círculo utilizando un radio predefinido (en este caso, un radio igual a 5) y mostrar el resultado en la salida estándar:
section .data
radius equ 5
section .text
global...
Prontuario de HDFS y Hadoop, gestión de archivos
Recuerde que los archivos que se gestionan y se almacenan en este contexto suelen ser muy grandes y que el rendimiento de Hadoop es excepcional. Sin embargo, los informáticos que trabajan en este contexto pueden conservar en mayor o menos medida sus referencias de sintaxis de Linux, como verá a continuación.
1. Mostrar información básica de un archivo
-
hadoop fs -ls PATH: muestra información básica sobre un archivo o un directorio.
Ejemplo: hadoop fs -ls /user/hadoop/file.txt
-
hadoop fs -du PATH: muestra el tamaño de un archivo o un directorio.
Ejemplo: hadoop fs -du /user/hadoop/file.txt
-
hadoop fs -count PATH: muestra el número de archivos, de directorios y el tamaño total de un directorio.
Ejemplo: hadoop fs -count /user/hadoop/
-
hadoop fs -checksum PATH: muestra la suma de comprobación MD5 de un archivo.
Ejemplo: hadoop fs -checksum /user/hadoop/file.txt
-
hadoop fs -stat "%a %n" PATH: muestra los permisos y el nombre de un archivo.
Ejemplo: hadoop fs -stat "%a %n" /user/hadoop/file.txt
-
hadoop fs -tail PATH: muestra las últimas líneas de un archivo.
Ejemplo: hadoop fs -tail /user/hadoop/file.txt
2. Gestión de archivos y directorios
-
hadoop fs -mkdir DIR: crea un nuevo directorio.
Ejemplo: hadoop fs -mkdir /user/hadoop/newdir
-
hadoop fs -rm PATH: borra un archivo o un directorio.
Ejemplo: hadoop fs -rm /user/hadoop/file.txt...
Prontuario de SQL
1. Cláusula WHERE - utilización con SELECT/UPDATE/DELETE/INSERT
a. SELECT con WHERE
La cláusula WHERE se utiliza con el comando SELECT para filtrar los resultados según una condición especificada.
-
Ejemplo, seleccionar todos los clientes cuyo apellido empiece por «A»:
SELECT * FROM clientes WHERE apellido LIKE ’A%’;
-
Ejemplo, seleccionar todos los productos con un precio superior a 100:
SELECT * FROM productos WHERE precio > 100;
b. UPDATE con WHERE
La cláusula WHERE se utiliza con el comando UPDATE para actualizar los registros que cumplen una condición especificada.
-
Ejemplo, actualizar los precios de los productos de la categoría «Electrónica»:
UPDATE productos SET precio = precio * 0.9 WHERE categoría = ’Electrónica’;
-
Ejemplo, actualizar la cantidad en stock de los productos con un precio superior a 200:
UPDATE productos SET cantidad_stock = cantidad_stock - 1 WHERE precio > 200;
c. DELETE con WHERE
La cláusula WHERE se utiliza con el comando DELETE para eliminar los registros que cumplan una condición especificada.
-
Ejemplo, eliminar todos los clientes cuya última compra se haya realizado hace más de un año:
DELETE FROM clientes WHERE última_compra < DATE_SUB(NOW(), INTERVAL 1 YEAR);
-
Ejemplo, eliminar todos los productos con una cantidad de existencias inferior a 10:
DELETE FROM productos WHERE cantidad_stock < 10;
d. INSERT con WHERE
La cláusula WHERE no suele utilizarse con el comando INSERT, ya que se usa principalmente para insertar nuevas filas en una tabla. Sin embargo, puede utilizar una subconsulta WHERE para insertar datos en función de una condición.
-
Ejemplo, insertar los clientes cuyas compras totales sean superiores a 1000 en una nueva tabla clientes_vip:
INSERT INTO clientes_vip SELECT * FROM clientes WHERE im-porte_total_compras > 1000;
e. SELECT DISTINCT con WHERE
La cláusula WHERE también se puede utilizar con el comando SELECT DISTINCT para filtrar resultados únicos según una condición especificada.
-
Ejemplo, seleccionar todos los países en los que el número de clientes sea superior a 100:
SELECT DISTINCT país FROM clientes WHERE número_clientes > 100;
-
Ejemplo, seleccionar todos los productos distintos con un precio inferior a 50:
SELECT DISTINCT producto FROM...
Prontuario de Git
1. Inicializar un repositorio Git
-
git init: inicializa un nuevo repositorio Git en el directorio actual.
Ejemplo: git init
-
git clone URL: clona un repositorio Git remoto en un nuevo directorio local.
Ejemplo: git clone https://github.com/user/repo.git
-
git config --global user.name "NOMBRE": configura el nombre de usuario para todos los repositorios locales.
Ejemplo: git config --global user.name "John Doe"
-
git config --global user.email "EMAIL": configura la dirección de correo electrónico para todos los repositorios locales (¡no olvide esta instrucción!).
Ejemplo: git config --global user.email "johndoe@example.com"
-
git add: añade el directorio completo al índice.
-
git add FILE: añade un archivo modificado o recién creado al índice.
Ejemplo: git add file.txt
-
git commit -m "MENSAJE": crea una instantánea del código fuente actual y la almacena en el historial de versiones de Git.
Ejemplo: git commit -m "Añadir un nuevo archivo"
2. Gestión de ramas Git
-
git branch: muestra la lista de ramas locales.
Ejemplo: git branch
-
git branch BRANCH: crea una nueva rama a partir de la rama actual.
Ejemplo: git branch feature
-
git checkout BRANCH: cambia a una rama específica y actualiza el directorio de trabajo.
Ejemplo: git checkout feature
-
git merge BRANCH: fusiona una rama específica en la rama actual....
Prontuario de Linux: Gestión de archivos/procesos/usuarios/paquetes/archivos tar
1. Gestión de archivos
ls: muestra el contenido de un directorio.
-
ls /home/user/Documentos: muestra el contenido del directorio Documentos del usuario.
-
ls -l /home/user/Documentos: muestra el contenido del directorio Documentos del usuario con información detallada.
-
ls -a /home/user/Documentos: muestra el contenido del directorio Documentos del usuario, incluidos los archivos ocultos.
-
ls -lh /home/user/Documentos: muestra el contenido del directorio Documentos del usuario con información detallada más fácil de leer.
-
ls -R /home/user/Documentos: muestra el contenido del directorio Documentos del usuario y todos los subdirectorios.
-
ls -t /home/user/Documentos: muestra el contenido del directorio Documentos del usuario, ordenado por fecha de modificación.
2. Gestión de procesos
ps: muestra los procesos que se están ejecutando actualmente.
-
ps aux: muestra todos los procesos en ejecución con información detallada.
-
ps aux | grep firefox: muestra todos los procesos en ejecución que contienen la palabra «firefox».
-
kill PID: mata un proceso específico utilizando su ID de proceso (PID).
-
killall firefox: mata todos los procesos que contengan la palabra «firefox».
-
top: muestra en tiempo real los procesos que se están ejecutando y el uso que hacen de los recursos.
-
htop: una alternativa...
Prontuario de Linux: cambiar los atributos de un archivo, incluidos los permisos
1. Cambiar el propietario y el grupo de un archivo
chown: cambia el propietario y el grupo de un archivo específico.
-
chown usuario:grupo archivo.txt: cambia el propietario y el grupo de archivo.txt a «usuario» y «grupo» .
-
chown usuario archivo.txt: cambia el propietario de archivo.txt a «usuario».
-
chgrp grupo archivo.txt: cambia el grupo de archivo.txt a «grupo».
-
chown -R usuario:grupo directorio/: cambia recursivamente el propietario y el grupo de todos los archivos del directorio/ a «usuario» y «grupo».
-
chgrp -R grupo directorio/: cambia recursivamente el grupo de todos los archivos del directorio/ a «grupo».
2. Modificar los permisos por defecto para los archivos nuevos
Para comprender el significado de las expresiones siguientes, tomaremos como ejemplo la expresión «-rw-r-r-». Cada carácter de esta expresión representa una autorización o un atributo específico asociado al archivo:
-
El primer carácter indica el tipo de archivo:
-
’-’ archivo ordinario;
-
’d’ directorio;
-
’l’ enlace simbólico;
-
’c’ o ’b’ para archivos especiales de caracteres o de bloque.
-
Las demás letras indican el nivel de permiso:
-
’r’ significa permiso de «lectura». Permite al usuario ver el contenido del archivo. ...
Prontuario de Linux: cron
1. Creación de una tarea cron
-
crontab -e: abre el archivo crontab del usuario actual para editar las tareas cron.
Ejemplo: crontab -e
-
crontab -l: muestra las tareas cron actuales para el usuario actual.
Ejemplo: crontab -l
-
crontab -r: elimina todas las tareas cron para el usuario actual.
Ejemplo: crontab -r
-
crontab FILE: instala tareas cron desde un archivo especificado.
Ejemplo: crontab mycronfile
-
* * * * * COMMAND: programa un comando para que se ejecute periódicamente según una sintaxis determinada.
Ejemplo: * * * * * /usr/bin/command
-
@reboot COMMAND: programa un comando para que se ejecute al arrancar el sistema.
Ejemplo: @reboot /usr/bin/command
2. Sintaxis de planificación de tareas
-
Los campos de tiempo son: minuto (0-59), hora (0-23), día del mes (1-31), mes (1-12), día de la semana (0-6).
Ejemplo: 0 0 * * * /usr/bin/command
-
Los caracteres especiales son los siguientes: * (todos los valores), / (incremento), , (lista), - (rango).
Ejemplo: */5 * * * * /usr/bin/command
-
Los comentarios comienzan con el símbolo almohadilla (#) y son ignorados por cron.
Ejemplo: # Esta línea es un comentario
3. Ejemplos de tareas cron
-
Copia de seguridad diaria de la base de datos MySQL a medianoche:
0 0 * * * /usr/bin/mysqldump --all-databases > /var/backups/mysql/
$(date +\%Y-\%m-\%d).sql
-
Limpiar el directorio /tmp cada hora:
0 * * * * /bin/rm -f /tmp/*
-
Reiniciar el servidor Apache todos los domingos...
Prontuario de Linux: red
1. Mostrar la información de la interfaz de red
-
ifconfig: muestra información de la interfaz de red para todas las interfaces activas.
Ejemplo: ifconfig
-
ifconfig INTERFACE: muestra información sobre la interfaz de red de una interfaz específica.
Ejemplo: ifconfig eth0
-
ifconfig INTERFACE up: activa una interfaz de red específica.
Ejemplo: ifconfig eth0 up
-
ifconfig INTERFACE down: desactiva una interfaz de red específica.
Ejemplo: ifconfig eth0 down
-
ifconfig INTERFACE IP_ADDRESS netmask NETMASK: configura la dirección IP y la máscara de subred de una interfaz específica.
Ejemplo: ifconfig eth0 192.168.1.100 netmask 255.255.255.0
-
ifconfig INTERFACE promisc: activa el modo promiscuous para una interfaz específica.
Ejemplo: ifconfig eth0 promisc
En el contexto de las redes, el modo promiscuous permite a una interfaz de red capturar e inspeccionar todo el tráfico del segmento de red al que está conectada, en lugar de limitarse al tráfico dirigido específicamente a ella.
2. Mostrar la información de enrutamiento
-
route: muestra la tabla de enrutamiento actual.
Ejemplo: route
-
route add DEFAULT_GATEWAY: añade una ruta por defecto a la tabla de enrutamiento.
Ejemplo: route add default gw 192.168.1.1
-
route add NETWORK gw GATEWAY: añade una ruta para una red específica a la tabla de enrutamiento.
Ejemplo: route add -net 192.168.1.0 netmask...
Prontuario de Linux: «bash» en pocas palabras
1. Aspectos básicos
-
Cmd 1: # - Se utiliza para añadir comentarios a un script de bash.
Ejemplo: # Esto es un comentario que explica lo que hace la siguiente línea de código
Ejemplo: # Este comentario se ignora cuando se ejecuta el script
-
Cmd 2: echo - Se utiliza para mostrar texto en la pantalla.
Ejemplo: echo "¡Hola, mundo!"
Ejemplo: echo "El script se está ejecutando..."
-
Cmd 3: read - Se utiliza para leer la entrada del usuario.
Ejemplo: read -p "Introduzca su nombre: " nombre
Ejemplo: read -s -p "Introduzca su contraseña: " contraseña
-
Cmd 4: if - Se utiliza para realizar pruebas condicionales.
Ejemplo:
if [ $edad -gt 18 ]; then
echo "Eres mayor de edad."
fi
Ejemplo:
if [ -f archivo.txt ]; then
echo "El archivo existe"
fi
-
Cmd 5: for - Se utiliza para recorrer una lista de elementos.
Ejemplo:
for i in 1 2 3; do
echo "Valor: $i"
done
Ejemplo:
for archivo in *.txt; do
echo "Procesando archivo: $archivo"
done
-
Cmd 6: exit - Se utiliza para salir del script.
Ejemplo: exit 0 (finaliza el script con un código de retorno 0)
Ejemplo: exit 1 (finaliza el script con un código de retorno de 1)
2. Variables
-
Cmd 1: variable="valor" - Permite declarar una variable y asignarle un valor.
Ejemplo: nombre="Juan"
Ejemplo: edad=25
-
Cmd 2: echo $variable - Se utiliza para mostrar el valor de una variable.
Ejemplo: echo $nombre
Ejemplo: echo $edad
-
Cmd 3: unset variable - Permite eliminar una variable.
Ejemplo: unset nombre
Ejemplo: unset edad
-
Cmd 4: variable=$(Cmd) - Se utiliza para almacenar el resultado de un comando (aquí llamado Cmd) en una variable.
Ejemplo: fecha=$(fecha +%Y-%m-%d)
Ejemplo: archivos=$(ls)
-
Cmd 5: readonly variable - Permite declarar una variable de solo lectura.
Ejemplo: readonly PI=3.14
Ejemplo: readonly MENSAJE="Hola"
-
Cmd 6: export variable- Permite hacer accesible una variable a los subprocesos.
Ejemplo: export LANG="eS_ES.UTF-8
Ejemplo: export PATH="$PATH:/usr/local/bin"
3. Condiciones
-
Cmd 1: test condition - Se utiliza para realizar pruebas condicionales.
Ejemplo: test $edad...
Prontuario de Linux: systemd y cgroups
systemd es un gestor cada vez más utilizado en muchas distribuciones de Linux, incluyendo sistemas como Ubuntu, Fedora y CentOS.
systemctl es un comando que permite gestionar el sistema de arranque, así como controlar los servicios y las unidades del sistema en distribuciones que utilizan el sistema de arranque systemd.
-
systemctl: el comando systemctl es una utilidad que se encarga de examinar y controlar el sistema systemd y el gestor de servicios. Se trata de una colección de bibliotecas, utilidades y demonios de gestión del sistema que funciona como sucesor del demonio System V init.
-
systemctl start nombre_servicio.servicio: inicia un servicio llamado nombre_servicio.
-
systemctl stop nombre_servicio.servicio: detiene un servicio llamado nombre_servicio.
-
systemctl restart nombre_servicio.servicio: reinicia un servicio llamado nombre_servicio.
-
systemctl status nombre_servicio.servicio: muestra el estado de un servicio llamado nombre_servicio.
-
systemctl enable nombre_servicio.servicio: habilita un servicio llamado nombre_servicio para que se inicie automáticamente al arrancar el sistema.
-
systemctl disable nombre_servicio.servicio: desactiva un servicio llamado nombre_servicio para que no se inicie automáticamente al arrancar el sistema.
-
journalctl: el comando journalctl es una herramienta que muestra los mensajes de registro del sistema.
-
journalctl: muestra todos los mensajes de registro.
-
journalctl -u nombre_servicio.servicio: muestra todos los mensajes de registro de un servicio llamado nombre_servicio.
-
journalctl --since "2022-10-01 00:00:00" --until "2022-10-31 23:59:59": muestra todos los mensajes...
Prontuario de Linux: servidor HTTP Apache2 (en un contexto Systemd)
1. Arrancar, detener y reiniciar Apache2
-
sudo systemctl start apache2: inicia el servidor Apache2.
Ejemplo: sudo systemctl start apache2
-
sudo systemctl stop apache2: detiene el servidor Apache2.
Ejemplo: sudo systemctl stop apache2
-
sudo systemctl restart apache2: reinicia el servidor Apache2.
Ejemplo: sudo systemctl restart apa
-
sudo systemctl reload apache2: recarga la configuración de Apache2 sin interrumpir las conexiones actuales.
Ejemplo: sudo systemctl reload apache2
-
sudo systemctl status apache2: muestra el estado actual del servidor Apache2.
Ejemplo: sudo systemctl status apache2
-
sudo apachectl -t: comprueba la sintaxis de los archivos de configuración de Apache2.
Ejemplo: sudo apachectl -t
2. Gestión de los archivos de configuración
-
/etc/apache2/apache2.conf: archivo principal de configuración de Apache2.
Ejemplo: sudo nano /etc/apache2/apache2.conf
-
/etc/apache2/sites-available/ y /etc/apache2/sites- enabled/: directorios que contienen archivos de configuración de hosts virtuales.
Ejemplo: sudo nano /etc/apache2/sites-available/mysite.conf
-
/etc/apache2/mods-available/ y /etc/apache2/mods- enabled/: directorios que contienen los archivos de configuración de los módulos de Apache.
Ejemplo: sudo nano /etc/apache2/mods-available/ssl.conf
3. Gestión de los hosts virtuales
-
sudo a2ensite SITENAME: activa un host virtual específico.
Ejemplo:...
Prontuario de Linux: fireWall
1. Configurar un cortafuegos con iptables
iptables: modifica las reglas del cortafuegos.
-
iptables -L: muestra las reglas actuales del cortafuegos.
-
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT: abre el puerto 22 para el tráfico saliente.
-
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT: abre el puerto 80 para el tráfico entrante.
-
iptables -t filter -A INPUT -s 192.168.0.0/24 -j ACCEPT: autoriza el tráfico entrante procedente de la red local.
-
iptables -t filter -A INPUT -i lo -j ACCEPT: autoriza el tráfico entrante en la interfaz loopback.
-
iptables-save > /etc/sysconfig/iptables: guarda las reglas del cortafuegos para que se carguen al inicio.
2. Configurar un cortafuegos con firewalld
firewall-cmd: modifica las reglas del cortafuegos.
-
firewall-cmd --state: muestra el estado actual del cortafuegos.
-
firewall-cmd --get-zones: muestra las zonas disponibles.
-
firewall-cmd --zone=public --add-port=80/tcp --permanent: abre el puerto 80 para el tráfico que entra en la zona pública.
-
firewall-cmd --zone=public --add-service=http --permanent: abre el servicio HTTP para el tráfico que entra en la zona pública.
-
firewall-cmd --zone=public --add-source=192.168.0.0/24 --permanent: permite el tráfico entrante de la red local en la zona pública.
-
firewall-cmd --reload: recarga las reglas del cortafuegos.
3. Configurar un cortafuegos con ufw
ufw: modifica las reglas del cortafuegos....
Prontuario de Linux: SSH
1. Conexión a un servidor remoto mediante SSH
-
ssh USER@HOST: establece una conexión SSH con un servidor remoto.
Ejemplo: ssh user@192.168.1.100
-
ssh -p PORT USER@HOST: establece una conexión SSH con un servidor remoto en un puerto específico.
Ejemplo: ssh -p 2222 user@192.168.1.100
-
ssh-copy-id USER@HOST: copia la clave pública del usuario en el servidor remoto para la autenticación sin contraseña.
Ejemplo: ssh-copy-id user@192.168.1.100
-
scp FILE USER@HOST:DESTINO: copia un archivo local a un servidor remoto a través de SSH.
Ejemplo: scp archivo.txt user@192.168.1.100:/home/user/
-
sftp USER@HOST: abre una sesión SFTP para transferir archivos entre el cliente y el servidor.
Ejemplo:sftp user@192.168.1.100
-
rsync SOURCE USER@HOST:DESTINO: sincroniza archivos entre el cliente y el servidor a través de SSH.
Ejemplo: rsync archivo.txt user@192.168.1.100:/home/user/
2. Gestión de claves SSH
-
ssh-keygen: genera un nuevo par de claves SSH para el usuario.
Ejemplo: ssh-keygen
-
ssh-add KEYFILE: añade una clave privada al agente de autenticación SSH.
Ejemplo: ssh-add ~/.ssh/id_rsa
-
ssh-keyscan HOST: recupera la clave pública de un host remoto y la añade a la lista de claves conocidas.
Ejemplo: ssh-keyscan 192.168.1.100 >> ~/.ssh/known_hosts
-
ssh-keygen -t rsa -b 4096 -C "USER@HOST": genera un nuevo par de claves RSA con un tamaño de bits...
Prontuario de Linux: SSL
1. Creación de un certificado SSL autofirmado
-
openssl genrsa -out KEYFILE.pem 2048: genera una nueva clave privada RSA de 2048 bits.
Ejemplo: openssl genrsa -out server.key 2048
-
openssl req -new -key KEYFILE.pem -out CSRFILE.csr: crea una solicitud de firma de certificado (CSR) para la clave privada.
Ejemplo: openssl req -new -key server.key -out server.csr
-
openssl x509 -req -days DAYS -in CSRFILE.csr -signkey KEYFILE.pem -out CERTFILE.crt: firma el CSR con la clave privada para crear un certificado autofirmado.
Ejemplo: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
-
openssl pkcs12 -export -in CERTFILE.crt -inkey KEYFILE.pem -out PKCS12FILE.p12: exporta el certificado y la clave privada en un archivo PKCS#12.
Ejemplo: openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12
-
openssl s_client -connect HOST:PORT: establece una conexión SSL/TLS con un servidor remoto y muestra la información del certificado.
Ejemplo: openssl s_client -connect www.google.com:443
-
openssl verify CERTFILE.crt: comprueba la validez de un certificado SSL/TLS.
Ejemplo: openssl verify server.crt
2. Creación de un certificado SSL firmado por una autoridad de certificación
-
openssl genrsa -out KEYFILE.pem 2048: genera una nueva clave privada RSA de 2048 bits.
Ejemplo: openssl genrsa -out server.key 2048
-
openssl req -new -key KEYFILE.pem -out CRSFILE.csr: crea una solicitud de firma de certificado (CSR)...
Prontuario de Docker: comandos básicos
1. Iniciar un nuevo contenedor
docker run: inicia un nuevo contenedor y ejecuta un comando.
-
docker run -it ubuntu bash: inicia un nuevo contenedor Ubuntu y abre un shell interactivo.
-
docker run -d nginx: inicia un nuevo contenedor Nginx en segundo plano.
-
docker run --name mycontainer nginx: inicia un nuevo contenedor Nginx con el nombre mycontainer.
-
docker run -p 8080:80 nginx: inicia un nuevo contenedor Nginx y asigna el puerto 8080 en el sistema anfitrión al puerto 80 en el contenedor.
-
docker run -v/path/on/host:/path/in/container nginx: inicia un nuevo contenedor Nginx y monta el directorio /path/en/host del sistema anfitrión en el directorio /path/in/container del contenedor.
-
docker run --rm nginx: inicia un nuevo contenedor Nginx y elimina automáticamente el contenedor cuando se detiene.
2. Gestionar las imágenes Docker
docker images: lista todas las imágenes Docker descargadas en el sistema.
-
docker images nginx: lista todas las imágenes Docker con «nginx» en su nombre.
-
docker pull nginx: descarga la imagen Docker nginx.
-
docker rmi nginx: elimina la imagen Docker nginx.
-
docker tag nginx myrepo/nginx: crea una nueva etiqueta para la imagen Docker nginx.
-
docker push myrepo/nginx:envía la imagen Docker myrepo/nginx al registro Docker.
-
docker save nginx > nginx.tar: guarda la imagen Docker nginx en un archivo tar.
3. Gestionar los contenedores Docker
docker ps: lista...
Prontuario de Docker: gestión de volúmenes
1. Crear un volumen
docker volume create: crea un nuevo volumen Docker.
-
docker volume create my_volume: crea un nuevo volumen Docker llamado my_volume.
-
docker volume ls: lista todos los volúmenes Docker del sistema.
-
docker volume inspect my_volume: muestra información detallada sobre el volumen Docker llamado my_volume.
-
docker volume rm my_volume: elimina el volumen Docker llamado my_volume.
-
docker volume prune: elimina todos los volúmenes no utilizados.
2. Utilizar un volumen
docker run: inicia un nuevo contenedor y monta un volumen.
-
docker run -v my_volume:/app nginx: inicia un nuevo contenedor Nginx y monta el volumen Docker llamado my_volume en el directorio /app del contenedor.
-
docker run --mount source=my_volume,target=/app nginx: inicia un nuevo contenedor Nginx y monta el volumen Docker llamado my_volumeen el directorio /app del contenedor.
-
docker run --mount type=bind,source=/path/on/host,target=/path/in/container nginx: inicia un nuevo contenedor Nginx y monta el directorio /path/on/host del sistema anfitrión en el directorio /path/in/container del contenedor.
-
docker run --mount type=volume,source=my_volume,target=/app nginx: inicia un nuevo contenedor Nginx y monta el volumen Docker llamado my_volume en el directorio /app del contenedor.
-
docker run --mount type=tmpfs,destination=/app nginx: inicia un nuevo contenedor Nginx y monta un sistema de archivos temporal en el directorio /app...
Prontuario de Docker: instrucciones contenidas en los Dockerfile
1. Crear una imagen Docker
-
FROM: especifica la imagen base para la nueva imagen.
Ejemplo: FROM ubuntu:latest utiliza la imagen Ubuntu como imagen base.
-
RUN: ejecuta un comando en el contenedor y crea una nueva capa.
Ejemplo: RUN apt-get update && apt-get install -y nginx instala Nginx en el contenedor.
-
COPY: copia archivos del sistema anfitrión al contenedor.
Ejemplo: COPY index.html /var/www/html/ copia el archivo index.html del sistema anfitrión al directorio /var/www/html/ del contenedor.
-
WORKDIR: define el directorio de trabajo para las siguientes instrucciones.
Ejemplo: WORKDIR /var/www/html/ establece el directorio de trabajo en /var/www/html/.
-
EXPOSE: expone un puerto para conexiones entrantes.
Ejemplo: EXPOSE 80 expone el puerto 80 para conexiones entrantes.
-
CMD: especifica el comando que se ejecutará cuando se inicie el contenedor.
Ejemplo: CMD ["nginx", "-g", "daemon off;"] inicia Nginx cuando se inicia el contenedor.
2. Crear un usuario sin privilegios
-
RUN useradd: añade un nuevo usuario al sistema.
Ejemplo: RUN useradd --create-home --shell /bin/bash user añade un nuevo usuario llamado user.
-
USER: especifica el usuario que se utilizará para las siguientes instrucciones.
Ejemplo: USER user especifica que las siguientes instrucciones deben ejecutarse como user.
-
WORKDIR: define el directorio de trabajo para las siguientes...
Prontuario de Docker: instrucciones para gestionar contenedores DockerCompose
1. Crear un servicio
-
services:: define la sección de los servicios en el archivo docker-compose.yml.
Ejemplo: services:
-
<nombre del servicio>:: define un servicio con nombre en el archivo docker-compose.yml.
Ejemplo: web:
-
image:: especifica la imagen Docker que se ha de utilizar para el servicio.
Ejemplo: image: nginx:latest
-
ports:: asigna puertos de contenedor a puertos de host.
Ejemplo: puertos: - "8080:80"
-
volumes:: muestra un volumen o archivo en el contenedor.
Ejemplo: volumes: - ./data:/var/www/html/data
-
environment:: define las variables de entorno para el contenedor.
Ejemplo: environment: - MYSQL_ROOT_PASSWORD=password
2. Iniciar un servicio
-
docker-compose up: inicia todos los servicios definidos en el archivo docker-compose.yml.
Ejemplo: docker-compose up
-
docker-compose up <nombre del servicio>: inicia un servicio específico definido en el archivo docker-compose.yml.
Ejemplo: docker-compose up web
-
docker-compose up --build: construye imágenes Docker antes de iniciar los servicios.
Ejemplo: docker-compose up --build
-
docker-compose up -d: inicia los servicios en segundo plano (modo separado).
Ejemplo: docker-compose up -d
-
docker-compose ps: muestra el estado de los servicios iniciados por docker-compose.
Ejemplo: docker-compose ps
-
docker-compose logs: muestra los registros de los servicios iniciados por docker-compose.
Ejemplo: docker-compose logs...
Prontuario de Pandas: lo esencial
1. Creación de un DataFrame
-
pd.DataFrame(data [, index, columns, dtype, copy]): crea un DataFrame a partir de datos existentes.
Ejemplo: df = pd.DataFrame({’col1’: [1, 2], ’col2’: [3, 4]})
-
pd.read_csv(filepath_or_buffer [, sep, delimiter, ...]): carga un archivo CSV en un DataFrame.
Ejemplo: df = pd.read_csv(’data.csv’)
-
pd.read_excel(io [, sheet.name, header, ...]): carga un archivo Excel en un DataFrame.
Ejemplo: df = pd.read_excel(’data.xlsx’)
-
pd.read_sql(sql [, con, index_col, ...]): carga los resultados de una consulta SQL en un DataFrame.
Ejemplo: df = pd.read_sql(’SELECT * FROM mytable’, con)
-
pd.concat(objs [, axis, join, ignore_index, ...]): concatena varios DataFrames a lo largo de un eje.
Ejemplo: df = pd.concat([df1, df2], axis=0)
-
pd.merge(left, right [, how, on, left_on, ...]): fusiona dos DataFrames basándose en columnas compartidas.
Ejemplo: df = pd.merge(df1, df2, on=’key’)
2. Manipulación rápida de un DataFrame
-
df.head(n): muestra las n primeras líneas del DataFrame.
Ejemplo: df.head(10)
-
df.tail(n): muestra las últimas n líneas del DataFrame.
Ejemplo: df.tail(10)
-
df.shape: devuelve el número de filas y columnas del DataFrame.
Ejemplo: print(df.shape)
-
df.info(): muestra información sobre el DataFrame, como el tipo de datos y el número de valores distintos de cero.
Ejemplo: print(df.info())...
Prontuario de Pandas: manipulación de datos, de cerca
Ya hemos cubierto la manipulación de datos con SQL en conjunción con Pandas, pero aquí nos concentraremos en Pandas.
-
Transponer un DataFrame: el método transpose() se utiliza para intercambiar las filas y columnas de un DataFrame.
Cmd: df.transpose()
Ejemplo 1: df.transpose()
Ejemplo 2: df.T
-
Pivotar un DataFrame: la función pivot() puede utilizarse para remodelar un DataFrame convirtiendo valores individuales de una columna en varias columnas.
Cmd: df.pivot(index=’columna1’, columns=’columna2’, values=’valor’)
Ejemplo 1: df.pivot(index=’fecha’, columns=’variable’, values=’valor’)
Ejemplo 2: df.pivot_table(index=’fecha’, columns=’variable’, values=’valor’, aggfunc=np.sum)
-
Remodelar un DataFrame: la función melt() remodela un DataFrame combinando diferentes columnas en una sola.
Cmd: pd.melt(df, id_vars=[’columna1’], value_vars=[’columna2’])
Ejemplo 1: pd.melt(df, id_vars=[’id’], value_vars=[’día1’, ’día2’], var_name=’día’, value_name=’valor’)
Ejemplo 2: pd.melt(df, id_vars=[’id’], value_vars=[’día1’, ’día2’], var_name=’día’, value_name=’valor’, ignore_index=False)
-
Apilar y desapilar datos: los métodos stack() y unstack() se pueden utilizar para girar un nivel de columna o fila al eje opuesto.Aunque es un poco difícil de entender, debería esforzarse por comprender estas operaciones, que son muy difíciles de realizar de otra forma, ya que resultan vitales en el análisis de datos.
Cmd: df.stack()
Ejemplo 1: df.stack(level=0); este método se utiliza a menudo cuando se tiene un DataFrame con varias columnas y se desea convertirlas en una sola columna para facilitar el análisis o la manipulación de los datos, de forma que cada fila lleve el nombre de su columna original. La llamada a df.stack() transforma estas columnas en una única columna índice y los valores correspondientes se apilan como una serie.
import pandas as pd
...
Prontuario de Pandas: las uniones, de cerca
Anteriormente hemos visto la sintaxis de las uniones en SQL. Las uniones nativas de Pandas son más rápidas y a veces técnicamente más sencillas de diseñar cuando no implican filtrado de datos o transformación de claves.
Unión interna (inner join)
-
Unión interna simple
Cmd: pd.merge(df1, df2, on=’clave’), se utiliza para combinar datos solo en la columna especificada como clave de unión.
Ejemplo: pd.merge(df1, df2, on=’ID’) combina dos DataFrames en la columna ID.
-
Especificar columnas con nombres diferentes como claves de unión
Cmd: pd.merge(df1, df2, left_on=’clave_izquierda’, right_on=’clave_derecha’)
Ejemplo: pd.merge(df1, df2, left_on=’ID1’, right_on=’ID2’)
-
Unión interna por defecto
Esta unión interna corresponde a la opción por defecto how=’inner’. Solo incluye filas con coincidencias en ambos DataFrames.
Ejemplo: pd.merge(df1, df2, on=’ID’) realiza una unión interna por defecto.
-
Unión de varias columnas (2,3, ...)
Cmd: pd.merge(df1, df2, ..., on=[’clave1’, ’clave2’, ...])
Ejemplo: pd.merge(df1, df2, df3, on=[’ID1’, ’ID2’, ’ID3’]) combina los DataFrames en tres columnas, de forma que los valores clave sean iguales. ¡Es muy útil en ciencia...