Respostas:
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.
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 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.
Há muitas informações excelentes no Guia avançado de script de bash e é atualizado com freqüência para manter-se atualizado.
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.
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.
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.
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
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.