Post

Otimização do GNOME Terminal no Ubuntu

Otimização do GNOME Terminal no Ubuntu

Sumário

  1. Personalização Visual do GNOME Terminal
  2. Atalhos de Teclado Personalizados
  3. Configuração de Shell (Bash ou Zsh)
  4. Scripts e Alias para Automação
  5. Ferramentas para Aumentar a Produtividade
  6. Configuração de Histórico e Eficiência no Shell
  7. Automatização de Tarefas Comuns
  8. Integração com SSH

Introdução

Este tutorial é para administradores de sistemas Linux que usam o GNOME Terminal no Ubuntu. Ele fornece dicas práticas e personalizações para otimizar sua produtividade, desde ajustes visuais até automações com tmux, cron, e SSH.

Parte 1: Personalização Visual do GNOME Terminal

Personalizar o visual do terminal melhora a legibilidade e o conforto visual, o que é fundamental para passar longas horas de trabalho com eficiência. Vamos ajustar temas, cores, transparência e fontes para otimizar a interface.

1.1 Ajustando o Tema, Cores e Transparência

O GNOME Terminal oferece opções integradas para personalização de cores e temas. Veja como configurá-las:

Passo 1: Abrir as Preferências do Terminal

  1. Abra o GNOME Terminal.
  2. No menu superior, clique em Editar > Preferências.

Passo 2: Selecionar o Perfil de Terminal

  • Escolha o perfil ativo (ou crie um novo perfil) na aba Perfis. As configurações visuais são definidas por perfil.

Passo 3: Modificar as Cores

  1. Selecione o perfil desejado e vá para a aba Cores.
  2. Marque a opção Usar cores personalizadas para ajustar as cores do fundo e texto.
  3. Escolha cores de texto e de fundo adequadas para seu estilo de trabalho. Algumas sugestões:
    • Fundo escuro com texto claro: facilita a leitura e reduz o cansaço visual.
    • Temas populares:
      • Solarized Dark: Um dos temas mais populares para terminais. Ele equilibra contraste e saturação.
      • Dracula: Excelente para trabalhar em ambientes com pouca luz.
    • Para aplicar temas prontos, como Solarized ou Dracula, você pode copiá-los do GNOME Terminal Color Schemes e colá-los no terminal.

Passo 4: Transparência

  1. Na mesma aba Cores, ajuste a transparência do terminal. Isso pode ajudar a manter o foco nas janelas atrás do terminal.
  2. Use o controle deslizante para definir o nível de transparência.

Passo 5: Aplicar Background Customizado (Opcional)

Você também pode aplicar uma imagem de fundo no terminal:

  • Ainda na aba Cores, selecione Fundo personalizado e escolha uma imagem.

1.2 Ajustando as Fontes

Uma boa escolha de fonte monoespaçada melhora a legibilidade. O GNOME Terminal permite que você personalize as fontes usadas.

Passo 1: Alterar a Fonte do Terminal

  1. Vá até a aba Texto.
  2. Desmarque Usar fonte do sistema e clique em Alterar para escolher uma nova fonte.
    • Sugestões de fontes monoespaçadas:
      • Fira Code: Suporta ligaduras que tornam símbolos comuns mais legíveis.
      • Ubuntu Mono: A fonte padrão do Ubuntu, otimizada para terminais.
      • Hack: Muito clara e fácil de ler, com bom espaçamento entre caracteres.

1.3 Temas de Terceiros

Se você quiser usar temas de terceiros com personalizações mais profundas, considere instalar o Oh My Zsh (veremos na parte 3 sobre shell) para Zsh ou instalar pacotes adicionais de temas:

Instalação de Temas do GNOME Terminal com dconf

Você pode gerenciar temas diretamente com o comando dconf:

  1. Baixe um tema de sua preferência de sites como Terminal.sexy.
  2. Importe o tema:
    1
    
    dconf load /org/gnome/terminal/legacy/profiles:/ < caminho_para_arquivo_de_tema
    

