Post

Estação de Trabalho como Código (Parte 2): Customizando o Bash com Aliases e Funções

Aprenda a customizar seu ambiente Bash criando aliases para comandos comuns, otimizando seu histórico e configurando um prompt de comando mais informativo. Esta segunda parte da série foca em tornar sua linha de comando mais produtiva e agradável.

Estação de Trabalho como Código (Parte 2): Customizando o Bash com Aliases e Funções

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

Introdução

Na primeira parte, estabelecemos a fundação da nossa estação de trabalho, atualizando o sistema e iniciando o versionamento com Git. Agora, é hora de mergulhar na personalização do nosso ambiente de linha de comando. Passamos a maior parte do nosso tempo no terminal, e pequenas otimizações aqui podem resultar em grandes ganhos de produtividade e conforto.

Neste tutorial, vamos focar no coração do nosso shell: o Bash. Vamos criar arquivos de configuração dedicados para organizar nossas customizações, definir aliases que economizam tempo, otimizar o histórico de comandos e configurar um prompt (PS1) que seja tanto informativo quanto visualmente agradável.

Objetivos desta Parte

  • Entender o conceito de dotfiles e sua importância
  • Criar arquivos de configuração dedicados para aliases e funções Bash
  • Configurar o histórico de comandos para ser mais útil e persistente
  • Definir um prompt de comando (PS1) customizado e informativo
  • Criar uma coleção de aliases para comandos comuns utilizando ferramentas modernas
  • Integrar fzf para buscas inteligentes no histórico e em arquivos
  • Validar que todas as configurações foram aplicadas corretamente

Pré-requisitos

  • Conclusão da Parte 1 desta série
  • O repositório workspace-as-code deve existir no seu diretório home
  • Familiaridade básica com Bash e terminal Linux

A quem se destina

Este tutorial é ideal para:

  • SysAdmins: Que querem otimizar seu fluxo de trabalho no terminal
  • DevOps Engineers: Que desejam um ambiente shell mais eficiente e produtivo
  • Desenvolvedores: Interessados em melhorar produtividade e velocidade de trabalho
  • Profissionais de TI: Que passam muito tempo no terminal e querem maximizar eficiência

Pré-conhecimento: Familiaridade básica com Bash e terminal Linux é recomendada. Se você completou a Parte 1, você tem o conhecimento necessário.

Tempo Estimado

40-50 minutos

Isso inclui:

  • Leitura e compreensão: ~10 min
  • Criação de arquivos: ~5 min
  • Adição de conteúdo: ~10 min
  • Teste dos aliases: ~10 min
  • Customização pessoal: ~5-15 min

Dica Útil: Se você quiser apenas copiar e colar, pode fazer em 20 minutos. Mas recomendamos ler e entender cada seção para aproveitar ao máximo.


Verificando Pré-Requisitos

Antes de começar, certifique-se de que completou a Parte 1 corretamente:

Verificando o Repositório

1
2
3
4
5
6
7
8
9
10
11
# Verifique se o repositório existe
$ ls -la ~/workspace-as-code/

# Você deve ver:
# drwxr-xr-x  ansible/
# drwxr-xr-x  dotfiles/
# drwxr-xr-x  packer/
# drwxr-xr-x  scripts/
# drwxr-xr-x  terraform/
# -rw-r--r--  .gitignore
# drwxr-xr-x  .git/

Verificando as Ferramentas Instaladas

1
2
3
4
5
6
7
8
9
# Verifique se as ferramentas estão disponíveis
$ which fzf eza bat ripgrep grc

# Todas devem retornar um caminho como:
# /usr/bin/fzf
# /usr/bin/eza
# /usr/bin/bat
# /usr/bin/rg
# /usr/bin/grc

Se alguma ferramenta não for encontrada, volte à Parte 1 e instale-a.


O que são Dotfiles?

Dotfiles são arquivos de configuração em sistemas Unix/Linux que começam com um ponto (.). Eles são ocultos por padrão (use ls -la para vê-los) e contêm configurações para programas como shell, editor, git, etc.

Exemplos Comuns de Dotfiles

