apt no instala, solo descarga: apt llama a otro programa para hacer la instalación: el instalador. El comando dpkg es el que el apt llama automáticamente para hacer la instalación.
Para hacerlo a mano, se tendría que hacer: dpkg -i nombre_del_paquete
sudo dpkg -r nombre_del_programa => borra un programa (paquete asociado), no se usa, pq usamos el apt remove
dpkg -L nombreDeProgramaYaInstalado => ¿qué hay dentro de ese paquete y dónde los ha puesto?

.desktop => accesos directos
dpkg -L 2048-qt | grep “/etc” => muestra de ese programa, todo lo que se pone en etc
dpg -S /bin/ls => ¿en qué paquete se encuentra el programa ls? En este caso: coreutils


FAMILIA RED HAT & FEDORA
CentOs es un RedHat
RedHat es de pago pero es libre (con código fuente). CentOs es un “clon”, pero ya no es comercial. Es gratis.
paquetes RTM: paquetes de RedHat.
yum install => ya está obsolteo, ahora se usa “dnf install”.
Si usamos Fedora (RedHat moderno, más a la última), tendremos el dnf.
CentOS, de momento tiene aún yum
yum install, yum remove=>es el purgue del Debian: lo borra todo
yum info (información de programa)

yum search 2048
yum upgrade => Actualiza todos los paquetes del sistema
yum update => hace exactamente lo mismo que el upgrade! actualiza el sistema!


$ = variables
yum o dnf no es quien instala las cosas, solo se baja las dependencias paquetes, etc, pero manda a otro programa para que haga la instalación: comando rpm
rpm -i paquet.rpm => comando manual de instalacion de paquetes: se instala el paquete, pero si requiere dependencias y no están, no funcionaría.
rpm -e paquete.rpm (borrar un paquete, e de erase)
rpm -ql firefox
rpm -qf /bin/ls

rpm -qa

el programa sudo se instala igual que en el Debian y todo, pero mientras que en Debian se creaba automáticamente el grupo “sudo”, pero en RedHat, el grupo no se llama sudo, se llama wheel:
hay que hacer: usermod -a -G wheel linux
(en este caso es para el usuario llamado linux)
locate y find
sudo apt install locate
sudo updatedb
locate fstab

locate: te busca en todas las rutas, si está en el nombre del fichero o de la ruta
locate fstab = locate *fstab*
locate *fstab => encuentran rutas que acaban por fstab
También podemos utilizar expresiones regulares con el parámetro -r:
locate -r ^fstab

los ficheros se van indexando en una base3 de datos y es lo que usa el comando locate para encontrar archivos.
Por tanto, si creamos o borramos ficheros nuevos pero no actualizamos el índice, no lo encontrará. El resultado no estará actualizado.
Actualizar db: sudo updatedb
find ruta criterios_de_busqueda
find . -name “*.conf”
find . -name “*.conf” -print
Por defecto, el tercer parámetro ya es -print
También podemos usar expresiones regulares (en lugar de comodines):
find /etc -regex “conf$” => “busca los que acaben en conf”
find /etc -size +10M (Ficheros más grandes que 10 Megas)
find /etc -size -10M (Ficheros más pequeños que 10 Megas)
Buscar archivos vacíos (0 bytes)

sudo find /etc -empty => ¡me falta algo! investigar
sudo find /etc -mtime +2 => Busca ficheros que se haya modificado desde antes de ayer o antes)
sudo find /etc -mtime -2 => Busca ficheros que se haya modificado desde antes de ayer o después)
sudo find /etc -perm 644 => Busca por permisos
Cómo juntar condiciones estilo “or”: (con el -o)
sudo find /etc -perm 644 -o -size +3k (busca ficheros o bien con esos permisos o bien con ese tamaño)
Condiciones estilo “and”: (con el -a)
sudo find /etc -perm 644 -a -size +3k (busca ficheros con esos permisos y con ese tamaño)
La gracia es que le podemos pasar parámetros para hacer cosas con eseos ficheros:
sudo find /etc -empty -delete
sudo find /etc -perm 644 -a -size +3k -exec cat {} \;
Ejecuta comando para cada archivo que encuentra
Se ha de poner al final {} \; (se pone por un tema interno del programa, para que no se líe)
Si le añadimos a cualquier comando esto: wc -l nos indica el numero de líneas mostrado.

Tercera familia Linux: Arch, permite hacer cosas más profundamente (para ir más allá)
paquete coreutils!

REDES EN LINUX
¿Qué necesita un ordenador para comunicarse con el exterior?
IP, máscara, puerta de enlace y opcionalmente pero casi siempre: servidores DNS

ip -c address show => -c es para poner los colores
Mismo comando abreviado: ip -c a s == ip -c a
Muestra info dispositivos de red.
Tenemos 2 tarjetas de red

