Post

Estação de Trabalho como Código (Parte 1): Fundação com Ubuntu 24.04 e Git

Primeira parte da série sobre como criar uma estação de trabalho para SysAdmins no Ubuntu 24.04. Aprenda a atualizar o sistema, instalar ferramentas essenciais e versionar seu ambiente com Git, criando uma estrutura de diretórios robusta para gerenciar dotfiles e scripts.

Estação de Trabalho como Código (Parte 1): Fundação com Ubuntu 24.04 e Git

Introdução

Bem-vindo à primeira parte desta série de tutoriais dedicada a construir uma estação de trabalho robusta e automatizada para profissionais de TI e SysAdmins utilizando o Ubuntu 24.04. O conceito central que guia esta jornada é o de Workspace as Code (Estação de Trabalho como Código), onde tratamos as configurações, ferramentas e todo o ambiente de desenvolvimento como código, aplicando práticas de versionamento, automação e reprodutibilidade.

Neste primeiro capítulo, lançaremos a fundação do nosso ambiente, garantindo que o sistema operacional esteja atualizado e equipado com as ferramentas essenciais. Em seguida, daremos o passo mais importante: iniciar um repositório Git para começar a versionar cada mudança, garantindo que possamos rastrear, reverter e compartilhar nossas configurações de forma eficiente.

Informação: Esta série foi projetada para ser sequencial. Cada parte constrói sobre a anterior, embora algumas seções possam ser adaptadas de forma independente.

Objetivos desta Parte

  • Atualizar o sistema operacional Ubuntu 24.04 para a versão mais recente.
  • Instalar um conjunto de ferramentas de linha de comando (CLI) essenciais para SysAdmins.
  • Inicializar um repositório Git para versionar todas as configurações do ambiente.
  • Criar uma estrutura de diretórios organizada para o projeto workspace-as-code.
  • Validar que todas as ferramentas foram instaladas corretamente.

Pré-requisitos

  • Uma instalação funcional do Ubuntu 24.04 Desktop.
  • Acesso à internet e privilégios de administrador (sudo).
  • Conhecimento básico de terminal Linux.

A quem se destina

Este tutorial é ideal para:

  • SysAdmins iniciantes: Que querem estruturar melhor seu ambiente de trabalho
  • DevOps Engineers: Que desejam começar com Infraestrutura como Código (IaC)
  • Desenvolvedores: Interessados em automação e produtividade
  • Profissionais de TI: Que querem modernizar sua estação de trabalho e aplicar práticas profissionais

Não é necessário ter experiência prévia com Git ou Linux avançado, mas é recomendável ter familiaridade básica com terminal e conhecimento de comandos como cd, ls e mkdir.

Tempo Estimado

30-40 minutos

Isso inclui:

  • Atualização do sistema: ~10 min
  • Instalação de ferramentas: ~15 min
  • Configuração do Git: ~5-10 min
  • Primeiro commit e push: ~5 min

Dica: A atualização do sistema pode levar mais tempo dependendo da sua conexão e da quantidade de atualizações disponíveis. Você pode deixar rodando enquanto lê a próxima seção.


Verificando Pré-Requisitos

Antes de começar, verifique se você atende aos requisitos mínimos:

Verificando a Versão do Ubuntu

1
2
3
4
5
6
7
8
# Verifique a versão do Ubuntu
$ lsb_release -a

# Você deve ver algo como:
# No LSB modules are available.
# Distributor ID: Ubuntu
# Release: 24.04
# Codename: noble

Se você não vê “24.04”, este tutorial ainda funcionará, mas algumas ferramentas podem ter comportamentos ligeiramente diferentes. Recomendamos atualizar para Ubuntu 24.04 LTS.

Verificando Acesso sudo

1
2
3
4
5
6
7
# Verifique se tem acesso sudo
$ sudo whoami

# Você deve ver:
# root

# Se receber "sudo: command not found", você não tem privilégios de administrador

Atenção: Este tutorial requer acesso sudo. Se você não o possui, peça ao administrador do sistema.

