Definition

Interface de linha de comando ou CLI

Uma interface de linha de comando (CLI) é uma interface de usuário baseada em texto (UI) usada para visualizar e gerenciar arquivos de computador. As interfaces de linha de comando também são chamadas de interfaces de usuário de linha de comando, interfaces de usuário de console e interfaces de usuário de caracteres.

História e características do CLI

Antes do mouse, os usuários interagiam com um sistema operacional (SO) ou aplicativo via teclado. Os usuários digitavam comandos na interface da linha de comando para executar tarefas em um computador.

Normalmente, a interface da linha de comando possui uma caixa preta com texto branco. O usuário responde a um prompt na interface da linha de comando digitando um comando. A saída ou resposta do sistema pode incluir uma mensagem, tabela, lista ou alguma outra confirmação de uma ação de sistema ou aplicativo.

Hoje, a maioria dos usuários prefere a interface gráfica de usuário (GUI) oferecida por sistemas operacionais como Windows, Linux e MacOS. A maioria dos sistemas baseados em Unix atuais oferecem uma interface de linha de comando e uma interface gráfica de usuário.

O sistema operacional MS-DOS  e o shell de comando no sistema operacional Windows são exemplos de interfaces de linha de comando. Além disso, linguagens de programação podem suportar interfaces de linha de comando, como Python.

Uma explicação sobre shell

O software que lida com a interface da linha de comando é o shell, também comumente referido como um intérprete de linguagem de comando. Dois shells bem conhecidos são o Windows Shell e o Bash para Linux e macOS.

Os shells são a camada mais externa do SO e são frequentemente separadas do kernel do SO subjacente. Um shell opera como uma aplicação e pode ser substituído. Como o shell está a apenas uma camada acima do SO, os usuários podem executar operações que não estão disponíveis em outros tipos de interface, como mover arquivos dentro de pastas do sistema e excluir arquivos bloqueados.

Os shells exigem que os usuários conheçam a sintaxe de uma linguagem de script. A maioria dos shells de linha de comando salva sequências de comandos para reutilização em um script, que é a base da automação básica de gerenciamento de sistemas.

Prompts e comandos

Há centenas de comandos diferentes disponíveis em uma linha de comando. O conjunto de comandos pode variar drasticamente entre sistemas operacionais ou aplicativos.

A seguir está uma lista de comandos na configuração de tarefas da Microsoft e no framework de automação PowerShell:

  • Get-Date: Recupera a hora e a data atual.
  • cd: Usado para mudar diretórios.
  • Stop-Process: Encerra um ou mais processos do sistema.

Embora alguns comandos operem sozinhos, outros exigem o uso de argumentos. O argumento segue o comando e fornece detalhes adicionais ou detalhes. Por exemplo, o comando cd diz ao SO para mudar para um diretório diferente, mas a linha de comando deve incluir o nome do caminho do diretório desejado, também.

Por exemplo, um comando completo com um argumento aparece como:

cd \documentos\usuário

Os argumentos usados com comandos também podem ser extremamente complexos e granulares. Por exemplo, a sequência de linha de comando a seguir mostra a sintaxe do PowerShell para recuperar informações detalhadas de configuração de rede de uma máquina Windows:

Get-NetIPAddress | Sort interfaceIndex | FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress, PrefixLength -Autosize

CLI versus GUI

A interface gráfica do usuário é a interface de usuário mais popular da atualidade. Uma GUI usa janelas, menus e ícones para executar comandos. Um mouse é a maneira mais comum de navegar através de uma GUI, embora muitas GUIs permitam navegação e execução através de um teclado.

Um exemplo de um aplicativo baseado em GUI é o Microsoft Word. O usuário pode alterar as opções de layouts e estilos de página selecionando o ícone correspondente com um mouse ou teclado. 

A vantagem de uma GUI é que a interface exibe visualmente as funções disponíveis. No entanto, devido à sua simplicidade e facilidade de uso, uma GUI não tem o mesmo nível de funcionalidade e controle granular que uma interface de linha de comando. Por exemplo, pode levar inúmeros cliques e movimentos através de várias caixas de diálogo em uma GUI para realizar o mesmo resultado de uma única linha de comando.

Além disso, as GUIs não suportam facilmente scripts ou automação. Para tarefas comuns, o usuário deve repetir cada clique ou navegar em cada diálogo dentro da GUI manualmente.

Os administradores que gerenciam milhares de sistemas ou configurações de usuários acharão a GUI muito menos eficiente do que uma CLI. Um simples comando CLI pode facilmente ajustar configurações de um grande grupo de sistemas ao mesmo tempo.

Comandos e argumentos também podem ser combinados e salvos, em seguida, executados como um script cada vez que a ação específica - ou conjunto abrangente de ações - é necessária. O CLI é a ferramenta preferida para muitas tarefas de gerenciamento de sistemas para toda a empresa.

Vantagens e desvantagens da CLI

As vantagens de uma interface de linha de comando são:

  • controle granular de um SO ou aplicativo;
  • gestão mais rápida de um grande número de sistemas operacionais;
  • capacidade de armazenar scripts para automatizar tarefas regulares; e
  • conhecimento básico da interface da linha de comando para ajudar na solução de problemas, como problemas de conexão de rede.

As desvantagens de uma interface de linha de comando são:

  • Gui é mais fácil de usar;
  • curva de aprendizagem mais íngreme associada a comandos de memorização e sintaxe/argumentos complexos; e
  • comandos diferentes usados em diferentes shells.
Este conteúdo foi atualizado pela última vez em Julho 2022

Saiba mais sobre Desenvolvimento de software e aplicativos