🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

O que é o Bash? Guia sobre o shell para iniciantes de Linux e o seu encanto

Ao criar sites, mais cedo ou mais tarde irá deparar-se com o "ecrã preto" — o terminal (ou CUI) — para operações de servidor. Muitos designers e programadores podem sentir que "parece difícil..." ou "preferia evitar...". No entanto, se souber um pouco de Bash, o programa interativo usado nesse ecrã preto, a sua eficiência de trabalho pode mejorar drasticamente, e o seu mundo de criação web irá expandir-se.

Neste artigo, vamos explicar o que é o Bash e como usá-lo em termos simples e amigáveis, para que até os iniciantes em Linux e operações de servidor possam ter o seu momento de "Aha!". Preparamos muitas amostras que pode copiar e colar para experimentar como "funciona", cobrindo tudo, desde operações essenciais de ficheiros a técnicas básicas para automatizar tarefas tediosas e repetitivas. Vamos transformar esse medo do ecrã preto na excitação de adquirir uma nova ferramenta!


Afinal, o que é um shell? E o que é o Bash?

Antes de falarmos do Bash, vamos primeiro entender o seu "chefe", o shell.

O shell: um "intérprete" que o liga ao SO

No coração de um computador reside o kernel, um programa que lida com as funções mais fundamentais do sistema operativo, como a gestão de hardware. Vamos pensar no kernel como um rei. Não podemos dar ordens diretamente ao rei (o kernel).

É aí que entra o shell. O shell é como um "intérprete" ou um "secretário" que traduz as nossas palavras (comandos) para uma linguagem que o rei consegue entender. Quando digitamos um comando no teclado, o shell recebe-o, interpreta-o e transmite-o ao kernel para executar a ordem. Esse "ecrã preto" é onde este shell opera.

Bash: o "intérprete" mais popular

Assim como existem diferentes tipos de intérpretes, existem vários tipos de shells (zsh, fish, csh, etc.). Entre eles, o mais amplamente e padronizadamente usado no Linux e macOS hoje em dia é o Bash (Bourne-Again SHell). A menos que tenha uma razão específica em contrário, pode assumir que o shell que estará a usar num servidor é quase certamente o Bash. Por outras palavras, pode pensar em aprender a usar o Bash como a mesma coisa que aprender as operações básicas de comandos do Linux.


Vamos pôr as mãos na massa! Comandos básicos do Bash

Ver para crer. Vamos experimentar alguns comandos básicos imediatamente. Abra a "Terminal.app" no macOS, ou um ambiente de terminal como o WSL ou o Git Bash no Windows, depois copie e cole os seguintes comandos e prima Enter.

pwd - Verificar a sua localização atual

pwd (Print Working Directory) é um comando que lhe diz, "Em que pasta (diretório) estou agora?". Se alguma vez se sentir perdido, digite isto primeiro.

$ pwd
/Users/yourname/Documents

ls - Listar ficheiros e pastas no interior

ls (List) exibe uma lista de ficheiros e pastas no diretório atual.

$ ls
ProjectA   ProjectB   memo.txt

Adicionar a opção -l permite-lhe ver informações mais detalhadas, como permissões de ficheiros, datas de modificação, e mais.

$ ls -l
total 8
drwxr-xr-x  3 yourname  staff   96  Jul  5 10:00 ProjectA
drwxr-xr-x  5 yourname  staff  160  Jul  5 10:01 ProjectB
-rw-r--r--  1 yourname  staff  512  Jul  5 10:02 memo.txt

cd - Mover para outra pasta

cd (Change Directory) é o comando para se mover para outro diretório. É como viajar de cidade em cidade num RPG.

$ cd ProjectA

Especificar .. (dois pontos) permite-lhe voltar para o diretório pai.

$ cd ..

Criar e apagar ficheiros e pastas

O básico das operações de linha de comandos é criar, mover e apagar ficheiros e pastas. Com o Bash, isto é instantâneo.

mkdir - Criar uma nova pasta

mkdir (Make Directory) cria uma nova pasta vazia.

$ mkdir new-website

touch - Criar um novo ficheiro vazio

O comando touch permite-lhe criar um ficheiro vazio. É útil para criar ficheiros modelo de HTML ou CSS.

$ touch index.html