Verificando Conexão com Internet

1
2
3
4
# Teste sua conexão
$ ping -c 1 8.8.8.8

# Você deve ver respostas bem-sucedidas

Atualização do Sistema e Instalação de Ferramentas

O primeiro passo em qualquer nova configuração de sistema é garantir que todos os pacotes estejam atualizados. Isso corrige vulnerabilidades de segurança, melhora a compatibilidade e garante que as novas ferramentas que instalaremos funcionem corretamente.

Atualizando o Sistema Operacional

Execute os seguintes comandos para atualizar os repositórios de pacotes, aplicar as atualizações e, em seguida, limpar pacotes órfãos ou desnecessários.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Atualize os repositórios de pacotes
$ sudo apt update

# Atualize todos os pacotes instalados
$ sudo apt upgrade -y

# Remova pacotes órfãos e desnecessários
$ sudo apt autoremove -y && sudo apt autoclean

# Você verá algo como:
# Reading package lists... Done
# ...
# Processing triggers for ...
# Done.

Informação: O -y flag responde “sim” automaticamente a todas as perguntas. Se preferir revisar as mudanças antes, omita este flag.

Instalando Ferramentas Essenciais

Agora, vamos instalar um conjunto de ferramentas que formam a espinha dorsal do nosso arsenal de SysAdmin. Cada uma delas tem um propósito específico que facilitará nosso trabalho diário.

Entendendo as Ferramentas

Aqui está uma visão geral de cada ferramenta que instalaremos:

FerramentaCategoriaPropósitoPróxima Parte
vimEditorEditor de texto poderoso e ubíquoParte 3
fzfBuscaFuzzy finder para busca interativaParte 2
gitVersionamentoControle de versão (pode estar pré-instalado)Esta parte
tmuxTerminalMultiplexador de terminalParte 3
curl, wgetDownloadFerramentas para baixar arquivosPartes posteriores
jqJSONProcessador de JSON em linha de comandoPartes posteriores
ripgrep (rg)BuscaAlternativa rápida ao grepParte 2
batVisualizaçãoCat com realce de sintaxePartes posteriores
ezaListagemAlternativa moderna ao lsParte 2
btopMonitoramentoMonitor de sistema interativoPartes posteriores
nmap, tcpdumpRedeFerramentas de análise de redePartes posteriores
rcloneCloudSincronização com provedores de nuvemPartes posteriores

Dica Útil: Você não precisa usar todas essas ferramentas imediatamente. Conforme avançar na série, você aprenderá quando e como usar cada uma. Por enquanto, basta instalar e deixar disponível.

Instalação via APT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Instalação de pacotes via APT (gerenciador de pacotes do Ubuntu)
$ sudo apt install -y \
    vim fzf ipcalc wget curl tcpdump git traceroute nmap plocate \
    whois dnsutils grc tmux eza btop lshw hwinfo fwupd ethtool \
    iftop jq bat fd-find ripgrep strace rsync rclone remmina \
    network-manager-l2tp network-manager-l2tp-gnome tldr

# Você verá algo como:
# Reading package lists... Done
# Building dependency tree... Done
# The following NEW packages will be installed:
# ...
# Setting up vim (2:x.x.x-1) ...
# Done.

Instalação via Snap (Opcional)

Se desejar, você também pode instalar algumas aplicações via Snap (um gerenciador de pacotes alternativo):

1
2
3
4
5
6
7
# Instalação de pacotes via Snap
$ sudo snap install joplin-desktop brave drawing

# Você verá algo como:
# joplin-desktop 2.x.x from Joplin (joplin) installed
# brave 1.x.x from Brave Software (brave-snapcrafters) installed
# drawing 1.x.x from GNOME (gnome) installed

Informação: Snap é opcional. As ferramentas essenciais já foram instaladas via APT. Snap é útil para aplicações mais pesadas como navegadores e editores gráficos.


Setup Inicial: Versionando seu Ambiente com Git