ArquivoPropósito
.bashrcConfigurações do Bash (executado em cada novo terminal)
.bash_aliasesAliases do Bash
.bash_customCustomizações personalizadas e variáveis
.vimrcConfigurações do Vim
.tmux.confConfigurações do Tmux
.gitconfigConfigurações do Git
.ssh/configConfigurações do SSH

Por que Versionamos Dotfiles?

Ao versionarmos nossos dotfiles no Git, conseguimos:

  • Reproduzir nosso ambiente em qualquer máquina
  • Rastrear mudanças ao longo do tempo
  • Compartilhar configurações com a equipe
  • Manter backup seguro de nossas preferências
  • Reverter mudanças se algo der errado

Vamos criar esses arquivos em ~/workspace-as-code/dotfiles/ e depois criar links simbólicos para o home directory.


Preparando os Arquivos de Configuração

Antes de adicionar conteúdo, precisamos criar os arquivos onde armazenaremos nossas configurações.

Criando os Arquivos

1
2
3
4
5
6
7
8
9
10
11
12
# Navegue até o diretório de dotfiles
$ cd ~/workspace-as-code/dotfiles

# Crie os arquivos vazios
$ touch .bash_custom .bash_aliases

# Verifique se foram criados
$ ls -la

# Você deve ver:
# -rw-r--r-- .bash_custom
# -rw-r--r-- .bash_aliases

Editando os Arquivos

Você pode editar os arquivos de várias formas:

Opção 1: Usando Vim (recomendado, será coberto na Parte 3)

1
$ vim ~/workspace-as-code/dotfiles/.bash_custom

Opção 2: Usando Nano (mais fácil para iniciantes)

1
$ nano ~/workspace-as-code/dotfiles/.bash_custom

Opção 3: Usando cat com redirecionamento (recomendado para este tutorial)

1
2
3
$ cat > ~/workspace-as-code/dotfiles/.bash_custom << 'EOF'
# [Copie o conteúdo do arquivo aqui]
EOF

Para este tutorial, usaremos a Opção 3 (cat com redirecionamento) para garantir que funcione em qualquer ambiente.


Configuração Inicial do Bash

Para manter nossas customizações organizadas, vamos separá-las em arquivos específicos dentro do nosso diretório dotfiles. O ~/.bashrc principal irá apenas carregar esses arquivos.

Entendendo o ~/.bashrc

O arquivo ~/.bashrc é o arquivo de configuração principal do Bash. Ele é executado toda vez que você abre um novo terminal interativo.

Estrutura Típica do ~/.bashrc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# ~/.bashrc

# Se não for shell interativo, saia
[ -z "$PS1" ] && return

# Carregue as configurações customizadas
if [ -f ~/.bash_custom ]; then
    source ~/.bash_custom
fi

# Carregue os aliases
if [ -f ~/.bash_aliases ]; then
    source ~/.bash_aliases
fi

Configurações Personalizadas (.bash_custom)

Este arquivo conterá configurações de ambiente, variáveis de exportação, e a configuração de ferramentas como fzf e o histórico.

Crie o arquivo com o seguinte conteúdo:

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
# Copie este conteúdo para ~/workspace-as-code/dotfiles/.bash_custom
$ cat > ~/workspace-as-code/dotfiles/.bash_custom << 'EOF'
# ~/.bash_custom
# Configurações personalizadas do Bash

# ============================================
# FZF - Atalhos de busca (Ctrl+T, Ctrl+R, Alt+C)
# ============================================
# Tenta encontrar e carregar os atalhos do fzf
if command -v fzf &>/dev/null; then
    if [ -f /usr/share/doc/fzf/examples/key-bindings.bash ]; then
        source /usr/share/doc/fzf/examples/key-bindings.bash
    elif [ -f ~/.fzf.bash ]; then
        source ~/.fzf.bash
    fi
fi

