Compendio de los principales comandos
Arranque
1. Núcleo y módulos
-
Mostrar los parámetros del núcleo: sysctl -a
-
Modificar un parámetro del núcleo: sysctl < parámetro>=<valor>
-
Configurar parámetros: /etc/sysctl.conf y /etc/sysctl.d/
-
Enumerar: lsmod
-
Info: modinfo <módulo>
-
Cargar: modprobe <módulo> [parámetro=valor]
-
Descargar: modprobe -r <módulo>
-
/etc/modprobe.d/*.conf
-
/etc/modules-load.d/*.conf
2. Arranque y servicios
Systemd
-
Enumerar unidades: systemd
-
Estado de las unidades: systemctl status <unidad>
-
Activar e iniciar un servicio:
-
Iniciar/detener un servicio:
-
Activar/desactivar un servicio al arranque:
-
Bitácoras para un servicio journalctl: _SYSTEMD_UNIT=<nombre del servicio>.service
Apagar el SO
-
Detener: shutdown -h now o halt
-
Reiniciar: shutdown -r now o reboot
-
Reiniciar a las 7h05: shutdown -r 07:05
-
Apagar en 10 minutos: shutdown +10
-
Cancelar el apagado /reiniciado ya empezado o programado: shutdown -c
Instalar programas
1. Registrarse
Portal del cliente
-
Registrar el sistema en el portal del cliente: subscription-manager register.
-
Adjuntar el sistema a una suscripción: subscription-manager attach --auto
subscription-manager unregister
subscription-manager list
subscription-manager facts
subscription-manager repos
2. YUM/DNF (repositorios de paquetes)
Lista de repositorios
dnf repolist
dnf repolist all
Buscar e instalar paquetes
dnf list
dnf list installed
dnf list available
dnf list all
dnf grouplist
dnf search <palabra>
información sobre un paquete o un archivo
dnf info <paquete>
dnf provides <archivo>
Instalar/desinstalar un paquete o un grupo
dnf install <paquete>
dnf groupinstall "<grupo>" o yum install @"<grupo>"
dnf remove <paquete>
dnf groupremove "<grupo>"
Actualización de paquetes
dnf check-update
dnf update <paquete>
dnf update
Plugins (complementos)
dnf info yum
Seguridad
dnf check-update --security
dnf upgrade-minimal --security
Reinicializar
dnf clean all
Application Streams (RHEL 8.8/DNF)
Mostrar la lista de módulos
dnf module list
Información sobre un módulo
dnf module info <nombre del módulo>
dnf module info <nombre del módulo> --profile
Instalar un módulo
dnf module install <nombre del módulo>
dnf module install <nombre del módulo>:<versión>/<perfil>...
Particiones y sistemas de archivos
1. Particionar
-
Informaciones sobre el disco: parted -l <disco>
-
Crear particiones: parted <disco>
Ejemplo: parted /dev/sdb
-
Comandos:
2. Logical Volume Manager (Gestor de volúmenes lógicos)
Vocabulario
-
PV (volúmenes físicos): discos, particiones
-
VG (grupos de volúmenes): concatenación de PV
-
LV (volúmenes lógicos): particiones lógicas creadas en los VG
Physical Volume (Volumen físico)
-
Info PV: pvdisplay
pvcreate <partición>
Ejemplo: pvcreate /dev/sdb5
pvremove <partición>
Ejemplo: pvremove /dev/sdb5
-
Desplazar datos a otro PV: pvmove <PV fuente> <PV destino>
Volume Group (Grupo de volúmenes)
-
Informaciones del VG: vgdisplay
-
Crear: vgcreate <nombre del VG> <PV> [<otro PV> <etc.>]
Ejemplo: vgcreate Database /dev/sdb1
-
Agregar PV al VG: vgextend <nombre del VG> <PV>
-
Suprimir un VG: vgremove <VG>
-
Quitar un PV de un VG: vgreduce <VG> <PV>
Logical Volume (volumen lógico)
-
Informaciones del LV: lvdisplay
-
Crear un LV en un VG: lvcreate -L <tamaño> -n <nombre del LV> <VG>
Ejemplo: lvcreate -L 500 -n LV-Oracle Database
-
Eliminar: lvremove <LV> (primero se debe desmontar)
-
Extender: lvextend -L<nuevo tamaño> <LV>
-L800 (tamaño fijo 800 MB) o -L4G (tamaño fijo 4 GB) o -L+300 (tamaño +300 MB)
-
Reducir: lvreduce -L<nuevo tamaño> <LV>
-
Crear una instantánea (snapshot): lvcreate -L <tamaño del snapshot> -s -n <nombre del snapshot> <LV fuente>
-
Volver a un snapshot anterior: lvconvert --merge /dev/<vg...
Usuarios y grupos
1. Usuarios
-
Agregar: useradd <nombre_de_usuario>
-c ’<información>’
-d <directorio_usuario>
-e <fecha>
-s <ruta_del_shell>
-r (cuenta del sistema)
-
Modificar: usermod <opciones> <usuario>
-a -G <grupos> (agregar a grupos)
-L (bloquear)
-U (desbloquear)
-m -d <nuevo_ directorio_usuario>
-
Eliminar: userdel <usuario>
-
Contraseña: passwd <nombre_de_usuario>
-
Cambiar temporizadores: chage (ver esquema)
-
Cambiar contraseña en la primera conexión: chage -d 0 <usuario>
Variables de entorno
-
Mostrar: set o ehv
-
Definir: export <variable>=<valor>
-
Guardado en: /etc/profile o ~/.bash_profile
Alias
-
Definir alias: <alias>=’<comando>’
-
Guardado en: /etc/bashrc o ~/.bashrc
2. Archivos de usuarios
-
/etc/passwd
<nombre de usuario>:x:UID:GID:<información>:
<directorio>:<shell>
-
/etc/shadow
<nombre de usuario>:<hash de contraseña>:
FECHA:DÍAS_MÍN:DÍAS_MÁX:DÍASADV:INACTIVO:FECHAEXP:
-
/etc/login.defs
-
/etc/default/useradd
3. Derechos
-
Sobre los archivos
-
r: lectura: el archivo se puede leer.
-
w: escritura: el archivo se puede escribir.
-
x: ejecución: el archivo se puede ejecutar.
-
Sobre los directorios
-
r: lectura: se puede listar el contenido del directorio.
-
w: escritura: se puede modificar el contenido del directorio.
-
x: solo ejecución: se puede...
Redes
1. Verificación
Nombre del anfitrión
hostname
Dirección IP/máscara de red
ifconfig
ip address
Puerta de enlace predeterminada
route
ip route
Dirección del servidor DNS DNS
/etc/resolv.conf
2. Configuración
Nombre de host (anfitrión)
nmcli general hostname <nombre de la máquina>
Perfiles ("conexiones")
-
Lista: nmcli connection
-
Lista para una interfaz: nmcli -f CONNECTIONS device show <interfaz>
-
Detalles: nmcli connection show id <perfil>
-
Nuevo perfil manual con configuración IP estática: nmcli connection add con-name <perfil> ifname <interfaz> type ethernet ip4 <dirección/máscara> gw4 <pasarela> ip6 <dirección>
-
Nuevo perfil manual con configuración IP DHCP: nmcli connection add con-name <perfil> ifname <interfaz> type ethernet
-
Añadir servidores DNS: nmcli connection mod <perfil> ipv4.dns "<servidores DNS>"
-
Añadir servidores DNS IPv6: nmcli con mod <perfil> ipv6.dns "<servidores DNS IPv6>"
-
Modificar un perfil de conexión: nmcli connection modify <perfil> <parámetro> <valor>
-
Activar/desactivar un perfil de conexión: nmcli connection up <perfil> o nmcli connection down <perfil>
Interfaces ("dispositivos")
-
Lista: nmcli device
-
Mostrar información detallada sobre las interfaces de red: nmcli device show
-
Conectar/desconectar una interfaz:
nmcli device connect <interfaz>
nmcli device disconnect <interfaz>
3. Diagnóstico
-
Probar la conectividad de la red: ping <dirección_IP_máquina>
-
Mostrar la ruta de red recorrida: traceroute <dirección_IP_máquina>...
Shell Bash
-
Convertirse en root: su -
-
Salir del shell: exit
Ayuda en línea
man <comando>
-
Buscar páginas man sobre un tema: man -k <palabra clave>
Arborescencia
-
Cambiar de directorio: cd
-
Moverse al directorio superior: cd ..
-
Volver al directorio anterior: cd -
-
Mostrar el directorio actual: pwd
-
Mostrar el contenido de un directorio: ls
-l: con información detallada
-h: tamaño de los archivos en unidades de KB, MB, etc.
-a: archivos ocultos
-F: legibles
-t: por fecha
-
Crear directorio: mkdir <nombre_del_directorio>
-p: crear directorios padres si se requieren
-
Eliminar directorio vacío: rmdir <nombre_del_directorio>
Archivos y directorios
-
Borrar: rm <nombre_del_archivo>
cp <archivo _fuente> <directorio_ destino>
mv < archivo _fuente> <directorio_destino>
-
Copiar directorio: cp -R <fuente> <destino>
-
Renombrar: mv <nombre_antiguo_del_archivo> <nombre_nuevo>
-
Buscar: find <ruta_de_búsqueda> "<patrón>"
- name <texto>: nombre que distingue entre mayúsculas y minúsculas
-iname: nombre que no distingue mayúsculas de minúsculas
-type <letra_tipo>: tipo de archivo
-user <nombre_usuario> o -uid <uid_ usuario>: por usuario-propietario
-group <nombre_grupo> o -gid <grupo_gid>: por grupo propietario
-size <tamaño>: por tamaño
-
Búsqueda rápida: locate <texto>...
Bash Scripting
General
-
Cabecera (shebang)
#!/bin/bash
-
Comentario
# Esto es un comentario
-
Ejecutable
chmod +x mi_script.sh
-
Ejecutar: ./mi_script.sh
-
Depurar: bash -xv mi_script.sh
Variables
-
Definir: <variable>=<valor>
-
Mostrar: echo $<variable>
-
Argumentos del script
$@: todos los argumentos
$#: número de argumentos
$0: nombre del script
$1: primer argumento
$2 $3 etc.
$?: código de retorno de un comando
-
Solicitar y guardar la entrada del usuario
read <variable> <variable> etc.
-
Ejemplo
#!/bin/bash
echo "Escriba su nombre y apellidos:"
read word1 word2
echo "Gracias $word1 por darnos sus apellidos ($word2)"
Llamada a comandos y archivos
-
Sourcing (leer variables)
. /ruta/archivo
source /ruta/archivo
-
Llamar a un script
/ruta/script
./script
-
Comando en un comando
`comando` (comillas invertidas)
$(comando)
Escape de caracteres especiales
\<carácter especial>: escape fuerte de un único carácter especial
’< cadena>’ (comillas simples): escape fuerte de una cadena.
"<cadena de caracteres>" (comillas dobles): escape débil, caracteres no escapados $ ` \
Comparaciones aritméticas
-lt (less than, menor que)
-gt (greater than, mayor que)
-le (less or equal, menor o igual)
-ge (greater or equal, mayor o igual)
-eq (equal, igual)
-ne (not equal, no igual)
Desplazar el inicio de línea ej: if [ $note -ge 19 ]; then
Pruebas y comparaciones de texto
texto1 = texto2: igual.
texto1 != texto2: diferente (no igual).
texto1 < texto2: menor que (orden alfabético).
texto1 > texto2: mayor que (orden alfabético).
-n texto: texto el texto no está vacío.
-z texto: texto el texto está vacío.
Desplazar inicio de línea ej: if [ $nombre = Timoteo ]; then
Pruebas sobre archivos (véase man bash)
-d archivo «el archivo existe y es un directorio»
-e archivo «el archivo existe»
-f archivo «el archivo existe y es un archivo normal»
-h archivo «el archivo existe y es un vínculo simbólico»
-r archivo «el archivo existe y es accesible en lectura»
-s archivo «el archivo existe y tiene un tamaño distinto a cero»
-w archivo «el archivo existe y es accesible en escritura»
-x archivo «el archivo existe y es ejecutable»
archivo_1 -nt archivo_2 «archivo_1 es más reciente...