O coração da nossa abordagem “Workspace as Code” é o Git. Vamos criar um repositório para armazenar todos os nossos arquivos de configuração (dotfiles), scripts e automações.

Escolhendo seu Provedor Git

Este tutorial usa GitLab como exemplo, mas você pode usar qualquer provedor Git que preferir:

ProvedorURLMelhor ParaTipo
GitHubhttps://github.comComunidade, projetos open-sourceNuvem
GitLabhttps://gitlab.comPrivacidade, CI/CD integradoNuvem
GiteaAuto-hospedadoControle total, sem dependências externasSelf-hosted
GitbucketAuto-hospedadoAlternativa leve ao GitLabSelf-hosted

As instruções abaixo funcionam para qualquer provedor. Apenas ajuste a URL conforme necessário.

Planejando a Estrutura de Diretórios

Uma boa organização é fundamental. Propomos a seguinte estrutura dentro de um diretório principal chamado workspace-as-code/:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
workspace-as-code/
│
├── 📁 dotfiles/          ← Seus arquivos de configuração (.bashrc, .vimrc, etc)
│   ├── .bashrc
│   ├── .bash_aliases
│   ├── .vimrc
│   └── .tmux.conf
│
├── 📁 scripts/           ← Scripts de automação e utilitários
│   ├── setup.sh
│   ├── backup.sh
│   └── validate.sh
│
├── 📁 terraform/         ← Infraestrutura como código (próximas partes)
│   └── main.tf
│
├── 📁 packer/            ← Templates de imagens (próximas partes)
│   └── ubuntu.json
│
├── 📁 ansible/           ← Configuração de máquinas (próximas partes)
│   └── playbook.yml
│
├── 📄 .gitignore         ← Arquivos a ignorar no Git
├── 📄 README.md          ← Documentação do projeto
└── 📄 .git/              ← Metadados do Git (criado automaticamente)

Cada pasta será preenchida conforme avançamos na série!

Criando o Repositório Local e no Provedor Git

Vamos seguir os passos para criar o projeto no seu provedor Git e configurar o repositório localmente.

Passo 1: Crie um novo projeto no seu provedor Git

Para GitHub:

  1. Acesse https://github.com/new
  2. Nomeie o repositório como workspace-as-code
  3. Marque como Private (recomendado)
  4. Desmarque “Initialize this repository with a README”
  5. Clique em Create repository

Para GitLab:

  1. Acesse sua conta no GitLab e clique em New project
  2. Selecione Create blank project
  3. Nomeie o projeto como workspace-as-code
  4. Marque-o como Private (recomendado, pois pode conter informações sensíveis)
  5. Desmarque “Initialize repository with a README”
  6. Clique em Create project

Para Gitea auto-hospedado:

  1. Acesse seu servidor Gitea
  2. Clique em + e selecione New Repository
  3. Nomeie como workspace-as-code
  4. Clique em Create Repository

Passo 2: Configure o Git localmente e crie a estrutura do projeto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Crie o diretório principal do projeto e acesse-o
$ mkdir ~/workspace-as-code
$ cd ~/workspace-as-code

# Inicialize um repositório Git
$ git init

# Configure sua identidade no Git (apenas para este repositório)
# Substitua pelos seus dados
$ git config --local user.name "Seu Nome"
$ git config --local user.email "seu-email@exemplo.com"

# Verifique a configuração
$ git config --local --list

# Você deve ver algo como:
# user.name=Seu Nome
# user.email=seu-email@exemplo.com
# core.repositoryformatversion=0
# core.filemode=true
# core.bare=false

# Crie a estrutura de diretórios que planejamos
$ mkdir -p ansible dotfiles packer scripts terraform

Informação: Os arquivos de configuração serão criados conforme avançamos na série. Por enquanto, estamos apenas criando a estrutura.

Passo 3: Crie um arquivo .gitignore inteligente

