Guía para Apple IT: Introducción a Mac Scripting

Guía para Apple IT: Introducción a Mac Scripting

en esta guía para principiantes, vamos a guiarlo a través de los bloques de construcción de Mac scripting, y luego veremos cómo el uso de scripts con su solución de administración de dispositivos móviles (MDM) puede ayudarlo a administrar de manera más efectiva los dispositivos propiedad de la empresa.

Aquí hay un resumen rápido de algunos de los temas que cubriremos:

  • ¿Qué son los Scripts?
  • usar Scripts con una solución MDM
  • comandos de Terminal vs. scripts de Shell
  • ¿Qué son los Shells: Bash vs. Zsh?,
  • Conceptos básicos de Scripting con Bash

¿qué son los Scripts?

Los Scripts son pequeños programas de computadora que recopilan una serie de comandos en un archivo. Mientras que escribir comandos en el Terminal de Apple normalmente se hace uno por uno, con un script, puede ejecutar una larga lista de comandos con una sola interacción.

si bien normalmente no usa scripts de Mac para crear programas más grandes, puede usarlos para automatizar los comportamientos rutinarios de la computadora. Por ejemplo, si tiene una rutina que consume mucho tiempo y requiere muchos clics, puede escribir un script y hacerlo con solo uno.,

Apple lo pone bien en su Shell Scripting Primer:

escribir un shell script es como andar en bicicleta. Te caes y te rascas mucho las rodillas al principio. Con un poco más de experiencia, se sentirá cómodo montándolos por la ciudad, pero también descubrirá rápidamente por qué la mayoría de la gente conduce automóviles para viajes más largos.

Shell scripting es generalmente considerado como un lenguaje glue, ideal para crear pequeñas piezas de código que conectan otras herramientas. Aunque los scripts de shell se pueden usar para tareas más complejas, normalmente no son la mejor opción.,

aprender a escribir scripts es similar a aprender un lenguaje de programación. Empiezas con lo básico y acumulas tus conocimientos a partir de ahí.

así que, en esta guía, nos vamos a centrar en los bloques de construcción de scripting. La información que cubrimos aquí será útil en muchos ajustes, pero en última instancia, nos centraremos en cómo los scripts pueden ayudarlo a realizar acciones en varios dispositivos utilizando una solución MDM.

¿qué pueden hacer los Scripts?

esencialmente, los scripts le permiten hacer cosas complicadas de forma rápida, precisa y fácil.,

  • rápidamente porque el uso de scripts de Mac en un MDM puede automatizar tareas tediosas, como acceder a un programa informático en 100 dispositivos de la empresa, con cero clics en lugar de 100.
  • Con precisión porque un buen script ejecutará una acción definida de la misma manera cada vez, mientras que confiar en una persona para completar la tarea manualmente podría conducir a errores, inconsistencia y confusión.
  • fácilmente porque puedes realizar una tarea realmente complicada y matizada con una serie de scripts simples que la descomponen en piezas más pequeñas.,

usar Scripts con una solución MDM

usar scripts por su cuenta puede ayudarlo a ahorrar tiempo, pero usarlos con una solución MDM, como nuestro producto Kandji, abre mucho más poder y libertad. Después de escribir un script que te guste, puedes ejecutarlo a través de tu solución MDM para aplicarlo a todos los dispositivos de tu empresa.

la forma en que se utilizan los scripts en las soluciones MDM variará según el producto, pero con Kandji puede usarlos para hacer cosas como personalizar la instalación de aplicaciones personalizadas para satisfacer las necesidades exactas de su empresa., (Puede leer nuestra guía para la implementación de aplicaciones si necesita una introducción sobre esto.)

en este caso, si su empresa desea instalar una aplicación personalizada en todos los dispositivos de la empresa, puede especificar ciertas acciones de preinstalación o postinstalación agregando scripts a sus respectivos cuadros de entrada (consulte la imagen a continuación):

Scripts de preinstalación

