Linhas de comando: por que as pessoas ainda se preocupam com elas?

Imagem do conceito de um terminal Linux cheio de texto em um laptop
Fatmawati Achmad Zaenuri / Shutterstock.com

A linha de comando tem quase 50 anos, mas não está desatualizada. Terminais baseados em texto ainda são a melhor maneira de realizar muitas tarefas, mesmo na era dos desktops gráficos e dispositivos de tela de toque.

Na verdade, a linha de comando está se tornando mais respeitada do que nunca com a criação de um novo e poderoso aplicativo de Terminal do Windows pela Microsoft . O ambiente PowerShell do Windows 10 é surpreendentemente poderoso, mas a Microsoft ainda assim fez o possível para adicionar suporte basicamente ao ambiente de linha de comando Linux completo do Windows 10 .

A linha de comando já foi a única opção

Ao mesmo tempo, se você quisesse interagir com um computador, você digitou. Foi isso. Não havia mais nada. Isso pode parecer restritivo e arcaico, mas como um avanço em relação ao uso de cartões perfurados ou fitas de papel perfurado, a digitação foi radical e transformadora. E a migração das teletipoas  com seus rolos de papel para terminais com  telas de tubo de raios catódicos (CRT) foi outra mudança de terreno nas interações entre humanos e computadores.

Essa etapa pavimentou o caminho para que o shell interativo realmente ganhasse seu próprio valor. Agora você pode enviar instruções para o computador e muito rapidamente ter as respostas exibidas na tela. Chega de clac-clac-clac enquanto você esperava que a impressão do papel saísse do teletipo.

Muito justo, mas isso era antes, agora. A computação é um jogo totalmente diferente. Além dos casos óbvios de bloqueio, como usar um computador que não tem um ambiente gráfico de área de trabalho instalado, ou usar um computador remoto via SSH em uma conexão de baixa largura de banda, ou controlar um sistema sem cabeça ou incorporado , por que usar a linha de comando um desktop gráfico?

Jargão Explicado

Termos como linha de comando, janela de terminal e shell são usados ​​quase que alternadamente por algumas pessoas. Isso é jargão incorreto. Eles são todos muito diferentes. Eles estão relacionados, mas não são a mesma coisa.

Uma janela de terminal é uma janela em um ambiente de área de trabalho gráfico que executa uma emulação de um terminal de teletipo.

Recomendado:  Como lidar com vários calendários do Google

O shell é o programa executado dentro da janela do terminal. Ele recebe a sua entrada e, dependendo do que você digitou, tenta interpretar e executar as próprias instruções, passá-las para algum dos outros utilitários que compõem o sistema operacional ou encontrar um script ou programa que corresponda ao que você digitou.

A linha de comando é onde você digita. É o prompt que o shell apresenta quando está esperando que você insira algumas instruções. O termo “linha de comando” também é usado para se referir ao conteúdo real do que você digitou. Por exemplo, se você conversar com outro usuário de computador sobre uma dificuldade que teve ao tentar fazer um programa rodar, ele pode perguntar: “Qual linha de comando você usou?” Eles não estão perguntando qual concha você estava usando; eles querem saber qual comando você digitou.

Juntos, eles se combinam para formar a interface de linha de comando (CLI).

Por que usar a linha de comando em 2019?

O CLI pode parecer retrógrado e confuso para quem não está familiarizado com ele. Certamente não há lugar em um sistema operacional moderno para uma maneira tão datada e geek de usar um computador? Não desistimos de tudo isso décadas atrás, quando janelas, ícones e mouses apareceram e os ambientes de desktop gráficos com interfaces gráficas de usuário (GUIs) tornaram-se disponíveis?

Sim, a GUI existe há décadas. A primeira versão do Microsoft Windows foi lançada em 1985  e se tornou a norma da área de trabalho do PC com o lançamento do Windows 3.0 em 1990.

O X Window System, usado em Unix e Linux, foi introduzido em 1984 . Isso trouxe ambientes de desktop gráficos para o Unix e seus muitos derivados, clones e ramificações.

Mas o lançamento do Unix antecede esses eventos em mais de uma década . E porque não havia outra opção, tudo tinha que ser possível por meio da linha de comando. Toda interação humana, toda configuração, todo uso do computador tinha que ser feito por meio do humilde teclado.

Portanto, ipso facto , o CLI pode fazer tudo. Uma GUI ainda não pode fazer tudo que a CLI pode fazer. E mesmo para as partes que ele pode fazer, a CLI geralmente é mais rápida, mais flexível, pode ter script e é escalonável.

E existe um padrão.

Eles são padronizados graças ao POSIX

POSIX é um padrão para sistemas operacionais do tipo Unix – basicamente, tudo que não é Windows. E até mesmo o Windows tem o subsistema Windows para Linux (WSL.) Abra uma janela de terminal em qualquer sistema operacional compatível com POSIX (ou quase compatível) e você se verá em um shell. Mesmo que o shell ou distribuição forneça suas próprias extensões e aprimoramentos, contanto que forneçam a funcionalidade POSIX principal, você poderá usá-la imediatamente. E seus scripts serão executados.

Recomendado:  Como impedir que o Superhuman (e outros aplicativos) rastreiem suas aberturas de e-mail

