Otimização do GNOME Terminal no Ubuntu
Sumário
- Personalização Visual do GNOME Terminal
- Atalhos de Teclado Personalizados
- Configuração de Shell (Bash ou Zsh)
- Scripts e Alias para Automação
- Ferramentas para Aumentar a Produtividade
- Configuração de Histórico e Eficiência no Shell
- Automatização de Tarefas Comuns
- 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
- Abra o GNOME Terminal.
- 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
- Selecione o perfil desejado e vá para a aba Cores.
- Marque a opção Usar cores personalizadas para ajustar as cores do fundo e texto.
- 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
- Na mesma aba Cores, ajuste a transparência do terminal. Isso pode ajudar a manter o foco nas janelas atrás do terminal.
- 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
- Vá até a aba Texto.
- 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.
- Sugestões de fontes monoespaçadas:
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:
- Baixe um tema de sua preferência de sites como Terminal.sexy.
- 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:
- No terminal, vá para Editar > Preferências > Cores e escolha Solarized Dark.
- Altere a fonte para Fira Code.
- 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
- Abra Configurações > Teclado > Atalhos.
- Vá até Atalhos Personalizados.
- 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
- Exemplo para abrir o terminal no diretório /home/projetos:
- 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
~/.bashrcpara 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
~/.zshrce adicione plugins à linhaplugins=():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-autosuggestionsaos 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 %
- Horizontalmente:
- 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:
- Pressione Ctrl + R no terminal.
- 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:
- Abra o tmux:
1
tmux new -s ssh-session - Inicie a conexão com o primeiro servidor:
1
ssh servidorweb
- 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.