puede crear un script de preinstalación si desea realizar una acción antes de que se produzca la instalación., Los scripts de preinstalación generalmente se usan para:

  • Realizar tareas de limpieza que normalmente se harían manualmente antes de reinstalar el software, como eliminar licencias, cachés, archivos de base de datos y más.
  • Ejecutar archivos de configuración. Muchas aplicaciones emplean opciones de implementación masiva que funcionan encontrando archivos de configuración colocados antes de que se ejecute el instalador. Por ejemplo, puede usar un script de preinstalación para crear una carpeta en particular y escribir un archivo dentro de esa carpeta que contenga algún tipo de identificador., Cuando se realiza la instalación, el instalador encuentra esta información y la usa para configurar automáticamente la aplicación.

Scripts Postinstall

También puede crear un script postinstall, que generalmente se usa para configurar las preferencias de la aplicación antes de ejecutar el software. Para compartir un ejemplo común, puede usar un script posinstall para configurar las preferencias del usuario para Google Chrome y asegurarse de que las actualizaciones automáticas estén configuradas.,

como se puede imaginar, el scripting de estos comportamientos le da mucho más control sobre el proceso de instalación, y puede ahorrarle a su equipo de TI mucho tiempo si tuvieran que hacerlo manualmente de lo contrario.

Scripts personalizados

Kandji también tiene una función de Script personalizado que le permite agregar cualquier script compatible con macOS. Estos scripts de Mac pueden ejecutarse una vez por dispositivo o de forma continua. También hay una opción de script de corrección que puede incluir cuando sea necesario., Puede ver más de las opciones disponibles en la página de scripts personalizados de Kandji a continuación:

Building Blocks of Scripting

ahora que tenemos una definición de trabajo de lo que son los scripts y sabemos lo que pueden lograr, aprendamos cómo funciona todo. En esta sección, analizaremos algunos de los principales bloques de construcción de Mac scripting, incluidos los comandos de Terminal, los scripts de shell y dos shells comunes.

¿qué son los comandos de Terminal?

Terminal es la interfaz de línea de comandos (CLI) de macOS., Permite a los usuarios hacer modificaciones avanzadas a su Mac usando comandos, que son solo instrucciones para su Mac con respecto a lo que desea que haga.

fuente de la imagen: support.apple.com

Una advertencia: Terminal es una herramienta increíblemente poderosa. Investigue y pruebe exhaustivamente los comandos antes de ejecutarlos y, cuando sea posible, pruebe con una máquina virtual en lugar de una máquina de producción.

Cuando escribe comandos en Terminal, le permite comunicarse con un intérprete o shell. El intérprete toma el código y lo traduce al lenguaje de máquina que el sistema operativo puede entender.,

para abrir Terminal, simplemente haga clic en «aplicaciones», abra la carpeta» Utilidades «y luego haga doble clic en la aplicación» Terminal». Puede usar comandos de Terminal para cualquier cosa que pueda lograr en la GUI – y mucho más.,

Aquí hay algunos ejemplos básicos de comandos:

  • agregar texto a un documento (si el documento no existe, se creará uno nuevo)
echo 'Welcome to my document!' > ~/Desktop/myDocument.txt
  • Hacer una carpeta en una ubicación determinada
mkdir ~/Desktop/myFolder
  • mover un documento a un cierta ubicación
mv ~/Desktop/myDocument.txt ~Desktop/myFolder
  • abrir un documento desde cierta ubicación
open ~/Desktop/myFolder/myDocument.txt

Esta es una gran manera de ver cómo puede usar comandos para que su Mac realice ciertos comportamientos, pero no es muy práctico si desea realizar una serie de tareas., Veremos cómo los scripts hacen esto posible en la siguiente sección.

¿qué son los Scripts de Shell de Mac?

por supuesto, conectar comandos de Terminal uno por uno se volverá bastante tedioso cuando intente implementar cambios para cientos de dispositivos Mac propiedad de la compañía. Por lo tanto, en lugar de ejecutar comandos individuales como nuestro ejemplo en la última sección, puede convertir todos sus comandos en un script, un script de shell, que se puede ejecutar sin interacción directa. Esto hace que sea más fácil ejecutar procesos repetitivos o de varios pasos al tiempo que minimiza los errores.,

un script de shell es solo un archivo de texto que contiene comandos UNIX (comandos que hablan con su sistema operativo – macOS es un sistema operativo basado en UNIX). Todo lo que puede hacer con comandos de Terminal lo puede hacer con scripts de shell de Mac, solo que mucho más fácilmente. Incluso puede automatizar scripts de shell con herramientas como launchd.

Ejecutar Shell Script: Mac Terminal

