Como Crear Tus Propios Comandos En Linux Para Ejecutar Tus Scripts
Como Crear Tus Propios Comandos En Linux Para Ejecutar Tus Scripts
En este tutorial queremos enseñarte lo fascinante que es Linux, Ya que te mostraremos como crear tu propio comando de Linux para así poder llamar tu herramienta o programa desde la consola Linux, claro que esto se extiende a cualquier lenguaje de programación que quieras tener tu herramienta, en este caso usaremos como ejemplo unas herramientas creadas por nosotros en el lenguaje Python.
Cómo crear tus propios comandos en Linux usando Python y Bash

Una de las cosas más interesantes de Linux es que puedes crear tus propios comandos personalizados. De hecho, muchas herramientas que usamos todos los días funcionan exactamente igual: son simplemente archivos ejecutables ubicados en directorios que el sistema busca automáticamente cuando escribimos un comando en la terminal.
Por ejemplo, cuando ejecutas:
ls
Linux busca un archivo ejecutable llamado ls dentro de las rutas definidas en la variable PATH.
Podemos aprovechar este mismo mecanismo para crear nuestros propios comandos usando scripts Bash, programas Python o incluso proyectos completos con múltiples archivos.
En este tutorial aprenderás tres formas diferentes de crear comandos personalizados:
- Crear un comando desde un script Bash (.sh)
- Crear un comando desde un programa Python (.py)
- Crear un comando basado en un proyecto Python con múltiples archivos
Además veremos por qué normalmente se utiliza /usr/local/bin para este propósito.
¿Por qué usar /usr/local/bin?
Linux tiene varios directorios para almacenar ejecutables.
Algunos de los más comunes son:
/bin
/usr/bin
/usr/local/bin
Los dos primeros suelen estar reservados para software gestionado por la distribución o por el gestor de paquetes.
En cambio:
/usr/local/bin
está pensado para programas instalados manualmente por el administrador del sistema.
Por eso es el lugar ideal para nuestros comandos personalizados.
Podemos comprobar que está dentro del PATH ejecutando:
echo $PATH
Normalmente veremos algo parecido a:
/usr/local/bin:/usr/bin:/bin
Eso significa que cualquier ejecutable que coloquemos allí podrá ejecutarse desde cualquier carpeta.
Método 1: Crear un comando desde un script Bash
Comenzaremos con algo sencillo pero útil.
Vamos a crear un comando llamado:
miip
que mostrará nuestra IP pública.
Creamos el archivo:
nano miip.sh
Contenido:
#!/bin/bash
curl -s https://api.ipify.org
echo
Guardamos y damos permisos:
chmod +x miip.sh
Probamos:
./miip.sh
Si funciona correctamente, podemos convertirlo en un comando global.
Copiamos el archivo:
sudo cp miip.sh /usr/local/bin/miip
Ahora podremos usar:
miip
desde cualquier directorio.
Cómo funciona realmente
Cuando escribimos:
miip
Linux busca ese nombre dentro de las rutas del PATH.
Al encontrar:
/usr/local/bin/miip
lo ejecuta automáticamente.
No importa en qué carpeta nos encontremos.
Método 2: Crear un comando desde Python
Ahora haremos algo más avanzado.
Crearemos un comando llamado:
hashfile
que calculará el SHA256 de cualquier archivo.
Creamos:
nano hashfile.py
Contenido:
#!/usr/bin/env python3
import hashlib
import sys
if len(sys.argv) != 2:
print("Uso: hashfile archivo")
sys.exit(1)
archivo = sys.argv[1]
with open(archivo, "rb") as f:
sha = hashlib.sha256()
while True:
bloque = f.read(4096)
if not bloque:
break
sha.update(bloque)
print(sha.hexdigest())
Damos permisos:
chmod +x hashfile.py
Probamos:
./hashfile.py archivo.txt
Ahora lo instalamos:
sudo cp hashfile.py /usr/local/bin/hashfile
Y podremos usar:
hashfile documento.pdf
como si fuera una herramienta nativa del sistema.
¿Necesito convertirlo en binario?
No necesariamente.
Gracias al shebang:
#!/usr/bin/env python3
Linux sabe que debe ejecutarlo utilizando Python.
Sin embargo, algunas personas prefieren convertirlo a binario para distribuirlo más fácilmente.
Crear un binario con PyInstaller
Instalamos PyInstaller:
pip install pyinstaller
Generamos el ejecutable:
pyinstaller --onefile hashfile.py
El resultado aparecerá en:
dist/hashfile
Ahora podemos copiar directamente el binario:
sudo cp dist/hashfile /usr/local/bin/
Y usar:
hashfile archivo.iso
sin necesidad de copiar el script original.
Método 3: Cuando tu proyecto tiene varios archivos
Aquí es donde muchos principiantes se confunden.
Supongamos que tenemos esta estructura:
miapp/
├── app.py
├── funciones.py
└── configuracion.py
Intentar copiar solamente:
app.py
a /usr/local/bin no funcionará correctamente porque depende de otros archivos.
Una práctica común es instalar todo el proyecto en:
/opt
¿Qué es /opt?
Es una ubicación tradicional utilizada para aplicaciones completas que contienen múltiples archivos.
Por ejemplo:
/opt/miapp
puede contener:
/opt/miapp/app.py
/opt/miapp/funciones.py
/opt/miapp/configuracion.py
Ejemplo práctico
Creamos:
sudo mkdir -p /opt/contador
Archivo:
/opt/contador/app.py
Contenido:
#!/usr/bin/env python3
from datetime import datetime
print("Fecha actual:")
print(datetime.now())
Damos permisos:
chmod +x /opt/contador/app.py
Ahora creamos un lanzador.
Archivo:
contador
Contenido:
#!/bin/bash
python3 /opt/contador/app.py "$@"
Damos permisos:
chmod +x contador
Y lo copiamos:
sudo cp contador /usr/local/bin/
Ahora podemos ejecutar:
contador
desde cualquier ubicación.
¿Por qué usar un lanzador?
Porque el comando que está en:
/usr/local/bin
es muy pequeño.
Su única función es iniciar el programa real ubicado en:
/opt/contador
Esta técnica es utilizada por muchísimas aplicaciones Linux.
Pasar argumentos al programa
Observa esta línea:
"$@"
Significa:
“envía todos los argumentos recibidos al programa original”.
Por ejemplo:
contador hola mundo
terminaría ejecutando:
python3 /opt/contador/app.py hola mundo
¿Qué método debo usar?
Script Bash
Ideal para:
- Automatizaciones simples
- Comandos rápidos
- Tareas administrativas
Ejemplos:
- Reiniciar servicios
- Mostrar información del sistema
- Realizar copias de seguridad
Script Python
Ideal para:
- Herramientas más complejas
- Procesamiento de archivos
- Consultas a APIs
- Automatizaciones avanzadas
Proyecto en /opt
Ideal para:
- Aplicaciones grandes
- Herramientas con varios módulos
- Programas que utilizan configuraciones o recursos adicionales
Crear tus propios comandos en Linux es mucho más sencillo de lo que parece.
En realidad, la mayoría de los comandos no son más que archivos ejecutables ubicados en directorios que Linux revisa automáticamente.
La combinación más utilizada suele ser:
/usr/local/bin -> lanzador o ejecutable
/opt/aplicacion -> archivos del proyecto
Con estas técnicas podrás convertir tus scripts Bash y Python en herramientas que se comporten exactamente igual que cualquier comando nativo del sistema, facilitando su uso y manteniendo tus proyectos organizados.



