Quão útil é o script do Linux? [fechadas]

3

Estou tentando passar para o nível intermediário aprendendo os comandos do shell.

Nos fóruns on-line do Linux, é comum o consenso de que, para ser um usuário avançado do Linux, é preciso conhecer o script. Eu mesmo não tenho experiência com o script do sistema operacional e não sei o que é o hype.

Meu entendimento é que é apenas uma maneira conveniente para os administradores do sistema fazerem backups, emitindo um conjunto de comandos de cópia.

Esse entendimento está correto? Que tipo de tarefas avançadas são comumente executadas usando scripts?

Na escala de 1 a 10, 1 sendo hype superestimada e 10 sendo a poção mágica para todos os problemas do Linux, onde está o script do linux?

    
por Kshitiz Sharma 01.09.2012 / 09:26

4 respostas

13

O script é simplesmente uma forma de programação. É isso, não tem mágica.

Hoje em dia, com uma distribuição moderna e completa do Linux, você pode gerenciar seu sistema usando apenas interfaces gráficas. Se o que você precisa fazer é coberto por essas ferramentas, então você está bem.

Agora, se algumas das tarefas que você precisa fazer não são cobertas por essas interfaces, ou você precisa executá-las em segundo plano, enquanto você está dormindo, em um computador para o qual você só tem acesso shell, ... então você precisará usar outra coisa.

E o ponto de partida para essa "outra coisa" em sistemas do tipo Unix é o shell e o shell.

Seu sistema Linux vem com uma grande caixa de ferramentas de utilitários para o seu shell. Coisas para gerenciamento de arquivos (copiar, mover, localizar, comparar arquivos, etc.) e manipulação de arquivos de texto (impressão, modificação, comparação, análise, etc.) são muito comuns, já que sistemas Unix-like são arquivos e a maioria dos softwares ( e OS) arquivos de configuração são texto simples.
Comece aprendendo aqueles que você precisa deles. Então, procure em ferramentas para o que você está interessado em (conversão de mídia, material de banco de dados, gerenciamento de sites, monitoramento do sistema, ... a lista é interminável).

Backups são uma das tarefas que praticamente exigem automação. Mas qualquer coisa repetitiva pode (e provavelmente deveria) ser automatizada.
Precisa converter todos os seus arquivos FLAC para MP3 para o seu media player? Script uma vez, você será capaz de fazer isso em um comando na próxima vez.
Precisa de miniaturas das suas últimas fotos de férias para colocar no seu site? Script isso! (E faça o script da atualização do site também, enquanto estiver lá).
Precisa limpar arquivos de log antigos? Script, você precisa fazer isso novamente na próxima semana de qualquer maneira.
Precisa fazer gráficos bonitos para métricas de desempenho em seu farm de servidores? Script de coleta de dados e geração de gráficos, você terá dados atualizados sempre que precisar. (Em todos os casos acima, use ferramentas existentes para fazer o trabalho pesado, seus scripts devem colá-los todos juntos para fazê-los funcionar exatamente como você quer que eles o façam.)

Conhecer linguagens de script (não apenas o shell, e não apenas o Linux) é como conhecer outras linguagens de programação: quanto mais você sabe, mais eficiente você será, já que terá um grande conjunto de ferramentas para escolher você precisa fazer algo.

Não há um fator "hype": se você tiver uma tarefa a fazer, escolha a melhor ferramenta para fazer isso na sua caixa de ferramentas. Em sistemas do tipo Unix, se a sua caixa de ferramentas não tiver um shell e algumas linguagens de script, você estará perdendo muita diversão. Mas se você puder fazer tudo o que você precisa fazer com interfaces gráficas, então você está bem, nada de errado com isso.

    
por 01.09.2012 / 10:25
8

Não, essa compreensão não está correta. Relacionar "scripting" a "utilidade no Linux" usando uma escala de 1-10 não faz sentido.

Sua falta de categorização de scripts como algo que permite aos administradores automatizar os backups torna sua pergunta em " Quão útil é transportar um pneu sobressalente no meu carro? "

O script em um sistema Linux é mais equivalente a todas as porcas, parafusos, hastes, braçadeiras, grampos e soldas que seguram seu carro juntos, todos os fios, engrenagens de mangueiras e eixos que levam as coisas para onde vão e a maior parte o maquinário na fábrica que o montou.

