GNU/Linux LPIC-1 / 17 de Octubre de 2018

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?

muestra los binarios, las librerías, el manual, 

.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!

En RedHat, hay un fichero diferente para cada tipo de repositorio

$ = 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

¿está instalado el firefox? ¿y el gimp?

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.

Con 2> /dev/null omitimos mostrar los errores, ya que los enviamos a null

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

paquete coreutils!

con maxdepth 1 nos quedamos en el nivel 1 de directorios

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

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

https://www.google.com/intl/es/ipv6/statistics.html

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

What is Network Address Translation (NAT)?
NAT: Network Address Translation

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

los 2 servidores de DNS propios de PUE

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.

https://public-dns.info/
Lista de servidores DNS públicos (todos 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