Algumas frustrações terminais
Há algumas semanas fiz uma pesquisa terminal (você pode ler os resultados aqui) e no final perguntei:
Qual é a coisa mais frustrante em usar o terminal para você?
1.600 pessoas responderam e decidi passar alguns dias categorizando todas as respostas. Ao longo do caminho, aprendi que classificar dados qualitativos não é fácil, mas dei o meu melhor. Acabei construindo uma ferramenta customizada para agilizar a categorização de tudo.
Tal como acontece com todas as minhas pesquisas, a metodologia não é particularmente científica. Acabei de postar a pesquisa no Mastodon e no Twitter, executei-a por alguns dias e recebi respostas de quem a viu e teve vontade de responder.
Aqui estão as principais categorias de frustrações!
Acho que vale a pena ter em mente ao ler esses comentários que
- 40% das pessoas que responderam a esta pesquisa usam o terminal há 21+ anos
- 95% das pessoas que responderam à pesquisa usam o terminal há pelo menos 4 anos
Esses comentários não vêm de iniciantes.
Aqui estão as categorias de frustrações! O número entre parênteses é o número de pessoas com essa frustração. Estou escrevendo isso principalmente para mim mesmo porque estou tentando escrever um zine sobre o terminal e queria ter uma ideia do que as pessoas estão tendo problemas.
lembrando a sintaxe (115)
As pessoas falaram sobre lutas lembrando:
- a sintaxe para ferramentas CLI como awk, jq, sed, etc.
- a sintaxe para redirecionamentos
- atalhos de teclado para tmux, edição de texto, etc.
Um exemplo de comentário:
Existem tantos pequenos detalhes “curiosidades” a serem lembrados para obter funcionalidade completa. Mesmo depois de todos esses anos, às vezes esqueço onde é 2 ou 1 para stderr, ou esqueço qual é qual para
>e>>.
trocar terminais é difícil (91)
As pessoas falaram sobre dificuldades com a troca de sistemas (por exemplo, computador doméstico/de trabalho ou ao fazer SSH) e se depararem com:
- Diferenças de sistema operacional em atalhos de teclado (como Linux vs Mac)
- sistemas que não possuem seu editor de texto preferido (“no vim” ou “only vim”)
- versões diferentes do mesmo comando (como Mac OS grep vs GNU grep)
- sem conclusão de guia
- um shell com o qual eles não estão acostumados (“as diferenças sutis entre zsh e bash”)
bem como diferenças dentro do mesmo sistema, como pagers não consistentes entre si (git diff pagers, outros pagers).
Um exemplo de comentário:
Eu me acostumei com o modo fish e vi que não estão disponíveis quando faço ssh em servidores, contêineres.
cor (85)
Muitos problemas com cores, como:
- programas configurando cores ilegíveis com uma cor de fundo clara
- encontrar um esquema de cores de que gostem (e fazê-lo funcionar de forma consistente em diferentes aplicativos)
- a cor não funciona dentro de várias camadas de SSH/tmux/etc
- não gostando dos padrões
- não querendo cor e lutando para desligá-la
Este comentário pareceu compreensível para mim:
Configurar meu tema de terminal de maneira razoável entre o emulador de terminal e o peixe (fiz isso anos atrás e lembro que era tedioso e complicado e agora sinto que estou preso ao meu tema atual porque funciona e tenho medo de tocar em qualquer uma dessas configurações novamente).
atalhos de teclado (84)
Metade dos comentários sobre atalhos de teclado foram sobre como no Linux/Windows o atalho de teclado para copiar/colar no terminal é diferente do resto do sistema operacional.
Alguns outros problemas com atalhos de teclado além de copiar/colar:
- usando
Ctrl-Wem um terminal baseado em navegador e fechando a janela - o terminal suporta apenas um conjunto limitado de atalhos de teclado (sem
Ctrl-Shift-nãoSupernãoHypermuitosctrl-atalhos não são possíveis comoCtrl-,) - o sistema operacional impedindo você de usar um atalho de teclado do terminal (como por padrão o Mac OS usa
Ctrl+left arrowpara outra coisa) - problemas ao usar o emacs no terminal
- backspace não funciona (2)
outros problemas de copiar e colar (75)
Além de “o atalho de teclado para copiar e colar ser diferente”, houve muitos OUTROS problemas com copiar e colar, como:
- copiando por SSH
- como o tmux e o emulador de terminal copiam/colam de maneiras diferentes
- lidar com muitas pranchetas diferentes (área de transferência do sistema, área de transferência do vim, área de transferência do “clique do meio” no Linux, área de transferência do tmux, etc.) e potencialmente sincronizá-las
- espaços aleatórios adicionados ao copiar do terminal
- colando comandos multilinha que são executados automaticamente de uma forma assustadora
- querendo uma maneira de copiar texto sem usar o mouse
descoberta (55)
Houve muitos comentários sobre isso, todos resumindo-se à mesma reclamação básica – é difícil descobrir ferramentas ou recursos úteis! Este comentário resumiu tudo:
Como é difícil aprender de forma independente. A maior parte do que sei é uma coleção variada de coisas que pessoas aleatórias me contaram ao longo dos anos.
curva de aprendizado íngreme (44)
Muitos comentários sobre isso geralmente apresentam uma curva de aprendizado acentuada. Alguns exemplos de comentários:
Depois de 15 anos de uso, não sou muito mais rápido do que há 5 ou talvez 10 anos atrás.
e
Que sei que poderia facilitar minha vida aprendendo mais sobre os atalhos e comandos e configurando o terminal, mas não perco tempo porque parece cansativo.
história (42)
Alguns problemas com o histórico do shell:
- histórico não sendo compartilhado entre as guias do terminal (16)
- limites muito curtos (4)
- o histórico não está sendo restaurado quando as guias do terminal são restauradas
- perdendo histórico porque o terminal travou
- não saber como pesquisar o histórico
Um exemplo de comentário:
Perdi muito tempo até que eu descobrisse e ainda me irrita que a “história” no zsh tenha um buffer tão pequeno; Tenho que digitar “histórico 0” para obter qualquer extensão útil do histórico.
documentação ruim (37)
As pessoas falaram sobre:
- documentação sendo geralmente opaca
- falta de exemplos nas páginas de manual
- programas que não possuem páginas de manual
Aqui está um comentário representativo:
Encontrar bons exemplos e documentos. As páginas de manual geralmente não são suficientes, é necessário passar pelo estouro de pilha
rolar para trás (36)
Alguns problemas com rolagem:
- programas imprimindo muitos dados fazendo você perder o histórico de rolagem
- redimensionar o terminal atrapalha a rolagem
- falta de carimbos de data/hora
- Programas GUI que você inicia em segundo plano, imprimindo coisas que atrapalham as saídas de outros programas
Um exemplo de comentário:
Ao redimensionar o terminal (em particular: torná-lo mais estreito) leva a um reempacotamento quebrado do conteúdo de rolagem porque os comandos formataram sua saída com base na largura da janela do terminal.
“parece desatualizado” (33)
Muitos comentários sobre como o terminal se sente prejudicado por decisões legadas e como os usuários muitas vezes acabam precisando aprender detalhes de implementação que parecem muito esotéricos. Um exemplo de comentário:
Na maior parte do legado legado, seria ótimo ter uma implementação green field da interface CLI.
script de shell (32)
Muitas reclamações sobre scripts de shell POSIX. Há um sentimento geral de que o script de shell é difícil, mas também de que mudar para uma linguagem de script diferente e menos padrão (fish, nushell, etc.) traz seus próprios problemas.
Script de shell. Minha tolerância em abandonar um script de shell e mudar para uma linguagem de script é muito baixa. É muito confuso e poderoso. Errar pode custar caro, então nem me incomodo.
mais problemas
Mais alguns problemas que foram mencionados pelo menos 10 vezes:
- (31) argumentos de linha de comando inconsistentes: é -h ou help ou –help?
- (24) manter os dotfiles sincronizados em diferentes sistemas
- (23) desempenho (por exemplo, “meu shell demora muito para iniciar”)
- (20) gerenciamento de janelas (potencialmente com alguma combinação de guias tmux, guias de terminal e múltiplas janelas de terminal. Para onde foi aquela sessão de shell?)
- (17) geralmente sentindo-se assustado/inquieto (“O medo debilitante de que eu vou fazer alguma coisa ruim misteriosa com um comando e não terei absolutamente nenhuma ideia de como consertar ou desfazer ou até mesmo descobrir o que aconteceu”)
- (16) problemas terminfo (“Ter que aprender sobre terminfo se/quando eu tentar um novo emulador de terminal e ssh em outro lugar.”)
- (16) falta de suporte de imagem (sixel etc)
- (15) Problemas de SSH (como ter que recomeçar quando você perde a conexão SSH)
- (15) vários problemas de tmux/tela (por exemplo, falta de integração entre tmux e o emulador de terminal)
- (15) erros de digitação e digitação lenta
- (13) o terminal ficar bagunçado por vários motivos (pressionando
Ctrl-S,catum binário, etc.) - (12) citar/escapar no shell
- (11) vários problemas do Windows/PowerShell
n/a (122)
Houve também 122 respostas no sentido de “nada mesmo” ou “só que não consigo fazer TUDO no terminal”
Um exemplo de comentário:
Acho que encontrei soluções alternativas para a maioria/todas as frustrações
isso é tudo!
Não vou fazer muitos comentários sobre esses resultados, mas aqui estão algumas categorias que parecem relacionadas a mim:
- lembrando sintaxe e histórico (muitas vezes o que você precisa lembrar é algo que você já executou antes!)
- descoberta e curva de aprendizado (a falta de descoberta é definitivamente uma grande parte do que torna difícil aprender)
- “trocar de sistema é difícil” e “parece desatualizado” (ferramentas que não mudaram realmente em 30 ou 40 anos têm muitos problemas, mas tendem a ser sempre
lá não importa em qual sistema você esteja, o que é muito útil e torna difícil parar de usá-los)
Tentar categorizar todos esses resultados de uma forma razoável realmente me fez apreciar as habilidades dos pesquisadores em ciências sociais.