A linha de comando é o menor denominador comum. Aprenda a usá-lo e, independentemente da distribuição do Linux e do ambiente gráfico de desktop, você poderá realizar todas as tarefas de que precisa. Diferentes desktops têm sua própria maneira de fazer as coisas. Diferentes distribuições de Linux agrupam vários utilitários e programas.

Mas abra uma janela de terminal e você se sentirá em casa.

Os comandos são projetados para funcionar juntos

Cada um dos comandos do Linux é projetado para fazer algo específico e bem feito. A filosofia de design subjacente é adicionar mais funcionalidade, adicionando outro utilitário que pode ser encadeado ou encadeado com os existentes para atingir o resultado desejado.

Isso é tão útil que a Microsoft saiu de seu caminho para adicionar suporte para a linha de comando completa do Linux no Windows 10!

Por exemplo, o sortcomando é usado por outros comandos para classificar o texto em ordem alfabética. Não há necessidade de construir capacidade de classificação em cada um dos outros comandos do Linux. Geralmente, os aplicativos GUI não permitem esse tipo de interoperação colaborativa.

Veja o exemplo a seguir. Isso usa o lscomando para listar os arquivos no diretório atual. Os resultados são canalizados para o sortcomando e classificados na quinta coluna de dados (que é o tamanho do arquivo). A lista classificada é então canalizada para o headcomando que, por padrão, lista as primeiras dez linhas de sua entrada.

ls -l | sort -nk5,5 | cabeça

ls -l |  sort -nk5,5 |  cabeça em uma janela de terminal

Obtemos uma lista dos menores arquivos do diretório atual.

lista dos dez menores arquivos no diretório atual

Ao alterar um comando – usando em tailvez de – headpodemos obter uma lista dos dez maiores arquivos no diretório atual.

ls -l | sort -nk5,5 | rabo

ls -l |  sort -nk5,5 |  cauda em uma janela de terminal

Isso nos dá nossa lista dos dez maiores arquivos, conforme esperado.

lista dos dez maiores arquivos no diretório atual

A saída dos comandos pode ser redirecionada e capturada em arquivos . A saída regular ( stdin) e as mensagens de erro ( stderr) podem ser capturadas separadamente.

Os comandos podem incluir variáveis ​​de ambiente. O comando a seguir listará o conteúdo do seu diretório inicial:

ls $ HOME

ls $ HOME em uma janela de terminal

Isso funciona onde quer que você esteja na árvore de diretórios.

Recomendado:  Como ativar a previsão de texto para um teclado de hardware no Windows 10

lista do diretório inicial na janela do terminal

Se a ideia de toda aquela digitação ainda o perturba, técnicas como o preenchimento com guia podem reduzir a quantidade de digitação que você precisa fazer.

Scripts permitem automação e repetibilidade

Os humanos estão sujeitos a erros.

Os scripts permitem que você padronize um conjunto de instruções que você sabe que serão executadas da mesma maneira sempre que o script for executado. Isso traz consistência à manutenção do sistema. As verificações de segurança podem ser integradas aos scripts que permitem que o script determine se deve prosseguir. Isso elimina a necessidade de o usuário ter conhecimento suficiente para tomar a decisão por conta própria.

Como você pode  automatizar tarefas  usando cron Linux e outros sistemas do tipo Unix, tarefas longas, complicadas e repetitivas podem ser simplificadas ou, pelo menos, descobertas uma vez e automatizadas para o futuro.

Os scripts do PowerShell oferecem potência semelhante no Windows e você pode agendá-los para serem executados no Agendador de tarefas. Por que clicar em 50 opções diferentes toda vez que você configura um computador quando pode executar um comando que muda tudo automaticamente?

O melhor de dois mundos

Para obter o melhor do Linux – ou de qualquer sistema operacional como um usuário avançado – você realmente precisa usar a CLI e a GUI.

A GUI é insuperável para o uso de aplicativos. Até mesmo os defensores mais obstinados da linha de comando precisam sair da janela do terminal e usar suítes de produtividade de escritório, ambientes de desenvolvimento e programas de manipulação gráfica de vez em quando.

Os viciados em linha de comando não odeiam a GUI. Eles apenas favorecem os benefícios de usar a CLI – para as tarefas apropriadas. Para administração, a CLI ganha sem rodeios. Você pode usar a CLI para fazer alterações em um arquivo, um diretório, uma seleção de arquivos e diretórios ou alterações completamente globais com o mesmo esforço. Tentar fazer isso com a GUI geralmente requer ações demoradas e repetitivas do teclado e do mouse conforme o número de objetos afetados aumenta.

A linha de comando oferece a maior fidelidade. Cada opção de cada comando está disponível para você. E muitos dos comandos do Linux têm muitas opções. Para dar apenas um exemplo, considere o lsofcomando. Dê uma olhada em sua  página de manual  e então considere como você faria isso em uma GUI.

Existem muitas opções para apresentar ao usuário em uma GUI eficaz. Seria opressor, pouco atraente e desajeitado de usar. E isso é o completo oposto do que uma GUI pretende ser.

São cavalos para cursos. Não se intimide com o cavalo CLI. Geralmente é o corcel mais rápido e ágil. Ganhe suas esporas e você nunca se arrependerá.