echo e > - Escrever texto num ficheiro

echo é um comando que imprime uma cadeia de texto especificada no ecrã. Quando combinado com o símbolo > (redirecionamento), pode alterar o destino da saída do ecrã para um ficheiro, escrevendo assim conteúdo nele.

$ echo "<h1>Hello, Bash!</h1>" > index.html

Nota: > irá sobrescrever o ficheiro. Se quiser adicionar a um ficheiro, use >> em vez disso.


cat - Exibir o conteúdo de um ficheiro

Pode usar o comando cat para exibir o conteúdo de um ficheiro no terminal. Vamos verificar o conteúdo que acabámos de escrever.

$ cat index.html
<h1>Hello, Bash!</h1>

rm - Remover ficheiros ou pastas

rm (Remove) é um comando para apagar ficheiros e pastas. Este comando é muito poderoso; apaga os ficheiros de forma imediata e permanente, sem os enviar para a reciclagem, e não pode ser desfeito. Antes de o usar, verifique sempre se está a apagar a coisa certa com pwd e ls.

$ rm index.html

Para apagar uma pasta e todo o seu conteúdo, precisa da opção -r (Recursive).

$ rm -r old-website

O verdadeiro poder do Bash! Encadeando comandos com pipes

Uma das características mais poderosas do Bash é o pipe |. Esta é uma funcionalidade que "encadeia" a saída de um comando para se tornar a entrada do comando seguinte. Imagine uma passadeira rolante de uma fábrica, a passar itens de uma estação de processamento para a seguinte.

Por exemplo, se quiser "listar todos os ficheiros em detalhe (ls -l), e depois dessa lista, exibir apenas as linhas que contêm a palavra 'index' (grep index)", iria encadeá-los assim:

$ ls -l | grep "index"
-rw-r--r--  1 yourname  staff    23  Jul  5 10:30 index.html
-rw-r--r--  1 yourname  staff  1024  Jul  5 10:31 index.php

A beleza do Bash é que pode realizar operações complexas numa única linha, combinando comandos simples como este.


Introdução aos scripts Bash para automação

Digitar a mesma combinação de comandos repetidamente é entediante, certo? Em tais casos, pode guardar uma série de comandos num ficheiro e executá-los todos de uma vez. Isto é um script Bash.

Por exemplo, digamos que sempre que inicia um novo projeto de site, cria sempre a mesma estrutura de pastas (css, js, images) e um ficheiro `index.html`. Vamos criar um script chamado `create_project.sh` para automatizar esta tarefa.

#!/bin/bash
# Criar uma pasta de projeto com o nome especificado em tempo de execução
PROJECT_NAME=$1
mkdir $PROJECT_NAME
cd $PROJECT_NAME

# Criar várias subpastas
mkdir css js images

# Criar ficheiros HTML e CSS vazios
touch index.html css/style.css

echo "Project '$PROJECT_NAME' created successfully!"

Crie um ficheiro chamado `create_project.sh` com este conteúdo, e depois dê-lhe permissões de execução com o comando `chmod +x`.


$ chmod +x create_project.sh

Depois disso, só precisa de o executar como `./create_project.sh nome-do-projeto`, e a tarefa rotineira fica concluída num instante.

$ ./create_project.sh my-new-dream-site
Project 'my-new-dream-site' created successfully!

Conclusão

Ótimo trabalho! Neste artigo, aprendemos sobre os conceitos básicos e o uso do shell, o programa por trás do ecrã preto, e o seu representante mais proeminente, o Bash. Pode parecer inacessível no início, mas ao experimentar realmente alguns dos comandos aqui introduzidos, provavelmente sentiu um vislumbre da sua conveniência e poder.

Para um criador web, o Bash pode ser uma arma tão poderosa como as ferramentas de design ou os editores de código. Encorajamo-lo a continuar a aprender alguns comandos de cada vez e a aplicá-los no seu trabalho diário.

Para aqueles que pensam, "Mas o meu PC com Windows não tem Bash...", não se preocupem! No próximo artigo, vamos explicar como instalar o "WSL (Subsistema Windows para Linux)", que facilita o uso do Bash no Windows, com imagens para o guiar!

[Use também no Windows!] Passos para instalar o Bash com WSL (com imagens)