Réponses:
Chaque fois que vous vous retrouvez JAMAIS à faire quelque chose plusieurs fois, écrivez-le. Pensez aussi paresseux que possible. Les ordinateurs ont été construits pour faire toute cette merde subalterne. Toute chose qui sent le travail chargé a besoin d'un script shell.
Personnellement, j'ai appris en fouillant dans Slackware pendant quelques années. Voyez ce qui se passe lorsque vous retirez le plus possible votre système. Apprenez à vous familiariser avec le texte. Pendant que tout le monde roule et impressionne avec NetworkManager, découvrez à quel point il est simple de créer votre propre NetworkManager. Bien sûr, il peut ne pas y avoir autant de cas d'utilisation, mais vous pouvez obtenir quelque chose de opérationnel, en vous connectant dynamiquement via Ethernet et sans fil à la demande assez simplement.
Je voudrais recommander à nouveau les trois livres que j'ai suggérés dans un autre fil, ce sont à mon avis les meilleurs livres pour entrer dans l'esprit d'Unix:
Le premier est ancien, très ancien, mais il est concis, une lecture courte et vous donnera les côtelettes de shell dont vous avez besoin (expressions régulières, sed, pipelines).
Le second est incroyablement divertissant.
Le troisième est une collection de "meilleures" astuces des maîtres Unix dans les années 90 (c'est à ce moment-là que je l'ai lu). Le livre continue d'être réédité, donc je suis sûr qu'il contient de nombreuses nouvelles pépites.
Il existe une multitude d'informations utiles dans le Guide avancé de Bash-Scripting , et il est fréquemment mis à jour pour rester à jour.
Comment l'apprendre: tombez amoureux de la ligne de commande. Utilisez-le régulièrement et consultez souvent les pages de manuel. Souvent, même. Quand j'ai commencé à apprendre le script, je ne pouvais pas compter le nombre de fois que j'avais tapé man bash
. Je ne pouvais pas non plus compter le nombre de fois où j'ai tiré la page de manuel pour une autre commande.
xterm
(ou n'importe quel terminal, si cela est important) comme gestionnaire de fichiers principal. Ainsi, je me suis un peu forcé à utiliser Shell tout le temps, ce qui m'a fait apprendre et développer des astuces au fil du temps.
Je l'ai appris en écrivant un outil de suivi. Il se connecterait à un tas de machines via ssh et collecterait des données comme la disponibilité, la charge, le nombre de connexions actives, l'utilisation de la mémoire et des trucs comme ça. Sur ma machine locale, il me montrait ces données sous forme de tableau de texte.
J'appuie la recommandation de Miguel sur «l'environnement de programmation Unix». C'est vraiment vieux mais c'est comme ça que j'ai appris presque tout ce que je sais sur le shell et parce que c'est si vieux que vous pouvez l'obtenir pour quelques dollars sur Amazon: http://is.gd/eiSn6
Trouvez un livre ou un manuel et traitez votre shell choisi comme un langage de programmation, car il l'est. (Bon, peut-être pas csh ...)
Pour commencer, apprenez à savoir si vous êtes dans un shell Bash, Bourne, csh, zsh ou autre. Certains d'entre eux sont similaires les uns aux autres comme le C et le C ++ - trompeusement différents - donc savoir avec lequel vous vous battez vous aidera à trouver des exemples et des manuels qui vous aideront réellement dans une situation donnée.