Ubuntu - Referencia de comandos útiles

20-10-2024 - Antonio Archilla

Fechas y localización

Consulta de la zona horaria actual del sistema

cat /etc/timezone

Modificar zona horaria del sistema

Bajo el directorio /usr/shar/zoneinfo se encuentran los descriptores de las zonas horarias. Para cambiar la zona horaria actual, se debe modificar el descriptor al que apunta el link /etc/localtime utilizando un soft link. Por ejemplo, si se desea especificar la zona Europe/Madrid se hará de la siguiente manera.

ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime

Modificar el layout de teclado

Sólo para la sesión actual

loadkeys <código ISO-639-1>

Ejemplo para cambio a layout español:

loadkeys es

Logs

Logs del boot actual
journalctl -b
Trazas de log de un servicio concreto
sudo journalctl -u <nombre servicio>

Sistema de ficheros

Busqueda de una cadena dentro de ficheros

find . -type f -print | xargs grep "cadena a buscar"

Consulta de directorios top consumers de espacio en disco

# Top 15
du -xhS | sort -h -r | tail -n15

Donde:

  • -x: Permite ignorar directorios en sistemas de ficheros separados
  • -h: En el comando du muestra el resultado en un formato legible que puede ser ordenado por sort -h
  • -S: En el comando du permite excluir el tamaño de los subdirectorios en el computo para un directorio determinado

Comprobación de permisos sobre un fichero para un usuario especifico

sudo -u <usuario> test -[x|w|r] <path al fichero o directorio>
# Obtener el resultado del comando anterior
echo $?

Utilizando las opciones x, w o r se podrán probar los permisos de ejecución, escritura y lectura respectivamente. La ejecución del comando echo $? es necesaria porque el comando test no devuelve un valor visible. De esta manera se muestra por pantalla el valor de retorno del comando, siendo 0 que el usuario tiene el permiso especificado y cualquier otro valor que no lo tiene.

Ejemplo:

sudo -u root test -r /etc/systemd/system 

El comando echo $? devolverá 0 indicando que root tiene acceso de lectura al directorio

Copia remota de ficheros

Copia mediante SCP. Funciona sobre SSH para copiar ficheros entre hosts:

scp [flags] <origen> <destino>

Donde:

  • flags: Es necesario indicar el flag -r para la copia de directorios
  • origen y destino: Indica el fichero / directorio origen y destino. Si se trata de una ubicación remota el formato deberá indicar credenciales, host y ruta en formato <credenciales>@<host>:<ruta>

Ejemplo de copia de host remoto a local:

scp username@hostname:/path/to/remote/file /path/to/local/file

Ejemplo de un copia de un directorio de host local a remoto:

scp -r /path/to/local/folder username@hostname:/path/to/remote/folder

Ejemplo de copia de entre hosts:

scp username1@hostname1:/path/to/remote1/file username2@hostname2/path/to/remote2/file

Servicios

Ejecución de servicios

Crear un nuevo descriptor de servicio

Crear un fichero en el directorio /etc/systemd/system/. El descriptor de un servicio básico tiene la siguiente estructura:

[Unit]
Description=<descripción del servicio>
After=<dependencias de otros servicios>

[Service]
Type=simple
User=<usuario con el que se ejecutará el servicio>
Group=<grupo con el que se ejecutará el servicio>
WorkingDirectory=<directorio en el que se ejecutará el servicio>
ExecStart=<comando de arranque del servicio>
Environment=<variables de entorno aplicadas al servicio>

[Install]
WantedBy=multi-user.target

Recargar configuración del servicio

sudo systemctl reload <nombre servicio>

Consultas sobre servicios

Estado del servicio

sudo systemctl status <nombre servicio>

results matching ""

    No results matching ""