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.

Deja un comentario