en realidad es bastante simple ejecutar un shell script. Si tuviéramos que hacer un script Mac a partir de los comandos de Terminal introducidos anteriormente, solo tendríamos que hacer esto:

  1. Type #!/bin/bash en la primera línea., Los dos primeros personajes, llamados «shebang» (#!), deje que Terminal sepa que está escribiendo un script de shell. El resto de la línea especifica con qué shell deben ejecutarse los scripts. En este caso, es bash, pero también puedes especificar «zsh», que es otro shell que también cubriremos en la siguiente sección.
  2. agregue los comandos a un editor de scripts. Al igual que los procesadores de texto están especializados para la escritura, los editores de guiones están especializados para scripting, haciendo cosas como palabras de codificación de colores de ciertas categorías funcionales y marcar errores., Hay muchos editores de script por ahí, pero dos de los más populares (y GRATUITOS) son Atom y bbedit.
  3. guárdelo como » myscript.bash » o como cualquier otro nombre-solo asegúrese de mantener la extensión de archivo (la parte después del período) etiquetada como bash. De lo contrario, Terminal no podrá ejecutarlo correctamente.
  4. autorizar Terminal para ejecutar su script. Ahora solo necesita dar permiso de Terminal para ejecutar su script., No copie y pegue el contenido – necesita decirle a Terminal que haga el archivo de script ejecutable usando el comando chmod +x, por ejemplo:
    chmod +x ~/Desktop/myFolder/myscript.bash
  5. presione» enter » para ejecutar shell script. Terminal de Mac se encargará del resto!

Eso es todo – el programa ejecutará la lista de comandos en orden. Probablemente sucederá más rápido de lo que puede seguir, pero eso es solo otro beneficio de Mac scripting: es realmente rápido.,

antes de hablar de otras cosas que puedes hacer con los scripts, vamos a tener una visión general de lo que son los shells (como «bash», el que usamos en este ejemplo).

¿qué son las conchas?

cuando abre Terminal, el sistema inicia un programa de shell. Los Shells son intérpretes de línea de comandos que, en pocas palabras, significa que toman tus comandos y los dan al sistema operativo para ponerlos en acción.

de forma predeterminada, Mac utiliza zsh (Z shell) o bash (Bourne-again Shell) como intérprete de comandos o intérprete de línea de comandos. El shell predeterminado de tu Mac dependerá de la iteración de macOS que estés usando.,

  • zsh (Mac Catalina): si has creado una nueva cuenta de usuario en macOS Catalina beta o posterior, entonces tu shell predeterminado es zsh. las iteraciones de macOS antes de esto usan bash.
  • bash (macOS anteriores): si estás usando macOS Mojave y anteriores, bash es tu shell predeterminado.

si tu cuenta utiliza un shell predeterminado de bash o zsh Mac, puedes cambiarlo en unos pocos pasos., Esto es lo que debe hacer:

  1. haga clic en el menú de Apple
  2. elija Preferencias del sistema > usuarios & grupos
  3. haga clic en el candado e ingrese su nombre de Cuenta y contraseña.
  4. Control-haga clic en su nombre de usuario en la lista de usuarios > elija Opciones avanzadas
  5. mire el menú «login shell» y elija una shell
  6. haga clic en Aceptar cuando encuentre la shell que desea

Bash vs., Zsh: Mac Scripting

Bash y zsh en realidad tienen muchas características en común, y puede cambiar de una a otra sin tener que golpear demasiado de una curva de aprendizaje. Por lo tanto, antes de entrar en lo que los hace diferentes, vamos a ver algunos lugares donde se superponen.

  • Comando Z: El Comando Z permite a los desarrolladores navegar a través de sus directorios fácilmente, dándoles la capacidad de visitar un directorio visitado recientemente o con frecuencia escribiendo «z» seguido del nombre del directorio., Esto es más rápido que escribir la ubicación completa como tuvimos que hacer cuando abrimos el documento en la sección de comandos de terminal.
  • autocompletado: ambos shells también incluyen una función de autocompletado de línea de comandos. Para usar esta función, solo tiene que escribir un comando, presionar la tecla «-» y luego presionar tab. Verá una lista de opciones disponibles para el comando, que puede revisar hasta que encuentre la que desea.,
  • auto-corrección: ambos shells usan una forma de auto-corrección, pero la función de bash tiene que ser habilitada primero mientras que zsh tiene una función de auto-corrección incorporada que detectará automáticamente pequeños errores tipográficos.
  • personalización del Color: tanto zsh como bash ofrecen muchas herramientas de personalización del color que facilitan la comprensión del script de un vistazo.

