Conhecimentos básicos de terminal

Por Helena Oliveira

 - 

17 de novembro de 2020

 - 

Tempo de leitura11 min leitura

Conhecimentos básicos de terminal

Alguns programadores se assustam com o simples pensamento de abrir uma janela do terminal. Mas os programadores que entendem a linha de comando têm uma das melhores ferramentas à sua disposição.

Nesse artigo eu vou te mostrar porque você deve aprender a usar a linha de comando no terminal e quais são os principais comandos que todo programador deveria saber.

O que é um Terminal

Primeiramente, vamos entender o que é um terminal. Os terminais, também conhecidos como linhas de comando ou consoles, permitem realizar e automatizar tarefas em um computador sem o uso de uma interface gráfica do usuário.

O uso de um terminal nos permite enviar comandos de texto simples para o nosso computador para fazer coisas como navegar por um diretório ou copiar um arquivo.

O conhecimento de terminal forma a base para muitas automações e habilidades de programação mais complexas. A linha de comando se tornou um canivete suíço de recursos bloqueados por comandos simples. 

Para entendermos melhor a importância do uso do terminal, vamos fazer uma analogia com uma situação do nosso cotidiano. Imagine que você queira passear de ônibus para conhecer novos lugares na sua cidade. Se você for para um ponto de ônibus, você terá algumas opções de ônibus. Mas se você for para um terminal de ônibus, aumenta muito as opções que você tem disponível.

Pense na interface gráfica como o ponto de ônibus e pense na linha de comando como o terminal de ônibus. Com o terminal você pode fazer muito mais coisas. Se você reservar um tempo para aprender os comandos de terminal, você se surpreenderá com a quantidade de energia disponível nesse pequeno retângulo preto com o cursor branco piscando.

Por que todo programador deve aprender a linha de comando (terminal)

Você obtém maior controle sobre as funções do sistema.

Talvez a razão mais óbvia para aprender a linha de comando seja por sua função original: maior controle. Existem comandos acessíveis apenas via shell que podem controlar operações muito complexas em máquinas Unix / Linux e Windows.

Os comandos básicos podem envolver a alteração de permissões em um determinado arquivo ou a navegação para um diretório oculto. Exemplos mais complicados podem envolver a administração de servidores para uma configuração de servidor local como Apache / MySQL.

Vale a pena pelo menos explorar as possibilidades dos comandos do shell apenas para entender como eles funcionam. Ignorar uma parte da tecnologia apenas porque é muito confusa raramente é uma boa ideia.

Mas, além das funções do sistema, temos diversas ferramentas de desenvolvedor que operam apenas através da linha de comando. Nem tudo pode ser baixado e instalado como um aplicativo; portanto, a compreensão dos comandos do shell poupará a dor de cabeça de aprender a instalar as novas ferramentas mais recentes para desenvolvedores.

Você pode usar o NPM para instalações de pacotes.

O Node Package Manager (NPM) é uma das ferramentas mais populares entre os desenvolvedores modernos. Ele é construído sobre o Node.js, que se comporta como uma estrutura JavaScript para outros scripts.

Uma coisa a observar é que o NPM não possui uma GUI. Não há como clicar em um pequeno botão de "instalação", como você encontraria na Mac App Store ou .no Google Play Store. Todo pacote deve ser instalado manualmente através do comando npm em uma janela do terminal.

Isso pode parecer irritante para usuários que não são muito de usar o shell, mas na verdade isso oferece muito mais controle. A biblioteca NPM contém mais de 200.000 pacotes com mais adicionados a cada semana. É mais fácil hospedá-los externamente e permitir que o usuário decida o que instalar.

Lembre-se de que algumas dessas ferramentas podem ser instaladas separadamente por meio de seus próprios instaladores binários. Mas o NPM centraliza tudo para que você possa puxar todas as suas ferramentas favoritas com um comando amigável:

npm install

Você pode trabalhar com o NPM em menos de uma hora se dedicar tempo para praticar e realmente entender como ele funciona.

Você pode utilizar o controle de versão Git

Programadores e desenvolvedores devem entender o poder do controle de versão. A capacidade de dividir / mesclar um projeto em versões separadas é simplesmente incomparável.

