Respuestas:
Cada vez que te encuentres haciendo algo varias veces, escríbelo. Piensa tan vago como puedas. Las computadoras fueron construidas para hacer toda esa basura servil. Cualquier cosa que huele a trabajo ocupado necesita un script de shell.
Personalmente, aprendí hurgando en Slackware durante un par de años. Vea lo que sucede cuando retira su sistema lo más posible. Aprende a sentirte cómodo con el texto. Mientras todos los demás observan y se abalanzan sobre NetworkManager, aprenda cuán simple es hacer su propio NetworkManager. Claro, puede que no tenga tantos casos de uso, pero puede obtener algo en funcionamiento, conectándose dinámicamente a través de ethernet e inalámbrico bajo demanda de manera bastante simple.
Me gustaría volver a recomendar los tres libros que sugerí en otro hilo, estos son, en mi opinión, los mejores libros para entrar en el espíritu de Unix:
El primero es antiguo, muy antiguo, pero es conciso, una lectura corta y le dará las habilidades de shell que necesita (expresiones regulares, sed, tuberías).
El segundo es increíblemente entretenido.
El tercero es una colección de "mejores trucos" de los maestros de Unix en los años 90 (es cuando lo leí). El libro sigue siendo reeditado, así que estoy seguro de que contiene muchas pepitas nuevas.
Hay una gran cantidad de información excelente en la Guía avanzada de secuencias de comandos Bash , y se actualiza con frecuencia para mantenerse actualizado.
Cómo aprenderlo: enamórate de la línea de comandos. Úselo regularmente y abra las páginas del manual con frecuencia. Con frecuencia, incluso. Cuando estaba aprendiendo los scripts por primera vez, no podía contar cuántas veces escribí man bash
. Tampoco podía contar cuántas veces abrí la página de manual para otro comando.
xterm
(o cualquier terminal, si eso importa) como mi administrador de archivos principal. Por lo tanto, me obligué a usar Shell TODO el tiempo, lo que me hizo aprender y desarrollar algunos trucos con el tiempo.
Lo aprendí escribiendo una herramienta de monitoreo. Se conectaría a un montón de máquinas a través de ssh y recolectaría datos como tiempo de actividad, carga, número de conexiones activas, utilización de memoria y cosas por el estilo. En mi máquina local me mostraría esos datos como una tabla de texto.
Apoyo la recomendación de Miguel de 'El entorno de programación de Unix'. Es realmente antiguo, pero es cómo aprendí casi todo lo que sé sobre el shell y porque es tan antiguo que puede obtenerlo por unos pocos dólares en Amazon: http://is.gd/eiSn6
Encuentre un libro o un manual y trate el shell elegido como un lenguaje de programación, porque lo es. (Bueno, tal vez no csh ...)
Para empezar, aprende a averiguar si estás en un shell Bash, un shell Bourne, csh, zsh o lo que sea. Algunos de estos son similares entre sí, como C y C ++, engañosamente diferentes, por lo que saber con cuál estás luchando te ayudará a encontrar ejemplos y manuales que realmente te ayudarán en una situación dada.