Qual é o conceito oculto por trás do termo “comando”?

1

Eu tenho usado, estudando e desenvolvendo para Linux há alguns anos, e ao longo do tempo, convenci com sucesso algumas pessoas a entrarem na causa , e fazer a mudança para o Linux.

No entanto, quando essas pessoas foram descobrindo esse novo mundo, cada uma delas veio até mim, perguntando qual era o comando para fazer isso ou aquilo :

  • Qual é o comando para instalar um software?
  • Qual é o comando para listar o conteúdo do diretório atualmente?
  • Qual é o comando para abrir meu navegador da Web?
  • ...

Para mim, parece que eles estão fazendo as perguntas erradas. Na verdade, eu realmente esperaria que eles perguntassem:

  • Qual programa usamos para gerenciar o software instalado no sistema?
  • Qual programa pode listar o conteúdo do diretório atual?
  • Quais são os programas de navegação na web disponíveis?
  • ...

Parece-me que o termo command é uma palavra muito abstrata usada para descrever praticamente tudo o que você digita após o prompt do shell. Com esse pensamento, vários dos recém-chegados que eu trouxe começaram a acreditar que:

  • O Linux é feito de uma enorme quantidade de comandos.
  • Existe um comando para tudo, e cada comando faz uma coisa especificamente.
  • Aprendendo mais comandos, tornarei-me mais capaz como usuário / administrador do Linux.
  • Ao executar ./something , não executo um comando, mas sim um programa armazenado em meu diretório atual, provavelmente algo que eu mesmo compilei.
  • ...

Por isso, não uso a palavra command e prefiro usar program ou arquivo executável . Também explico que esses arquivos executáveis podem ser encontrados automaticamente, sem digitar seus caminhos absolutos, graças ao mecanismo $PATH . Graças a isso, digitar ls executa /bin/ls , que é um programa armazenado em /bin , um diretório registrado na variável $PATH .

Ainda assim, me deparei com a palavra command em muitos livros, tutoriais, guias, ... o que acabou me trazendo essa pergunta: a palavra comanda tem um significado no vocabulário UNIX / Linux? Refere-se a um conceito real diferente de "o que você digitar no seu terminal" ?

    
por John WH Smith 01.09.2014 / 22:00

2 respostas

1

A especificação de shell POSIX refere-se a comandos simples , < em> comandos compostos , posição do comando , e o comando command .

As duas primeiras referências como / quando um comando shell é analisado e executado. Por exemplo:

#one compound command
{ simple command; simple command && simple command; } 

O comando composto é o quanto o shell deve ler como entrada antes de avaliar e executar seus comandos simples constituintes .

posição do comando é a primeira palavra em cada comando simples e tem um significado especial na medida em que determina como o resto do comando é para ser analisado. Certas palavras reservadas , (como if e while ) , quando em posição do comando , podem indicar ao analisador que o que segue deve ser interpretado como um comando composto e não apenas um comando simples .

O comando command pode servir para mover um comando da posição do comando . Por exemplo, esses dois seriam executados de forma idêntica, mas potencialmente analisados de forma diferente:

command simple command
simple command
    
por 01.09.2014 / 22:10
0

Uma linha de comando é a linha inteira que você digita no shell, que informa ao sistema para executar alguma ação. O comando é geralmente a primeira palavra da linha de comando. Geralmente, ele identifica um programa para ser executado, mas também pode ser uma palavra-chave usada para fluxo de controle (por exemplo, if ou while ) ou um comando interno para operações específicas do shell (por exemplo, read , set ou export ). Às vezes, o comando é usado para se referir a toda a linha de comando; o contexto deixa claro qual é o significado.

Uma distinção comum atualmente é entre comandos e aplicativos. Em um ambiente GUI, um aplicativo é um programa iniciado usando o shell gráfico - os comandos são chamados digitando no shell.

As respostas para as perguntas do exemplo que você deu seriam:

  • Qual é o comando para instalar um software? Algo como apt-get install .
  • Qual é o comando para listar o conteúdo do diretório atual? %código%
  • Qual é o comando para abrir meu navegador da web? ls ou firefox & , provavelmente. Embora se você estiver usando um sistema de janelas, provavelmente há um menu a partir do qual você selecionaria o navegador, assim você não usaria um comando para fazer isso.
por 01.09.2014 / 22:10