O .gitignore é crucial para evitar que segredos, logs e arquivos de cache sejam enviados para o repositório. Isso é uma questão de segurança crítica.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Crie o arquivo .gitignore com conteúdo seguro
$ cat << 'EOF' > .gitignore
# ============================================
# Arquivos de Sistema e Cache
# ============================================
.DS_Store
.AppleDouble
.LSOverride
*.swp
*.swo
*~
.vscode/
.idea/

# ============================================
# Logs e Arquivos de Build
# ============================================
*.log
logs/
build/
dist/
*.egg-info/

# ============================================
# SEGREDOS E CREDENCIAIS (MUITO IMPORTANTE!)
# ============================================
*.key
*.pem
*.secret
*.p12
*.pfx
/secrets/
credentials.json
.env
.env.local
.env.*.local
aws_credentials
.aws/credentials
.ssh/

# ============================================
# Arquivos de Cache do Terraform
# ============================================
.terraform/
*.tfstate
*.tfstate.backup
crash.log
crash.*.log
override.tf
override.tf.json
*_override.tf
*_override.tf.json
.tfvars
.tfvars.json
.terraform.lock.hcl

# ============================================
# Arquivos de Cache do Ansible
# ============================================
*.retry
.ansible/

# ============================================
# Arquivos de Cache do Packer
# ============================================
manifest.json
packer-manifest.json

# ============================================
# Arquivos Temporários
# ============================================
*.tmp
*.temp
tmp/
temp/
EOF

Atenção: Nunca versione chaves de API, senhas, certificados ou qualquer tipo de credencial. O .gitignore é sua primeira linha de defesa contra vazamentos de segurança. Se você acidentalmente commitar um segredo, use git rm --cached e git filter-branch para removê-lo do histórico.

Passo 4: Realize o Primeiro Commit e Envie para o Provedor Git

Finalmente, vamos salvar nosso progresso e enviá-lo para o repositório remoto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Adicione todos os arquivos criados ao staging area do Git
$ git add .

# Verifique o que será commitado
$ git status

# Você deve ver algo como:
# On branch master
# 
# Initial commit
# 
# Changes to be committed:
#   new file:   .gitignore

# Faça o primeiro commit, a "fundação" do nosso projeto
$ git commit -m "Initial commit: project structure and gitignore"

# Você deve ver algo como:
# [master (root-commit) abc1234] Initial commit: project structure and gitignore
#  1 file changed, 50 insertions(+)
#  create mode 100644 .gitignore

Agora, conecte seu repositório local ao projeto no provedor Git:

Para GitHub:

1
2
3
4
5
# Substitua USERNAME e REPO_NAME pelos seus valores
$ git remote add origin git@github.com:USERNAME/workspace-as-code.git

# Ou use HTTPS se preferir:
$ git remote add origin https://github.com/USERNAME/workspace-as-code.git

Para GitLab:

1
2
3
4
5
# Substitua USERNAME pelos seus valores
$ git remote add origin git@gitlab.com:USERNAME/workspace-as-code.git

# Ou use HTTPS se preferir:
$ git remote add origin https://gitlab.com/USERNAME/workspace-as-code.git

Para Gitea auto-hospedado:

1
2
# Substitua DOMAIN, USERNAME e REPO_NAME pelos seus valores
$ git remote add origin git@seu-gitea.com:USERNAME/workspace-as-code.git

Depois, configure a branch principal e envie:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Renomeie a branch principal para 'main' (prática moderna)
$ git branch -M main

# Envie suas alterações para o provedor Git
$ git push -u origin main

# Você deve ver algo como:
# Enumerating objects: 3, done.
# Counting objects: 100% (3/3), done.
# Writing objects: 100% (3/3), 200 bytes | 200.00 KiB/s, done.
# Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
# To github.com:USERNAME/workspace-as-code.git
#  * [new branch]      main -> main
# Branch 'main' set up to track remote branch 'main' from 'origin'.

Informação: Este tutorial usa SSH para clonar. Se você preferir HTTPS, use as URLs HTTPS acima. SSH é recomendado porque não requer digitar senha a cada push. Para configurar SSH, veja este guia do GitHub ou este guia do GitLab.


