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
Renombrar y mover directorios
Para renombrar y mover directorios usamos el comando mv.
Renombrar:
mv directorio_antiguo directorio_nuevo
Para mover directorio dentro de /home/pepito/trastero:
<coode> mv directorio /home/pepito/trastero/ </code>
Sistema de directorios linux
El Filesystem Hierarchy Standard (FHS) es una referencia que establece una convención de la disposición del sistema de ficheros de un sistema UNIX.
La estructura de directorios y ficheros se organiza en forma de árbol invertido. Desde un directorio principal (/) cuelgan todos los demás.
Principales directorios:
/: raíz/bin: binarios de usuario/boot: ejecutables y archivos requeridos para el arranque/dev: archivos de información de todos los volúmenes/etc: archivos de configuración del sistema y de aplicaciones/home:directorio personal con las carpetas de usuario/lib: bibliotecas necesarias para la ejecución de binarios/media: directorio de montaje de volúmenes extraíbles./opt: ficheros de aplicaciones externas que no se integran en/usr/proc: ficheros de información de procesos/root: directorio personal de superusuario/sbin: binarios de sistema/srv: archivos relativos a servidores web, FTP, etc./sys: archivos virtuales con información de eventos del sistema/tmp: directorio de ficheros temporales/usr: archivos de programas y aplicaciones instaladas/var: archivos de variables, logs, emails de los usuarios, etc.