1.4 Exemplo de Personalização Completa

  • Tema: Solarized Dark
  • Fonte: Fira Code, tamanho 13
  • Transparência: 10%

Passos Resumidos:

  1. No terminal, vá para Editar > Preferências > Cores e escolha Solarized Dark.
  2. Altere a fonte para Fira Code.
  3. Ajuste a transparência em Editar > Preferências > Cores, movendo o controle deslizante.

Parte 2: Atalhos de Teclado Personalizados

Atalhos de teclado aceleram o uso do terminal, permitindo a navegação rápida entre janelas, abertura de novas abas e execução de comandos frequentes.

2.1 Atalhos de Teclado Predefinidos

O GNOME Terminal vem com alguns atalhos já configurados. Aqui estão os mais importantes:

  • Ctrl + Shift + T: Abrir uma nova aba.
  • Ctrl + Shift + W: Fechar a aba atual.
  • Ctrl + Shift + N: Abrir uma nova janela.
  • Ctrl + PageUp/PageDown: Alternar entre abas abertas.
  • Ctrl + Shift + C: Copiar.
  • Ctrl + Shift + V: Colar.

2.2 Criando Atalhos Customizados

No GNOME Terminal, você pode criar atalhos de teclado personalizados diretamente pelas Configurações do Sistema. Isso é útil para abrir pastas específicas no terminal ou scripts diretamente.

Passo 1: Criar Atalhos Customizados no GNOME

  1. Abra Configurações > Teclado > Atalhos.
  2. Vá até Atalhos Personalizados.
  3. Clique em Adicionar e insira o nome do atalho e o comando:
    • Exemplo para abrir o terminal no diretório /home/projetos:
      1
      
      gnome-terminal --working-directory=/home/projetos
      
  4. Defina uma combinação de teclas, como Ctrl + Alt + P.

2.3 Atalhos Especiais para Alternância de Abas

  • Para alternar diretamente para uma aba específica, você pode ativar a funcionalidade de Alt + Número da Aba.
    • Ativação: Vá em Editar > Preferências > Teclado, e ative a alternância rápida de abas com Alt + Número.

2.4 Navegação Rápida no Sistema

Atalhos do teclado do shell também podem ser configurados no arquivo de configuração do Bash ou Zsh (mais sobre isso na Parte 3).

  • Exemplo: Adicione no ~/.bashrc:
    1
    2
    
    bind '"\e[1~": beginning-of-line'
    bind '"\e[4~": end-of-line'
    

Esses comandos ligam Home ao início da linha e End ao final, permitindo navegação mais rápida ao digitar comandos longos.


Parte 3: Configuração de Shell (Bash ou Zsh)

Personalizar seu shell é uma forma poderosa de aumentar a eficiência e personalizar sua experiência de uso no terminal. O Bash é o shell padrão no Ubuntu, mas muitos usuários preferem o Zsh devido às suas funcionalidades extras, como sugestões automáticas e complementação de comandos aprimorada.

3.1 Personalizando o Bash

Passo 1: Editando o Arquivo .bashrc

O arquivo .bashrc armazena as configurações do Bash e é carregado toda vez que uma nova sessão interativa de terminal é iniciada. Aqui estão algumas customizações úteis:

  • Alterar o Prompt do Bash: Você pode personalizar o prompt para exibir informações úteis, como o diretório atual, nome do usuário ou até status do Git. Adicione a seguinte linha ao final do arquivo ~/.bashrc:
    1
    
    PS1='\u@\h:\w\$ '  # Exibe o usuário, hostname e diretório atual
    
  • Exibir Status do Git no Prompt: Adicione as seguintes linhas ao seu arquivo ~/.bashrc para mostrar o branch atual do Git no prompt:
    1
    2
    3
    4
    
    parse_git_branch() {
        git branch 2>/dev/null | grep '^*' | colrm 1 2
    }
    PS1='\u@\h:\w\[\033[32m\]$(parse_git_branch)\[\033[00m\]\$ '
    
  • Autocompletar comandos: Certifique-se de que o autocompletar esteja ativado adicionando:
    1
    2
    3
    
    if [ -f /etc/bash_completion ]; then
        . /etc/bash_completion
    fi
    

