O terminal no Unix é uma ferramenta maravilhosa e poderosa. Ao fazer a transição do mundo do Windows, é difícil apreciar isso porque o shell do Windows (cmd.exe) é, como eu digo, falta. A maioria dos shells padrão * nix ( bash
, zsh
, etc) tem várias vantagens:
-
Ele é padronizado através do POSIX e da Única Especificação Unix, portanto, um script que você escreve para um computador provavelmente funcionará em todas as máquinas compatíveis com POSIX (supondo que você se restrinja aos comandos padrão, dos quais existem lotes ). A Microsoft tem o hábito de incluir ferramentas em algumas versões e não em outras, fazendo com que a programação em lote seja um sucesso ou um fracasso
-
Como o Unix foi criado a partir do terminal, quase tudo é configurável a partir da linha de comando. O Windows era assim até certo ponto, mas eles optaram por largar o subsistema de 16 bits e o DOS com ele. Agora, a GUI é a única maneira de alterar algumas coisas no Windows.
-
Porque é tão flexível. Os comandos podem ser canalizados juntos (
ls | grep filename
), eles podem ser capturados (gcc program.c > ./standard_out 2> ./standard_error
) e podem ser substituídos (ls /home/'whoami'
ouls /home/$(whoami)
) -
Porque os utilitários UNIX são projetados para fazer uma coisa e fazer isso bem. Basta olhar para
awk
,grep
,sed
,wget
ou uma série de outros. Por si só, eles conseguem uma única tarefa, mas recebem # 3 e # 2 e podem ser construídos em expressões poderosas. -
Devido à capacidade de automatizar tarefas. Os scripts
cron
e bash permitem que tarefas longas, complicadas e / ou repetitivas sejam simplificadas ou automatizadas completamente. -
Porque os seres humanos são propensos a erros. Scripts de shell relativamente curtos podem ser usados para alterar as configurações de uma maneira consistente. As verificações de segurança podem ser incorporadas aos scripts, em vez de depender dos usuários para saber quais comandos são seguros para serem executados em diferentes circunstâncias.