A dificuldade do Git é memorizar os comandos de controle de versão que são inseridos na linha de comando do terminal. Existem aplicativos de desktop que oferecem uma GUI, mas eles ainda esperam que você entenda os fundamentos do controle de versão (clonagem, ramificação, mesclagem etc.).

Mas é recomendável aprender os comandos de linha de comando do git independentemente de usar uma GUI ou não.

O Git é uma ferramenta indispensável para todos os desenvolvedores e é mais um bom motivo para aprender a linha de comando.

Você deve usar pré-processadores e executores de tarefas

O desenvolvimento de front-end mudou muito nos últimos anos. Temos pré-processadores como Sass / Less para CSS e Haml / Jade para HTML. Também temos executores de tarefas como Gulp e Grunt para automatizar tarefas via JavaScript.

É quase um cenário completamente novo, onde essas técnicas são praticamente necessárias para criar sites modernos. Se você ainda não está ciente, ferramentas como Sass e Haml são executadas diretamente na linha de comando. Ambos os pré-processadores são construídos no Ruby e requerem comandos de terminal para compilar o código .

Você também pode configurar uma tarefa Gulp para automatizar o pré-processamento, mas isso também requer conhecimento de linha de comando. Com essas ferramentas se tornando necessárias para o processo de desenvolvimento, é vital entender até o básico do shell script e da linha de comando.

É para desenvolvimento de back-end local

Tudo, desde PHP até Rails e Python, requer alguma interação da linha de comando. Ferramentas de instalação como o MAMP tornaram as coisas mais fáceis, mas não há substituição para o poder bruto de trabalhar na linha de comando.

Enquanto o PHP pode ser instalado usando software como o MAMP, estruturas como o Laravel exigem o Composer, que é um gerenciador de dependências. Esse processo de instalação ocorre quase inteiramente via linha de comando.

A estrutura do Django requer um processo de instalação através do pip , um gerenciador de pacotes Python gratuito. Considere também o processo de configuração do seu próprio servidor local no Node.js. Com alguns comandos de shell, você terá mais controle sobre sua máquina para instalar pacotes, procurar atualizações, reiniciar um servidor local e instalar módulos para obter recursos aprimorados.

Independentemente da linguagem que você esteja usando ou tentando aprender, a linha de comando será uma ferramenta poderosa em seu arsenal. Mesmo uma compreensão muito básica do script de shell pode melhorar a sua confiança e o seu valor perante o mercado de trabalho.

Principais comandos do terminal

Veremos agora uma coleção de comandos que ajudarão você a tirar o máximo proveito do seu terminal. Alguns deles são integrados, outros são ferramentas gratuitas que podem ser instaladas em menos de um minuto.

grep

O comando grep procura padrões em cada arquivo. Ele também procura padrões separados por caracteres de nova linha e imprime cada linha que corresponde a um padrão.

A opção –i nos permite procurar uma string sem distinção entre maiúsculas e minúsculas no arquivo fornecido. Corresponde a palavras como "REACT", "REact" e "react".

Podemos encontrar o número de linhas que correspondem à sequência / padrão fornecido com a bandeira -c (count) .

grep "some string" file
grep -c "react" index.js
grep -i arquivo "REact“
grep -c "react" index.js

ls

O comando ls lista arquivos e diretórios no caminho ativo atual. Se o nome do caminho for um arquivo, ls exibe informações no arquivo de acordo com as opções solicitadas. Se o nome do caminho for um diretório, ls exibirá informações sobre os arquivos e subdiretórios.

Normalmente os arquivos são mostrados na cor cinza, enquanto as pastas são azuladas. Isso nos ajuda a fazer uma distinção entre pastas e arquivos.

ls

No prompt de comando do Windows usa-se dir.

pwd

O comando pwd é um utilitário de linha de comando para imprimir o diretório de trabalho atual. A saída imprimirá o caminho completo do sistema do diretório de trabalho atual para a saída padrão.

Por padrão, o comando pwd ignora links simbólicos, embora o caminho físico completo de um diretório atual possa ser mostrado com uma opção.

pwd

No prompt de comando do Windows usa-se cd.

cat

O comando cat possui três funções relacionadas a um arquivo de texto: Exibi-los, Combinando cópias, e Criando novos. O uso mais comum do cat é ler o conteúdo dos arquivos e cat geralmente é o programa mais conveniente para esse fim.

cat index.js