Passo 2: Aplicando as Alterações

Após fazer essas edições no arquivo ~/.bashrc, recarregue as configurações com:

1
source ~/.bashrc

3.2 Instalando e Configurando o Zsh

O Zsh é um shell avançado que oferece mais recursos que o Bash, como correção automática de comandos e sugestões de complementação de comandos.

Passo 1: Instalar o Zsh

Instale o Zsh e mude o shell padrão para ele:

1
2
sudo apt install zsh
chsh -s $(which zsh)

Passo 2: Instalar o Oh My Zsh

O Oh My Zsh é um framework que facilita a personalização do Zsh, adicionando temas, plugins e funcionalidades avançadas de forma simples.

  • Instale o Oh My Zsh com o seguinte comando:
    1
    
    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    

Passo 3: Personalizando o Oh My Zsh

Uma das principais vantagens do Zsh é o suporte a temas e plugins. Vamos configurar isso.

  • Alterar o Tema: No arquivo ~/.zshrc, você pode definir o tema do seu prompt. Um dos temas mais populares é o agnoster.
    1
    
    ZSH_THEME="agnoster"
    
  • Habilitar Plugins: O Oh My Zsh vem com diversos plugins que podem ser ativados. Edite o arquivo ~/.zshrc e adicione plugins à linha plugins=():
    1
    
    plugins=(git z sudo docker)
    
    • git: Fornece atalhos para operações com o Git.
    • z: Permite navegação rápida por diretórios frequentemente acessados.
    • sudo: Permite reexecutar comandos anteriores com sudo.

Passo 4: Ativar Autocompletar e Sugestões

Para otimizar ainda mais a experiência com o Zsh, instale o plugin zsh-autosuggestions, que sugere comandos conforme você digita:

  • Instalação:
    1
    
    git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
    
  • Ativação: Adicione zsh-autosuggestions aos plugins no arquivo ~/.zshrc:
    1
    
    plugins=(git z zsh-autosuggestions)
    
  • Aplicar as mudanças: Recarregue o Zsh com:
    1
    
    source ~/.zshrc
    

3.3 Prompt Personalizado no Zsh

Se você prefere personalizar manualmente o prompt, o Zsh é altamente configurável. Um exemplo de prompt simples que exibe o diretório atual e o branch do Git seria:

1
2
autoload -U colors && colors
PROMPT='%B%F{cyan}%n@%m%f %F{yellow}%1~ %f%F{green}$(git_prompt_info)%f%B%F{red}%(!.#.>)%f%b '

3.4 Exemplo Completo de .zshrc

Aqui está um exemplo completo de arquivo .zshrc com o Oh My Zsh, plugins e um prompt customizado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="agnoster"
plugins=(git z zsh-autosuggestions sudo)

source $ZSH/oh-my-zsh.sh

# Histórico compartilhado entre abas
setopt share_history

# Prompt customizado
autoload -U colors && colors
PROMPT='%B%F{cyan}%n@%m%f %F{yellow}%1~ %f%F{green}$(git_prompt_info)%f%B%F{red}%(!.#.>)%f%b '

# Alias úteis
alias ll='ls -lah'
alias gs='git status'

Parte 4: Scripts e Alias para Automação

Automatizar tarefas repetitivas no terminal usando scripts e aliases pode poupar muito tempo.

4.1 Criando Aliases

Aliases são atalhos simples para comandos que você usa frequentemente. Eles são definidos no arquivo ~/.bashrc ou ~/.zshrc.

Passo 1: Criar Aliases Simples