ifconfig está obsoleta!
No entiende ipv6!
iana

Asigna rangos de IPs públicas a las empresas de telecomunicaciones
Rangos de IPs privadas:
CLASE A: 10.0.0.0 hasta 10.255.255.255
CLASE B: 172.16.0.0 hasta 172.31.255.255
CLASE C: 192.168.0.0 hasta 192.168.255.255

Máscara de red:
CLASE A: 10.0.0.0 hasta 10.255.255.255 /8 (mascara barra 8, antiguamente se escribira 255.0.0.0)
CLASE B: 172.16.0.0 hasta 172.31.255.255 /16 (255.255.0.0)
CLASE C: 192.168.0.0 hasta 192.168.255.255 /24 (255.255.255.0)
La mascara sirve para saber si 2 IPs son de la misma red o no.
Si eres de la misma red, ya puedes comunicarte, si no, no.
192.168.3.45 /24
192.168.4.72 /24
¿son de la misma red?
Hay que buscar la IP de la red, si haciendo el cálculo tienen los dos la misma IP de red, se podrán comunicar, si no, no.
192.168.3.0 (dejamos los 3 primeros bytes igual, segun la máscara)
Ultimo byte a 0.
Esa es la IP de la red.
192.168.4.0 es la IP de la red de la otra IP.
NO, No son de la misma red. No se pueden comunicar. No se podrán hacer pings.
23.45.67.43 /16
23.45.0.0
23.45.87.34 /8
23.0.0.0
No, no son de la misma red. No se podrán comunicar.
Para hacer que sean de la misma red, por ejemplo, cambiaríamos la máscara de la segunda IP a 16.
192.168.45.65 /24
192.168.45.0
192.168.45.12 /24
192.168.45.0
Son de la misma red. Podrán comunicarse.
Puerta de enlace: nuestro router
router tiene 2 caras: la pública y la privada
Comando para saber nuestra puerta de enlace: ip route show
ip route show = ip r

Puerta de enlace permite comunicar ordenadores de diferentes redes
192.168.20.0/24 => Es una IP de red.
¿cuántas redes privadas puedo tener de clase A? 1
Número máximo de máquinas: 2^24
Una oficina con varios departamentos, si queremos segmentar nuestra instalacion en diferentes redes, usar por ejemplo, la clase B
172.16.X.X – 172.31.X.X = 16 redes diferentes (de la 16 a la 31)
2^16 máquinas (-2!)
.0 => ip de red
.255 => ip broadcast
172.16.1.0/16 es ip corriente
172.16.1.0/24 es ip de red
Siempre es -2 máquinas, dá igual la clase que sea.
10.45.23.0 /8 ¿es una IP de una red? NO
10.0.0.0 es la IP de la red
Servidores DNS: traductores de nombres de dominio a IP

cat /etc/resolv.conf

DNSs de “caché”
El standard DNS obliga a que tengas 2 DNSs puestos, por si cae uno.
Public NDS
8.8.8.8
8.8.4.4
Servidores DNS de Google. Son públicos.


Tarjeta “lo”: loopback (lazo), existe para poderme comunicar conmigo mismo. Es una tarjeta ficticia, por software, la genera el sistema al inicio.

CURIOSIDAD!
127.56.83.123 también es loopback!
Todas las IPs de la 127 son loopback!
MAC: matrícula de la tarjeta de red. Identificador físico. Es único para cada tarjeta del mundo.
La IANA dá el código del fabricante
eno1
Antes eran eth0 eth1, pero ha cambiado, porque en raras ocasiones, al arrancar la máquina, los nombres cambiaban.
Ahora siempre que arranques la máquina, esa tarjeta siempre se llamará igual.
El nombre viene de como está enchufada la tarjeta ala máquina
enoX=ethernet on board (integrada)
ensX=ethernet slot (tarjeta PCI)
enpXsY=tarjeta de red que el sistema no sabe si es integrada o no
ip -c a dev eno1

Cambiar IP de la tarjeta.
Podemos hacerlo de forma temporal (comando) o de forma permanente (editando fichero).
IPs estáticas e IP dinámicas | temporales y permanentes
Dar IP estática de forma temporal:
sudo ip address add 192.168.1.204/24 dev eno1
Añadimos! Ahora nuestra tarjeta va a tener 2 IPs!

Eliminamos IP de la tarjeta:
sudo ip address del 192.168.1.204/24 dev eno1
Dar IP dinámica de forma temporal: (usando servidor DHCP)
Software servidor DHCP
Usamos el comando de cliente DHCP
sudo dhclient -v eno1 (v modo verbose)


Quitarse la IP que te ha asignado un servidor DHCP:
sudo dhclient -r eno1