# ============================================
# Configurações de Histórico de Comandos
# ============================================
export HISTSIZE=10000                    # Número de comandos no histórico da sessão
export HISTFILESIZE=20000                # Número de comandos no arquivo de histórico
export HISTCONTROL="ignoreboth:erasedups" # Ignora duplicados e comandos que começam com espaço
export HISTIGNORE="ls:cd:exit:clear:history" # Comandos a serem ignorados
export HISTTIMEFORMAT="%d/%m/%Y %T "    # Adiciona timestamp ao histórico
shopt -s histappend                      # Anexa ao histórico em vez de sobrescrever
shopt -s cmdhist                         # Salva comandos de múltiplas linhas como uma única entrada

# ============================================
# Editor Padrão
# ============================================
export EDITOR=vim
export VISUAL=vim

# ============================================
# Prompt de Comando Personalizado (PS1)
# ============================================
# Simples e minimalista: [caminho] $
export PS1="\[\e[38;5;81m\]\w\[\e[0m\] \[\e[38;5;204m\]\$\[\e[0m\] "
# Informativo. Útil quando você trabalha em múltiplos servidores: [usuario@host]:[caminho] $
# export PS1="\[\e[38;2;161;80;161m\]\u\[\e[0m\]@\[\e[38;2;121;212;133m\]\h\[\e[0m\][\[\e[38;2;0;172;201m\]\w\[\e[0m\]]\[\e[38;2;204;174;135m\]\$ \[\e[0m\] "

# ============================================
# Configurações FZF com fd (para busca de arquivos) e bat (para preview)
# ============================================
if command -v fd &>/dev/null; then
    export FZF_DEFAULT_COMMAND='fd --type f --hidden --no-ignore'
    export FZF_ALT_C_COMMAND='fd --type d --hidden --no-ignore'
    export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
fi

if command -v bat &>/dev/null; then
    export FZF_CTRL_T_OPTS="--preview 'bat --color=always --style=numbers,changes {} 2>/dev/null || head -n 50 {}'"
    export FZF_ALT_C_OPTS="--preview 'tree -C {} | head -n 50'"
fi
EOF

Entendendo o Prompt Customizado (PS1)

O prompt é a linha que aparece antes de você digitar um comando. Você pode customizá-lo para mostrar informações úteis.

Componentes do PS1

1
export PS1="\[\e[38;5;81m\]\w\[\e[0m\] \[\e[38;5;204m\]\$\[\e[0m\] "
ComponenteSignificado
\[ e \]Marcadores para caracteres não-imprimíveis (cores)
\e[38;5;81mCódigo de cor (azul)
\wDiretório atual (working directory)
\e[0mReset de cor (volta ao padrão)
\$Símbolo $ (ou # se root)

Testando Diferentes Prompts

1
2
3
4
5
6
7
8
9
10
11
# Prompt simples
$ export PS1="\w $ "

# Prompt com hora
$ export PS1="\[\e[32m\]\t\[\e[0m\] \w $ "

# Prompt com usuário e host
$ export PS1="\u@\h:\w$ "

# Prompt com status do último comando
$ export PS1="\[\e[32m\]\$?\[\e[0m\] \w $ "

Para tornar permanente, adicione ao .bash_custom.


Criando Atalhos com Aliases

Aliases são atalhos para comandos mais longos. Eles são uma das maneiras mais eficazes de acelerar seu fluxo de trabalho no terminal.

Ferramentas Modernas vs Tradicionais

Neste tutorial, estamos substituindo ferramentas tradicionais por alternativas modernas:

TarefaFerramenta TradicionalFerramenta ModernaVantagem
Listar arquivoslsezaCores, ícones, git status
Visualizar arquivocatbatRealce de sintaxe, números de linha
Buscar em arquivosgrepripgrepMuito mais rápido, ignora .gitignore
Buscar interativohistoryfzfInterface intuitiva, preview
Colorir outputNenhumgrcCores para ping, traceroute, etc

Você ainda pode usar as ferramentas tradicionais quando necessário!

Criando o Arquivo de Aliases

Abra o arquivo ~/workspace-as-code/dotfiles/.bash_aliases e adicione o seguinte conteúdo:

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
# Copie este conteúdo para ~/workspace-as-code/dotfiles/.bash_aliases
$ cat > ~/workspace-as-code/dotfiles/.bash_aliases << 'EOF'
# ~/.bash_aliases
# Atalhos para comandos comuns

# ====== Aliases de Rede (coloridos com grc) ======
if command -v grc &>/dev/null; then
    alias tail='grc tail'
    alias ping='grc ping'
    alias traceroute='grc traceroute'
    alias dig='grc dig'
fi

# ====== Aliases para ls (com eza) ======
if command -v eza &>/dev/null; then
    # Opções padrão para o eza, incluindo ícones
    export EZA_STANDARD_OPTIONS="--group-directories-first --icons --color=auto"
    alias ls='eza $EZA_STANDARD_OPTIONS'
    alias l='eza --long $EZA_STANDARD_OPTIONS'                           # ls -l
    alias ll='eza --long --header --git $EZA_STANDARD_OPTIONS'           # ls -la com git status
    alias la='eza --long --all --header --git $EZA_STANDARD_OPTIONS'     # Listar tudo
    alias tree='eza --tree --level=2 $EZA_STANDARD_OPTIONS'              # Árvore de diretórios
else
    # Fallback para o ls tradicional se eza não estiver instalado
    alias ls='ls --color=auto --group-directories-first'
    alias ll='ls -alFh --group-directories-first'
    alias la='ls -A --group-directories-first'
fi

# ====== Aliases para cat (com bat) ======
if command -v bat &>/dev/null; then
    alias cat='bat --paging=never --theme="OneHalfDark"'
fi

# ====== Aliases para grep (com ripgrep) ======
if command -v rg &>/dev/null; then
    alias grep='rg --smart-case'
else
    alias grep='grep --color=auto'
fi

# ====== Outros aliases úteis ======
alias update='sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean'
alias ipinfo='curl -s ipinfo.io/ip'
alias wget='wget -c'                     # Continua downloads interrompidos
alias mkdir='mkdir -pv'                  # Cria diretórios pais automaticamente
EOF

Dica Útil: Os blocos if command -v ... garantem que os aliases só serão criados se a ferramenta correspondente estiver instalada, tornando suas configurações portáteis e à prova de falhas.


Ativando as Novas Configurações

Para que o Bash reconheça nossos novos arquivos, precisamos referenciá-los no ~/.bashrc.

Adicionando Nossas Configurações ao ~/.bashrc

Você pode fazer isso de duas formas:

Opção 1: Manualmente (mais seguro)

1
2
3
4
5
6
7
8
# Abra o ~/.bashrc em um editor
$ vim ~/.bashrc

# Adicione ao final do arquivo:
# source ~/workspace-as-code/dotfiles/.bash_custom
# source ~/workspace-as-code/dotfiles/.bash_aliases

# Salve e saia

Opção 2: Usando echo (mais rápido)

1
2
3
4
5
6
# Adicione as linhas ao final do ~/.bashrc
$ echo "source ~/workspace-as-code/dotfiles/.bash_custom" >> ~/.bashrc
$ echo "source ~/workspace-as-code/dotfiles/.bash_aliases" >> ~/.bashrc

# Verifique se foi adicionado
$ tail -5 ~/.bashrc

Carregando as Configurações

Após adicionar as linhas ao ~/.bashrc, você pode carregá-las de duas formas:

Opção 1: Abrir um novo terminal (mais limpo)

1
2
# Feche o terminal atual e abra um novo
# As configurações serão carregadas automaticamente

Opção 2: Usar source (imediato)

1
2
3
4
5
6
# Carregue as configurações na sessão atual
$ source ~/.bashrc

# Ou carregue apenas os arquivos específicos
$ source ~/workspace-as-code/dotfiles/.bash_custom
$ source ~/workspace-as-code/dotfiles/.bash_aliases

Testando os Aliases

Após ativar as configurações, teste cada alias para verificar se está funcionando:

Aliases de Listagem

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Listar com eza (cores e ícones)
$ ls

# Você deve ver algo como:
# ansible/  dotfiles/  packer/  scripts/  terraform/  .gitignore

# Listar com detalhes
$ ll

# Listar tudo incluindo ocultos
$ la

# Mostrar estrutura em árvore
$ tree

Aliases de Visualização

1
2
3
4
# Usar cat com realce de sintaxe
$ cat ~/.bashrc

# Você deve ver o arquivo com cores e números de linha

Aliases de Rede

1
2
3
4
5
6
7
8
9
10
# Ping com cores
$ ping -c 3 google.com

# Você deve ver a saída com cores

# Traceroute com cores
$ traceroute google.com

# Dig com cores
$ dig google.com

Aliases Úteis

1
2
3
4
5
6
7
8
9
10
# Obter seu IP público
$ ipinfo

# Você deve ver algo como:
# 203.0.113.42

# Atualizar sistema
$ update

# Isso executará apt update, upgrade, autoremove e autoclean

Você deve ver cores, ícones e formatação melhorada em todos os casos!


Usando FZF para Buscas Inteligentes

O FZF foi configurado com atalhos de teclado. Teste-os:

Atalhos do FZF

AtalhoFunçãoDescrição
Ctrl+RBuscar históricoBusca interativa no histórico de comandos
Ctrl+TSelecionar arquivoBusca e seleciona um arquivo
Alt+CNavegar diretórioBusca e muda para um diretório

Exemplos de Uso

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Pressione Ctrl+R para buscar no histórico
$ Ctrl+R
# Digite parte de um comando anterior
# Use as setas para navegar
# Pressione Enter para executar

# Pressione Ctrl+T para selecionar um arquivo
$ vim Ctrl+T
# Selecione um arquivo com as setas
# Pressione Enter para abrir no vim

# Pressione Alt+C para navegar entre diretórios
$ Alt+C
# Selecione um diretório
# Pressione Enter para mudar para ele

Troubleshooting

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

Aliases não funcionam após fazer source

Problema: Você executou source mas os aliases não funcionam.

Solução:

1
2
3
4
5
6
7
8
9
# Verifique se o arquivo foi carregado
$ grep "bash_aliases" ~/.bashrc

# Se não estiver, adicione manualmente:
$ echo "source ~/workspace-as-code/dotfiles/.bash_aliases" >> ~/.bashrc
$ source ~/.bashrc

# Verifique se o alias foi criado
$ alias ls

Prompt não aparece com cores

Problema: O prompt não mostra as cores esperadas.

Solução:

1
2
3
4
5
6
7
# Verifique se seu terminal suporta cores
$ echo $TERM

# Deve ser algo como 'xterm-256color'
# Se não for, adicione ao .bash_custom:
$ export TERM=xterm-256color
$ source ~/.bash_custom

FZF não funciona

Problema: Ctrl+R ou Ctrl+T não abre o fzf.

Solução:

1
2
3
4
5
6
7
8
9
10
11
12
# Verifique se fzf está instalado
$ which fzf

# Se não estiver, instale:
$ sudo apt install fzf

# Verifique se o arquivo de key-bindings existe
$ ls /usr/share/doc/fzf/examples/key-bindings.bash

# Se não existir, instale o pacote completo:
$ sudo apt install fzf
$ source ~/.bash_custom

Eza mostra caracteres estranhos

Problema: Eza mostra ? em vez de ícones.

Solução:

1
2
3
4
5
6
7
# Isso geralmente significa que sua fonte não suporta ícones.
# Use uma fonte que suporte Nerd Fonts (será coberto na Parte 5)

# Por enquanto, você pode desabilitar ícones:
$ alias ls='eza --group-directories-first --color=auto'

# Ou edite o .bash_aliases e remova --icons

Comando “command not found” para ferramentas instaladas

Problema: Você instalou uma ferramenta, mas o Bash não a encontra.

Solução:

1
2
3
4
# Recarregue o hash do shell
$ hash -r

# Ou abra um novo terminal

Validando Sua Configuração

Crie um script para validar que tudo está funcionando 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Crie o script
$ cat > ~/workspace-as-code/scripts/validate-bash.sh << 'EOF'
#!/bin/bash
# Script para validar configuração do Bash

echo "=========================================="
echo "  Validando Configuracao do Bash"
echo "=========================================="
echo ""

GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'

PASSED=0
FAILED=0

check() {
    if eval "$1" &> /dev/null; then
        echo -e "${GREEN}[OK]${NC} $2"
        ((PASSED++))
    else
        echo -e "${RED}[FAIL]${NC} $2"
        ((FAILED++))
    fi
}

# Verificar arquivos
check "[ -f ~/workspace-as-code/dotfiles/.bash_custom ]" "Arquivo .bash_custom existe"
check "[ -f ~/workspace-as-code/dotfiles/.bash_aliases ]" "Arquivo .bash_aliases existe"

# Verificar se estão carregados
check "grep -q 'bash_custom' ~/.bashrc" ".bash_custom esta carregado no .bashrc"
check "grep -q 'bash_aliases' ~/.bashrc" ".bash_aliases esta carregado no .bashrc"

# Verificar aliases
check "alias | grep -q 'ls='" "Alias 'ls' esta definido"
check "alias | grep -q 'll='" "Alias 'll' esta definido"
check "alias | grep -q 'la='" "Alias 'la' esta definido"

# Verificar ferramentas
check "command -v fzf" "FZF instalado"
check "command -v eza" "EZA instalado"
check "command -v bat" "BAT instalado"
check "command -v rg" "RIPGREP instalado"

# Verificar variáveis de ambiente
check "[ ! -z \$HISTSIZE ]" "HISTSIZE configurado"
check "[ ! -z \$EDITOR ]" "EDITOR configurado"
check "[ ! -z \$PS1 ]" "PS1 configurado"

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

if [ $FAILED -eq 0 ]; then
    echo "Tudo esta configurado corretamente!"
    exit 0
else
    echo "Alguns itens falharam. Revise os passos acima."
    exit 1
fi
EOF

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

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

# Você deve ver algo como:
# ==========================================
#   Validando Configuracao do Bash
# ==========================================
#
# [OK] Arquivo .bash_custom existe
# [OK] Arquivo .bash_aliases existe
# [OK] .bash_custom esta carregado no .bashrc
# [OK] .bash_aliases esta carregado no .bashrc
# [OK] Alias 'ls' esta definido
# ...
# ==========================================
# Resultado: 13 passou, 0 falhou
# ==========================================
# Tudo esta configurado corretamente!

Conclusão

Você transformou seu shell Bash em uma ferramenta poderosa e eficiente. Com aliases inteligentes, histórico aprimorado e integração com ferramentas modernas, você economizará tempo e melhorará sua produtividade.

O Que Você Alcançou

✓ Entendimento de dotfiles e sua importância ✓ Configurações de Bash organizadas em arquivos dedicados ✓ Aliases para comandos comuns ✓ Histórico de comandos otimizado ✓ Prompt customizado e informativo ✓ Integração com ferramentas modernas (fzf, eza, bat, ripgrep) ✓ Script de validação para verificar configurações

Próximos Passos Imediatos

  1. Teste todos os aliases:
    1
    2
    3
    4
    5
    
    $ source ~/.bashrc
    $ ls
    $ ll
    $ tree
    $ ping -c 2 google.com
    
  2. Customize o prompt conforme desejar:
    1
    2
    
    # Edite o PS1 no .bash_custom para seu gosto
    $ vim ~/workspace-as-code/dotfiles/.bash_custom
    
  3. Explore as ferramentas FZF:
    1
    2
    3
    4
    5
    6
    7
    8
    
    # Use Ctrl+R para buscar no histórico
    $ Ctrl+R
    
    # Use Ctrl+T para selecionar arquivo
    $ vim Ctrl+T
    
    # Use Alt+C para navegar entre diretórios
    $ Alt+C
    
  4. Commit suas mudanças:
    1
    2
    3
    4
    
    $ cd ~/workspace-as-code
    $ git add dotfiles/.bash_custom dotfiles/.bash_aliases scripts/validate-bash.sh
    $ git commit -m "feat: add bash customizations and aliases"
    $ git push origin main
    

Próximo Tutorial

Agora que nosso shell está otimizado, vamos configurar dois editores poderosos: Vim para edição de texto e Tmux para multiplexação de terminal. Essas ferramentas, quando combinadas com nosso Bash customizado, criarão um ambiente de trabalho verdadeiramente profissional.


Recursos Adicionais


Fim da Parte 2

Próxima: Configurando Vim e Tmux

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