Aqui estão alguns exemplos de aliases úteis:

  • Alias para navegação rápida:
    1
    2
    
    alias ..='cd ..'
    alias ...='cd ../..'
    
  • Alias para atualização do sistema:
    1
    
    alias update='sudo apt update && sudo apt upgrade -y'
    
  • Alias para limpar o terminal:
    1
    
    alias c='clear'
    

4.2 Funções para Automação

Funções são mais poderosas que aliases, pois permitem a inclusão de parâmetros.

Exemplo de Função: Navegar para um diretório e listar arquivos

1
2
3
function goto() {
    cd "$1" && ls
}

Chame a função passando o diretório como parâmetro:

1
goto /caminho/do/diretorio

Exemplo Avançado de Automação: Backup de Diretórios

1
2
3
4
function backup() {
    tar -czvf "$1.tar.gz" "$1"
    echo "Backup de $1 concluído!"
}

Esse script compacta o diretório especificado e gera um arquivo .tar.gz.


Parte 5: Ferramentas para Aumentar a Produtividade

A seguir, vamos explorar algumas ferramentas que podem ajudar a melhorar a gestão de múltiplas janelas, sessões e aumentar a eficiência ao lidar com tarefas administrativas no terminal.

5.1 Usando o tmux para Multiplexação de Terminais

O tmux é um multiplexador de terminais que permite abrir várias sessões, dividindo o terminal em múltiplos painéis e mantendo as sessões ativas, mesmo quando você fecha o terminal ou a conexão SSH. Ele é excelente para administração remota de servidores.

Instalação do tmux

Instale o tmux com o seguinte comando:

1
sudo apt install tmux

Comandos Básicos do tmux

  • Iniciar uma nova sessão:
    1
    
    tmux new -s minha_sessao
    
  • Dividir a tela:
    • Horizontalmente:
      1
      
      Ctrl + B, depois "
      
    • Verticalmente:
      1
      
      Ctrl + B, depois %
      
  • Navegar entre os painéis:
    1
    
    Ctrl + B, depois use as setas direcionais
    
  • Desanexar-se da sessão (a sessão continua rodando em segundo plano):
    1
    
    Ctrl + B, depois D
    
  • Reanexar-se a uma sessão existente:
    1
    
    tmux attach -t minha_sessao
    

Personalização do tmux

Você pode personalizar o tmux editando o arquivo ~/.tmux.conf. Por exemplo, para facilitar a navegação entre painéis, adicione:

1
2
3
4
5
# Atalho para alternar entre painéis usando Alt + seta
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

5.2 Usando o Terminator para Divisão de Tela

O Terminator é outra ferramenta muito útil para quem gosta de dividir janelas de terminal sem perder o controle. Ele permite dividir o terminal em painéis, facilitando a execução de várias tarefas simultaneamente.

Instalação do Terminator

Instale o Terminator com o seguinte comando:

1
sudo apt install terminator

Usando o Terminator

  • Dividir a tela:
    • Horizontalmente: Ctrl + Shift + O
    • Verticalmente: Ctrl + Shift + E
  • Navegar entre os painéis: Use Ctrl + Tab para alternar entre os painéis abertos.

Configurações Avançadas

O Terminator possui um arquivo de configuração em ~/.config/terminator/config onde você pode ajustar preferências de tema, atalho de teclas e muito mais. Por exemplo, para ativar a rolagem infinita e ajustar o esquema de cores:

1
2
3
4
5
6
7
8
9
10
11
[global_config]
  scrollback_lines = 10000

[keybindings]
  split_horiz = <Primary><Shift>O
  split_vert = <Primary><Shift>E

[profiles]
  [[default]]
    background_color = "#2E3436"
    foreground_color = "#FFFFFF"

5.3 Usando o byobu para Sessões Persistentes

O byobu é uma interface aprimorada para o tmux (ou screen), que adiciona status na parte superior do terminal e atalhos de teclado mais amigáveis para gerenciar sessões de forma eficiente.