cuando se trata de diferencias, bash ha sido el shell predeterminado para los usuarios de macOS hasta Catalina, y sigue siendo el shell más utilizado entre los administradores de TI., Debido a que bash tiene un gran número de seguidores, hay muchos recursos por ahí, lo que lo hace ideal para principiantes.

Bash es parte de la familia de conchas Bourne, una categoría que también incluye sh, ash, zsh y ksh. Está cargado con más características de las que podemos enumerar aquí, pero algunas de sus funciones únicas incluyen looping, construcciones condicionales, expansiones de tilde y brace y alias.,

Zsh, el shell predeterminado de Mac Catalina, por otro lado, no es tan popular como bash, pero todavía tiene un gran número de seguidores, incluidos marcos de código abierto como Oh My Zsh, y es ampliamente elogiado por su funcionalidad. Zsh ofrece algunas características únicas como globbing de archivos, módulos cargables, expansión de rutas, scripts de inicio/apagado, y más. En esta guía, nos centraremos principalmente en bash.

los fundamentos de Bash

ahora que entendemos cómo funcionan los scripts y shells, es hora de repasar algunos consejos sobre scripting con bash., Después de eso, nos sumergiremos en lo básico como asignar variables y escribir condicionales.

separación de palabras

uno de los primeros bloques de construcción importantes para envolver su cabeza es cómo bash utiliza separadores de palabras. Mientras mira ejemplos de script, verá metacaracteres como; y &. Estos son solo dos de los siete caracteres que bash usa para separar palabras mientras se escribe.

incluiremos una lista de los siete a continuación. Cuando veas esto, no te preocupes. Mantienen todo organizado., Como verá más adelante en la sección condicionales, el tipo de sintaxis utilizada depende de lo que esté tratando de lograr.

  • (
  • )
  • <
  • >
  • ;
  • &
  • |

Útiles de la Organización de los Comandos

Bash también le ofrece una serie de comandos que puede utilizar para organizar los archivos. Cubrimos algunos de estos en la sección de comandos de Terminal, pero aquí hay algunos más:

  • mkdir (make directory) se usa para crear un nuevo directorio o carpeta.,
  • mv (move) se usa para mover uno o más archivos o directorios a otro lugar.
  • rm (remove) se utiliza para eliminar archivos.
  • rmdir (remove directory) se utiliza para eliminar un directorio.

comandos de visualización

si desea hacer algo más que mover archivos, puede usar algunos de estos comandos de visualización para ver la información que contienen los archivos. Aquí hay dos de ellos:

  • cat (concatenar) lee el contenido de uno o más archivos y lo muestra. Esto es ideal para archivos más cortos.,
  • less es otro comando de visualización que es ideal para ver archivos Más largos porque solo muestra una pantalla de información a la vez e incluye funciones de navegación útiles para buscar palabras específicas o ir a la página siguiente o anterior.

¿qué son las Variables?

las Variables se denominan marcadores de posición que se refieren a un valor determinado. Cuando escribe el nombre de la variable, el sistema lo trata como si hubiera escrito el valor al que se refiere. Puede nombrar variables mediante números, letras, nombres de archivo u otros tipos de datos.,las Variables

facilitan la escritura de scripts que utilizan fragmentos específicos de datos, incluso si esos datos siempre cambian, como los nombres de usuario. En lugar de escribir comandos separados para múltiples variaciones de nombres de usuario, puede definir una variable de nombre de usuario y usarla como marcador de posición para todas las variaciones que los usuarios puedan usar.

asignar variables es bastante fácil de hacer. Solo tiene que especificar un nombre de variable y un valor, así:

Variable_Name=value

La mayúscula no importa aquí., El nombre y el valor de la variable pueden ser casi lo que quieras, como:

x=1
var1=hello
var2=GOODBYE

dicho esto, hay algunas restricciones sobre qué palabras o caracteres puedes usar para las variables (que cubriremos a continuación). Pero primero, es importante tener en cuenta que bash no utiliza espacios antes o después del signo igual al asignar variables.,

