INTRODUCCIÓN
Os traigo una recopilación de comandos Linux para diferentes usos, desde Redes a gestión de discos pasando por adminstración de servicios. Espero que sea de utilidad, estaré actualizando esta entrada.
DESARROLLO
Operaciones de Archivos:
| Comando | Descripción |
|---|---|
| ls | Lista todos los archivos y directorios en el directorio de trabajo actual |
| ls -R | Lista los archivos en subdirectorios también |
| ls -a | Muestra archivos ocultos |
| ls -al | Lista archivos y directorios con información detallada como permisos, tamaño, propietario, etc |
| cd nombredeldirectorio | Cambia al directorio especificado |
| cd .. | Retrocede un nivel |
| pwd | Muestra el directorio de trabajo actual |
| cat > nombredelarchivo | Crea un nuevo archivo |
| cat archivo1 archivo2 > archivo3 | Une dos archivos (archivo1 y archivo2) y guarda el resultado en un nuevo archivo (archivo3) |
| touch nombredelarchivo | Crea o modifica un archivo |
| rm nombredelarchivo | Elimina un archivo |
| cp origen destino | Copia archivos desde la ruta de origen a la ruta de destino |
| mv origen destino | Mueve archivos desde la ruta de origen a la ruta de destino |
| find / -name nombredelarchivo | Encuentra un archivo o directorio por su nombre, comenzando desde la raíz |
| file nombredelarchivo | Determina el tipo de archivo |
| less nombredelarchivo | Muestra el contenido del archivo página por página |
| head nombredelarchivo | Muestra las primeras diez líneas de un archivo |
| tail nombredelarchivo | Muestra las últimas diez líneas de un archivo |
| lsof | Muestra qué archivos están abiertos por qué proceso |
| du -h –max-depth=1 | Muestra el tamaño de cada directorio. Usa –max-depth=1 para limitar la salida al directorio actual y sus hijos inmediatos |
| fdisk | Comando de manipulación de particiones de disco |
Operaciones con paquetes:
| Comando | Descripción |
|---|---|
| apt update | (Debian) Actualiza la base de datos de los paquetes con los repositorios |
| apt upgrade | (Debian) Actualiza los paquetes usando la ultima versión de los repositorios |
| apt autoremove | (Debian) Elimina los paquetes obsoletos despues de un upgrade |
| apt install ‘paquete’ | (Debian) Instala un paquete |
| apt-cache ‘paquete’ | (Debian) Busca un paquete |
| apt remove ‘paquete’ | (Debian) Desinstala un paquete |
| dpkg -i ‘paquete descargado’ | (Debian) Instala un paquete descargado previamente |
| dpkg –configure -a | (Debian) Configura los paquetes pendientes |
| yum update | (RedHat) Actualiza la base de datos de los paquetes con los repositorios |
| yum upgrade | (RedHat) Actualiza los paquetes usando la ultima versión de los repositorios |
| yum install ‘paquete’ | (RedHat) Instala un paquete |
| yum remove ‘paquete’ | (RedHat) Desinstala un paquete |
| rpm -qa | Lista los paquetes instalados en el sistema, recomendable usar con ‘grep’ |
| package-cleanup –oldkernels –count=2 | (RedHat) Elimina los kernels antiguos manteniendo los dos mas actuales |
Operaciones de Procesos:
| Comando | Descripción |
|---|---|
| ps | Muestra los procesos activos en el momento |
| top | Muestra todos los procesos en ejecución |
| kill pid | Finaliza el proceso con el PID (identificador del proceso) dado |
| pkill nombre | Finaliza el proceso con el nombre especificado |
| bg | Reactiva trabajos suspendidos sin llevarlos al primer plano |
| fg | Lleva el trabajo más reciente al primer plano |
| fg n | Lleva el trabajo n al primer plano |
| renice +n [pid] | Cambia la prioridad de un proceso en ejecución |
| &>nombredelarchivo | Redirige tanto la salida estándar como la de error al archivo especificado |
| 1> nombredelarchivo | Redirige la salida estándar al archivo especificado |
| 2> nombredelarchivo | Redirige la salida de error al archivo especificado |
Permisos de Archivos:
| Comando | Descripción |
|---|---|
| chmod octal nombredelarchivo | Cambia los permisos del archivo a octal, que puede estar entre 0 (sin permisos) y 7 (permisos completos) |
| chown nombredepropietario nombredelarchivo | Cambia el propietario del archivo |
| chown nombredepropietario:nombredelgrupo nombredelarchivo | Cambia el propietario y el grupo del archivo |
| chgrp nombredelgrupo nombredelarchivo | Cambia el grupo propietario del archivo |
Redes:
| Comando | Descripción |
|---|---|
| ping host | Realiza un ping a un host y muestra los resultados |
| whois dominio | Obtiene información whois para un dominio |
| dig dominio | Obtiene información DNS para un dominio |
| netstat -pnltu | Muestra información relacionada con la red, como conexiones de red, tablas de enrutamiento, estadísticas de interfaz, etc |
| ifconfig | Muestra las direcciones IP de todas las interfaces de red |
| ssh usuario@host | Inicio de sesión remoto en el host como usuario |
| scp | Transfiere archivos entre hosts a través de ssh |
| wget url | Descarga archivos desde la web |
| curl url | Envía una solicitud a una URL y devuelve la respuesta |
| traceroute dominio | mtr combina la funcionalidad de los programas traceroute y ping en una sola herramienta de diagnóstico de red |
| mtr dominio | Cambia el propietario y el grupo del archivo |
| ss | Otra utilidad para investigar sockets. Es una alternativa más moderna a netstat |
| nmap | Herramienta de exploración de redes y escaneo de seguridad |
Compresión y Archivos:
| Comando | Descripción |
|---|---|
| tar cf archivo.tar archivos | Crea un archivo tar llamado archivo.tar que contiene los archivos especificados |
| tar xf archivo.tar | Extrae los archivos de archivo.tar |
| gzip archivo | Comprime el archivo y lo renombra a archivo.gz |
| gzip -d archivo.gz | Descomprime archivo.gz y lo restaura al archivo original |
| zip -r archivo.zip archivos | Crea un archivo zip llamado archivo.zip que contiene los archivos especificados |
| unzip archivo.zip | Extrae el contenido de un archivo zip |
| tar -cvf archiv.tar directorio/ | Crea un archivo tar |
| tar -xvf archiv.tar | Extrae un archivo tar |
| tar -jcvf archiv.tar.bz2 directorio/ | Crea un archivo bz2 comprimido |
| tar -jxvf archiv.tar.bz2 | Extrae un archivo bz2 comprimido |
Procesamiento de Texto:
| Comando | Descripción |
|---|---|
| grep patrón archivos | Busca un patrón en los archivos |
| grep -r patrón directorio | Busca de forma recursiva un patrón en un directorio |
| comando | grep patrón | Envia la salida del comando a grep para buscar |
| echo ‘texto’ | Imprime texto |
| sed ‘s/cadena1/cadena2/g’ nombredelarchivo | Reemplaza cadena1 con cadena2 en el archivo |
| diff archivo1 archivo2 | Compara dos archivos y muestra las diferencias |
| wc nombredelarchivo | Cuenta líneas, palabras y caracteres en un archivo |
| awk | Un lenguaje de programación versátil para trabajar con archivos |
Uso del Disco:
| Comando | Descripción |
|---|---|
| df | Muestra el uso del disco |
| du | Muestra el uso del espacio en directorios |
| free | Muestra el uso de memoria y swap |
| whereis aplicación | Muestra las posibles ubicaciones de una aplicación |
| dd if=/dev/zero of=/tmp/salida.img bs=8k count=256k | Crea un archivo de un tamaño determinado para probar la velocidad del disco. No usar con Veritas |
| hdparm -Tt | Mide la velocidad de lectura de tu disco duro |
Veritas:
| Comando | Descripción |
|---|---|
| hastatus -sum | Ver estado de cluster |
| hagrp -online nombrecluster -sys nombreservidor | Levantar cluster en servidor indicado |
| hagrp -ofline nombrecluster -sys nombreservidor | Desactivar cluster en servidor indicado |
| hagrp -switch nombrecluster -to nombreservidor2 | Cambiar cluster de nodo |
| hares -state nombreaplicacioncluster | Comprueba el estado de la aplicación |
Información del Sistema:
| Comando | Descripción |
|---|---|
| date | Muestra la fecha y hora actual |
| cal | Muestra el calendario del mes actual |
| uptime | Muestra el tiempo de actividad actual |
| w | Muestra quién está en línea |
| whoami | Muestra el nombre del usuario actual |
| uname -a | Muestra información del kernel |
| df -h | Uso del disco en formato legible para humanos |
| du -sh | Uso del disco del directorio actual en formato legible para humanos |
| free -m | Muestra la memoria libre y utilizada en MB |
SELinux:
| Comando | Descripción |
|---|---|
| ausearch -m AVC,USER_AC,SELINUX_ERR,USER_SELINUX_ERR -ts recent | Muestra las rutas bloqueadas por SELinux |
| matchpathcon -V rutadelarchivodelog | Muestra las etiquetas actuales y las que debe tener |
| chcon -Rv –type=nombreetiqueta rutadelarchivo | Realiza un reetiquetado temporal |
| semanage fcontext -a -t nombreetiqueta “rutadelarchivo” | Realiza un reetiquetado permanente añadiendo una etiqueta |
| semanage fcontext -m -t nombreetiqueta “rutadelarchivo” | Realiza un reetiquetado permanente modificando una etiqueta |
| rescorecon -v rutadelarchivo | Ejecuta los cambios realizados por chcon o semanage |
| ls -Z | Muestra las etiquetas de una carpeta o archivo |
Otros (principalmente utilizados en scripts):
| Comando | Descripción |
|---|---|
| comando1 ; comando2 | Ejecuta comando1 y luego comando2 |
| comando1 && comando2 | Ejecuta comando2 solo si comando1 es exitoso |
| comando1 || comando2 | Ejecuta comando2 solo si comando1 no es exitoso |
| comando & | Ejecuta el comando en segundo plano |
Variables de Entorno:
| Comando | Descripción |
|---|---|
| env | Muestra todas las variables de entorno |
| echo $VARIABLE | Muestra el valor de una variable de entorno |
| export VARIABLE=valor | Establece el valor de una variable de entorno |
| alias nuevo_comando=’viejo_comando opciones’ | Ejecuta el comando en segundo plano |
| echo $PATH | Imprime la variable de entorno PATH |
| export PATH=$PATH:/nueva/ruta | Agrega /nueva/ruta a la variable de entorno PATH |
Programación de Tareas (Cron Jobs):
| Comando | Descripción |
|---|---|
| crontab -l | Lista todas tus tareas cron |
| crontab -e | Edita tus tareas cron |
| crontab -r | Elimina todas tus tareas cron |
| crontab -v | Muestra la última vez que editaste tus tareas cron |
| crontab archivo | Instala una tarea cron desde un archivo |
| @reboot comando | Programa una tarea para que se ejecute al inicio |
Scripting de Shell:
| Comando | Descripción |
|---|---|
| #!/bin/bash | Línea shebang para especificar el intérprete de scripts |
| $0, $1, …, $9, ${10}, ${11} | Argumentos del script |
| if [condición]; then … fi | Estructura de la declaración if en scripts de bash |
| for i in {1..10}; do … done | Bucle for en scripts de bash |
| while [condición]; do … done | Bucle while en scripts de bash |
| función nombre() {…} | Define una función |
Monitoreo y Rendimiento del Sistema:
| Comando | Descripción |
|---|---|
| iostat | Informa estadísticas de la Unidad Central de Procesamiento (CPU) y estadísticas de entrada/salida para dispositivos, particiones y sistemas de archivos de red |
| vmstat | Argumentos del script |
| htop | Estructura de la declaración if en scripts de bash |
Búsqueda y Encontrar:
| Comando | Descripción |
|---|---|
| locate nombredelarchivo | Encuentra un archivo por su nombre. La base de datos se actualiza con el comando updatedb |
| whereis nombredeprograma | Localiza los archivos binarios, de origen y de página de manual para un comando |
| which nombredelcomando | Muestra la ruta completa de los comandos (shell) |
Otros:
| Comando | Descripción |
|---|---|
| yes > /dev/null & | Usa este comando para llevar un sistema al límite |
| ”:(){ :|:& };::” | Una bomba: úsala con cuidado. No ejecutes este comando en un sistema de producción |
RECOMENDACIÓN
Recuerda que siempre puedes usar el comando man (por ejemplo, man ls) para obtener más información sobre cada comando.
