Comandos Linux
Comandos Linux
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.
Esta entrada está licenciada bajo CC BY 4.0 por el autor.