eso significa que no puedes asignar una variable con espacios, como esto:

incorrecto:

x = 1

Tienes que asignarla sin espacios, como esto:

correcto:

x=1

Sin embargo, puedes usar espacios en nombres de variables usando comillas, como esto:

correct:

x="Number one"

también debemos mencionar que puede usar un script Mac para decirle a terminal que le devuelva el valor de una variable. Puedes hacer esto de dos maneras., En ambos ejemplos, «x» es el valor de la variable que está buscando:

$x
${x}

También puede hacer que una variable se refiera al resultado de un comando, como:

variable1=$(Some Bash Command)

entonces, ¿cuáles son esas restricciones variables que acabamos de mencionar? Bash tiene veinte «palabras reservadas» que no puedes usar para variables porque ya están asignadas a otras funciones importantes dentro del shell., Siempre que estés asignando variables, solo tienes que evitar estas palabras y no tendrás ningún problema con tu script.

Aquí están:

  • ! y el tiempo
  • ]
  • { y }
  • si, entonces, elif, otra cosa, y fi
  • caso y esac
  • seleccione y en
  • mientras que, hasta, para, hacer, y de hecho
  • función

Solo frente, Comillas dobles

'

El texto encapsulado en comillas simples significa que contiene estrictamente ese texto como leído – no dará significado a ningún carácter especial, como variables O RESTRICCIONES DE VARIABLES.

"

Las comillas dobles conservan el valor literal de algunos caracteres, pero pueden contener algunas variables o caracteres con un significado especial en ellos, incluyendo:

$
'
\
!

¡El significado del carácter !, dentro de comillas dobles se conserva solo cuando se habilita la expansión del historial, y \ debe ir seguido de otro carácter especial (o una nueva línea).

¿qué son los condicionales?

el siguiente gran paso en el aprendizaje de Mac scripting es averiguar cómo usar condicionales. Esencialmente, los condicionales son declaraciones if / then, que establecen condiciones y luego ven si se cumplen (es decir, si son las 6 A.M., luego dicen «buenos días»).

en bash, la sintaxis de las sentencias if/then se ve así:

if <condition>; then
<command(s)>
fi

vamos a desglosar eso.,

  1. comience con » if » e inmediatamente siga con sus condiciones.
  2. Use un punto y coma para separar la condición » IF «y comenzar el comando «THEN». Este comando solo tendrá lugar si se cumple la condición «IF».
  3. Finalmente, cierre la sentencia if/then con » fi «- esto es solo» if » escrito al revés.

Aquí hay un ejemplo:

if ; then
echo "That number is greater than or equal to 4"
fi

Aquí, estamos comprobando si un número, 5, es mayor o igual a (ese es el «-ge») otro número, 4., Si lo es, se ejecutará el comando» then», que nos pedirá un mensaje: «ese número es mayor o igual a 4.»Imagine cómo cambiar el 5 y usar una variable en su lugar podría mejorar la funcionalidad de este script.

una vez que obtenga estas instrucciones, puede aprender a usar «else» para dar a sus comandos una acción alternativa en el caso de que las condiciones «if» no se cumplan. Para comandos más complicados, incluso puede usar «elif «(else if) para agregar condiciones a» else «sin reescribir tediosamente más condiciones» else».,

Scripting con soluciones MDM

Al igual que el uso de scripts de Mac puede hacer que los comandos de terminal individuales sean más potentes, el uso de scripts con su solución MDM puede sacar todo su potencial de administración.

ya sea que esté utilizando nuestra función de Script personalizado o especificando comportamientos previos y posteriores a la instalación para aplicaciones personalizadas, el scripting con un MDM puede permitirle realizar muchas acciones avanzadas de administración de dispositivos.,

esperamos que haya aprendido que puede usar scripts para completar tareas de varios pasos de forma más rápida y precisa, y que puede escribir políticas avanzadas y enviarlas a todos los dispositivos de su empresa utilizando una solución MDM, como Kandji.

Más allá de poner sus scripts en acción, Kandji tiene muchas otras características excelentes, como el cumplimiento con un solo clic con los principales puntos de referencia de seguridad y la implementación sin intervención. Es todo lo que su empresa necesita para administrar su flota desde la implementación hasta la jubilación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *