Línea de comandos

Introducción a la consola de Grav

No es ningún secreto que Grav fue creado pensando en la línea de comandos. Aunque el plugin Admin ciertamente facilita el trabajo sin necesidad de abrir una Terminal (MacOS y Linux) o el Símbolo del sistema (Windows), hay mucho que decir sobre la velocidad y el nivel de control que se obtiene al trabajar desde la línea de comandos.

Esto es especialmente cierto para las personas que están ejecutando sus propios servidores de desarrollo, o un servidor remoto al que pueden acceder mediante la línea de comandos. La cantidad de herramientas a tu disposición desde la línea de comandos es increíble. Puedes controlar prácticamente todos los aspectos del hosting de tu sitio, Grav, y sus plugins y temas con unas pocas teclas.

Al final, todo se reduce a la preferencia personal. En esta página, enumeraremos algunos excelentes recursos para ayudarte a familiarizarte con la línea de comandos.

No todos los sistemas operativos son compatibles entre sí en cuanto a comandos. Hay diferencias menores entre MacOS y muchas distribuciones de Linux, con el Símbolo del sistema de Windows teniendo un conjunto de comandos muy diferente a los otros dos.

MacOS

MacOS está basado en Unix y cumple con los estándares POSIX. Esto significa que la mayoría de los comandos que puedes conocer en otros sistemas operativos basados en Unix o Linux funcionarán exactamente como se espera en MacOS. Hay algunas excepciones a la regla, y por eso recomendamos investigar los comandos de Terminal para el sistema operativo específico con el que estás trabajando.

Aquí hay algunos excelentes recursos para ayudarte a acostumbrarte a usar la Terminal en MacOS:

Linux

La gran mayoría de las distribuciones de Linux (y Unix) tienen una cosa en común: la interfaz de línea de comandos Bash (Terminal). Ya sea que estés ejecutando una interfaz gráfica como Gnome, Unity o KDE o no, es muy probable que si estás ejecutando una distribución de Linux en tu escritorio o laptop hayas visitado la línea de comandos.

Después de todo, es poderosa. Puedes hacer prácticamente cualquier cosa que podrías con la interfaz gráfica directamente en la línea de comandos, a menudo con más control sobre cómo se llevan a cabo los comandos. Aquí hay algunos excelentes recursos para ayudarte a familiarizarte con la Terminal en Linux:

Windows

Windows se diferencia del resto por varias razones. Muchos de los comandos en la línea de comandos para Windows recuerdan sus raíces en DOS. Comandos comunes como ls para listar directorios no funcionan aquí. En su lugar, deberías escribir dir. Aquí hay algunos recursos para ayudarte a dominar el Símbolo del sistema de Windows:

Todos los comandos CLI de Grav dependen de PHP, pero esto no está disponible inmediatamente en Windows. Puedes averiguar si está instalado abriendo una consola y escribiendo php -v para verificar. Si se devuelve 'php' no se reconoce como un comando interno o externo ..., no está instalado.

Si deseas agregar PHP a tu sistema Windows, debes encontrar tus "Variables de entorno", ya sea buscándolo en el menú de inicio o yendo a Panel de control -> Configuración avanzada del sistema -> Hacer clic en el botón "Variables de entorno".

En "Variables del sistema", encuentra "Path" y haz clic en editar. Copia el "valor de la variable" en el bloc de notas y agrega un punto y coma al final para separar las variables. Luego, encuentra la ruta a tu instalación de PHP (desde cero o usando una instalación actual que vino con tu entorno de desarrollo) y agrégala al final de esta larga lista de variables. Quieres la ruta de la carpeta, sin incluir php.exe.

Cuando eso esté hecho, abre una nueva consola (o reinicia la actual) para que se aplique la nueva ruta. Luego intenta php -v nuevamente, deberías obtener una salida como: PHP 7.0.7 (cli) .... Cuando ejecutes los comandos de Grav, necesitarás anteponer php a ellos, por ejemplo, php grav/gpm index.

Comandos específicos de Grav

Una de las cosas más interesantes de Grav es que tienes una serie de comandos poderosos a tu disposición para hacer todo, desde instalar plugins y temas adicionales hasta agregar usuarios al Admin. En esta sección, enumeraremos muchos de los comandos más comúnmente usados.

Todos los comandos enumerados a continuación son compatibles con cualquier sistema operativo.

