Tarefas práticas para aprender scripts de shell [fechado]

12

Estou procurando alguns problemas comuns na administração de sistemas unix e maneiras pelas quais os scripts de shell podem resolvê-los. Completamente para fins de auto-educação. Também gostaria de saber como você aprenderia o script de shell.

Eimantas
fonte

Respostas:

15

Sempre que você se encontrar fazendo algo várias vezes, faça um script. Pense o mais preguiçoso possível. Os computadores foram construídos para fazer toda essa porcaria servil. Qualquer coisa que cheira a trabalho ocupado precisa de um script de shell.

Pessoalmente, aprendi remexendo no Slackware por alguns anos. Veja o que acontece quando você retira o sistema o máximo possível. Aprenda a se sentir confortável com o texto. Enquanto todo mundo está exagerando no NetworkManager, saiba como é simples criar seu próprio NetworkManager. Claro, pode não ter tantos casos de uso, mas você pode colocar algo em funcionamento, conectando dinamicamente via Ethernet e sem fio sob demanda com bastante simplicidade.

Eli Frey
fonte
6

Gostaria de recomendar novamente os três livros que sugeri em outro tópico. Estes são, na minha opinião, os melhores livros para entrar no espírito do Unix:

  • O ambiente de programação Unix de Kernighan e Pike
  • Unix para o impaciente
  • Ferramentas Elétricas Unix de O'Reilly.

O primeiro é antigo, muito antigo, mas é conciso, é uma leitura curta e fornece as costeletas necessárias (expressões regulares, sed, pipelines).

O segundo é incrivelmente divertido.

O terceiro é uma coleção dos melhores truques dos mestres do Unix nos anos 90 (foi quando eu o li). O livro continua sendo reeditado, por isso tenho certeza de que ele contém muitas pepitas novas.

miguel.de.icaza
fonte
+1 para o ambiente de programação Unix. Depois de ler isso, de repente o Unix fez muito mais sentido para mim. Um pouco de revelação :-)
dr-jan
O ambiente de programação Unix é um dos poucos livros que abordam "documentos aqui". Você pode fazer muito com "documentos aqui" que muitos acham impossível fazer em um único arquivo.
Brock Ediger #
2

Como aprender: Apaixone-se pela linha de comando. Use-o regularmente e acesse as páginas de manual com frequência. Frequentemente, até. Quando aprendi scripts pela primeira vez, não conseguia contar quantas vezes digitei man bash. Também não consegui contar quantas vezes abri a página de manual para outro comando.

Kevin M
fonte
1
+1 para Kevin. Aprendi a escrever da mesma maneira. Normalmente, o cenário é que eu precisaria processar esses arquivos de dados COBOL (sim, há muito tempo ... mas esse é COBOL no UNIX, não nos mainframes !!). Em vez de pôr em marcha código COBOL, eu fogo até awk (nem mesmo perl, uma vez que não foi instalado em nosso servidor), e fazem coisas como top 50 clientes relatam :-)
Eu uso xterm(ou qualquer terminal, se isso importa) como meu gerenciador de arquivos principal. Assim, eu meio que me forcei a usar shell o tempo todo, o que me fez aprender e desenvolver alguns truques ao longo do tempo.
Denilson Sá Maia
2

Aprendi escrevendo uma ferramenta de monitoramento. Ele se conectaria a várias máquinas via ssh e coletaria dados como tempo de atividade, carga, número de conexões ativas, utilização de memória e coisas assim. Na minha máquina local, ele me mostraria esses dados como uma tabela de texto.

EricSchaefer
fonte
1

Segundo a recomendação de Miguel de 'O ambiente de programação Unix'. É realmente antigo, mas é como eu aprendi quase tudo o que sei sobre o shell e, como é tão antigo, você pode obtê-lo por apenas alguns dólares na Amazon: http://is.gd/eiSn6

jacksonh
fonte
0

Encontre um livro ou um manual e trate o shell escolhido como uma linguagem de programação, porque é. (Bem, talvez não seja csh ...)

Para iniciantes, saiba como descobrir se você está em um shell Bash, Bourne shell, csh, zsh ou qualquer outra coisa. Alguns deles são semelhantes entre si, como C e C ++ - enganosamente diferentes -, portanto, saber com quem você está lutando o ajudará a encontrar exemplos e manuais que realmente ajudarão em uma determinada situação.


fonte