Um administrador Linux sem habilidades de script é como um mecânico de automóveis sem chaves. Talvez eles possam dirigir o carro e apertar botões no painel, mas ser capaz de programar o rádio não faz de você um mecânico. Para isso você precisa ter ferramentas.

    
por 01.09.2012 / 12:32
6

Esta é uma questão não técnica, por isso vou tentar evitar detalhes técnicos e escrever sobre o que penso sobre scripts.

Na sua escala de 1 a 10: eu diria algo entre 5-10, dependendo do que você está tentando fazer.

Pode variar de moderadamente útil a essencial para evitar gastar horas ou dias fazendo o que um computador pode fazer em minutos. O ponto principal do script é a automação, especialmente de tarefas repetitivas (chatas) ou tarefas complicadas (propensas a erro humano devido a erros de digitação ou distração ou esquecendo-se de um passo vital).

(IMO, um ponto secundário da criação de scripts é que é prática no desenvolvimento de habilidades úteis para resolver problemas, para pensar e analisar problemas lógica e metodicamente; para escrever um script, você precisa dividir o que está fazendo em etapas distintas )

Como um usuário iniciante do Linux, provavelmente o que você mais precisa aprender sobre scripts é que o script geralmente começa com o aborrecimento de ter que digitar a mesma seqüência de comandos repetidamente sempre que você precisar fazer a mesma coisa. Então você coloca esses comandos em um arquivo e agora você escreveu seu primeiro script.

Posteriormente, você pode modificá-lo para que o seu script receba argumentos da linha de comando (em vez de ter, por exemplo, nomes de arquivos com códigos rígidos). E mais tarde você pode querer um script para fazer uma de duas (ou mais) coisas diferentes dependendo das circunstâncias, ou você quer que um script faça a mesma coisa repetidamente em múltiplos arquivos, então você começa a olhar para estruturas de controle como se; senão, instruções case, while e for loops, etc.

Aprender a escrever scripts é um processo incremental; você pode começar com coisas pequenas e simples e gradualmente aprender a fazer coisas mais complicadas. Aprender a fazer coisas simples é tão simples quanto aprender como digitar comandos em um editor de texto e salvá-los. Pode levar meses ou anos para se tornar "bom", e uma vida inteira para realmente dominá-lo. Eu tenho escrito scripts sh e bash usando as habituais ferramentas do Linux como awk e sed e grep por mais de 20 anos e ainda estou aprendendo coisas novas e novas / melhores maneiras de fazer as coisas ou alguma opção obscura mas muito útil de ferramentas que eu tenho usado há anos.

Eu gosto do fato de que sempre haverá algo novo para aprender. Na verdade, eu penso nisso como uma espécie de razão terciária para escrever scripts - se eu tenho algo repetitivo e tedioso para fazer, então escrever um script para fazer isso não apenas remove a maior parte do escopo de erro humano, ele torna o trabalho um inferno de muito mais interessante fazer. Pode levar 2 ou 3 horas para escrever um bom roteiro para fazer o que eu poderia ter feito manualmente nessas mesmas 2 ou 3 horas, mas não vou chegar nem perto de ficar entediado ou cansado, e vou conseguir muito mais satisfação no trabalho com isso. Como bônus, também acabo com uma ferramenta que pode ser útil no futuro para automatizar tarefas semelhantes. O melhor de tudo, eu poderia ter aprendido algo novo ou interessante - ou melhorado um pouco mais minhas habilidades - que eu possa usar no futuro.

    
por 01.09.2012 / 12:07
0

O script é uma parte fundamental da filosofia do Linux.

Vamos pegar algo que está no extremo oposto do espectro: Windows. Para ser realmente breve, o shell script é um bom terço do que diferencia o Linux do Windows.

  • O Linux é de código aberto . Windows não é.
  • O Linux é gratuito . Windows não é.
  • O Linux tem uma estrutura shell que é concebida para permitir que você canalize comandos para outros comandos : um comando do Linux se torna um bloco de construção para algo maior, geralmente um script . O Windows tem apenas janelas.
por 01.09.2012 / 14:13

Tags