Tareas prácticas para aprender scripting de shell [cerrado]

12

Estoy buscando algunos problemas comunes en la administración de sistemas Unix y las formas en que los scripts de shell pueden resolverlos. Completamente para fines de autoeducación. También me gustaría saber cómo harías para aprender scripting de shell.

Eimantas
fuente

Respuestas:

15

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.

Eli Frey
fuente
6

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 entorno de programación Unix de Kernighan y Pike
  • Unix para el impaciente
  • O'Reilly's Unix Power Tools.

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.

miguel.de.icaza
fuente
+1 para el entorno de programación de Unix. Después de leer esto, de repente, Unix tuvo mucho más sentido para mí. Un poco de revelación :-)
dr-ene
El entorno de programación Unix es uno de los pocos libros que cubre "documentos aquí". Puede hacer mucho con "documentos aquí" que muchos piensan que es imposible hacer en un solo archivo.
Bruce Ediger
2

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.

Kevin M
fuente
1
+1 a Kevin. Aprendí las secuencias de comandos de la misma manera. El escenario generalmente es que necesitaría procesar estos archivos de datos COBOL (sí, eso es muy atrás ... ¡pero esto es COBOL en UNIX, no en Mainframes!). En lugar de poner en marcha el código COBOL, iniciaría awk (ni siquiera perl ya que no estaba instalado en nuestro servidor), y haría cosas como el informe de los 50 principales clientes :-)
Yo uso 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.
Denilson Sá Maia
2

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.

EricSchaefer
fuente
1

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

jacksonh
fuente
0

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.


fuente