# Interface de linha de comandos

Uma interface de linha de comandos (ILC), em inglês command-line interface (CLI), é um meio de interagir com um programa de computador, onde o utilizador emite comandos para o programa sob a forma de sucessivas linhas de texto (linhas de comando).
Cada sistema operacional traz um intérprete padrão (o shell (computação)) para aqueles comandos os quais executam tarefas distintas e resolvem diferentes tipos de problemas.

## Anatomia de uma ILC de shell
### Prompt de comando

Um prompt de comando (ou simplesmente prompt) é uma sequência de (um ou mais) caracteres usados em uma interface de linha de comandos para indicar a prontidão para aceitar comandos. Ele literalmente solicita que o usuário aja. Um prompt geralmente termina com um ou mais caracteres $, %, #, :, > e geralmente inclui outra informação, como o caminho (path) do diretório de trabalho atual e o nome do hospedeiro ou usuário.
Em muitos sistemas Unix e derivados, o prompt comumente utilizado termina em $ ou % se o usuário for um usuário normal, mas em # se o usuário for um super usuário ("root" na terminologia Unix).
Os usuários finais geralmente podem modificar os prompts. Dependendo do ambiente, eles podem incluir cores, caracteres especiais e outros elementos (como variáveis e funções para o horário atual, usuário, número de shell ou diretório de trabalho) para, por exemplo, tornar o prompt mais informativo ou visualmente agradável, para distinguir sessões em várias máquinas ou para indicar o nível atual de aninhamento de comandos. Em alguns sistemas, tokens especiais na definição do prompt podem ser usados para fazer com que programas externos sejam chamados pelo interpretador de linha de comando enquanto exibem o prompt.
No COMMAND.COM do DOS e no cmd.exe do Windows NT, os usuários podem modificar o prompt emitindo um comando prompt ou alterando diretamente o valor da variável de ambiente %PROMPT% correspondente. O padrão da maioria dos sistemas modernos, o estilo C:\> é obtido, por exemplo, com prompt $P$G. O padrão dos sistemas DOS mais antigos, C> é obtido apenas por prompt, embora em alguns sistemas isso produza o estilo C:\> mais recente, a menos que seja usado em unidades de disquete A: ou B:. Nesses sistemas, prompt $N$G pode ser usado para substituir o padrão automático e alternar explicitamente para o estilo antigo.
Muitos sistemas Unix disponibilizam a variável $PS1 (Prompt String 1), apesar de que outras variáveis também possam afetar o prompt (dependendo do shell usado). No shell bash, um prompt da forma [tempo] usuário@hospedeiro: diretório_de_trabalho $ pode ser definido emitindo o seguinte comando: export PS1='[\t] \u@\H: \W $'.
No zsh, a variável $RPROMPT controla um "prompt" opcional no lado direito da tela. Não é um prompt real, pois a localização da entrada de texto não é alterada. Ele é usado para exibir informações na mesma linha que o prompt, mas justificado à direita.
No RISC OS, o prompt de comando é um símbolo * e, portanto, os comandos da CLI são frequentemente chamados de "comandos estrela". Também é possível acessar os mesmos comandos de outras linhas de comando (como a linha de comando BBC BASIC), precedendo o comando com um *.

## Notas e Referências

* ↑ «A linha de comando do Unix e GNU/Linux» (PDF). free-electrons.com. Consultado em 7 de janeiro de 2018
* ↑ «Comandos para o terminal (Windows, macOS e Linux)». www.lucascaton.com.br. Consultado em 7 de janeiro de 2018
* ↑ Parker, Steve (2011). «11: Choosing and using shells». Shell Scripting: Expert Recipes for Linux, Bash and more. Col: Programmer to programmer. Indianapolis: John Wiley & Sons. p. 262. ISBN 9781118166321. Consultado em 23 de março de 2017. The shell has four different command prompts, called PS1, P52, P53, and PS4. PS stands for Prompt String.
* ↑ RISC OS 3 User Guide (PDF). [S.l.]: Acorn Computers Limited. 1 de março de 1992. p. 125