Instalação do byobu

Instale o byobu com o seguinte comando:

1
sudo apt install byobu

Comandos Básicos do byobu

  • Iniciar o byobu:
    1
    
    byobu
    
  • Criar uma nova janela: F2
  • Alternar entre janelas: F3 e F4
  • Dividir a tela verticalmente: Shift + F2

O byobu facilita a administração, especialmente ao monitorar múltiplos servidores, com seus status integrados de recursos do sistema.


Parte 6: Configuração de Histórico e Eficiência no Shell

O histórico de comandos é um recurso poderoso para reutilizar comandos frequentes e economizar tempo ao trabalhar no terminal. Personalizar o comportamento do histórico no Bash ou Zsh pode aumentar sua produtividade.

6.1 Configurando o Histórico de Comandos

Por padrão, o Bash e o Zsh armazenam uma quantidade limitada de comandos no histórico. Vamos aumentar esse limite e ajustar algumas opções para otimizar a reutilização de comandos.

Passo 1: Ajustando o Histórico no Bash ou Zsh

Edite o arquivo ~/.bashrc (ou ~/.zshrc se você estiver usando o Zsh) e adicione ou modifique as seguintes linhas:

  • Aumentar o tamanho do histórico:
    1
    2
    
    HISTSIZE=5000      # Número de comandos armazenados na sessão atual
    HISTFILESIZE=10000 # Tamanho máximo do arquivo de histórico
    
  • Salvar imediatamente os comandos no histórico: Normalmente, o histórico do Bash só é salvo quando você encerra a sessão. Para garantir que ele seja salvo a cada comando, adicione:
    1
    2
    
    shopt -s histappend  # Impede que o histórico seja sobrescrito
    PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
    
  • Ignorar comandos duplicados no histórico: Isso evita que comandos repetidos ocupem espaço no histórico:
    1
    
    export HISTCONTROL=ignoredups
    

Passo 2: Compartilhar Histórico Entre Sessões

Se você usa várias janelas ou abas do terminal simultaneamente, compartilhar o histórico entre elas pode ser muito útil. No Bash, adicione a seguinte linha ao ~/.bashrc:

1
export PROMPT_COMMAND="history -a; history -n; $PROMPT_COMMAND"

6.2 Pesquisa Incremental no Histórico

O Ctrl + R é um atalho que permite pesquisar rapidamente comandos anteriores no histórico. Você começa a digitar um comando, e ele encontra o comando correspondente no histórico.

  • Usar Ctrl + R para busca:
    1. Pressione Ctrl + R no terminal.
    2. Digite parte do comando desejado e continue pressionando Ctrl + R até encontrar o comando correto.
  • Exemplo: Se você estiver procurando por um comando que envolva o uso de rsync, pressione Ctrl + R, digite “rsync”, e ele irá percorrer os comandos anteriores que contêm essa string.

6.3 Limpar o Histórico de Comandos

Se você precisar limpar o histórico, use o comando:

1
history -c

Isso limpa o histórico atual da sessão, mas não afeta os comandos já salvos no arquivo de histórico (~/.bash_history ou ~/.zsh_history).


Parte 7: Automatização de Tarefas Comuns

Automatizar tarefas no terminal pode poupar muito tempo, especialmente ao lidar com backups, atualizações e monitoramento de sistemas. Vamos explorar como usar scripts, cron, e systemd para automatizar suas atividades diárias.

7.1 Usando o cron para Agendar Tarefas

O cron é um agendador de tarefas que permite executar scripts ou comandos automaticamente em intervalos regulares.

Passo 1: Abrir o Crontab

O crontab gerencia tarefas agendadas para o seu usuário. Para editar o crontab, use:

1
crontab -e

Passo 2: Agendar Tarefas com Cron

