¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Comandos básicos
Sección perteneciente al curso Linux para DevOps y Sysadmin.
Comando cd
El comando cd se usa para moverse por los directorios.
Tenemos dos formas de movernos:
- Relativa: hacen referencia a un directorio
- Absoluta: se indica la ruta completa del directorio
Si tenemos:
/home/tempwin/linux/ |--- test1/ |--- test2/
Si estamos en /home/tempwin/linux y queremos movernos a test1:
cd test1
Si estuviéramos en /tmp y quisiéramos ir a test1, usamos la forma absoluta:
cd /home/tempwin/linux/test1
Para movernos de forma relativa, son muy útiles los siguientes argumentos:
.: directorio actual..: directorio anterior (directorio padre)
Si hacemos cd ../.. estaríamos yendo al padre del padre del directorio actual.
Comando man y ls
El comando man permite obtener ayuda de los comandos (no todos los comandos tienen página de manual).
man ls
Para salir del man, pulsamos q
Los comandos de Linux suelen soportar el argumento --help que también mostrará ayuda sobre los comandos. Por ejemplo:
ls --help
Argumentos más típicos que se pueden usar con ls:
-a: Mostrar también los ficheros ocultos-l: muestra los ficheros e información sobre ellos-r: ordena de forma inversa el listado de ficheros--color: colorea la salida dels.
ls -a
Comando tree
El comando tree muestra el contenido de los directorios en formato de árbol.
Normalmente no viene instalado. En Ubuntu se instalaría:
apt install tree
Ejemplo de uso de tree:
jm@ubuntu-devops:~$ tree . ├── Descargas ├── Documentos ├── Escritorio ├── Imágenes ├── Música ├── Plantillas ├── Público ├── snap │ └── snapd-desktop-integration │ ├── 83 │ ├── common │ └── current -> 83 └── Vídeos
Si queremos que muestre también los ficheros ocultos:
tree -a
Si solo nos interesa mostrar directorios y no ficheros:
tree -d
Comando whereis
Este comando indica la ubicación del ejecutable, código fuente y página de manual de un comando.
whereis tree
Ejemplo de salida:
tree: /usr/bin/tree /usr/share/man/man1/tree.1.gz
Comando whoami
Muestra el nombre de usuario actual:
whoami
Ejemplo de salida:
tempwin
Comandos IP
ip
Muestra y configura el enrutamiento, dispositivos de red, interfaces y túneles.
Mostrar toda la información de las interfaces de red:
ip a
aes la abreviatura deaddress, así que podemos usarlo indistintamente .
Ejemplo de salida:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:a0:c7:b6 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
valid_lft 82996sec preferred_lft 82996sec
inet6 fe80::b866:4fad:2930:fe7/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:df:f4:1e brd ff:ff:ff:ff:ff:ff
inet 192.168.0.17/24 brd 192.168.0.255 scope global dynamic noprefixroute enp0s8
valid_lft 82988sec preferred_lft 82988sec
inet6 fe80::2bbf:2bd:6a5e:4e4b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
ifconfig
También permite obtener y manipular interfaces de red.
netstat
Muestra las conexiones de red, tablas de enrutamiento, estadísticas de las interfaces…
En Ubuntu se instala mediante el paquete net-tools
Ver puertos UDP abiertos:
netstat -nlpu
Ver puertos TCP abiertos:
netstat -nlpt
Para ver la tabla de enrutamiento:
netstat -nr
Tabla de rutas IP del núcleo Destino Pasarela Genmask Indic MSS Ventana irtt Interfaz 0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 enp0s3 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 enp0s8 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s8
Ver las interfaces de red:
netstat -ai
Para ver las conexiones establecidas (usamos el comando watch para que haga actualizaciones de la ejecución del comando cada segundo):
watch -n1 netstat -ant
Configurar interfaz de red
Configuración estática
Configuraremos la red y DNS.
En Ubuntu, editaremos el fichero etc/netplan/01-network-manager-all.yaml:
# Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager
Lo modificaremos de la siguiente manera:
# Configuración nueva
network:
version: 2
renderer: networkd
ethernets:
enp0s8:
addresses:
- 192.168.0.225/24
gateway4: 192.168.0.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Tras guardar, toca reiniciar el servicio para aplicar los cambios:
netplan apply
Configuración dinámica por DHCP
En Ubuntu, editaremos el fichero etc/netplan/01-network-manager-all.yaml para dejarlo de la siguiente manera:
# Configuración nueva network: version: 2 renderer: networkd ethernets: enp0s8: dhcp4: true dhcp6: true
Guardamos y reiniciamos el servicio:
netplan apply
Crear y borrar y mover ficheros
Creación de directorios con mkdir:
mkdir directorio
Si queremos crear un fichero en blanco:
touch fichero
Para borrar ficheros o directorios:
rm fichero
Si se trata de un directorio, tenemos que usar el parámetro -r (recursivo)
Podemos borrar varios ficheros a la vez:
rm fichero1 fichero2 fichero3
Si quisiéramos borrar todos los ficheros del directorio actual:
rm -rf *
Para cambiar el nombre de un fichero:
mv fichero_antiguo fichero_nuevo
El comando mv también mueve ficheros y directorios:
mv fichero directorio
Cuentas de usuarios y permisos
Cuentas de usuario y grupos
En el fichero /etc/group se almacenan los grupos.
Para añadir un grupo:
groupadd nombre_grupo
Para crear un usuario:
useradd -m -g <GRUPO> -s <SHELL> <NOMBRE_USUARIO>
-m: crea el home del usuario si no existe.-g: establece el grupo principal del usuario.-s: establece la shell que tendrá el usuario
Ejemplo:
useradd -m -g curso -s /bin/bash pepito
Para establecer la contraseña del nuevo usuario:
passwd pepito
Si queremos identificarnos como otro usuario:
su usuario
Para borrar una cuenta de usuario:
userdel usuario
Y para eliminar el grupo:
groupdel grupo
Permisos
Permisos de propietario a un directorio:
chown curso:pepito -R clase/
Asignar permisos:
| Número octal | Texto | Binario |
|---|---|---|
| 0 | --- | 000 |
| 1 | --x | 001 |
| 2 | -w- | 010 |
| 3 | -wx | 011 |
| 4 | r-- | 100 |
| 5 | r-x | 101 |
| 6 | rw- | 110 |
| 7 | rwx | 111 |
| Propietario | Grupo | Otros |
|---|---|---|
rwx | r-x | r-x |
| 4+2+1 | 4+0+1 | 4+0+1 |
| 7 | 5 | 5 |
Para darle a todos los ficheros de un directorio todos los permisos al propietario y de lectura y ejecución al grupo y a los demás:
chmod 755 -R clase
Para establecer un directorio como directorio personal de un usuario:
usermod -d clase pepito
Kernel de Linux y como gestionarlo
El kernel administra la memoria RAM, el tiempo de CPU que usa cada proceso y el acceso a los recursos del sistema,
La forma más sencilla de actualizar el kernel en un sistema Debian:
apt dist-upgrade
Periféricos conectados vía USB:
lsusb
Periféricos conectados por PCI:
lspci
