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 .
Índice
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.
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.
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 sort
comando é 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 ls
comando para listar os arquivos no diretório atual. Os resultados são canalizados para o sort
comando e classificados na quinta coluna de dados (que é o tamanho do arquivo). A lista classificada é então canalizada para o head
comando que, por padrão, lista as primeiras dez linhas de sua entrada.
ls -l | sort -nk5,5 | cabeça
Obtemos uma lista dos menores arquivos do diretório atual.
Ao alterar um comando – usando em tail
vez de – head
podemos obter uma lista dos dez maiores arquivos no diretório atual.
ls -l | sort -nk5,5 | rabo
Isso nos dá nossa lista dos dez maiores arquivos, conforme esperado.
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
Isso funciona onde quer que você esteja na árvore de diretórios.
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 lsof
comando. 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á.