Aqui estão alguns exemplos de como usar o cron:

  • Executar um backup diário às 2h da manhã: Adicione esta linha ao seu crontab:
    1
    
    0 2 * * * /home/usuario/scripts/backup.sh
    
  • Atualizar o sistema a cada domingo às 4h da manhã:
    1
    
    0 4 * * SUN sudo apt update && sudo apt upgrade -y
    

7.2 Automatização com systemd

Você também pode usar o systemd para automatizar tarefas, especialmente se precisar controlar o tempo de início ou condições específicas para a execução de scripts.

Passo 1: Criar um Serviço no systemd

  • Crie um arquivo de serviço em /etc/systemd/system/meuscript.service:
    1
    2
    3
    4
    5
    6
    7
    8
    
    [Unit]
    Description=Executa meu script personalizado
    
    [Service]
    ExecStart=/home/usuario/scripts/meuscript.sh
    
    [Install]
    WantedBy=multi-user.target
    

Passo 2: Habilitar e Iniciar o Serviço

  • Habilite o serviço para iniciar automaticamente no boot:
    1
    
    sudo systemctl enable meuscript.service
    
  • Inicie o serviço imediatamente:
    1
    
    sudo systemctl start meuscript.service
    

Parte 8: Integração com SSH

O SSH (Secure Shell) é uma ferramenta fundamental para administradores de sistemas, permitindo conexões seguras com servidores remotos. Vamos ver como otimizar o uso do SSH no GNOME Terminal.

8.1 Criando Chaves SSH

Criar chaves SSH elimina a necessidade de digitar sua senha toda vez que você se conecta a um servidor.

Passo 1: Gerar Chaves SSH

  • Para gerar um par de chaves SSH, execute o seguinte comando:
    1
    
    ssh-keygen -t rsa -b 4096 -C "seu_email@example.com"
    

    Siga as instruções para salvar a chave em ~/.ssh/id_rsa (padrão).

Passo 2: Adicionar a Chave ao Agente SSH

O ssh-agent armazena suas chaves em memória, eliminando a necessidade de digitar a senha sempre. Adicione sua chave ao agente:

1
2
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Passo 3: Copiar a Chave para o Servidor

Para configurar o login sem senha, copie a chave pública para o servidor remoto:

1
ssh-copy-id usuario@servidor_remoto

8.2 Automatizando Conexões com ~/.ssh/config

O arquivo ~/.ssh/config permite que você configure e simplifique suas conexões SSH, criando aliases para servidores e ajustando opções de conexão.

Passo 1: Criar um Arquivo de Configuração

  • No arquivo ~/.ssh/config, você pode adicionar blocos de configuração para cada servidor:
    1
    2
    3
    4
    5
    
    Host servidorweb
        HostName 192.168.0.100
        User meuusuario
        IdentityFile ~/.ssh/id_rsa
        Port 22
    

Agora, para se conectar ao servidor, basta usar o comando:

1
ssh servidorweb

Passo 2: Conectar-se a Múltiplos Servidores

Se você precisa se conectar a vários servidores, use o tmux ou byobu para manter as sessões ativas. Veja como usar o tmux para múltiplas conexões:

  1. Abra o tmux:
    1
    
    tmux new -s ssh-session
    
  2. Inicie a conexão com o primeiro servidor:
    1
    
    ssh servidorweb
    
  3. Divida a janela no tmux para abrir uma nova sessão e conectar-se a outro servidor:
    1
    2
    
    Ctrl + B, depois %  # Divide a tela verticalmente
    ssh servidorbanco
    

Você pode alternar entre as conexões ou visualizá-las simultaneamente.


Conclusão

Com estas otimizações, o GNOME Terminal se torna uma ferramenta extremamente eficiente para administradores de sistemas Linux. Personalizando o histórico de comandos, automatizando tarefas frequentes, e integrando SSH de forma eficiente, você pode reduzir o tempo gasto em tarefas repetitivas e melhorar seu fluxo de trabalho.

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