Python é atualmente uma das linguagens de programação mais populares por aí. É uma linguagem poderosa e simples que pode ser usada em quase todos os ambientes de desenvolvimento.
Uma pesquisa Stack Overflow de 2021 revela Python como a linguagem de programação com a qual a maioria dos desenvolvedores mais querem trabalhar.
Graças a ferramentas como Jupyter Notebook, Google Colaboratory e compiladores online, você pode começar a usar esta linguagem sem ter que se preocupar em instalar nada.
Entretanto, se você quiser ir mais longe e aproveitar o verdadeiro poder de uma linguagem de propósito geral como Python (especialmente criando aplicativos complexos), mais cedo ou mais tarde você precisará aprender a usar o CLI, ou a interface de linha de comando.
A maioria dos desenvolvedores concorda que uma das partes mais intimidadoras do aprendizado do Python é o CLI. Mas com apenas alguns poucos comandos sob seu cinto, você o terá dominado em pouco tempo.
Neste artigo, você aprenderá os comandos mais úteis para o desenvolvimento do Python.
O que é a Interface da Linha de Comando?
A interface de linha de comando – frequentemente abreviada para CLI – é um programa baseado em texto usado para executar programas e fazer tarefas relacionadas ao sistema operacional (SO), como criar e gerenciar arquivos.
CLIs aceitam a entrada do teclado na forma de comandos e os passam para um shell ou intérprete de comandos. Estes shells interpretam os comandos dados pelo usuário, executam-nos e retornam um resultado frequentemente referido como saída.
Uma CLI pode executar diferentes shells. Esta captura de tela mostra dois CLIs diferentes, um com o shell Python e outro com o Bash:
Esses dois conceitos são frequentemente confundidos, então aqui está a quebra:
- CLI é a interface baseada em texto onde você digita os comandos e obtém a saída desses comandos. Ela pode executar diferentes shells.
- Um shell é um interpretador de comandos capaz de interagir com o sistema operacional.
Acredite ou não, cada programa que seu sistema está rodando envolve um comando. As janelas (GUI) com as quais você interage todos os dias são compostas de bindings que acionam comandos que permitem que você interaja com o sistema operacional.
Você precisa do CLI no desenvolvimento Python?
Para ser um desenvolvedor Full-Stack eficaz, você precisará ter um conhecimento sólido da linha de comando. Isto porque a maioria dos frameworks backend requer alguma forma de interação com uma CLI diretamente, e se você planeja implementar um aplicativo sozinho, a linha de comando será seu melhor amigo.
Atualmente, você pode executar Python a partir de inúmeros serviços online, bem como IDEs que facilitam muito a execução de seus programas. Mas se você gosta de desenvolvimento web – especialmente o backend, automação de tarefas, bloqueamento, usando um computador remoto via SSH, ou gerenciando ferramentas amigáveis ao Python como o Docker, você definitivamente precisará lidar com a CLI.
Na verdade, Python tem muitas bibliotecas para construir aplicativos CLI como Typer, Argsparse, e Click. Você pode passar de ser apenas um usuário CLI para ser um criador de seus próprios aplicativos CLI! Isso mostra a forte conexão entre os ambientes CLI e Python.
Uma vez que você tenha dominado a CLI, será muito mais fácil executar suas tarefas como programador Python, e você verá uma vantagem ao usar outras linguagens de programação como PHP, C, C++, ou Java.
Introdução à CLI
Dependendo de qual SO você está rodando, você encontrará diferenças em como você usa a linha de comando. Cada sistema operacional tem sua própria maneira de abrir e interagir com uma CLI devido a suas diferentes estruturas de organização de arquivos e shells de comando padrão.
Daremos uma olhada nos três sistemas operacionais mais frequentemente utilizados pelos desenvolvedores: Windows, Mac, e Linux.
Windows
O Windows é o sistema operacional mais popular no desktop, principalmente devido a sua etiqueta de preço e facilidade de uso. Caso você quiser acessar o CLI no Windows, você deve abrir o programa “Command Prompt” ou “Windows Powershell”.
Lembre-se de que o Windows usa para caminhos ao invés de
/
. Você deve ter isso em mente ao navegar pelos diretórios.
Também no Windows, você tem a alternativa de instalar o Git Bash, uma linha de comando que emula o comportamento do Bash shell no Windows. Isto tornaria a maioria dos comandos Unix mostrados abaixo compatíveis com o seu sistema.
Mac
Quanto ao Mac, a linha de comando é acessível a partir de um aplicativo embutido chamado “Terminal”. Você pode procurá-lo com o Launchpad, ou encontrá-lo na pasta “Utilities” em “applications”.
Linux
No Linux, você tem muitas opções diferentes dependendo da distro que você usa, mas o comando “Ctrl + Alt + T” tipicamente aciona o terminal padrão em seu sistema.
Agora, você deve ter uma janela parecida com a mostrada abaixo:
20 essenciais comandos Python que você deve saber
Uma vez que você tenha seu CLI aberto, é hora de mergulhar nos comandos shell superiores que tornarão sua vida como um desenvolvedor Python muito mais fácil.
Comandos de instalação
Você provavelmente já se deparou com um milhão de maneiras de instalar o Python. Mas às vezes, é muito mais conveniente fazê-lo apenas com um comando.
Aqui estão os diferentes comandos que o ajudarão a instalar o Python em diferentes sistemas operacionais.
1. Chocolatey
No Windows, você não tem um gerenciador de pacotes por padrão. Uma opção para ultrapassar isso é o Chocolatey, que fornece a você programas para instalar diretamente da linha de comando – obviamente incluindo o Python.
Assegure-se de instalar Chocolatey antes de executar o seguinte comando:
choco install python --pre
2. Homebraico e Pyenv
macOS vem com o Python 2.7 instalado por padrão. Entretanto, o Python 2.7 está agora obsoleto. A comunidade inteira mudou para Python 3. Para gerenciar suas versões Python de forma eficiente, você pode usar um programa como o pyenv.
Abra uma linha de comando e instale a última versão do Homebrew (um gerenciador de pacotes como o Chocolatey) com o seguinte comando:
/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Então você pode instalar o pyenv com este simples comando:
brew install pyenv
Você pode instalar uma versão específica do Python e defini-la como o executável Python global ao invés do Python 2:
pyenv install 3.10 # Version you want
pyenv global 3.10.4 # Sets that version as default
Agora, se você chamar Python, será a versão que você definirá com pyenv:
python
# Python 3.10.4 ....
# >>>
3. apt, pacman, e dnf
Com o uso extensivo do Python para software de código aberto, um grande número de distros Linux vem com o Python pré-instalado. Caso o seu sistema não o fizer, você pode instalar o Python com um gerenciador de pacotes.
Em distribuições baseadas em Debian (Ubuntu, Linux Mint, Kali Linux), você usará o apt, que significa “ferramenta de pacotes avançada”:
sudo apt update
sudo apt install python3
Adicionalmente, se você quiser definir Python 3 como seu intérprete Python padrão, você pode usar o seguinte comando:
sudo apt install python-is-python3
Em distros baseadas em Arch, você pode usar o gerenciador de pacotes oficial pacman:
sudo pacman -S python
Em distribuições Linux baseadas em Fedora e RPM (Red Hat, CentOS), você usa o dnf:
sudo dnf install python3
Comandos do intérprete
Vamos rever rapidamente as bandeiras principais – opções de linha de comando – do comando Python e seu gerenciador de pacotes, pip.
4. python
O comando python
tem várias bandeiras, o que significa opções que modificam o comportamento da execução do código.
Antes de mais nada, para executar um arquivo Python, basta chamar o intérprete e adicionar o nome do arquivo, incluindo a extensão .py
:
python helloworld.py
Caso você precisa lembrar o que uma bandeira faz, você pode usar a bandeira help
em qualquer uma destas 3 apresentações:
python -?
python -h
python --help
Para imprimir (veja) a versão do Python que você está executando, use o seguinte:
python -V
python --version
Caso você quiser executar o código Python sem abrir e editar um arquivo .py
, você pode executá-lo diretamente do seu terminal com a bandeira de comando:
# Hello, World!
python -c "print('Hello, World!')"
A bandeira m
executa um módulo Python como um script. Isto é realmente útil quando você quer criar um ambiente virtual com o módulo venv embutido:
python -m venv .venv
5. pip
O comando pip procura por pacotes no índice de pacotes Python (PyPI), resolve dependências e instala a versão do pacote que você indicou.
Para instalar um pacote Python, basta digitar pip
e o nome do pacote que você deseja instalar.
O seguinte comando irá instalar a última versão do pacote:
pip install django
Caso você quiser uma versão específica, execute o seguinte comando:
# pip install package==version
pip install django==4.0.4
Ao trabalhar em projetos colaborativos, você precisa manter um registro das dependências, geralmente com um arquivo de requisitos. Com a bandeira r
, você consegue ler e instalar pacotes a partir de um arquivo texto:
pip install -r requirements.txt
Outra característica comumente usada é a bandeira freeze
. Ela é usada para emitir uma lista das versões dos pacotes que você instalou em seu ambiente. Você pode usá-la para emitir suas dependências para um arquivo de requisitos:
pip freeze >> requirements.txt
Comandos de permissão
Python é realmente bom em scripting e manipulação de arquivos. Para trabalhar com estas tarefas, você precisa ter algum conhecimento de como as permissões funcionam em seu sistema operacional.
6. sudo, runas
Em sistemas baseados em Unix (macOS, Linux, BSD), você deve ter permissões de super usuário para realizar certas tarefas, como instalar um programa, como fizemos acima.
O comando sudo permite que você obtenha rapidamente permissões de administrador para executar um destes comandos.
Abaixo está um exemplo de instalação global do ueberzug (um pacote Python de pré-visualização de imagem):
sudo pip install ueberzug
O equivalente do Windows é Runas, que executa um script como um usuário diferente ou como um administrador:
runas /noprofile /user:Administrator cmd
Há também outros projetos como o Gsudo, tornando o processo de elevação de permissões muito mais fácil do que com outros comandos embutidos do Windows:
:: Installs gsudo
choco install gsudo
:: Reads a file named MySecretFile.txt
gsudo type MySecretFile.txt
7. chmod
chmod
é usado para mudar as permissões de arquivos e diretórios no Unix.
Um uso comum é tornar um script Python executável:
# Makes mypythonscript.py executablechmod +x
mypythonscript.py
Após você ter feito um script executável, você pode executá-lo diretamente usando a notação ./
:
# Runs the script
./mypythonscript.py
Comandos de navegação
Navegar no sistema de arquivos em uma interface de linha de comando é uma tarefa diária para os desenvolvedores Python. Aqui estão alguns comandos essenciais usados para navegar no seu sistema quando programando com Python.
8. ls, dir
Para listar o conteúdo de um diretório (pasta), você tem que usar o comando ls
(Unix) ou dir
(Windows). Este foi provavelmente o primeiro comando que você aprendeu ao encontrar a CLI pela primeira vez.
Aqui está a sintaxe utilizada:
ls # Shows the contents of the working directory
ls mydirectory
E aqui está um exemplo do conteúdo de uma pasta em um sistema de arquivos local:
ls test_python/
# classes_error.py radius.py test-Django
Este comando tem muitas bandeiras úteis. Na verdade, ele é frequentemente aliado a ls -al
para visualizar arquivos ocultos (aqueles com um ponto no início) e o modo, tamanho e data de cada arquivo:
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
Quanto ao Windows, você pode usar ls
usando o Git Bash, ou você pode recorrer ao comando dir
:
dir
9. pwd
pwd
significa “print working directory” (imprimir diretório de trabalho), e faz exatamente isso: dá a você o caminho completo do diretório em que você está:
pwd
# /home/daniel/github/HTML-site/images
Caso você já se perdeu em seu terminal, este comando é um salva-vidas.
Você pode alcançar a mesma saída no Windows usando o comando cd
sem parâmetros (note que o mesmo comando no Unix o levaria para o diretório home):
# Only on Windows
cd
# D:FoldersubFolder
10. cp
Copiar arquivos com um gerenciador de arquivos gráficos é intuitivo, porém ineficiente. Com este comando, você pode copiar qualquer tipo de arquivo sobre o seu sistema:
cp old_file.txt copy_old_file.txt
Para copiar todo o conteúdo de um diretório, você deve usar cp -r
:
cp -r originaldirectory/ newdir
O equivalente para cp
no Windows é copy
:
copy old_file.txt copy_old_file.txt /a
11. gato, tipo
Para imprimir o conteúdo de um arquivo de texto no terminal sem abrir o arquivo com um editor, você pode usar o cat
, more
, ou less
no Unix, e type
no 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, move
O comando mv
move arquivos e diretórios de um diretório para outro – basicamente um cortar e colar – ou renomeia um arquivo se o destino não existir:
# Rename files
mv source_file.txt renamed_file.txt
# File to another directory
mv renamed_file.txt newdir/
Você também pode usar a combinação de padrões para mover arquivos. Por exemplo, mova todos os arquivos .py
para outra pasta:
mv *.py mypythondir/
Um comando equivalente no Windows é move
que tem quase a mesma funcionalidade que as anteriores:
# Windows
move source_file.txt renamed_file.txt
13. rm, del
Você pode usar o comando rm
para remover arquivos e diretórios.
Para excluir um arquivo, não um diretório, você usaria:
rm file_to_remove.txt
Caso você quiser apagar um diretório vazio, você pode usar a bandeira recursiva (-r
):
rm -r dir_to_remove/
Para remover um diretório com conteúdo dentro, você usaria a força (-f
) e bandeiras recursivas:
rm -rf dir_with_content/
Em forma similar, você encontra del
no Windows. Seja ainda mais cauteloso, já que este comando não tem as bandeiras de prevenção vistas acima:
del mywindowsdir
[note type=”info”]Tenha cuidado com este comando. Uma vez que você tenha apagado algo, pode ser muito difícil recuperá-lo. [/notice]
14. saída
Uma vez terminada sua programação Python, você deve conseguir sair de sua sessão shell. Geralmente, isto também fecharia o terminal que você está usando:
exit
Note que este comando funciona tanto no Windows quanto no Unix.
Editores de linha de comando
Quando você se acostumar com a linha de comando, você verá que é mais lento trocar de janela ou até mesmo usar o mouse para editar seu código.
Ter a habilidade de codificar enquanto você permanece na linha de comando não é apenas uma ótima maneira de economizar tempo, mas também fará você parecer um super-herói entre seus colegas de equipe!
Aqui estão alguns dos editores de linha de comando mais utilizados.
15. Vim/Neovim
Vim e seu descendente, Neovim, são editores de texto baseados em teclado, usados principalmente na linha de comando. De acordo com uma pesquisa de Stack Overflow de 2021, eles estão em 4º e 1º lugar entre os editores mais amados pelos desenvolvedores.
O Vim é pré-instalado no Linux e no macOS. Na verdade, é o editor que você vai encontrar mais quando interagir com servidores. No Windows, você precisará instalá-lo usando o instalador executável da página do Vim.
Agora, você pode desfrutar do poder de Vim apenas digitando seu nome na linha de comando:
vim
Isto irá acionar uma interface baseada em texto com múltiplas combinações de teclado para cada ação que você pode precisar quando estiver codificando em Python.
Vim tem uma curva de aprendizado íngreme, mas uma vez que você a domina, você não vai mudar logo para outra coisa.
16. Nano
Nano é outro editor de texto de linha de comando que é mais usado para edições rápidas.
Digamos que você introduziu um erro de sintaxe em seu código, mas não quer abrir seu editor para corrigi-lo. O Nano ajuda você a corrigi-lo diretamente do seu CLI:
nano
17. Emacs
Emacs é um dos editores de texto mais extensíveis e customizáveis que você pode encontrar. Ele tem uma seção inteira dedicada à programação Python onde você encontrará toneladas de plugins para melhorar sua experiência de desenvolvimento.
O Emacs está disponível em quase todos os sistemas operacionais, então se você ainda não tiver instalado, confira as instruções para download.
Para abrir o Emacs a partir do tipo de linha de comando, use a bandeira de sistema sem janelas (-nw
):
emacs -nw
Ferramentas de desenvolvimento
O desenvolvimento Python implica não apenas na codificação, mas também no manuseio de ferramentas adicionais tais como ambientes virtuais, sistemas de controle de versão e ferramentas de implantação.
Ao aprender os comandos abaixo você terá a vantagem de desenvolver qualquer tipo de aplicativo com Python.
18. virtualenv/venv
Os ambientes virtuais são uma técnica crucial utilizada no desenvolvimento do Python. Com eles, você consegue isolar os pacotes usados em diferentes projetos em uma pasta leve, na maioria das vezes chamada .venv
.
Com o Python 3.3 ou superior, você pode usar o módulo venv embutido para criar um ambiente virtual:
# .venv being the name of the virtual environment
python -m venv .venv
virtualenv é um projeto externo que é mais rápido e extensível em comparação com a opção integrada. Para criar um ambiente virtual, primeiro instale o pacote virtualenv:
# Installs virtualenv
pip install --user virtualenv
# Creates a .venv virtual environment
virtualenv .venv
A seguir, você precisará ativar o ambiente virtual. No Windows, execute um dos seguintes comandos com base no uso de cmd ou PowerShell (recomendado):
:: PowerShell
.venvScriptsActivate.ps1
:: Cmd
.venvScriptsactivate.bat
Em Linux ou macOs:
source .venv/bin/activate
19. Git
O controle de versão é uma das práticas mais importantes no desenvolvimento de software. Ele nos permite acompanhar todas as modificações de código, colaborar com outros desenvolvedores e ver uma imagem clara do processo de desenvolvimento.
Git é de longe o sistema de controle de versão mais usado. Você pode instalá-lo a partir de sua página de download.
Uma vez instalado, você pode abrir um terminal e obter um primeiro olhar sobre todas as opções disponíveis com este comando:
git help
Para criar um repositório, use git init
e digite o nome do seu repo:
git init name_repository
Initialized empty Git repository in /home/daniel/name_repository/.git/
Note que isso só criará um repo local Git. Caso você quiser ter um repositório remoto onde você armazene todas as suas mudanças online, você deve usar uma plataforma como GitHub, ou BitBucket.
Para clonar um repositório remoto, você usará git clone
e a fonte do repo. No exemplo abaixo, nós estamos clonando um repo GitHub sobre o 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
O Docker facilita embalar e enviar seus aplicativos Python como contêineres leves, portáteis e autossuficientes. Ele ajuda tanto no desenvolvimento quanto na implantação, permitindo que todos os colaboradores trabalhem com as mesmas configurações.
Para usar o Docker, você deve seguir rigorosamente o processo de instalação mostrado para o seu sistema operacional na página Get Docker.
Para listar os comandos disponíveis do Docker, execute o seguinte:
docker help
Seria difícil explicar como executar a composição do Docker nesta seção estreita, então não deixe de conferir a documentação oficial.
21. Grep
Grep é um utilitário de linha de comando essencial usado para correspondência de padrões em arquivos de texto simples.
Um uso comum é descobrir quantas vezes uma palavra se repete em um arquivo:
grep -ic python pythondocument.txt
2
No exemplo acima, nós obtemos o número de vezes que Python (insensível a casos) é encontrado no arquivo pythondocument.txt
.
O equivalente do Windows ao grep é findtr. No entanto, não é bem o mesmo programa. Você pode usar o Git Bash para utilizar o grep no Windows:
findstr /i /C python pythondocument.txt
2
22. HTTPie
HTTPie é um cliente HTTP de linha de comando que facilita a interação com serviços web. Você pode usá-lo, por exemplo, para testar suas APIs Python, ou interagir com sites de terceiros.
Esta ferramenta CLI está disponível em quase todos os gerenciadores de pacotes, como mostrado na documentação oficial da HTTPie. No entanto, ela também está disponível como um pacote Python, então você pode instalá-la com o pip.
pip install httpie
Aqui está como você consulta uma API remota – neste caso, GitHub API:
http GET https://api.github.com/users/danidiaztech
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
...
23. ping
ping
é um comando CLI disponível por padrão em praticamente qualquer sistema operacional. Ele funciona enviando pacotes de dados para um endereço IP e testando quanto tempo leva para transmitir dados e receber uma resposta, depois mostra os resultados em milissegundos.
Este comando é usado principalmente para verificar a conexão entre duas máquinas, ou seja, sua máquina e seu aplicativo Python em um 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
Tabela de referência de comando
Abaixo, você pode encontrar uma referência rápida para cada comando que discutimos:
CommandUsagechoco
Instala pacotes no Windows brew
gerenciador de pacotes macOS apt, pacman, dnf
Gerenciador de pacotes em diferentes distros Linux python
Executa o interpretador Python pip
Gerenciador de pacotes Python sudo, runas
Programa Unix e Windows usado para escalar permissões chmod
Altera permissões de arquivos ls
Lista o conteúdo de um diretório pwd
Imprime o diretório de trabalho cp
Copia arquivos e diretórios cat
Imprime conteúdo de arquivos mv, move
Movimenta (renomeia) arquivos e diretórios rm, del
Remover arquivos e diretórios exit
sai da atual sessão de shell vim, neovim
Edição de texto eficiente nano
Editor de texto para edições rápidas emacs
O editor mais customizável virtualenv, venv
Geradores de ambiente virtual git
Sistema de controle de versão docker
Sistema de controle de versão grep
Utilitário de correspondência de padrões http
Utilitário de teste de serviço web ping
Testa a conectividade de rede kill
Termina programas.
Resumo
Python é uma das linguagens de programação mais fáceis de aprender. O único tropeço que você vai encontrar é quando você entra na linha de comando sem entender os comandos que você precisará.
Neste artigo, você aprendeu sobre a linha de comando e alguns de seus comandos mais populares como usados para o desenvolvimento do Python.
Que outros comandos você achou úteis no desenvolvimento do Python? Compartilhe-os nos comentários abaixo!
Deixe um comentário