Python es actualmente uno de los lenguajes de programación más populares que existen. Es un lenguaje potente pero sencillo que puede utilizarse en casi cualquier entorno de desarrollo.
Una encuesta de 2021 de Stack Overflow revela que Python es el lenguaje de programación con el que más desean trabajar los desarrolladores.
Gracias a herramientas como Jupyter Notebook, Google Colaboratory y los compiladores en línea, puedes empezar a utilizar este lenguaje sin tener que preocuparte de instalar nada.
Sin embargo, si quieres ir más allá y disfrutar de la verdadera potencia de un lenguaje de propósito general como Python (especialmente creando aplicaciones complejas), tarde o temprano tendrás que aprender a utilizar la CLI, o interfaz de línea de comandos.
La mayoría de los desarrolladores coinciden en que una de las partes más intimidantes del aprendizaje de Python es la CLI. Pero con sólo unos pocos comandos en tu haber, la dominarás en poco tiempo.
En este artículo, aprenderás los comandos más útiles para el desarrollo en Python.
¿Qué Es la Interfaz de Línea de Comandos?
La interfaz de línea de comandos — a menudo abreviada como CLI — es un programa basado en texto que se utiliza para ejecutar programas y realizar tareas relacionadas con el sistema operativo (SO), como crear y gestionar archivos.
Las CLI aceptan la entrada del teclado en forma de comandos y los pasan a un shell o intérprete de comandos. Estos intérpretes de comandos interpretan las órdenes dadas por el usuario, las ejecutan y devuelven un resultado que suele denominarse salida.
Una CLI puede ejecutar diferentes shells. Esta captura de pantalla muestra dos CLI diferentes, una con el shell Python y otra con Bash:
Estos dos conceptos se confunden a menudo, así que aquí tienes el análisis:
- CLI es la interfaz basada en texto en la que escribes comandos y obtienes la salida de esos comandos. Puede ejecutar diferentes shells.
- Un shell es un intérprete de comandos capaz de interactuar con el sistema operativo.
Lo creas o no, cada programa que tu sistema ejecuta implica un comando. Las ventanas (GUI) con las que interactúas cada día están formadas por enlaces que activan comandos que te permiten interactuar con el sistema operativo.
¿Necesitas la CLI en el Desarrollo de Python?
Para ser un desarrollador full-stack eficaz, necesitarás tener un sólido conocimiento de la línea de comandos. Esto se debe a que la mayoría de los frameworks de backend requieren alguna forma de interacción con una CLI directamente, y si planeas desplegar una aplicación por ti mismo, la línea de comandos será tu mejor amiga.
Hoy en día, puedes ejecutar Python desde innumerables servicios online, así como IDEs que facilitan mucho la ejecución de tus programas. Pero si te dedicas al desarrollo web — especialmente el backend, la automatización de tareas, al blockchain, al uso de un ordenador remoto vía SSH, o al manejo de herramientas amigables con Python como Docker, definitivamente necesitarás manejar la CLI.
De hecho, Python tiene un montón de bibliotecas para construir aplicaciones CLI, como Typer, Argsparse y Click. Puedes pasar de ser sólo un usuario de la CLI a ser un creador de tus propias aplicaciones de la CLI Esto demuestra la fuerte conexión entre los entornos CLI y Python.
Una vez que domines la CLI, será mucho más fácil ejecutar tus tareas como programador de Python, y verás la ventaja cuando utilices otros lenguajes de programación como PHP, C, C++ o Java.
Introducción a la CLI
Dependiendo del sistema operativo que estés ejecutando, encontrarás diferencias en la forma de utilizar la línea de comandos. Cada sistema operativo tiene su propia forma de abrir e interactuar con una CLI debido a sus diferentes estructuras de organización de archivos y a sus shells de comandos por defecto.
Echemos un vistazo a los tres sistemas operativos más utilizados por los desarrolladores: Windows, Mac y Linux.
Windows
Windows es el sistema operativo de escritorio más popular, sobre todo por su precio y facilidad de uso. Si quieres acceder a la CLI en Windows, debes abrir el programa «Command Prompt» o «Windows Powershell».
Recuerda que Windows utiliza \
para las rutas en lugar de /
. Debes tenerlo en cuenta cuando navegues por los directorios.
También en Windows, tienes la alternativa de instalar Git Bash, una línea de comandos que emula el comportamiento del shell Bash en Windows. Esto haría que la mayoría de los comandos de Unix que se muestran a continuación fueran compatibles con tu sistema.
Mac
En cuanto a Mac, la línea de comandos es accesible desde una aplicación integrada llamada «Terminal». Puedes buscarla con el Launchpad, o encontrarla en la carpeta «Utilidades» en «aplicaciones».
Linux
En Linux, tienes un montón de opciones diferentes dependiendo de la distro que utilices, pero el comando «Ctrl + Alt + T» suele activar el terminal por defecto de tu sistema.
Ahora, deberías tener una ventana similar a la que se muestra a continuación:
20+ Comandos CLI Más Útiles para el Desarrollo en Python
Una vez que tengas tu CLI abierta, es hora de sumergirte en los principales comandos de la shell que harán tu vida como desarrollador de Python mucho más fácil.
Comandos de Instalación
Probablemente te hayas topado con un millón de formas de instalar Python. Pero a veces, es mucho más cómodo hacerlo con un solo comando.
Aquí están los diferentes comandos que te ayudarán a instalar Python en diferentes sistemas operativos.
1. Chocolatey
En Windows, no tienes ningún gestor de paquetes por defecto. Una opción para superar esto es Chocolatey, que te proporciona programas para instalar directamente desde la línea de comandos, incluyendo obviamente a Python.
Asegúrate de instalar Chocolatey antes de ejecutar el siguiente comando:
choco install python --pre
2. Homebrew y Pyenv
macOS viene con Python 2.7 instalado por defecto. Sin embargo, Python 2.7 está ahora en desuso. Toda la comunidad se ha pasado a Python 3. Para gestionar tus versiones de Python de forma eficiente, puedes utilizar un programa como pyenv.
Abre una línea de comandos e instala la última versión de Homebrew (un gestor de paquetes como Chocolatey) con el siguiente comando:
/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Luego puedes instalar pyenv con este sencillo comando:
brew install pyenv
Puedes instalar una versión específica de Python y establecerla como ejecutable global de Python en lugar de Python 2:
pyenv install 3.10 # Version you want
pyenv global 3.10.4 # Sets that version as default
Ahora, si llamas a Python, será la versión que hayas establecido con pyenv:
python
# Python 3.10.4 ....
# >>>
3. apt, pacman y dnf
Con el amplio uso de Python para el software de código abierto, un gran número de distros de Linux vienen con Python preinstalado. Si tu sistema no lo tiene, puedes instalar Python con un gestor de paquetes.
En las distros basadas en Debian (Ubuntu, Linux Mint, Kali Linux), utilizarás apt, que significa «herramienta de paquetes avanzada»:
sudo apt update
sudo apt install python3
Además, si quieres establecer Python 3 como tu intérprete de Python por defecto, puedes utilizar el siguiente comando:
sudo apt install python-is-python3
En las distros basadas en Arch, puedes utilizar el gestor de paquetes oficial pacman:
sudo pacman -S python
En Fedora y en las distribuciones Linux basadas en RPM (Red Hat, CentOS), se utiliza dnf:
sudo dnf install python3
Comandos del intérprete
Repasemos rápidamente las principales banderas — opciones de la línea de comandos — del comando Python y su gestor de paquetes, pip.
4. python
El comando python
tiene varias banderas, es decir, opciones que modifican el comportamiento de la ejecución del código.
En primer lugar, para ejecutar un archivo Python, basta con llamar al intérprete y añadir el nombre del archivo, incluyendo la extensión .py
:
python helloworld.py
Si necesitas recordar lo que hace una bandera, puedes utilizar la bandera help
en cualquiera de estas 3 presentaciones:
python -?
python -h
python --help
Para imprimir (ver) la versión de Python que estás ejecutando, utiliza lo siguiente:
python -V
python --version
Si quieres ejecutar el código de Python sin abrir y editar un archivo .py
, puedes ejecutarlo directamente desde tu terminal con la bandera de comando:
# Hello, World!
python -c "print('Hello, World!')"
La bandera m
ejecuta un módulo de Python como un script. Esto es muy útil cuando quieres crear un entorno virtual con el módulo incorporado venv:
python -m venv .venv
5. pip
El comando pip busca paquetes en el Índice de Paquetes de Python (PyPI), resuelve las dependencias e instala la versión del paquete que hayas indicado.
Para instalar un paquete de Python, sólo tienes que escribir pip
y el nombre del paquete que quieres instalar.
El siguiente comando instalará la última versión del paquete:
pip install django
Si quieres una versión concreta, ejecuta el siguiente comando:
# pip install package==version
pip install django==4.0.4
Cuando trabajas en proyectos colaborativos, necesitas llevar un registro de las dependencias, normalmente con un archivo de requisitos. Con la bandera r
, puedes leer e instalar paquetes desde un archivo de texto:
pip install -r requirements.txt
Otra función muy utilizada es la bandera freeze
. Se utiliza para obtener una lista de las versiones de los paquetes que has instalado en tu entorno. Puedes utilizarla para dar salida a tus dependencias en un archivo de requisitos:
pip freeze >> requirements.txt
Comandos de Permisos
Python es muy bueno en el manejo de scripts y archivos. Para trabajar con estas tareas, necesitas tener algún conocimiento de cómo funcionan los permisos en tu sistema operativo.
6. sudo, runas
En los sistemas basados en Unix (macOS, Linux, BSD), debes tener permisos de superusuario para realizar ciertas tareas, como la instalación de un programa, como hicimos anteriormente.
El comando sudo te permite obtener brevemente permisos de administrador para ejecutar uno de estos comandos.
A continuación se muestra un ejemplo de instalación global de ueberzug (un paquete de Python de previsualización de imágenes):
sudo pip install ueberzug
El equivalente en Windows es Runas, que ejecuta un script como un usuario diferente o como administrador:
runas /noprofile /user:Administrator cmd
También hay otros proyectos como Gsudo, que hace que el proceso de elevación de permisos sea mucho más fácil que con otros comandos integrados de Windows:
:: Installs gsudo
choco install gsudo
:: Reads a file named MySecretFile.txt
gsudo type MySecretFile.txt
7. chmod
chmod
se utiliza para cambiar los permisos de los archivos y directorios en Unix.
Un uso común es hacer ejecutable un script de Python:
# Makes mypythonscript.py executablechmod +x
mypythonscript.py
Después de hacer ejecutable un script, puedes ejecutarlo directamente utilizando la notación ./
:
# Runs the script
./mypythonscript.py
Comandos de Navegación
Navegar por el sistema de archivos en una interfaz de línea de comandos es una tarea cotidiana para los desarrolladores de Python. Aquí tienes algunos comandos esenciales para navegar por tu sistema cuando programes con Python.
8. ls, dir
Para listar el contenido de un directorio (carpeta), tienes que utilizar el comando ls
(Unix) o dir
(Windows). Es probable que éste sea el primer comando que aprendiste cuando te encontraste por primera vez con la CLI.
Esta es la sintaxis utilizada:
ls # Muestra el contenido del directorio de trabajo
ls midirectorio
Y aquí tienes un ejemplo del contenido de una carpeta en un sistema de archivos local:
ls test_python/
# classes_error.py radius.py test-Django
Este comando tiene muchas banderas útiles. De hecho, a menudo se asocia a ls -al
para ver los archivos ocultos (los que tienen un punto al principio) y el modo, el tamaño y la fecha de cada archivo:
alias ls="ls -al"
# Results
total 20
drwx------ 3 daniel daniel 4096 ene 16 19:13 .
drwxr-xr-x 36 daniel daniel 4096 may 17 22:18 ..
-rw------- 1 daniel daniel 32 nov 17 2020 classes_error.py
-rw------- 1 daniel daniel 327 nov 10 2020 radius.py
drwx------ 4 daniel daniel 4096 ene 16 01:07 test-Django
En cuanto a Windows, puedes usar ls
usando Git Bash, o puedes hacer uso del comando incorporado dir
incorporado:
dir
9. pwd
pwd
significa «imprimir el directorio de trabajo», y hace exactamente eso: te da la ruta completa del directorio en el que estás:
pwd
# /home/daniel/github/HTML-site/images
Si alguna vez te has perdido en tu terminal, este comando es un salvavidas.
Puedes conseguir la misma salida en Windows utilizando el comando cd
sin parámetros (ten en cuenta que el mismo comando en Unix te llevaría al directorio raíz):
# Solo en Windows
cd
# D:FoldersubFolder
10. cp
Copiar archivos con un gestor gráfico de archivos es intuitivo, pero poco eficiente. Con este comando, puedes copiar cualquier tipo de archivo en tu sistema:
cp old_file.txt copy_old_file.txt
Para copiar todo el contenido de un directorio, debes utilizar cp -r
:
cp -r originaldirectory/ newdir
El equivalente a cp
en Windows es copy
:
copy old_file.txt copy_old_file.txt /a
11. cat, type
Para imprimir el contenido de un archivo de texto en el terminal sin abrir el archivo con un editor, puedes utilizar las funciones cat
, more
, o less
en Unix, y type
en Windows:
cat old_file.txt # Unix
type old_file.txt # Windows
# Content
Hi there I hope you're enjoying the article ...
as much as I've enjoyed writing it!
End of the sample.
12. mv, mover
El comando mv
mueve archivos y directorios de un directorio a otro — básicamente un cortar y pegar — o renombra un archivo si el destino no existe:
# Renombrar archivos
mv source_file.txt renamed_file.txt
# Mover Artchivo a otro directorio
mv renamed_file.txt newdir/
También puedes utilizar la coincidencia de patrones para mover archivos. Por ejemplo, mueve todos los archivos de .py
a otra carpeta:
mv *.py mypythondir/
Un comando equivalente en Windows es move
que tiene casi la misma funcionalidad que el anterior:
# Windows
move source_file.txt renamed_file.txt
13. rm, del
Puedes utilizar el comando rm
para eliminar archivos y directorios.
Para eliminar un archivo, no un directorio, debes utilizar:
rm file_to_remove.txt
Si quieres eliminar un directorio vacío, puedes utilizar la bandera recursiva (-r
):
rm -r dir_to_remove/
Para eliminar un directorio con contenido dentro, utilizarías las banderas de fuerza (-f
) y recursiva:
rm -rf dir_with_content/
De forma similar, se encuentra del
en Windows. Sé aún más cauteloso, ya que este comando no tiene las banderas de prevención vistas anteriormente:
del mywindowsdir
14. exit
Una vez que hayas terminado de programar en Python, deberías poder salir de tu sesión de shell. En la mayoría de los casos, esto también cerrará el terminal que estés utilizando:
exit
Ten en cuenta que este comando funciona tanto en Windows como en Unix.
Editores de Línea de Comandos
Una vez que te acostumbres a la línea de comandos, verás que es más lento cambiar de ventana o incluso utilizar el ratón para editar tu código.
Tener la posibilidad de programar mientras te mantienes en la línea de comandos no sólo es una gran manera de ahorrar tiempo, sino que también te hará parecer un ¡superhéroe entre tus compañeros de equipo!
Aquí tienes algunos de los editores de línea de comandos más utilizados.
15. Vim/Neovim
Vim y su descendiente, Neovim, son editores de texto basados en el teclado que se utilizan principalmente en la línea de comandos. Según una encuesta de 2021 de Stack Overflow, ocupan el 4º y el 1º lugar entre los editores más queridos por los desarrolladores.
Vim está preinstalado en Linux y macOS. De hecho, es el editor que más encontrarás al interactuar con los servidores. En Windows, tendrás que instalarlo utilizando el instalador ejecutable de la página de Vim.
Ahora, puedes disfrutar de la potencia de Vim con sólo escribir su nombre en la línea de comandos:
vim
Esto activará una interfaz basada en texto con múltiples combinaciones de teclado para cada acción que puedas necesitar al programar en Python.
Vim tiene una empinada curva de aprendizaje, pero una vez que lo domines, no cambiarás pronto a otra cosa.
16. Nano
Nano es otro editor de texto de línea de comandos que se utiliza principalmente para ediciones rápidas.
Digamos que has introducido un error de sintaxis en tu código pero no quieres abrir tu editor para corregirlo. Nano te ayuda a corregirlo directamente desde tu CLI:
nano
17. Emacs
Emacs es uno de los editores de texto más extensibles y personalizables que puedes encontrar. Tiene toda una sección dedicada a la programación en Python donde encontrarás toneladas de plugins para mejorar tu experiencia de desarrollo.
Emacs está disponible en casi todos los sistemas operativos, así que si aún no lo tienes instalado, consulta las instrucciones de descarga.
Para abrir Emacs desde la línea de comandos, utiliza la bandera de sistema sin ventana (-nw
):
emacs -nw
Herramientas de desarrollo
El desarrollo de Python no sólo implica programar, sino también manejar herramientas adicionales como entornos virtuales, sistemas de control de versiones y herramientas de despliegue.
Aprendiendo los siguientes comandos obtendrás una ventaja en el desarrollo de cualquier tipo de aplicación con Python.
18. virtualenv/venv
Los entornos virtuales son una técnica crucial utilizada en el desarrollo de Python. Con ellos, puedes aislar los paquetes utilizados en diferentes proyectos en una carpeta liviana, que suele llamarse .venv
.
Con Python 3.3 o superior, puedes utilizar el módulo incorporado venv para crear un entorno virtual:
# .venv siendo el nombre del entorno virtual
python -m venv .venv
virtualenv es un proyecto externo que es más rápido y más extensible en comparación con la opción incorporada. Para crear un entorno virtual, instala primero el paquete virtualenv:
# Instala virtualenv
pip install --user virtualenv
# Crea un entorno virtual .venv
virtualenv .venv
A continuación, tendrás que activar el entorno virtual. En Windows, ejecuta uno de los siguientes comandos en función de si utilizas cmd o PowerShell (recomendado):
:: PowerShell
.venvScriptsActivate.ps1
:: Cmd
.venvScriptsactivate.bat
En Linux o macOs:
source .venv/bin/activate
19. Git
El control de versiones es una de las prácticas más importantes en el desarrollo de software. Nos permite hacer un seguimiento de todas las modificaciones del código, colaborar con otros desarrolladores y ver una imagen clara del proceso de desarrollo en su conjunto.
Git es, con mucho, el sistema de control de versiones más utilizado. Puedes instalarlo desde su página de descargas.
Una vez instalado, puedes abrir un terminal y echar un primer vistazo a todas las opciones disponibles con este comando:
git help
Para crear un repositorio, utiliza git init
y escribe el nombre de tu repo:
git init name_repository
Initialized empty Git repository in /home/daniel/name_repository/.git/
Ten en cuenta que esto sólo creará un repositorio Git local. Si quieres tener un repositorio remoto donde almacenar todos tus cambios en línea, debes utilizar una plataforma como GitHub, o BitBucket.
Para clonar un repositorio remoto, utilizarás git clone
y la fuente del repositorio. En el siguiente ejemplo, estamos clonando un repositorio de GitHub a través de SSH:
git clone [email protected]:DaniDiazTech/HTML-site.git
...
Cloning into 'HTML-site'...
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 24 (delta 6), reused 21 (delta 4), pack-reused 0
Receiving objects: 100% (24/24), 4.98 MiB | 438.00 KiB/s, done.
Resolving deltas: 100% (6/6), done.
20. Docker
Docker facilita el empaquetado y envío de tus aplicaciones Python como contenedores ligeros, portátiles y autosuficientes. Ayuda tanto en el desarrollo como en el despliegue, permitiendo que todos los colaboradores trabajen con la misma configuración.
Para utilizar Docker, debes seguir rigurosamente el proceso de instalación que se muestra para tu sistema operativo en la página Obtener Docker.
Para listar los comandos Docker disponibles, ejecuta lo siguiente:
docker help
Sería difícil explicar cómo ejecutar Docker compose en esta estrecha sección, así que asegúrate de consultar la documentación oficial.
21. Grep
Grep es una utilidad esencial de la línea de comandos que se utiliza para la búsqueda de patrones en archivos de texto plano.
Un uso común es encontrar cuántas veces se repite una palabra en un archivo:
grep -ic python pythondocument.txt
2
En el ejemplo anterior, obtenemos el número de veces que se encuentra Python (sin distinguir mayúsculas y minúsculas) en el archivo pythondocument.txt
.
El equivalente de grep en Windows es findstr. Sin embargo, no es exactamente el mismo programa. Puedes utilizar el Git Bash para utilizar grep en Windows:
findstr /i /C python pythondocument.txt
2
22. HTTPie
HTTPie es un cliente HTTP de línea de comandos que facilita la interacción con los servicios web. Puedes utilizarlo, por ejemplo, para probar tus APIs de Python, o para interactuar con sitios de terceros.
Esta herramienta CLI está disponible en casi todos los gestores de paquetes, como se indica en la documentación oficial de HTTPie. Sin embargo, también está disponible como paquete de Python, por lo que puedes instalarlo con pip.
pip install httpie
Así es como se consulta una API remota, en este caso, la API de GitHub:
http GET https://api.github.com/users/danidiaztech
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
...
23. ping
ping
es un comando CLI disponible por defecto en prácticamente cualquier sistema operativo. Funciona enviando paquetes de datos a una dirección IP y probando cuánto tiempo tarda en transmitir los datos y recibir una respuesta, y luego te muestra los resultados en milisegundos
Este comando se utiliza principalmente para verificar la conexión entre dos máquinas, concretamente tu máquina y tu aplicación Python en un servidor web:
ping kinsta.com
PING kinsta.com(2606:4700:4400::ac40:917d (2606:4700:4400::ac40:917d)) 56 data bytes
64 bytes from 2606:4700:4400::ac40:917d (2606:4700:4400::ac40:917d): icmp_seq=1 ttl=50 time=686 ms
Tabla de Referencia de Comandos
A continuación, puedes encontrar una referencia rápida para cada comando que hemos discutido:
Comando | Uso |
---|---|
choco |
Instala paquetes en Windows |
brew |
Gestor de paquetes de macOS |
apt, pacman, dnf |
Gestor de paquetes en diferentes distribuciones de Linux |
python |
Ejecuta el intérprete de Python |
pip |
Gestor de paquetes de Python |
sudo, runas |
Programa de Unix y Windows utilizado para escalar los permisos |
chmod |
Cambia los permisos de los archivos |
ls |
Lista el contenido de un directorio |
pwd |
Imprime el directorio de trabajo |
cp |
Copia archivos y directorios |
cat |
Imprime el contenido de los archivos |
mv, move |
Mueve (renombra) archivos y directorios |
rm, del |
Elimina archivos y directorios |
exit |
Sale de la sesión de shell actual |
vim, neovim |
Editores de texto eficientes |
nano |
Editor de texto para ediciones rápidas |
emacs |
El editor más personalizable |
virtualenv, venv |
Generadores de entornos virtuales |
git |
Sistema de control de versiones |
docker |
Contenedor de aplicaciones |
grep |
Utilidad de comparación de patrones |
http |
Utilidad de comprobación de servicios web |
ping |
Comprueba la conectividad de la red |
kill |
Termina programas |
Resumen
Python es uno de los lenguajes de programación más fáciles de aprender. El único escollo que encontrarás es cuando te dirijas a la línea de comandos sin entender los comandos que vas a necesitar.
En este artículo, has aprendido sobre la línea de comandos y algunos de sus comandos más populares utilizados para el desarrollo de Python.
¿Qué otros comandos has encontrado útiles en el desarrollo de Python? ¡Compártelos en los comentarios de abajo!
Deja una respuesta