first commit
This commit is contained in:
+941
@@ -0,0 +1,941 @@
|
||||
# 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 Propiedad**chmod – 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)
|
||||
Reference in New Issue
Block a user