2

Os mistérios da CLI, computação no Século XXI

#Informática Básica #Boas práticas #Arquitetura de Sistemas
Vagner Bellacosa
Vagner Bellacosa

Afinal o que é uma Interface de Linha de Comandos 



Salve jovem padawan, não imaginei que este artigo fosse voltar tão rápido a prancheta de trabalho do meu pc e ao nosso fórum da comunidade, recordando nos últimos dias escrevi alguns artigos falando sobre uma parte secreta do sistema operacional, comecei fazendo uma introdução ao Windows Shell, o nosso famoso shell Script, depois avancei para o MS-DOS e suas origens e processos batch, passando uma vista de olhos sobre as extensões de arquivos, recordou-se?


Pois bem, graças aos fabulosos feedbacks que recebi, tanto em nossa comunidade na Digital Innovation One como no Linkedin, onde compartilho todos as postagens, resolvi voltar ao tema e falar mais um pouco, entao vamos seguir o coelho branco..



Muito em voga nos anos 60, quando os operadores de computadores, começaram a abandonar os cartões e fitas perfurados para inputarem suas informações diretamente nos mainframes, via teclado permitindo uma interação, muito mais user-friendly nos famosos Terminais 3270 e teclas de funçoes.


sub
call
rr
d


A famosa com caracteres verdes e tela negra, muito em voga nos 3270 e computadores primordiais, os velhos micros de 8 bits, PCs e PC XT, 286 e 386 imortalizados para as novas gerações através do cinema.




O apogeu ocorreu com o lançamento do UNIX e com a resposta da IBM com a criação de Macros no TSO, que agilizavam a rotina nos antigos computadores, evoluindo para macros ISPF e REXX, com isso chegamos aos anos 70 e o surgimento do microcomputador sob a tutela do esquecido CP/M.


Declínio e queda do CLI



Toda festa acaba caro padawan, chegando aos meados dos anos 90, com a popularização do Mouse e a democratização do uso dos microcomputadores, o conceito de Janelas que foi difundido pelo Apple, Xerox e posteriormente Microsoft através do Windows 3.1.1, o CLI ficou fora de moda, utilizar linhas de comandos, era difícil decorar ao novatos e não haviam cursos e poucos liam os manuais, com isso a maioria dos novos usuários não tinham interesse em aprender, muitos ficavam relutantes, foi um verdadeiro conflito de gerações, afinal era coisa de tiozões e cabelos prateados escrever comando via teclado..



Mas nem tudo foram trevas, uma comunidade emergia, cheia de energia e com ela, veio o resgate das CLI, sabem de quem estou falando? Se alguém pensou no Linus e na Comunidade Linux e o software open-source, acertou em cheio, graças a eles, houve um relançamento e resgate ao Unix, que motivou as novas gerações a interessarem-se, estudarem e aprenderem os comandos e o uso da CLI em Shells renovadas. Mas acho que me adiantei um pouco e coloquei o carro na frente dos bois, vamos voltar um pouco a fita para poder auxiliar os novatos a embarcarem nesta viagem.


Afinal, o que significa CLI



Mais uma sigla com origem anglo-saxônica, significa Command Line Interface, interface de linha de comandos, no bom idioma de Camões, a sua principal vantagem no surgimento foi aprimorar a interação Humano Computador, gerando uma economia de recursos de cpu/memória, rapidez para executar processos repetitivos, a possibilidade de criar macros executáveis, conhecimentos arquivos Batch.


Para aqueles que não são familiarizados com o ambiente de desenvolvimento, devem estar se perguntando sobre o significado de seguir o coelho branco, os cinéfilos devem se recordar dos momentos iniciais do filme Matrix, onde Neo operava seu computador pessoal, e surge um diálogo surreal sobre o coelho branco, ou mais a frente a bordo da nave Nabucodonosor, dentro do simulador com o aparecimento da Dama de Vermelho e as diversas interações com o mainframe, entrando e saindo da Matrix.


GUI versus CLI



Uma briga antiga e sem fim a vista, pois cada ferramenta tem as suas vantagens e desvantagem, com seguidores ferrenhos, que se digladiam nas redes sociais até hoje, aproveitando para colocar mais lenha na fogueira, sou a favor do uso da CLI em ambiente de desenvolvimento e para provocar o outro time, nos temos o ASCII Art, com seus fabulosos desenhos em caracteres, sem contar a rapidez em executar tarefas repetitivas e ser uma mão na roda na criação de arquivos de teste, sendo o canivete suíço dos programadores.


  • Leia o artigo ASCII Art quando simples caracteres ganham vida e viram arte:

https://web.digitalinnovation.one/articles/ascii-art-quando-simples-caracteres-viram-arte?back=/articles


Não confundam Shell com CLI



Apesar de usarmos quase como sinônimos, o Shell é o pai da CLI, gerenciando todos os IOs entre o CLI e a CPU, escutando e inicializando os periféricos, carregando em memoria os programas, arrumando a casa e deixando o sistema operacional pronto a uso, sem desperdiçar processamento renderizando telas e fronts-ends.