No exemplo a seguir, a saída padrão de cat é redirecionada usando o operador de redirecionamento de saída (representado por um colchete angular apontando para a direita) no arquivo2:

cat index.js > index2.js

No prompt de comando do Windows usa-se type.

echo

O comando echo no Linux é usado para exibir uma linha de texto / string que é passada como argumento.

O echo é um comando interno usado principalmente em scripts de shell e arquivos em lotes para gerar texto de status na tela ou em um arquivo.

echo "Hello!"

touch

O comando touch é usado para criar um arquivo sem nenhum conteúdo. O touch pode ser usado quando o usuário não possui dados para armazenar no momento da criação do arquivo.

No prompt de comando do Windows usa-se dir >.

Aqui estão as principais diferenças entre cat e touch:

  • cat- Usado para criar o arquivo com o conteúdo.
  • touch- Cria um arquivo sem nenhum conteúdo ou arquivos vazios.
touch index.js

cd

O comando cd é usado para navegar entre os diretórios. Use cd nome da pasta para avançar um nível de diretórios e use cd .. Para retroceder um nível.

cd Documentos

mkdir

O mkdir cria um novo diretório vazio no caminho ativo atual. Em vez de clicar no editor de texto ou na GUI, use este comando para criar novas pastas.

mkdir novapasta

rm

Rm significa remover, que faz exatamente o que diz que faz. Remove ou, em outras palavras, exclui um arquivo. Por padrão, o comando rm não remove os diretórios. Você precisa passar o sinalizador –r para remover diretórios.

Nota: Isso remove o diretório incondicionalmente, independentemente de o diretório ter conteúdo interno ou não. O comando rmdir remove o diretório se não houver conteúdo dentro do diretório.

rm teste.txt
rm -r teste
rmdir vazio

tail

O comando tail lê um arquivo e gera a última parte dele (a “cauda”). O comando tail é útil ao passar por relatórios de falhas ou logs de histórico anteriores.

Aqui está um exemplo de sua utilidade ao trabalhar com logs de arquivos.

tail createUl.js

No powershell, execute o comando Get-Content createUL.js -Tail 5.

wget

O GNU Wget é um pacote de software grátis para recuperar arquivos usando HTTP, HTTPS, FTP e FTPS - os protocolos de internet mais usados. É uma ferramenta de linha de comando não interativa, portanto pode ser chamada facilmente de scripts, tarefas CRON, terminais sem suporte ao X-Windows, etc.

O GNU Wget possui muitos recursos para facilitar a recuperação de arquivos grandes ou o espelhamento de sites inteiros da Web ou FTP, incluindo:

  • Pode retomar downloads abortados usando REST e RANGE;
  • Pode usar curingas de nome de arquivo e espelhar recursivamente diretórios;
  • Arquivos de mensagens baseados em NLS para vários idiomas diferentes;
  • Opcionalmente, converte links absolutos nos documentos baixados em links relativos, para que os documentos baixados possam se vincular localmente;
  • É executado na maioria dos sistemas operacionais do tipo UNIX e no Microsoft Windows;
  • Suporta proxies HTTP;
  • Suporta cookies HTTP;
  • Suporta conexões HTTP persistentes;
  • Operação autônoma / em segundo plano;
  • Usa registros de data e hora de arquivos locais para determinar se os documentos precisam ser baixados novamente ao espelhar;
  • O GNU Wget é distribuído sob a Licença Pública Geral GNU .
wget casaldev.com.br

find

O comando find permite procurar rapidamente um arquivo ou diretório. É útil quando você está trabalhando em um grande projeto com centenas de arquivos e vários diretórios.

O comando find também permite procurar o mesmo tipo de arquivos em um diretório (e seus subdiretórios). Por exemplo, o comando a seguir procurará todos os arquivos  .js no seu diretório de trabalho atual.

find -name "*.js"

mv

O comando mv move arquivos ou diretórios de um lugar para outro. O comando mv suporta a movimentação de arquivos únicos, vários arquivos e diretórios.

mv teste2.txt ./Adobe

tree

Tree é um pequeno utilitário de linha de comando que mostra uma representação visual dos arquivos em um diretório. Ele funciona recursivamente, passando por cada nível de aninhamento e desenhando uma árvore formatada com todo o conteúdo.