Validando Sua Configuração

Após completar todos os passos, execute este script para validar que tudo foi configurado corretamente:

Script de Validação

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
# Script de validação da configuração inicial
# Salve como: ~/workspace-as-code/scripts/validate.sh

echo "=========================================="
echo "  Validando Configuração Inicial"
echo "=========================================="
echo ""

# Cores para output
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# Contador de sucessos
PASSED=0
FAILED=0

# Função para validar
check() {
    if eval "$1" &> /dev/null; then
        echo -e "${GREEN}${NC} $2"
        ((PASSED++))
    else
        echo -e "${RED}${NC} $2"
        ((FAILED++))
    fi
}

# Verificações
echo "Verificando Sistema:"
check "lsb_release -a 2>/dev/null | grep -q '24.04'" "Ubuntu 24.04"
check "sudo whoami | grep -q 'root'" "Acesso sudo"
check "ping -c 1 8.8.8.8 &>/dev/null" "Conexão com internet"

echo ""
echo "Verificando Ferramentas Instaladas:"
for tool in git vim fzf tmux curl wget jq ripgrep bat eza; do
    check "command -v $tool" "$tool"
done

echo ""
echo "Verificando Repositório Git:"
check "cd ~/workspace-as-code && git rev-parse --git-dir > /dev/null 2>&1" "Repositório Git inicializado"
check "[ -f ~/workspace-as-code/.gitignore ]" "Arquivo .gitignore presente"
check "cd ~/workspace-as-code && git remote -v | grep -q 'origin'" "Git remote configurado"
check "cd ~/workspace-as-code && git log --oneline | grep -q 'Initial commit'" "Primeiro commit realizado"

echo ""
echo "Verificando Estrutura de Diretórios:"
for dir in ansible dotfiles packer scripts terraform; do
    check "[ -d ~/workspace-as-code/$dir ]" "Diretório $dir"
done

echo ""
echo "=========================================="
echo -e "Resultado: ${GREEN}$PASSED passou${NC}, ${RED}$FAILED falhou${NC}"
echo "=========================================="

if [ $FAILED -eq 0 ]; then
    echo -e "${GREEN}Tudo está configurado corretamente!${NC}"
    exit 0
else
    echo -e "${YELLOW}Alguns itens falharam. Revise os passos acima.${NC}"
    exit 1
fi

Executando o Script de Validação

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Crie o script
$ cat > ~/workspace-as-code/scripts/validate.sh << 'SCRIPT_EOF'
# [Copie o conteúdo do script acima aqui]
SCRIPT_EOF

# Dê permissão de execução
$ chmod +x ~/workspace-as-code/scripts/validate.sh

# Execute o script
$ ~/workspace-as-code/scripts/validate.sh

# Você deve ver algo como:
# ==========================================
#   Validando Configuração Inicial
# ==========================================
#
# Verificando Sistema:
# ✓ Ubuntu 24.04
# ✓ Acesso sudo
# ✓ Conexão com internet
#
# Verificando Ferramentas Instaladas:
# ✓ git
# ✓ vim
# ✓ fzf
# ...
# ==========================================
# Resultado: 20 passou, 0 falhou
# ==========================================
# Tudo está configurado corretamente!

Se tudo estiver OK, você está pronto para a próxima parte!


Troubleshooting

Se você encontrar problemas durante a configuração, aqui estão as soluções para os erros mais comuns:

Erro: “E: Could not open lock file /var/lib/apt/lists/lock”

Causa: Outro processo está usando o apt (gerenciador de pacotes).

Solução:

1
2
3
4
5
6
# Aguarde alguns minutos e tente novamente
$ sudo lsof /var/lib/apt/lists/lock

# Se necessário, force a limpeza (use com cuidado!)
$ sudo rm /var/lib/apt/lists/lock
$ sudo apt update

Erro: “E: Unable to locate package [nome-do-pacote]”

Causa: O pacote não existe nos repositórios padrão.

Solução:

1
2
3
4
5
6
7
8
# Atualize os repositórios
$ sudo apt update