Comando Descripción
bin/grav list Lista todos los comandos disponibles en Grav (excluyendo el GPM).
bin/grav help <command> Te da ayuda sobre un comando específico.
bin/grav new-project <location> Se utiliza para crear una nueva instancia limpia de Grav en una carpeta diferente. Se puede ejecutar desde una instalación existente de Grav.
bin/grav install Este comando instala cualquier dependencia necesaria para ejecutar tu instalación actual de Grav.
bin/grav cache Este comando borra la caché de tu instalación de Grav. Las opciones incluyen: --all, --assets-only, --images-only y --cache-only
bin/grav backup Crea una copia de seguridad en formato zip de tu sitio Grav actual.
bin/grav composer Actualiza los paquetes de proveedores instalados manualmente basados en composer.
bin/grav security Realiza las verificaciones de seguridad XSS configuradas en todas las páginas de Grav.
bin/gpm list Lista todos los comandos disponibles a través del GPM (Gestor de Paquetes de Grav)
bin/gpm help <command> Te da ayuda sobre un comando específico.
bin/gpm index Muestra una lista de todos los recursos disponibles en el repositorio de Grav, organizados por temas y plugins.
bin/gpm info Muestra los detalles del paquete deseado, como descripción, autor, página de inicio, etc.
bin/gpm install Instala un recurso del repositorio en tu instancia actual de Grav con un comando simple.
bin/gpm update Verifica los plugins y temas instalados para ver si hay actualizaciones disponibles y los lista.
bin/gpm uninstall Elimina un tema o plugin instalado y borra la caché.
bin/gpm self-upgrade Te permite actualizar Grav a la última versión.
bin/gpm logviewer Visualiza fácilmente los registros de Grav con opciones de configuración para elegir el archivo de registro, el número de líneas y la verbosidad
bin/gpm scheduler Administra los trabajos programados y ejecuta manualmente el proceso del programador si es necesario

Estos comandos se explican con mayor detalle en la documentación de Grav CLI y Grav GPM.

Los comandos enumerados a continuación son compatibles con sistemas mac o unix.

Comando Descripción
bin/gpm index \ grep '\ installed' Lista todos los plugins y temas que tienes instalados.

Enlaces simbólicos

Los enlaces simbólicos (también conocidos como symlinks) son increíblemente útiles y fáciles de realizar dentro de la línea de comandos. Lo que hace es crear una copia virtual (clon) de una carpeta dada o su contenido y ponerla donde desees. A diferencia de una copia real, es simplemente un túnel al original, por lo que todo lo que ves y cambias se refleja en varios lugares a la vez.

Otro gran beneficio de hacer esto es que ocupa prácticamente cero espacio adicional en disco, ya que no tienes múltiples copias de los mismos archivos.

En lo que respecta a Grav, los symlinks son una excelente manera de agregar plugins, temas y contenido a múltiples instancias y hacerlo de una manera que facilita infinitamente la actualización y modificación. Haces un cambio una vez, y aparece en todas partes donde los archivos están enlazados simbólicamente.

El proceso para realizar un symlink es bastante sencillo, con diferencias menores entre sistemas operativos.

Enlaces simbólicos en MacOS y Linux

El comando sigue un patrón común de ln -s <archivo, directorio o su contenido original> <poner copias virtuales aquí>.

Los comandos que inician un symlink difieren entre sistemas operativos. Para MacOS y la mayoría de las distribuciones de Unix y Linux, ln -s es el comando. La parte ln le dice al sistema que deseas crear un enlace. El interruptor -s establece el enlace como simbólico.

Enlaces simbólicos en Windows

La estructura básica del comando en Windows es mklink <tipo> <poner copias virtuales aquí> <archivo, directorio o su contenido original>. A diferencia de MacOS o Linux, necesitarás establecer el argumento para el tipo de archivo que estás enlazando simbólicamente. La fuente y el destino también se invierten en este caso, donde el nuevo enlace simbólico viene antes del archivo al que estás enlazando. Hay tres argumentos que puedes usar aquí:

  • /j - Este es el argumento más comúnmente utilizado. Crea un enlace simbólico de un directorio.
  • /h - Esto crea un enlace simbólico para un archivo específico.
  • /d - Esto crea un enlace blando, o un acceso directo. No es probable que se use para los propósitos aquí descritos.

Comandos de ejemplo

Básicamente, indicas el comando que inicia el symlink, qué estás enlazando simbólicamente y dónde estás colocando las copias virtuales. A continuación, hemos detallado ejemplos de estos comandos:

Enlazar el contenido de una carpeta a otra
MacOS y Linux Windows
ln -s ~/folder1 ~/folder2 mklink /J C:\folder2 C:\folder1

Este comando crea un enlace simbólico que toma contenido originalmente colocado en folder1 y pone una copia enlazada simbólicamente de ellos en folder2. Si folder2 no existe ya, se crea con este comando.

Enlazar carpetas completas de un lugar a otro
MacOS y Linux Windows
ln -s ~/folder1 ~/folder2/ mklink /J C:\folder2\ C:\folder1

Este comando copia todo el directorio folder1 y lo coloca en la ubicación de destino (en este caso folder2). En este caso, folder2 necesitaría existir ya que no se creará con este comando. Observa la barra o barra invertida al final al especificar folder2.

Enlazar archivos individuales de un lugar a otro
MacOS y Linux Windows
ln -s ~/folder1/file.jpg ~/folder2 mklink /H C:\folder2\ C:\folder1\file.jpg

Este es un comando útil para enlazar simbólicamente archivos individuales. Esto es especialmente útil si tienes archivos que se comparten entre múltiples directorios y deseas que se actualicen en todas partes al mismo tiempo. Ten en cuenta que el archivo original es la única copia real, por lo que debe permanecer donde está para que todos los enlaces simbólicos funcionen.