Herramientas de usuario

Herramientas del sitio


informatica:sistemas_operativos:cursos:linux_para_devops_y_sysadmin:comandos_basicos

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 de ls.
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
  • a es la abreviatura de address, 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.
informatica/sistemas_operativos/cursos/linux_para_devops_y_sysadmin/comandos_basicos.txt · Última modificación: por tempwin