34 KiB
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
-
Abre una terminal y navega a tu directorio personal: cd ~
-
Crea un nuevo archivo
.desktopen la carpeta de aplicaciones locales: nano ~/.local/share/applications/python3.desktop -
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;
-
Guarda y cierra el archivo con
CTRL + O, luegoENTER, y finalmenteCTRL + X. -
Actualiza las asociaciones MIME. Para que el sistema reconozca los cambios, actualiza la base de datos de MIME: update-desktop-database ~/.local/share/applications
-
Selecciona Python3 como aplicación predeterminada
PIP UBUNTU 24 Atención instalar complementos pip en ubuntu 24.04:
- 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.
-
Cambia los permisos al instalador chmod 755 xampp-linux-*-installer.run
-
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:
-
Eliminar versiones antiguas (si existen) sudo apt remove docker docker-engine docker.io containerd runc
-
Instalar dependencias necesarias sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
-
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
-
Instalar Docker Engine sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io
-
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).
-
(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
-
Usuario actual:
crontab -e→ se guarda en/var/spool/cron/crontabs/usuario -
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)