Dessa forma, você pode rapidamente olhar e encontrar os arquivos que está procurando. Há também a opção de filtrar os resultados usando um padrão simples do tipo reg.

tree C:\Users\tocha\Documents

curl

O Curl é uma ferramenta de linha de comando para fazer solicitações por HTTP (s), FTP e dezenas de outros protocolos dos quais você talvez nunca tenha ouvido falar. Ele pode baixar arquivos, verificar cabeçalhos de resposta e acessar livremente dados remotos.

No desenvolvimento da Web, o curl é frequentemente usado para testar conexões e trabalhar com APIs RESTful. Os comandos de curl podem ficar muito mais complicados que isso. Existem inúmeras opções para controlar cabeçalhos, cookies, autenticação e muito mais.

curl --version
curl http://www.google.com

git

O Git é de longe o sistema de controle de versão mais popular no momento. É uma das ferramentas que definem o desenvolvedor da Web moderno e simplesmente não conseguimos deixar de fora da nossa lista.

Existem muitos aplicativos e ferramentas de terceiros disponíveis, mas a maioria das pessoas prefere acessar o git nativamente pelo terminal. A CLI do git é realmente poderosa e pode lidar com até o histórico de projetos mais confuso.

git init
git add .
git commit -m "first commit"
git remote add origin [email protected]:casaldev/curso-terminal.git
git pusu -u origin master

du

O comando du , abreviação de uso do disco, é usado para estimar o uso do espaço no arquivo. O comando du pode ser usado para rastrear os arquivos e diretórios que estão consumindo muito espaço na unidade de disco rígido.

du C:\Users\tocha\Documents

tar

Tar é a ferramenta Unix padrão para trabalhar com arquivos compactados. Permite agrupar rapidamente vários arquivos em um pacote, facilitando o armazenamento e a movimentação posterior. Usando a opção -x, ele também pode extrair os arquivos .tar existentes.

Observe que a maioria dos outros formatos, como .zip e .rar, não pode ser aberta com o tar e requerem outros utilitários de comando, para descompactar .

Muitos sistemas Unix modernos executam uma versão expandida do tar (GNU tar) que também pode executar a compactação do tamanho do arquivo: Se o seu sistema operacional não possui essa versão do tar, você pode usar gzip , zcat ou compress para reduzir o tamanho dos arquivos compactados.

tar -czf file.tar.gz createUl.js createLi.js
tar -xzf file.tar.gz

md5sum

O Unix possui vários comandos de hash integrados, incluindo md5sum , sha1sum e outros. Essas ferramentas de linha de comando têm vários aplicativos de programação, mas o mais importante é que podem ser usadas para verificar a integridade dos arquivos.

Por exemplo, se você baixou um arquivo .iso de uma fonte não confiável, há alguma chance de que o arquivo contenha scripts prejudiciais. Para garantir que o .iso seja seguro, você pode gerar um MD5 ou outro hash. Você pode comparar a string gerada com a fornecida pelo autor original (por exemplo, UbuntuHashes ).

md5sum ubuntu-16.04.3-desktop-amd64.iso

ssh

Com o comando ssh, os usuários podem se conectar rapidamente a um host remoto e fazer login no shell do Unix. Isso possibilita a emissão conveniente de comandos no servidor diretamente do terminal da sua máquina local.

Para estabelecer uma conexão, basta especificar o endereço IP ou URL correto. Na primeira vez em que você se conectar a um novo servidor, haverá alguma forma de autenticação.

ssh [email protected]

Conclusão

Independentemente do tipo de desenvolvimento que você faz, é importante entender a linha de comando. Até conceitos básicos como a instalação do Ruby ou do Composer serão imensamente úteis durante a sua carreira como desenvolvedor web.

Para começar, encontre algo que você deseja aprender e mergulhar. Isso pode ser compilar com o Sass , instalar o Laravel ou configurar um servidor Node.js. local . Naturalmente, você enfrentará desafios ao longo do caminho, mas sites como o Stack Overflow contêm todas as respostas de programação necessárias.

À medida que mais ferramentas aumentarem a popularidade nos próximos anos, você ficará satisfeito em entender a sintaxe da linha de comando. O futuro do desenvolvimento da Web não está nos IDEs, mas nas ferramentas de código aberto que otimizam a maneira como codificamos e construímos sites.

Comentários

Faça o login para comentar e ver os comentários!

Login