======Utilidades Linux======
===== APT ======
===Repositorios===
* /etc/apt/sources.list
===Operaciones sobre repositorio===
#Actualizar repositorios:
apt-get update
#Actualizar paquetes instalados:
apt-get upgrade
apt-get upgrade
#Buscar paquetes:
apt-cache search
#Mostrar info de un paquete:
apt-cache show
#Mostrar paquetes instalados
apt list --installed | grep
===Instalar/desinstalar===
#Instalar un paquete:
apt-get install
apt-get install =
#Reinstalar un paquete:
apt-get install --reinstall
#Desinstalar un paquete:
apt-get remove
#Desinstalar un paquete y toda su configuración:
apt-get remove --purge
#Corregir errores de instalación:
apt-get install -f
#Elimina el paquete y sus fichero de conf
apt-get purge
#Elimina paquetes que ya no se usan por haber nuevas versiones
apt-get autoclean
#Elimina paquetes que eran dependencias de otro desinstalado
apt-get autoremove
=== dpkg (Debian Packaging System) ===
Para instalar paquetes //.deb//
#Paquetes instalados
dpgk -l | grep
#Instalar un paquete:
dpkg -i
#Instalar un paquete "a la fuerza":
dpkg -i --force-all
# Desinstalar un paquete:
dpkg -r
#Corregir errores de instalación
dpkg --configure -a
===== Servicios ======
Comprobar estado, arrancar, reiniciar, parar
* systemctl status mysql
* systemctl [start, restart, stop] mysql
* service mysql status
* service apache2 start/stop
==== MariaDB =====
Para administrar, hay que loguearse como root en bash
=== Usuarios ===
#Crear usuario
mysql> CREATE USER 'user'@localhost IDENTIFIED BY 'pass';
#Ver los usuarios
SELECT User (ó *) FROM mysql.user;
#Crear base de datos
mysql> CREATE DATABASE `mibd`;
#Uso sin permisos para acceder desde local
mysql> GRANT USAGE ON *.* TO 'user'@localhost IDENTIFIED BY 'pass';
#Uso sin permisos para acceder desde remoto
mysql> GRANT USAGE ON *.* TO 'user'@'%' IDENTIFIED BY 'pass';
=== Privilegios ===
#Conceder todos los privilegios sobre una base de datos en local
mysql> GRANT ALL privileges ON `mibd`.* TO 'user'@localhost;
#Privilegios desde remoto
mysql> GRANT ALL privileges ON `mibd`.* TO 'user'@'%';
#Mostrar privilegios
mysql> SHOW GRANTS FOR 'user'@localhost;
#Eliminar privilegios
REVOKE ALL PRIVILEGES on *.* from 'user'@localhost;
REVOKE USAGE on *.* from 'user'@localhost;
#Aplicar los cambios realizados
mysql> FLUSH PRIVILEGES;
#Verificar permisos
mysql> SHOW GRANTS FOR 'user'@localhost;
==== PostgreSQL =====
#cambiar al usuario postgres (superusuario de postgresql)
su - postgres
#conectarme mediante el cliente -> psql
psql
create database mydb;
create user myuser with encrypted password 'mypass';
grant all privileges on database mydb to myuser;
revoke all on database mydb to myuser;
#Salir del cliente
\q
Crear bases de datos y usuarios, desde el terminal a través del usuario postgres
#Cambio al usuario postgres
su - postgres
createuser
createdb
dropdb
dropuser
====Apache ====
* Directorio de apache2 -> ''/etc/apache2''
* Fichero principal de configuracion -> ''/etc/apache2/apache2.conf''
* Carpeta http del servidor -> ''/var/www''
service apache2 status
service apache2 start/stop/restart
apachectl status
apache2 -v -> Muestra datos sobre la versión
===== Compresores=====
Archivos .tar.gz:
* Comprimir: ''tar -czvf empaquetado.tar.gz /carpeta/a/empaquetar/''
* Descomprimir: ''tar -xzvf archivo.tar.gz''
* Descomprimir en un directorio: ''tar -xzvf archivo.tar.gz -C /carpeta/destino''
* También: ''tar -xf archivo.tar.gz -C /carpeta/destino''
Archivos .tar:
* Empaquetar: ''tar -cvf paquete.tar /dir/a/comprimir/''
* Desempaquetar: ''tar -xvf paquete.tar''
Archivos .gz:
* Comprimir: ''gzip -9 index.php''
* Descomprimir: ''gzip -d index.php.gz''
Archivos .zip:
* Comprimir: ''zip archivo.zip carpeta''
* Descomprimir: ''unzip archivo.zip''
===== Miscelanea =====
Gnome Desktop
* update-rc.d -f gdm3 defaults -> en caso de que no arranque
* apt-get install gnome -> en caso de que lo anterior no sirva
* Alt + F2 -> selección de programa para ejecutar (gnome-terminal)
Red
* ip addr show -> muestra ip y mac
* nmcli ->Network Manager [[https://developer.gnome.org/NetworkManager/stable/nmcli.html|Soporte comando]]
* arp -a -> Mostrar tablas arp
* arp -s xxx.xxx.xxx.xxx xx:xx:xx:xx:xx:xx -> añadir arp estática
Nautilus
* Ctrl + h -> mostrar ocultos
===== Rutas de Utilidad=====
Accesos directos al escritorio -> ''/usr/share/applications''
===== CertBot =====
Generar certificado SSL para dominio y wildcard para subdominios
$ certbot certonly --manual -d *.mydomain.com -d mydomain.com --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory --register-unsafely-without-email --rsa-key-size 4096
Para añadir las entradas DNS Txt, no se debe incluir el nombre del dominio: ''TXT _acme-challenge "ku1k_n8q7fLah09qr6UDxk8Ot819PRI2kK_CfBdYwm8" ''
* Ruta de certificados: /etc/letsencrypt/live/[[dominio]]
* Certificado CRT -> cert.pem
* Clave privada (Key) -> privkey.pem
Renovar certificados
$ certbot renew