Terminais

Quem não conhece acha que é bruxaria

Quem não é da área da computação e observa algum desenvolvedor ali com o terminal aberto desferindo comandos, fica apreensivo - Nossa esse cara é inteligente ... Geralmente os hackers dos filmes também são sempre representados dessa forma, fazendo magica ali em frente ao terminal.

Hoje em dia, com a bolha formada, todos querem fazer formações nessa area da computação/análise e desenvolvimento de sistemas, para cada lado que você olha, existe um desenvolvedor/programador, com suas letrinhas coloridas geralmente desfocadas ou há uma boa distancia para que você não perceba que se trata de um código frontend, um código sem conhecimento da base, um código em seu máximo de nível de abstração, fazendo N tarefas com o mínimo de linhas possíveis e ainda por cima de tudo isso alimentado pelo copia-e-cola com IA de copiloto. Me parece que esse vôo está mesmo é sem piloto.

O termo “Terminal”

No início de tudo, os computadores eram enormes ocupavam uma sala mas os comandos deveriam ser programados em algum ponto de entrada, existia então uma espécia de painel de controle, uma bancada onde o programador poderia codificar, esse balcão era chamado de terminal. Logo o termo foi repassado mesmo durante os anos, e o terminal ainda mantem a sua caracteristica, fazer a ponte entre a linguagem de maquina e a linguagem humana através de comandos pré definidos, e ainda sem mantem acoplano ao computador, a diferença é que agora o computador pode ser trasportado com mais facilidade.

Terminal - Windows - Linux

Cada sistema operacional tem seu pacote de ferramentas e com isso cada um tem a sua forma de se comunicar com recursos do sistema. No linux dependendo da distribuição, temos o bash, Zsh, Fish e Dash... Pode-se notar que existem varias opções.

O Windows foi um pouco mais conservador nesse quesito, o CMD que foi por um grande periodo o único terminal do windows foi baseado no antigo MS-DOS, esse terminal sobreviveu até o ano de 2006 no Windows Vista.

Com CMD era possível criar scripts, tentar automatizar as tarefas com scripts, criar arquivos .BAT, talvez combinar isso com o agendador de tarefas. Realmente sempre foi possível se virar de alguma forma, mas com suas limitações e o fato de tratar tudo como texto, acabou limitando a ferramenta.

PowerShell - Windows

Foi então que foi lançado o PowerShell que em vez de tratar tudo como texto passa a tratar tudo como objetos, com suas propriedades e métodos, facilitando muito as automações.

Com ele temos uma linguagem bem dinamica e se você já é habituado com programação, fica fácil de entender. Por exemplo se você quer exibir qual processo está rodando em seu computador, você utiliza o Get-Process Isso te retornará a lista completa. Agora você pode utilizar um Get-Member para descobrir quais propriedades e metodos tem essa lista de objetos (que são os processos). E no nosso caso temos uma propriedade TotalProcessorTime que mostra o total de tempo que o processo está rodando, vamos utilizar essa para curiosidade. Vamos buscar qual processo que está rodando dias seguidos nesse computador

PS C:\Windows\system32> Get-Process | Select-Object Id, Name, TotalProcessorTime | Sort-Object TotalProcessorTime -Descending

Id Name TotalProcessorTime
4 System 00:10:12.7968750
3440 MsMpEng 00:07:43.7187500
8480 Code 00:05:05
6232 dwm 00:02:43.1250000
6224 Code 00:01:33.2656250
8836 chrome 00:00:58.9687500
2064 svchost 00:00:57.4843750
8076 chrome 00:00:50.2500000
12400 Code 00:00:40.8437500
6608 chrome 00:00:39.2031250
9964 Code 00:00:36.2968750

O curioso aqui foi ter encontrado a propriedade TotalProcessorTime, sem sair do PowerShell, apenas olhando as propriedades e métodos. Isso foi possível pois tudo é tratado como objeto e não como texto puro como era no CMD

Conclusão

Podemos notar que até mesmo a ferramenta mais básica que existe por anos, tem sua história e seus segredos com um poder enorme de automação e poder de controle sobre a máquina mas nem todos se interessam mesmo sendo um item essencial que faz parte do conhecimento base.