# Verifique se o pacote existe
$ apt search [nome-do-pacote]

# Se não encontrar, pode estar em repositórios PPA ou ser instalado via Snap
$ sudo snap install [nome-do-pacote]

Erro: “fatal: not a git repository”

Causa: Você não está no diretório correto.

Solução:

1
2
3
4
5
6
# Certifique-se de estar no diretório workspace-as-code
$ cd ~/workspace-as-code
$ pwd  # Deve mostrar /home/seu-usuario/workspace-as-code

# Verifique se o repositório foi inicializado
$ git status

Erro ao fazer push: “fatal: ‘origin’ does not appear to be a ‘git’ repository”

Causa: A URL remota está incorreta ou não foi configurada.

Solução:

1
2
3
4
5
6
7
8
9
10
11
# Verifique a URL remota
$ git remote -v

# Se estiver vazia, adicione novamente
$ git remote add origin git@github.com:seu-usuario/workspace-as-code.git

# Se precisar corrigir uma URL existente, use:
$ git remote set-url origin git@github.com:seu-usuario/workspace-as-code.git

# Verifique novamente
$ git remote -v

Erro: “Permission denied (publickey)”

Causa: Suas chaves SSH não estão configuradas corretamente.

Solução:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Verifique se sua chave SSH existe
$ ls -la ~/.ssh/id_rsa

# Se não existir, crie uma nova
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""

# Adicione a chave ao ssh-agent
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_rsa

# Copie a chave pública para sua conta no GitHub/GitLab
$ cat ~/.ssh/id_rsa.pub

# Cole o conteúdo nas configurações de SSH do seu provedor Git

Conclusão

Parabéns! Você concluiu a primeira e mais crucial etapa desta jornada. Seu sistema está atualizado, equipado com ferramentas essenciais, e, o mais importante, seu ambiente de trabalho agora é um projeto versionado.

O Que Você Alcançou

✓ Sistema Ubuntu 24.04 atualizado e seguro ✓ Ferramentas CLI modernas instaladas e prontas ✓ Repositório Git criado e versionado ✓ Estrutura de projeto organizada e profissional ✓ Proteção contra vazamento de credenciais com .gitignore ✓ Validação de configuração com script automatizado

Próximos Passos Imediatos

Antes de prosseguir para a Parte 2, faça o seguinte:

  1. Explore as ferramentas instaladas:
    1
    2
    3
    4
    
    $ fzf --version
    $ ripgrep --version
    $ eza --version
    $ bat --version
    
  2. Verifique seu repositório:
    1
    2
    3
    4
    
    $ cd ~/workspace-as-code
    $ git log --oneline
    $ git remote -v
    $ git status
    
  3. Crie um README inicial (opcional, mas recomendado):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    $ cat > README.md << EOF
    # Workspace as Code
       
    Minha estação de trabalho completamente automatizada e versionada.
       
    ## Estrutura
    - **dotfiles**: Configurações de shell e editor
    - **scripts**: Automações e utilitários
    - **terraform**: Infraestrutura como código
    - **packer**: Templates de imagens
    - **ansible**: Configuração de máquinas
       
    ## Como Usar
       
    1. Clone este repositório
    2. Execute os scripts de setup
    3. Customize conforme necessário
       
    ## Série Completa
       
    Esta é a Parte 1 de uma série de 15 tutoriais sobre Workspace as Code.
    EOF
       
    $ git add README.md
    $ git commit -m "docs: add initial README"
    $ git push origin main
    
  4. Commit o script de validação:
    1
    2
    3
    
    $ git add scripts/validate.sh
    $ git commit -m "chore: add validation script"
    $ git push origin main
    

Próximo Tutorial

Com a fundação estabelecida, estamos prontos para começar a personalizar nosso ambiente de linha de comando com aliases, funções e otimizações do Bash.


Recursos Adicionais


Fim da Parte 1

Próxima: Customizando o Bash com Aliases e Funções

This post is licensed under CC BY 4.0 by the author.