Gracias por la A2A. No voy a centrarme demasiado en recursos específicos. En cambio te voy a dar algo mucho mejor: la inspiración .
La mejor manera de aprender shell scripting es enamorarse de la línea de comandos. Haga de Linux su sistema operativo principal (no use OS X inicialmente, los botones bonitos lo seducirán lejos de la terminal si está empezando). Si ya lo está, y si está usando un escritorio deslumbrante como Gnome / KDE / Unity / etc, deshágase de él.
Mover a una distro con una interfaz de usuario mínima. Algo como Arch Linux o Debian. Utilice una IU de escritorio pequeña y rápida como Awesome o Xmonad. Vea el arranque de su máquina e inicie sesión dentro de los 10 segundos (ese es un número real, a diferencia del bombo publicitario de Windows 8). Aprenda a personalizar su sistema operativo a través de shell scripts. No piense “hmm … ¿cómo puedo aprender shell scripting al personalizar mi sistema operativo?”; Piensa “¿Cómo personalizo mi sistema operativo para hacer esto ?” – Aprenderás más rápido de esa manera. Por cada nuevo comando que aprenda, su productividad en la línea de comandos se multiplicará por diez, debido a las infinitas combinaciones y la poesía de las tuberías de Unix. No te darás cuenta de esto al principio, perdido en el mar de encantamientos arcanos. Perseverar. Sed es una navaja suiza que uso a menudo el día a día. Odio Alt-Tab como yo? Un script de shell de una sola línea es suficiente para crear su propia solución para cambiar de ventana a su gusto: Cambio rápido de aplicaciones en Linux usando Run-or-Raise.
Utilice un editor como Emacs / Vim y comprenda por qué esa tecnología de los años 70 ha perdurado hasta la fecha, y también con toda su fuerza. ¿Odias lo tonto que es Bash (el shell de Linux predeterminado)? Usa Zsh y Oh My Zsh! y subir de nivel sus habilidades de línea de comando.
- ¿Qué aprendiste en el ejército que ha sido útil para tu vida civil?
- ¿Cómo encuentro el equilibrio trabajo-vida?
- ¿Cuáles son las mejores maneras para que un principiante completo aprenda la programación funcional? ¿En qué idioma debería optar?
- ¿Cuál es la forma correcta de aprender cualquier lenguaje de programación? En mi caso, cuando paso a otros temas, olvido las sintaxis y conceptos del tema anterior. ¿Qué tengo que hacer?
- ¿Cuál es la mejor manera para que un adulto aprenda a tocar el violín? ¿Con qué tipo de violín puedo alquilar o comprar para practicar, dónde puedo obtener uno, cómo encuentro un profesor?
Hecho con todo eso? Bueno. Luego personalice el infierno de Emacs y Zsh, y ponga sus personalizaciones gloriosas en Github para que todo el mundo las vea. Haga que su sistema sea inutilizable a través de sus propias personalizaciones y aprenda cómo solucionarlo de la manera más difícil. Enrosque su grub.cfg y pregúntese por qué diablos su kernel ni siquiera arranca. Demonios, si te queda algo de tiempo, vuelve loco, crea tu propio Linux From Scratch!
Para la mayoría de las personas, su sistema operativo es una caja negra, una cadena mágica de 0 y 1 tan intrincadamente juntas que ni siquiera pueden comenzar a comprender cómo funciona. Como usuario de Linux competente, no serás uno de ellos. Estoy seguro de que me lo agradecerás más tarde por toda la diversión que tuviste. El aprendizaje será enorme , y la mejor parte: ¡será un mero efecto secundario de toda la diversión que tuvo!
Oh, lo siento, ¿solo querías aprender shell scripting? Me temo que tendrás que hacer todo eso para aprenderlo realmente 🙂
ACTUALIZACIÓN (3 de junio de 2016): Este es un excelente y moderno sitio web que tiene muchos buenos tutoriales sobre el shell, los conceptos básicos de Linux, las redes, etc.: Linux Journey