Configuración del sistema
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
También es posible modificarla mediante el siguiente comando interactivo
dpkg-reconfigure tzdata
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
Modificar el hostname
hostnamectl set-hostname <nuevo nombre>
Logs
Logs del boot actual
journalctl -b
Trazas de log de un servicio concreto
sudo journalctl -u <nombre servicio>
Sistema de ficheros
Búsqueda 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 comandodu
muestra el resultado en un formato legible que puede ser ordenado porsort -h
-S
: En el comandodu
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 directoriosorigen
ydestino
: 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>
Ejecución de comandos
Medir tiempo de ejecución de un comando
Bash time: Reporta el tiempo de ejecución de un comando
time <comando>
Por ejemplo, para medir el tiempo de ejecución de una aplicación Java:
time java -jar application.jar
/usr/bin/time: A parte del tiempo de ejecución del comando tambien puede reportar uso de memoria, IO o CPU. Los resultados se muestran al finalizar la ejecución.
/usr/bin/time [opciones] <comando>
# Tambien se puede ejecutar así
\time [opciones] <comando>
Las opciones se encuentran disponibles el la página de referencia: Man page
Ejemplos:
# Uso de memoria de una aplicación en KB
\time -f'%M' java -jar application.jar
\time --format='%M' java -jar application.jar
# Tiempo de ejecución de una aplicación (CPU-seconds)
\time -f'%S' java -jar application.jar
# Tiempo de ejecución de una aplicación (Elapsed time)
\time -f'%E' java -jar application.jar
Network
Comprobar resolución de hosts
Verifica si un hostname determinado se puede ser resuelto por el servicio DNS local o remoto, si se indica como segundo valor del comando
host <hostname> [servidor dns]
Por ejemplo:
host www.google.com 1.0.0.1