Files
guias_informatica/Guia_linux.md
T
2026-08-04 19:24:21 +02:00

34 KiB
Raw Blame History

AYUDA LINUX

Navegación y Exploración

clear ctrl+l limpiar terminalpwd Muestra el directorio actual (Print Working Directory).ls Lista archivos y directorios.

ls -R Lista filas y subdirectorios

ls -l Lista en formato largo (permisos, tamaño, fecha).

ls -a Muestra archivos ocultos (incluye . y ..).

tree Muestra la estructura de directorios en forma de árbol.

ls | wc -l Cuenta filas/archivos y directorios

ls -a | wc -l Cuenta tambien archivos ocultos

ls -R | wc -l Cuenta files en directorio atual y subdirectorios

ls *.txt | wc -l Cuenta filas con determinada extension

Creación y Manipulación de Archivos touch Crea un archivo vacío o actualiza su fecha de modificación. Ejemplo: touch archivo.txt mkdir Crea un directorio. Ejemplo: mkdir carpeta cp Copia archivos o directorios. cp archivo.txt destino/ cp -r directorio/ destino/ (copia recursiva para directorios).

cp -r directorio/origen . (copia directorio origen al directorio donde estas situado usando con punto al final) mv Mueve o renombra archivos. mv archivo.txt nuevo_nombre.txt (renombra). mv archivo.txt /ruta/destino/ (mueve). rm Elimina archivos. rm archivo.txt rm -r directorio/ (elimina recursivamente). rm -f (fuerza eliminación sin confirmación).

Visualización de Archivos cat Muestra el contenido de un archivo. Ejemplo: cat archivo.txt less / more Muestra el contenido paginado (para archivos largos). head Muestra las primeras líneas (por defecto, 10). head -n 5 archivo.txt (muestra 5 líneas). tail Muestra las últimas líneas. tail -f archivo.log (sigue cambios en tiempo real, útil para logs).

Búsqueda de Archivos find Busca archivos por nombre, tipo, tamaño, etc. find /ruta -name "*.txt" (busca archivos .txt). find / -type f -size +10M (archivos >10MB). grep Busca texto dentro de archivos. grep "palabra" archivo.txt grep -r "texto" /directorio/ (búsqueda recursiva).

Buscar y borrar duplicados

sudo apt install fdupes fdupes -r /ruta/de/la/carpeta        Buscar duplicados (sin borrar) fdupes -rd ~/Documentos            Te pregunta cuáles borrar

fdupes -rdN ~/Documentos        Borra todos menos uno

Permisos y Propiedadchmod Cambia permisos (lectura, escritura, ejecución).chmod 755 archivo.sh (permisos en formato numérico).chmod -R 777 db permisos a carpeta y contenidochmod +x script.sh (agrega permiso de ejecución). chown Cambia el propietario de un archivo. chown usuario:grupo archivo.txt

Compresión y Descompresión tar Empaqueta y descomprime archivos. tar -cvf archivo.tar directorio/ (crea un .tar). tar -xvf archivo.tar (extrae). tar -czvf archivo.tar.gz directorio/ (comprime con gzip). gzip / gunzip Comprime/descomprime archivos .gz. zip / unzip Trabaja con archivos .zip.

Transferencia y Descarga wget Descarga archivos desde la web. Ejemplo: wget https://ejemplo.com/archivo.zip curl Transferencia de datos desde/hacia servidores. Ejemplo: curl -O https://ejemplo.com/archivo.txt

Comparación de Archivos diff Compara dos archivos línea por línea. Ejemplo: diff archivo1.txt archivo2.txt

Enlace simbolico

Enlaces ln Crea enlaces (links) entre archivos.

ln -s /ruta/origen /ruta/enlace (enlace simbólico).

Puertos

Mostrar os puertos ocupados

sudo ss -tulpn

ejemplo resultado:

Netid Local Address:Port Process tcp 0.0.0.0:22 sshd tcp 0.0.0.0:80 nginx tcp 0.0.0.0:443 nginx

Buscar un puerto concreto, por ejemplo el 8080:

sudo ss -ltnp | grep :8080

Ver qué proceso usa un puerto:

sudo lsof -i :8080

sudo lsof -i :443

Formatear discos

sudo fdisk /dev/sdX     Borrar el disco

Dentro de fdisk:

g → GPT (recomendado) | n → nueva partición | w → guardar cambios

lsblk para comprobar

sudo mkfs.ext4 /dev/sdX1 formatear particion en ext4

sudo mkfs.ext4 /dev/sdX formatear todo el disco en ext4

sudo mkfs.ext4 -L DATOS /dev/sdX1 formatear y asignar etiqueta

(mejor usars particiones y no todo el disco)

sudo e2label /dev/sdX1 DATOS asignar etiqueta

sudo mkdir /mnt/datos    crear punto de montaje

sudo mkdir /mnt/datos     montar el disco

df -h     verificar

Montaje automático de disco

blkid /dev/sdX1    obtener UUID

sudo nano /etc/fstab     editar fstab

UUID=xxxx-xxxx /mnt/datos ext4 defaults 0 2 añadir linea para el disco

Resumen rapido discos

lsblk sudo umount /dev/sdX1

sudo mkfs.ext4 /dev/sdX1

sudo mount /dev/sdX1 /mnt/datos

TERMINAL CTRL + ATL + T abrir terminal

ctrl + l = clear limpiar terminal

bash terminal normal

zsh terminal zsh

echo $SHELL info shell activa chsh -s /bin/bash cambiar shell bash - cerrar sesion aplicar cambios chsh -s /bin/zsh cambiar shell zsh - cerrar sesion aplicar cambios

USUARIOS - GRUPOS

uname -a Datos instalacion linux

whoami Usuario actual

cut -d: -f1 /etc/passwd Ver usuarios del sistema sudo adduser nombre_usuario Crear usuario sudo passwd nombre_usuario Cambiar contraseña de usuario

id nombre_usuario Informacion de usuario su - nombre_usuario Cambiar a otro usuario sudo su cambiar a root (superusuario)

HOSTS

/etc/hosts

sudo nano /etc/hosts

PATH

Añadir al PATH

nano ~/.bashrc     Ver/editar path usando bash nano

~/.zshrc                    Ver/editar path usando zshrc

export PATH=PATH:/opt/lampp/bin

Editar al final del archivo, ejemplo echo 'export LS_COLORS="LS_COLORS:di=36"' >> ~/.bashrc Escribir directamente en PATH source ~/.bashrc

PARAR/MATAR PROCESOS

ps aux Ver procesos

ps aux | grep gunicorn Localizar un proceso

kill <PID> Matar proceso

kill -9 <PID> Forzar matar proceso

sudo systemctl stop gunicorn Parar proceso iniciado como servicio systemd

DIRECTORIOS Y ARCHIVOS ls listar directorio ls -lah -l lista, -a ocultos, -h tamaño ls -d */ mostrar solo directorios ls -1 mostrar 1 columna ls -lh -l lista, -h tamaño Crear enlace simbólico/acceso directo: ln -s /home/juan/Documentos/Proyectos ~/Escritorio/Proyectos

du -h Lista directorios y subdirectorios - tamaño du -sh * Archivos y directorios - tamaño (ruta actual) du -sh */ Directorios - tamaño (ruta actual) du -sh /home Directorios home - tamaño du -sh Tamaño total de la carpeta actual du -sh * | sort -hr Tamaño archivos/directorios ordenados

crear alias tamaños archivos/directorios alias size='du -sh * 2>/dev/null | sort -hr' source ~/.bashrc

lsblk Listar discos y particiones df -h Ver discos y tamaño sudo fdisk -l Detalle de particiones free -h Saber memoria total y disponible del equipo uname -r kernel en uso dpkg --list | grep linux-image lista de kernels instalador en sistema sudo reboot Actualizar a ultimo kernel si esta instalado

mkdir crear directorios rmdir o rm -d eliminar directorios vacíos. rm -r eliminar directorios no vacíos. mv nombreviejoarchivo1 nombrenuevoarchivo1 cambiar nombre de arhivos/directorios cat >> nombre_del_archivo.txt crear un archivo echo "Esto es un ejemplo" > nombre_del_archivo.txt crear un archivo

Montar/Desmontar USB sudo mkdir -p /mnt/mi_usb # Cambia "mi_usb" por el nombre que prefieras sudo mount /dev/sdb1 /mnt/mi_usb # Reemplaza "/dev/sdb1" con tu dispositivo sudo mount -t ntfs-3g /dev/sdb1 /mnt/mi_usb # Para NTFS sudo mount -t vfat /dev/sdb1 /mnt/mi_usb # Para FAT32 sudo mount -o rw /dev/sdb1 /mnt/mi_usb Si el dispositivo está en modo solo lectura, intenta montarlo con permisos de escritura sudo apt install ntfs-3g Para dispositivos NTFS, ntfs-3g sudo umount /dev/sdb1 sudo umount /mnt/mi_usb

Montaje automático al recinicar (opcional) sudo nano /etc/fstab UUID=.... /mnt/mi_usb ntfs-3g defaults 0 0 UUID=.... /mnt/externo ext4 defaults,nofail 0 2

Para obtener el UUID del dispositivo, usa: sudo blkid sudo blkid /dev/sdb1

Servicios sudo systemctl start nombre_del_servicio     Iniciar servicio sudo systemctl stop nombre_del_servicio Detener servicio sudo systemctl restart nombre_del_servicio Reiniciar servicio sudo systemctl status nombre_del_servicio Estado servicio sudo systemctl enable nombre_del_servicio Habilitar el servicio al inicio del sistema sudo systemctl disable nombre_del_servicio Deshabilitar arranque automatico

poweroff / sudo shutdown -h now Apagar reboot / sudo shutdown -r now Reiniciar systemctl suspend Suspender ctrl + alt + sup cerrar sesion gnome-session-quit --logout cerrar sesion terminal alt + f2 ejecutar orden alt + f4 cerrar ventana super + h minimizar ventana super + d mostrar escritorio crtl + q cerrar ventana

sudo apt update && sudo apt upgrade -y     Actualizar sistema

lsb_release -a Versión linux instalada top Info procesos htop Info procesos color

ABRIR EDITOR DE TEXTO GNOME, GEDIT, NANO (terminal)

gnome-text-editor Abrir editor gnome

gedit Abrir editor gedit (gedit prueba.txt)

nano Abrir editor nano

BUSCAR ARCHIVOS

find /ruta/de/busqueda -name "archivo.ext"

find / nombre_archivo Busca en todo el sistema

sudo find / -type f -name "nombre_programa" 2>/dev/null Buscar en todo el sistema ignora permisos whereis nombre_archivo locate nombrearchivo sudo apt install plocate sudo updatedb actualiza la base de datos para buscar grep -r "texto a buscar" /ruta Buscar el texto dentro de archivos which nombre_programa Buscar si esta dentro del PATH

Clonar USB

lsblk o fdisk -l Identificar unidades usb

sudo dd if=/dev/sdX of=/dev/sdY bs=4M status=progress     clonar directamente usb1 a usb2

sudo dd if=/dev/sdX of=backup_usb.img bs=4M status=progress     clonar imagen sudo dd if=backup_usb.img of=/dev/sdY bs=4M status=progress Restaurar imagen

opcion2 (utilizar gnome disks) abre discos - seleccionar usb origen - menu (...) - crear imagen disco. guardar archivo .img Para restaurar usasr "restaurar imagen de disco"

Cambiar fecha/hora

sudo date --set="Sep 30 08:55:00 2025"

Instalar/Desinstalar paquete DEB desde la Terminal

sudo dpkg -i google-chrome-stable_current_amd64.deb dpkg --list ver lista de paquetes instalados sudo dpkg remove teamviewer Desintalar paquete .deb sudo apt-get remove nombre_del_paquete Desinstalar paquete.deb

APT sudo apt install nombre_paquete Instalar programa sudo apt list muestra los paquetes instalados apt search nombre_paquete Buscar paquete apt apt-cache search nombre_paquete Buscar más específicamente apt show nombre_paquete Información del paquete sudo apt remove nombre_paquete Eliminar programa sudo apt purge auto-remove teamviewer Eliminar programa y dependencias sudo apt-get autoclean Autolimpiar paquetes apt sudo apt-get clean Eliminar cache sudo apt-get autoremove Eliminar paquetes y dependencias que ya no hacen falta apt-get download <nombre_del_paquete> Descargar paquete apt apt-cache depends <nombre_del_paquete> Saber dependencias de un paquete / despues descargar cada dependencias con apt-get download sudo apt-get install -f resolver errores dependencias

Descargar paquetes con apt-offline sudo apt install apt-offline Instalar en el equipo con conexion apt-offline set --install-packages solicitud.sig Generar solicitud descarga en equipo sin conexion apt-offline get solicitud.sig --bundle paquetes.zip Copia solicitud.sig en equipo conexion apt-offline install paquetes.zip Ejecutar en equipo sin conexion

INSTALAR PAQUETES SNAP

sudo snap install nombre-del-paquete sudo snap install nombre-del-paquete --channel=versión # Instalar una versión específica snap find término-de-búsqueda # Buscar paquetes disponibles snap info nombre-del-paquete # Ver información detallada de un paquete snap list # Listar todos los paquetes instalados snap list --all # Ver paquetes instalados con más detalles sudo snap remove nombre-del-pquete # Eliminar un paquete sudo snap remove --purge nombre-del-paquete # Eliminar completamente (incluyendo datos) sudo snap revert nombre-del-paquete # Revertir a versión anterior sudo snap refresh nombre-del-paquete # Actualizar un paquete específico sudo snap refresh # Actualizar todos los paquetes snap refresh --list # Ver actualizaciones disponibles

INSTALAR PAQUETES .AppImage (autoejecutables) Make it executable chmod a+x Subsurface*.AppImage and run! ./Subsurface*.AppImage

INSTALAR .XZ unxz edit-1.0.0-x86_64-linux-gnu.xz Descomprimir, dejara archivo ejecutable chmod +x edit-1.0.0-x86_64-linux-gnu Hacer archivo ejecutable sudo mv edit-1.0.0-x86_64-linux-gnu /usr/local/bin/edit Opcional-Mover para usar en cualquier parte del sistema

INSTALAR tar.gz tar -xzf nombrearchivo.tar.gz --descomprimir el archivo

ejecutar el script, normalmente bin/nombrescript.sh Nota: NO SE DEBE extraer una nueva instancia sobre una ya existente. La carpeta de destino debe estar vacía.

ARCHIVOS COMPRIMIR/DESCOMPRIMIR RAR sudo apt update sudo apt install unrar rar

unrar x archivo.rar Descomprimir archivo unrar e archivo.rar Descomprimir sin estructura carpetas rar a nombre_archivo.rar archivo1 archivo2 directorio/ Crear archivo rar rar a backup.rar /ruta/al/archivo.txt /ruta/al/directorio rar a -m5 archivo.rar directorio/ Maxima compresion unrar l archivo.rar Listar contenido archivo rar unrar x -pcontraseña archivo.rar Extraer archivo con contraseña

INSTALAR tar.xz DESDE LA TERMINAL tar -xf nombre_del_paquete.tar.xz cd nombre_del_paquete ./configure make sudo make install

Instalar ZIP

Descomprimir: unzip nombrearchivo.zip Cd a la carpeta descomprimida ./configure make sudo make install

INSTALAR GESTOR PAQUETES SYNAPTIC sudo apt install synaptic

INSTALAR CODECS MULTIMEDIA

sudo apt install Ubuntu-restricted-extras

Instalar paquetes habituales en conjunto sudo apt install idle python3-pip onedrive sqlite3 sqlitebrowser timeshift speedtest-cli gnome-shell-extension-manager neofetch htop gdebi zsh nodejs npm filezilla apache2 mysql-client mysql-server php libapache2-mod-php php-mysql php-sqlite3 phpmyadmin

sudo snap install bitwarden spotify gitea nextcloud mysql-workbench-community

INSTALACION PROGRAMAS

sudo snap install bitwarden Bitwarden (también .deb en web)

sudo apt install wine Wine

gnome contacts (centro aplicaciones) contacts

wine /ruta/a/heidisql_installer.exe Heidisql con wine

OhMyZsh

wget OhMyZsh sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/uninstall.sh)" local-wp (descargar .deb/web)

sudo apt install nextcloud-desktop Instalar cliente escritorio nextcloud ubuntu-desktop (diferente aplicacion snap) Desinstalar libreoffice sudo apt update sudo apt remove --purge libreoffice* sudo apt clean sudo apt-get autoremove

INSTALAR/DESINSTALAR XAMPP

xampp (descargar .run de web) XAMPP sudo chmod +x xampp-linux-x64--installer.run sudo ./xampp-linux-x64--installer.run Desinstalar Xampp sudo /opt/lampp/lampp stop sudo rm -rf /opt/lampp sudo rm -f /usr/share/applications/xampp-control-panel.desktop

INSTALAR LAMP

sudo apt update && sudo apt upgrade sudo apt install apache2 sudo apt install mysql-server sudo mysql_secure_installation sudo apt install php libapache2-mod-php php-mysql php-sqlite3 echo "" | sudo tee /var/www/html/info.php sudo rm /var/www/html/info.php sudo systemctl restart apache2 sudo apt install phpmyadmin seleccionar apache - aceptar dbconfig-common sudo snap install mysql-workbench-community Crear usuario phpmyadmin para acceder: sudo mysql Entrar mysql CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'clave_segura'; GRANT ALL PRIVILEGES ON . TO 'usuario'@'localhost' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON nombre_basedatos.* TO 'usuario'@'localhost'; # Acceso a una sola base datos FLUSH PRIVILEGES; Aplicar canbios EXIT; http://localhost/phpmyadmin Iniciar sesion en phpmyadmin

Eliminar usuario DROP USER 'nombre_usuario'@'host'; FLUSH PRIVILEGES;

UBUNTU DESKTOP ACCESOS mysql root (no tiene contraseña) 123Passowrd! Contraseña de phpmyadmin para mysql (ojo se puso mal pero es 123Passowrd! admin - 123Password! Phpmyadmin usuario

ACTUALIZAR DISTRO UBUNTU DESDE TERMINAL sudo apt update && sudo apt upgrade && sudo apt dist-upgrade sudo do-release-upgrade

PAPELEREA EN ESCRITORIO

gsettings set org.gnome.shell.extensions.ding show-trash true gsettings set org.gnome.shell.extensions.ding show-trash false

LIMPIAR EL SISTEMA

sudo apt autoclean

sudo apt autoremove

sudo apt clean

GRUB (cambiar orden) sudo gedit /etc/default/grub GRUB DEFAULT= y un número que empieza en cero, equivalente al sistema operativo que arrancará en primer lugar por defecto. sudo update-grub -actualizar cambios

CREAR LANZADOR PYTHON

  1. Abre una terminal y navega a tu directorio personal: cd ~

  2. Crea un nuevo archivo .desktop en la carpeta de aplicaciones locales: nano ~/.local/share/applications/python3.desktop

  3. En ese archivo, pega el siguiente contenido: [Desktop Entry] Version=1.0 Name=Python3 Script Launcher Exec=/usr/bin/python3 %f Icon=utilities-terminal Terminal=true Type=Application MimeType=text/x-python;

  4. Guarda y cierra el archivo con CTRL + O, luego ENTER, y finalmente CTRL + X.

  5. Actualiza las asociaciones MIME. Para que el sistema reconozca los cambios, actualiza la base de datos de MIME: update-desktop-database ~/.local/share/applications

  6. Selecciona Python3 como aplicación predeterminada

PIP UBUNTU 24 Atención instalar complementos pip en ubuntu 24.04:

  1. Permitir instalar con PIP normal: Eliminar el archivo que indica cambio de criterio cd /usr/lib/python3.11 sudo rm EXTERNALLY-MANAGED Restaurar: sudo touch EXTERNALLY-MANAGED

ERRORES PYTHON CON IMAGENES PIL - PILLOW

sudo apt-get install python3-pil python3-pil.imagetk

CREAR UN ACCESO DIRECTO: Si el programa es una aplicación gráfica y quieres ejecutarlo desde el menú de aplicaciones, puedes crear un archivo .desktop en ~/.local/share/applications/. Ejemplo de archivo .desktop:

[Desktop Entry] Name=Nombre del Programa Exec=/ruta/al/directorio/nombre_del_programa Icon=/ruta/al/icono.png Type=Application Categories=Utility;Application;

Guarda con la extensión .desktop y hacer ejecutable: chmod +x ~/.local/share/applications/nombre_del_programa.desktop (hacer ejecutable)

COPIAR ACCESO A APLICACIONES EN ESCRITORIO

Los accesos directos estan en /usr/share/applications/ hace falta copiar y pegar en carpeta Escritorio

XAMPP sudo /opt/lampp/lampp start Iniciar Xampp sudo /opt/lampp/lampp stop Detener Xampp Panel de control lamp sudo /opt/lampp/manager-linux-x64.run Php.ini ubicacion /opt/lampp/etc

Elige la arquitectura para tu Linux OS, versión de 32-bits o de 64-bits.

  1. Cambia los permisos al instalador chmod 755 xampp-linux-*-installer.run

  2. Ejecuta el instalador sudo ./xampp-linux-*-installer.run directorio /opt/lampp.

SQLITE En aplicaciones con Sqlite3 la carpeta donde está la base de datos tiene que tener permisos de lectura y escritura porque si no da error en las updates-delete,etc.. En cambio, sí que lee la base de datos

PERMISOS Qué son los permisos en Linux? Cada archivo o carpeta tiene tres tipos de permisos para tres tipos de usuarios. Tipos de usuarios: Propietario (owner) quien creó el archivo. Grupo otros usuarios del mismo grupo. Otros (others) todos los demás. Tipos de permisos: r = lectura (read) → ver contenido. w = escritura (write) → modificar o eliminar. x = ejecución (execute) → ejecutar como programa/script. Representación numérica: Cada permiso tiene un valor: r = 4 w = 2 x = 1 Se suman por grupo. Ejemplo: Permisos Valor rwx 7 (4+2+1) r-x 5 (4+0+1) rw- 6 (4+2) r-- 4 Entonces: chmod 755 archivo Significa: 7 (rwx) → dueño: todo permitido 5 (r-x) → grupo: leer y ejecutar 5 (r-x) → otros: leer y ejecutar Comandos comunes: chmod → cambia permisos chown → cambia el propietario ls -l → muestra los permisos de archivos Supongamos que tienes esto: mkdir proyecto cd proyecto touch script.sh Paso 1: Ver los permisos actuales ls -l Salida típica: -rw-r--r-- 1 usuario usuario 0 abr 29 12:00 script.sh Esto significa: -rw-r--r-- = el propietario puede leer y escribir, los demás solo leer. No tiene permiso de ejecución (x), por eso no puedes correrlo como programa. Paso 2: Dar permisos de ejecución al archivo chmod +x script.sh Ahora, ls -l muestra: -rwxr-xr-x 1 usuario usuario 0 abr 29 12:00 script.sh Ya puedes ejecutarlo: ./script.sh Paso 3: Dar permisos de escritura a una carpeta (para copiar, crear o modificar dentro) chmod 775 proyecto Esto significa: Dueño y grupo pueden leer, escribir y entrar (rwx). Otros pueden leer y entrar, pero no escribir (r-x).

Paso 4: Hacer que Apache (u otro usuario) pueda escribir ahí Si estás en un servidor web: sudo chown -R www-data:www-data proyecto sudo chmod -R 775 proyecto

chmod +x archivo.sh # hacer que un archivo sea ejecutable. chmod 777 archivo.txt o ruta (Todos los permisos para todos) sudo mkdir -m 777 /home/carpeta_nueva crea una carpeta con permisos chmod 755 script.sh Significa:7 (rwx) → El propietario puede leer, escribir y ejecutar. 5 (r-x) → El grupo y otros pueden leer y ejecutar, pero no modificar. chmod 644 documento.txt Significa: 6 (rw-) → El propietario puede leer y escribir. 4 (r--) → El grupo y otros solo pueden leer. chmod -R 755 /ruta/de/la/carpeta chmod -R (Aplicar permisos de forma recursiva)

Permisos de grupo a varios usuarios sudo groupadd media # crear grupo sudo usermod -aG media jesus # añadir usuario al grupo sudo usermod -aG media transmission-daemon # añadir usuario al grupo sudo chgrp media /mnt/Toshiba # cambiar el grupo de la carpeta sudo chmod g+rw /mnt/Toshiba # Dar permisos de lectura y escritura al grupo: newgrp media # Aplicar cambios (reinicia sesión o ejecuta):

Permisos con setfacl

sudo apt update && sudo apt install acl -y sudo setfacl -m u:jesus:rwx /mnt/Toshiba #asigna permisos de lectura y escritura -m: Modifica los permisos ACL. u:jesus:rwx: Da permisos de lectura (r), escritura (w) y ejecución (x) al usuario jesus. sudo setfacl -Rm u:jesus:rwx /mnt/Toshiba sudo setfacl -dm u:jesus:rwx /mnt/Toshiba -R: Aplica recursivamente en los archivos existentes. -d: Establece permisos por defecto para nuevos archivos. getfacl /mnt/Toshiba

CREAR ACCESOS DIRECTOS enlace simbolico ln -s /home/jesus/Documentos /home/jesus/Escritorio #este ejemplo crea acceso directo a documentos en escritorio ln -s /path destino /path colocacion acceso directo /home/jesus/Documentos

CARPETA FONDOS DE ESCRITO /usr/share/backgrounds

EXTENSIONES https://extensions.gnome.org/ Blur my shell Add to desktop Dash to dock Caffeine Coverflow Alt-Tab ArcMenu Vitals Custom Hot Corners Extended Places status indicator Apps menu Bluetooth Quick connect Services Systemd show desktop applet

VELOCIDAD INTERNET desde terminal (speedtest) speedtest speedtest-cli // speedtest --simple

JUEGOS LINUX frozen bubble Cannonball Supertuxkart Supertux Killbots Kapman Quadrapassel Trackmania Nations Forever Chess gnome kobodeluxe (apt) open-invaders (apt) astromenace (apt) chromium-bsu (sudo apt)

WINE wine aplicacion.exe #ejecutar una aplicacion .exe

PDF HERRAMIENTAS sudo apt install pdfarranger pdfarranger sudo dpkg -i pdfsam_*.deb pdfSam Basic (descargar del sitio web) sudo apt install ghostscript ghostscript (comprimir pdf) gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=salida.pdf entrada.pdf Puedes cambiar /screen por /ebook, /printer o /prepress según el nivel de calidad/ tamaño.

INSTALAR GNOME

Para instalar GNOME con la menor cantidad de utilidades de GNOME, tendrías que instalar un paquete llamado vanilla-GNOME usando el comando dado: sudo apt install vanilla-gnome-desktop Y si quieres tener una experiencia GNOME completa, puede simplemente instalar el gnome paquete: sudo apt install gnome desintalar gnome ubuntu sudo apt-get remove --auto-remove gnome-shell sudo apt-get purge --auto-remove gnome-shell

ENTORNOS DE ESCRITORIO

Sudo apt-get install Ubuntu-mate-desktop Sudo apt-get install cinnamon-desktop-environment Sudo apt-get install kde-standard

REINICIAR EL DOCK

dconf reset -f /org/gnome/shell/extensions/dash-to-dock/ dconf reset -f /org/gnome/shell/extensions/favorite-apps

DOCK UBUNTU MINIMIZAR APLICACIÓN

gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize' gsettings reset org.gnome.shell.extensions.dash-to-dock click-action #quitar gsettings range org.gnome.shell.extensions.dash-to-dock click-action #opciones

REINICIAR UBUNTU POR DEFECTO (DOCK, FONDOS, ETC... como recien instalado) dconf reset -f /

ACTUALIZAR LA APP UBUNTU STORE

snap refresh snap-store --channel=latest/stable/ubuntu-24.04 This command may fail and output something look like: snap snap-store has running apps, pids: 2205. In the case, just kill snap-store using the ID number (replace 2205 to yours): Sudo kill 9 2205 (o el numero que salga) Then, re-run the snap refresh command.

DOCK TRANSPARENTE gsettings set org.gnome.shell.extensions.dash-to-dock transparency-mode 'FIXED' gsettings set org.gnome.shell.extensions.dash-to-dock background-opacity 0.2 Change 0.0 to any number between 0 and 1. To reset to the default setting: gsettings reset org.gnome.shell.extensions.dash-to-dock background-opacity

MAME Ruta: /usr/share/games

CONFIGURAR TECLADO KALI LINUX Poner idioma español sudo dpkg-reconfigure localeses_ES.UTF-8 UTF-8 reiniciar

Unbuntu, etc. sudo dpkg-reconfigure keyboard-configuration Desde Ajustes Teclado y poner español

Cambiar permisos desde la consola Nos vamos a Aplicaciones -> Accesorios -> Terminal Por ejemplo yo le quiero dar permisos de lectura, escritura y ejecución para los 3 grupos a una carpeta llamada Prueba que está en el Escritorio, así que navego hasta el escritorio: cd Escritorio

Y tengo dos opciones,la numérica y la alfabética: 1.- chmod 777 Prueba 2.- chmod rwx Prueba

Si la carpeta pertenece a root, tendremos que hacerlo asi: 1.- sudo chmod 777 Prueba 2.- sudo chmod rwx Prueba

Si queremos que se haga de manera recursiva, es decir, que los ficheros y carpetas contenidos en Prueba, también reciban estos cambios, hacemos esto: 1.- chmod -R 777 Prueba 2.- chmod -R rwx Prueba

Cualquiera de las dos y teniendo en cuenta lo de sudo. Un par de ejemplos más: Queremos que el usuario tenga RWX, el grupo RW y los demás R, en la carpeta Prueba: 1.- chmod 764 Prueba 2.- chmod u=rwx,g=rw,o=r Prueba u equivale a usuario (user) g a grupo (group) y o a otros (others). También sirve lo de -R y sudo. Queremos que el usuario tenga RW, el grupo R y los demás R, en la carpeta Prueba: 1.- chmod 644 Prueba 2.- chmod u=rw go=rw Prueba Igualmente sirve lo de -R y sudo. Para quitar permisos, realmente es cambiarlos por otros, asi que es lo mismo que aquí se explica.

SOLUCION FALTA DE SONIDO ubuntu (no reconoce audio) sudo apt-get install --reinstall alsa-base pulseaudio sudo alsa force-reload

SOLUCION ERROR PYTHON PYSIDE6 sudo apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0

AÑADIR PROGRAMA/CARPETA AL PATH nano ~/.bashrc - nano ~/.zshrc export PATH=PATH:HOME/ruta/al/directorio - Guardar y cerrar. Ejemplo - export PATH=PATH:HOME/python/venv/lib/python3.12/site-packages/PySide6``

source ~/.bashrc - Actualizar Verificar path echo $PATH

GITEA Gitea (arrancar y parar) Instalado desde snap localhost:3000 (puerto 3000) Iniciar Gitea sudo snap start gitea Detener Gitea sudo snap stop gitea Verificar estado sudo snap services gitea Deshabilitar inicio sudo snap disable gitea Reiniciar Gitea sudo snap restart gitea Eliminar Gitea sudo snap remove gitea

LOCAL-WP (solucion problema) Local-wp ubuntu 24.04 (solucionar problemas de instalación con dependencias) curl -O http://launchpadlibrarian.net/648013231/libtinfo5_6.4-2_amd64.deb sudo dpkg -i libtinfo5_6.4-2_amd64.deb curl -O http://launchpadlibrarian.net/648013227/libncurses5_6.4-2_amd64.deb sudo dpkg -i libncurses5_6.4-2_amd64.deb curl -O http://launchpadlibrarian.net/646633572/libaio1_0.3.113-4_amd64.deb sudo dpkg -i libaio1_0.3.113-4_amd64.deb

sudo apt install ./local-9.1.1-linux.deb (o bien) sudo dpkg -i local-9.1*.deb

resolver error: sudo apt install libxapp-gtk3-module sudo apt install libxapp-gtk3-module

DOCKER

Para instalar Docker en Ubuntu, sigue estos pasos:

  1. Eliminar versiones antiguas (si existen) sudo apt remove docker docker-engine docker.io containerd runc

  2. Instalar dependencias necesarias sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

  3. Agregar el repositorio oficial de Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  4. Instalar Docker Engine sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io

  5. Verificar que Docker esté funcionando sudo systemctl status docker (Deberías ver active (running)). Para probarlo, ejecuta: sudo docker run hello-world (Si funciona, verás un mensaje de confirmación).

  6. (Opcional) Evitar usar sudo con Docker Para no tener que escribir sudo cada vez, agrega tu usuario al grupo docker: sudo usermod -aG docker $USER newgrp docker # Recarga los grupos sin reiniciar sesión Ahora puedes probar sin sudo: docker run hello-world

docker ps # Ver contenedores en ejecución docker stop mi-web # Detener el contenedor docker start mi-web # Iniciar el contenedor nuevamente docker rm mi-web # Eliminar el contenedor (cuando ya no lo necesites)

ARREGLAR GRUB

Confirmar si se usa UEFI y ver archivo .efi ls -l /boot/efi/EFI/ubuntu/

Verificar modo de arranque [ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"

Archivo BIOS para grub - uefi. /boot/efi/EFI/ubuntu/grubx64.efi - Sin secure boot /boot/efi/EFI/ubuntu/shimx64.efi - Con secure boot

Reinstalar grub EN UEFI sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu

Reparar el arranque UEFI sudo mount /dev/sdXY /mnt # Reemplaza sdXY con tu partición raíz (ej: sda2)sudo mount /dev/sdXZ /mnt/boot/efi # Reemplaza sdXZ con tu partición EFI (ej: sda1)sudo grub-install --efi-directory=/mnt/boot/efisudo update-grubsudo update-grub

sudo fdisk -l -para identificar particion y la de linux/ubuntu

sudo mount /dev/nvme0n1p6 /mnt --Particion linux sudo mount /dev/nvme0n1p1 /mnt/boot/efi --Particion efi sudo mount --rbind /dev /mnt/dev sudo mount --rbind /proc /mnt/proc sudo mount --rbind /sys /mnt/sys sudo chroot /mnt --Entrar como root grub-install /dev/nvme0n1 --Instala grub en efi update-grub exit sudo reboot

script automatico #!/bin/bash

echo "📦 Montando particiones..." sudo mount /dev/nvme0n1p6 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys

echo "🔧 Entrando a chroot para instalar GRUB..." sudo chroot /mnt /bin/bash -c " grub-install /dev/nvme0n1 && update-grub && echo ' GRUB instalado correctamente dentro de chroot' "

echo "🚀 Reparación completa. Puedes reiniciar ahora."

nano reparar-grub.sh chmod +x reparar-grub.sh sudo ./reparar-grub.sh

Saber si se esta en UEFI o Legacy BIOS ls /sys/firmware/efi - Si hay contenido esta en UEFI [ -d /sys/firmware/efi ] && echo "Estás en modo UEFI" || echo "Modo legacy bios"

Añadir windows a Grub si ha desaparecido Actualiza GRUB con detección de otros sistemas operativos: sudo apt install os-prober sudo update-grub Esto ejecutará os-prober, que buscará otros sistemas instalados, como Windows, y regenerará el menú de GRUB. ⚠️ Si Windows no aparece aún, puede que os-prober esté deshabilitado (desde Ubuntu 22.04): Edita el archivo de configuración de GRUB: sudo nano /etc/default/grub GRUB_DISABLE_OS_PROBER=false sudo update-grub sudo reboot

CRON

systemctl status cron Estado servicio cron crontab -e Tabla de cron propio de cada usuario

crontab -u www-data -e cron del usuario www-data

sudo crontab -e Cron de sudo

crontab -l Lista las tareas cron grep CRON /var/log/syslog Logs cron

Sintaxis de una regla en cron

Cada línea en crontab sigue este formato:

  • comando_a_ejecutar │ │ │ │ │ │ │ │ │ └── Día de la semana (0-6, donde 0 = domingo) │ │ │ └──── Mes (1-12) │ │ └────── Día del mes (1-31) │ └──────── Hora (0-23) └────────── Minuto (0-59)

  • Ejecutar un script cada día a las 2:30 AM 30 2 * * * /ruta/al/script.sh

  • Ejecutar cada 5 minutos: */5 * * * * /ruta/al/script.sh

  • Ejecutar todos los lunes a las 8:00 AM: 0 8 * * 1 /ruta/al/script.sh

minuto hora día_mes mes día_semana

Ubicación de los crontabs
  1. Usuario actual: crontab -e → se guarda en /var/spool/cron/crontabs/usuario

  2. Global (para todos los usuarios):

    • /etc/crontab

    • Archivos en /etc/cron.d/

    • Directorios especiales:

      • /etc/cron.daily/ (se ejecuta una vez al día)

      • /etc/cron.hourly/ (cada hora)

      • /etc/cron.weekly/ (una vez a la semana)

      • /etc/cron.monthly/ (una vez al mes)

GENERAR TOKENS

Linux / macOS OpenSSL openssl rand -hex 32

Genera 32 bytes aleatorios en hexadecimal (64 caracteres).

/dev/urandom cat /dev/urandom | tr -dc 'a-f0-9' | head -c 64 echo UUID uuidgen Ejemplo: 550e8400-e29b-41d4-a716-446655440000

Windows PowerShell [guid]::NewGuid()

O un token más largo: -join ((48..57) + (97..102) | Get-Random -Count 64 | % {[char]$_}) OpenSSL en Windows

Si tienes instalado OpenSSL openssl rand -hex 32

Python (multiplataforma) Funciona igual en Linux, macOS y Windows: import secrets token = secrets.token_hex(32) print(token)