PowerShell vs Bash

está no soapbox

hoje, me deparei com um tweet E, na verdadeira moda milenar mais velha, fui acionado. O tweet foi um presente (nome e identificador ofuscado):

o Twitter disse sobre a "superioridade" do bash

A razão de trigger para mim não é só porque ele cães em PowerShell (eu fiz uma saudável carreira, Elogie Snover), mas também comparar maçãs e laranjas. Se eu fosse carpinteiro, seria como dizer “Olha, um martelo é ótimo e tudo, mas seria melhor se fosse uma chave de fenda”. Os administradores são frequentemente instruídos a” escolher um lado da cerca”, o que apenas dificulta sua capacidade. O fato é que PowerShell e bash são duas ferramentas diferentes com propósitos diferentes (embora semelhantes). Neste artigo, vou dar-lhe um fato, uma observação e uma opinião sobre a diferença entre PowerShell e Bash.

facto: As Diferenças técnicas entre PowerShell e Bash

Para aqueles completamente familiarizado com o assunto, o bash é o shell de comando e linguagem de script para a maioria dos sistemas Linux, considerando que o PowerShell é uma shell de comando e linguagem de script para a maioria dos sistemas Windows. Muitas pessoas resumem esse argumento a um simples “Linux vs. Windows”, mas hoje vamos falar sobre as próprias linguagens de script.

eu sei que eu poderia ser criticado pesadamente pelo que estou prestes a dizer, mas a verdade simples é que há apenas uma grande diferença entre bash e PowerShell. Bash trata as saídas como strings, enquanto o PowerShell trata a saída como objetos. Filosoficamente, bash diz que, como você, como administrador, é todo poderoso, você é responsável pela qualidade do que você insere no bash, e isso afetará diretamente a qualidade da saída do bash. O PowerShell, por outro lado, determina um pouco da saída para você. Ao estruturar a saída como objetos, Você é capaz de armazenar e manipular os objetos com diferentes métodos e propriedades.

uma maneira de pensar sobre isso é que, com o bash, seus comandos e Saídas representam uma parte de um todo. Peça Peças suficientes juntas e você pode construir algo impressionante. Isso é semelhante a usar um pedaço de seu script para construir um motor, os outros alguns eixos e um terceiro suas rodas. No final do dia, você terá um carro quando estiver combinado. O PowerShell, por outro lado, responde ao seu comando com o carro inteiro e você precisa trabalhar para trás para obter um componente individual.

eu sei que há muito mais para as diferenças, mas em poucas palavras que deve levá-lo até a velocidade.

observação: trajetórias de carreira

há algumas coisas que notei ao longo dos anos na indústria. Primeiro, há o que eu carinhosamente chamo de “engenheiros com Clique Esquerdo”. Estas são as pessoas que não conhecem nenhuma linguagem de script, muito menos as duas grandes de PowerShell e bash. Na maioria das vezes, esses são os tipos que são repassados para promoções, são negligenciados quando se trata de compensação baseada em desempenho e provavelmente serão automatizados ou deixados de lado nos próximos anos.

em seguida, há pessoas que foram instruídas a manter um lado da cerca. Eu realmente me sinto muito triste por essas pessoas, porque se o chefe deles sabe ou não, eles estão matando as perspectivas de carreira de seus funcionários. Não consigo pensar em uma única loja para a qual consultei, trabalhei ou bebi com uma loja homogênea de Linux ou Windows. Existem simplesmente muitas coisas que exigem vários sistemas operacionais e, portanto, várias linguagens de script. Felizmente PowerShell está agora disponível no Linux, e há um subsistema Linux Para Windows, mas não é uma tradução direta qualquer direção. Você pode até argumentar que a orquestração está substituindo uma necessidade direta de qualquer idioma, mas também não conheci uma loja que seja um ambiente 100% orquestrado. O fato é que as linguagens de script estarão por perto e serão necessárias para um minuto quente.

finalmente, há pessoas que podem trabalhar em qualquer tipo de ambiente usando PowerShell ou bash. Esses são os tipos de pessoas que os empregadores acham desejáveis porque podem ser atribuídos a qualquer tarefa e não perseguem os outros membros da equipe por serem administradores do Linux ou do Windows. Isso é semelhante a todo o debate PC vs. Mac 15 anos atrás, onde as pessoas do Windows pensavam que eram melhores por razões a, b E c, enquanto ao mesmo tempo os usuários de Mac pensavam que eram superiores por razões x, y ou Z. fato divertido: eu codifico o PowerShell no meu MacBook Pro e adoro. Eu escrevi scripts bash na minha máquina Windows para conectar Jenkins com zero reclamações.

opinião: seja bilíngue

não adianta conhecer apenas um” idioma ” (ou seja, se você considerar qualquer um desses utilitários um idioma completo). Na verdade, existem equivalentes funcionais suficientes entre PowerShell e bash que o Windows está enviando com alguns comandos bash. No passado, você teria que hackear seu PATH para que ls fosse tratado como dir em uma linha de comando do Windows. Agora, você pode ir para PowerShell, digite ls e obter a resposta que espera. Hoje, você tem tantos scripts e utilitários de plataforma cruzada que a diferença está diminuindo, mas as bases de código ainda estão polarizadas. Certas lojas só terão usado o bash para criar seus scripts, enquanto outras lojas terão usado apenas o PowerShell. Recentemente entrei em uma loja sem um único script PowerShell-tudo foi escrito em bash ou mesmo perl. Demorou algum tempo, mas agora temos uma divisão bastante uniforme entre nossos scripts em uma divisão quase 50/50 do Windows e Linux. Para entrar em um ambiente e ter certeza de que você tem a capacidade de lidar com as tarefas em mãos, conheça ambos.

espero que você tenha aprendido algo útil.

passos para baixo do soapbox

não se cansa de mim? Não deixe de me seguir no Twitter @_brycemcdonald.

você sabia que estou disponível para locação? Entre em contato comigo para obter detalhes via twitter, e-mail ou no site da NorthCode Solutions.

Deixe uma resposta

O seu endereço de email não será publicado.