Nos blocos a seguir iremos entrar na partes quase inédita de nosso artigo, vamos conhecer um pouco do mundo fora do MS-DOS e os desafios do CLI no século XXI, será que ele terá espaço? A cloude computer conseguira exterminar o Shell e o CLI? Não perca as próximas linhas a seguir.


O fim do SHELL e do Cli?



Muitos acharam que era o fim do CLI, que o GUI Graphical User Interface, o popular Interface Gráfica do Usuário com o uso de mouse, mesas digitalizadoras, telas tecláveis e o reconhecimento de voz, enterraria de vez o processamento por linha de comando, porem contra todas as apostas, um ledo engano e os pessimistas estavam errados, afinal o CLI tem 7 vidas como os gatos.


Nunca se usou tanto o SHELL, inclusive existindo CLI para todos os "novos" sistemas operacionais e ganhando muito mais poder e sendo cada vez mais uteis e necessários.


O Windows Shell falamos bastante nos artigos anteriores, que seriam redundância e chatice demais falar novamente, se nao sabe do que estou falando, então recomendo deixar de ser preguiçoso e siga o fio, lendos os artigos abaixo:


  • O que é e para que serve a extensão de arquivos?

https://web.digitalinnovation.one/articles/o-que-e-e-para-que-serve-a-extensao-de-arquivos?back=/articles


  • Aprenda a fazer processos batch em MS-DOS

https://web.digitalinnovation.one/articles/aprenda-a-fazer-processos-batch-em-ms-dos?back=/articles


  • Aprenda mais sobre CLI MS-DOS e seus script batch no Windows.

https://web.digitalinnovation.one/articles/aprenda-ms-dos-e-seus-scripts-bat-no-windows?back=/articles


Um nome a ser lembrado : Bourne


Um dos grandes divulgadores e excelente programador na era Unix. Relembrado no Bash, Bourne Again Shell, uma singela homenagem ao BS do Unix criado em 1977, recriando todos os comandos e atualizando para os novos equipamentos rodando inicialmente para Linux e MACOS, atualmente tem uma versão Windows.



Mas nao pense que o Linux parou por aqui, pelo contrario veja as outras versões de CLI para Linux são Techs shell, Ksh shell e Zsh shell, lembrando que esta lista não é exaustiva e garanto que algum observador mais atento, ira listar mais uma dúzia.


Jovem padawan, me dispersei um pouco, mas recapitulando os comandos usados em CLI, estão agrupados em duas grandes categorias:


Comandos que gerenciam os processos;

Comandos que gerenciam os arquivos.


Conheça os principais CLI em uso no mercado.



Vamos agora falar do pulo do gato, vou apresentar as principais neo-CLI, em uso no mercado, valera a pena estudar e conhecê-las a fundo, afinal nunca se sabe qual será o próximo projeto e quais as necessidades do seu cliente final.



• AWS CLI (Amazon): a CLI do Amazon Web Services



• Azure CLI (Microsoft): a CLI da Microsoft no Azure e na nuvem



• GCloud CLI (Google): a CLI da Google



• GIT (Código aberto): a CLI do GIT, utilizada nos processos de manutenção de repositórios. 


Cada uma das CLI apresentadas são utilizadas dentro da realidade do negocio prestados pelas empresas, se novamente for um observador atento, constatara que os serviços em Cloud Computer, necessitam de comandos em linha, principalmente devido a virtualização, quantidade de operações e complexidade do tema, favorecendo o uso de processos batch em macros.


Eu defendo o uso em desenvolvimento de software, todo DEV tem a obrigação de conhecer os comandos em linha, principalmente nas atividades de criação de massa de testes, onde podemos manipular arquivos rapidamente, movimentando entre diretórios e formatando registros.


Outra das vantagens e que podemos criar pequenos aplicativos em qualquer linguagem, a exemplo o Node.Js e programas em Javascript, chamando-os através de arquivos em bat e linha de comando, evitando usar os pesados navegadores glutões de memoria e lentidão no sistema.


Conclusão


O dia a dia em desenvolvimento de software, obriga um constante aprendizado, muitas vezes temos que retornar as origens, verificar como era feito no passado e adapta-lo a nova realidade. Perca um tempinho testando os comandos, navegando por diretórios e criando processos batchs, assim quando a necessidade apertar estara treinado.


Como dizia o velho guerreiro, o saudoso Chacrinha, nesta vida nada se cria, tudo se copia. Pense que tudo começou no Unix, depois de uma clonagem nos anos 70, com o surgimento d o CP/M, recordando o Control Program for Microcomputers ou "Programa de Controle para Microcomputadores, que foi o portal que permitiu a entrada de milhões de jovens no universo da informática.


Espero ter ajudado ate o próximo artigo.


 Mais momento jabá, para distrair, visite meu vídeo e veja para onde fui desta vez: https://www.youtube.com/watch?v=b7FPlr44LOc


Bom curso a todos.


 https://www.linkedin.com/in/vagnerbellacosa/


 https://github.com/VagnerBellacosa/


Pode me dar uma ajudinha no YouTube?


 https://www.youtube.com/user/vagnerbellacosa

0
31

Comentários (1)

0
M

Matheus Santos

04/10/2021 09:54

Excelente artigo! obrigado!

Analista Programador dinossauro IBM Mainframe

Brasil