Conviértase en un SEO más eficaz aprendiendo a aprovechar la línea de comandos para mejorar sus flujos de trabajo con atajos y automatizaciones.
Aunque no es una habilidad esencial, la proliferación de la codificación en SEO ha tenido un impacto fantástico en la velocidad a la que se pueden completar las tareas.
Sin embargo, hay algunas habilidades fundamentales que vale la pena dominar antes de aprender a programar.
Hacerlo le permitirá sentirse mucho más seguro una vez que comience su viaje y, en algunos casos, ¡encontrará que las tareas son más fáciles de realizar utilizando estos enfoques de todos modos!
En esta guía, estamos tomando un curso intensivo de interfaz de línea de comandos (CLI).
¿Cómo ayuda la línea de comandos en SEO?
Usar la línea de comandos para SEO puede ayudarte más fácilmente:
- Identifique la estructura de archivos cuando desee manipular datos.
- Verifique el código de estado cuando el sitio esté utilizando un trabajador de servicio.
- Divide archivos grandes en partes más manejables.
- Descargar o transferir datos directamente a un servidor.
- Busque una cadena específica de caracteres en un archivo grande.
- Divide los datos por campos y envíalos a un nuevo archivo.
- Y mucho más sobre lo que aprenderá a continuación.
Específicamente, cubriremos cómo navegar por un sistema de archivos sin depender de una interfaz gráfica de usuario (GUI) y cómo crear y modificar archivos y directorios, manipular datos e incluso interactuar con la web.
Aprenderás los comandos para:
- Cambio de directorio
- Listado de archivos
- Expediente
- Hacer directorios
- Mover archivos y directorios
- Eliminación de archivos y directorios
- Tocar
- Copiar
- La cabeza de la cola
- Concatenar (gato)
- El recuento de palabras
- Grep
- Clasificar
- Separar
- Corte
- Editor de secuencias
- Awk
- Rizo
- Obtener
- Claro
¿Qué es la línea de comandos?
Una interfaz de línea de comandos, también conocida como terminal, símbolo del sistema o consola, es una interfaz basada en texto que se puede usar para interactuar con el sistema operativo (SO) de una computadora.
Las CLI son anteriores a la introducción de las interfaces gráficas. Es una reliquia viva de nuestro pasado no muy lejano, cuando había que escribir comandos para poder navegar y activar los archivos de una computadora.
Entonces, ¿qué posibles ventajas se pueden obtener de aprender a dominar este método arcaico de interacción ahora para SEO?
¡Buena pregunta!
Acceso a la línea de comandos
La forma en que accede a la línea de comandos depende en gran medida de su sistema operativo.
En Mac, la línea de comandos se llama terminal y puede encontrarla en Aplicaciones > Utilidades.
En Windows, la línea de comandos es el símbolo del sistema y se puede ubicar buscando cmd en la barra de navegación.
Es importante tener en cuenta que Windows y Mac/Linux difieren en muchos comandos, tanto por nombre como por funcionalidad.. Esto se debe a que tanto Mac como Linux son sistemas operativos basados en UNIX, mientras que Windows es… bueno… Windows. differ on many commands
Nos centraremos en UNIX, ya que la línea de comandos está mucho más desarrollada que el equivalente de Windows (a menos que use PowerShell), ya que Windows siempre se ha centrado mucho en su GUI. PowerShell)
Si es un usuario de Windows, para seguirlo, deberá:
Las imágenes en esta publicación son todas de Git Bash, que siempre he usado, pero su experiencia puede variar.
¿Cuál es la diferencia entre la línea de comandos y el shell?
Un último matiz que vale la pena explicar es la diferencia entre la línea de comandos y el shell.
Una línea de comandos es esencialmente una interfaz que se usa para enviar comandos y mostrar el resultado, mientras que un shell es el intérprete que se encuentra detrás y procesa los comandos.
UNIX tiene una gama de diferentes shells disponibles, siendo Bash el más utilizado (e históricamente, también el shell predeterminado en macOS, hasta que se cambió a Zsh en 2019 cuando se lanzó Catalina).
¿Entiendo?
Nota: Los corchetes en los ejemplos a continuación significan un marcador de posición. No son parte de los comandos.
Navegación de archivos y directorios
Cargar una CLI que no sea de Windows por primera vez puede ser intimidante. Además de estar completamente basado en texto, proporciona información limitada sobre su directorio de trabajo actual; en otras palabras, dónde se encuentra actualmente.
Para averiguarlo, ingrese pwd (directorio de trabajo de impresión).
En mi caso, puede ver que mi directorio de inicio, indicado por la tilde (~), es /c/Users/WilliamN.BV.
Para facilitar la ejecución de scripts y utilidades de línea de comandos, es mejor que almacene archivos dentro de directorios secundarios dentro de su directorio de inicio. Esto hace que navegar a los archivos que necesita sea lo más fácil posible.
Cambio de directorio
Cd (cambiar directorio) es uno de los comandos más utilizados y es universal en los sistemas operativos Windows y Unix.
Para navegar a un directorio dentro de su directorio actual, simplemente escriba:
cd [directory]
Para acceder a un subdirectorio que se encuentra debajo de este, ingrese la ruta del archivo:
cd [directory]/[sub-directory]
¿Necesita volver al directorio en el que estaba anteriormente?
cd -
O vaya a su directorio de inicio ingresando una tilde:
cd ~
En un sistema operativo basado en UNIX, el directorio en el que se encuentra actualmente está representado por un punto singular, por lo que especificar cd. se ejecutará pero no hará nada.
Sin embargo, dos puntos son representativos del directorio principal y se pueden usar para navegar eficientemente a directorios por encima de su ubicación actual.
Navegue al directorio sobre su directorio actual:
cd ..
Navegue dos niveles por encima de su directorio actual:
cd ../../
Navegue a un directorio dentro del directorio anterior:
cd ../[directory]
Como ejemplo, tengo una carpeta «Pública» dentro de /c/Users y puedo navegar hasta ella ingresando cd ../Public.
Una última cosa a tener en cuenta es que los directorios con espacios en la ruta deben escaparse cuando se usa cd. La forma más fácil de lograr esto es envolver la carpeta entre comillas o apóstrofes.
cd 'my directory'
Listado de archivos
Hasta ahora, hemos logrado averiguar dónde estamos en nuestro árbol de directorios y navegar por él, pero ¿qué sucede si no sabemos dónde se encuentran los archivos y directorios específicos?
En esos casos, necesitamos usar el comando list.
ls [directory]
El formato exacto variará, según el intérprete de línea de comandos que esté utilizando, pero casi universalmente existe alguna diferenciación para los diferentes tipos de archivos. command-line interpreter
Como puede ver en la imagen de arriba, los directorios son azules en Git Bash y tienen una barra inclinada al final.
Listar el contenido de un subdirectorio:
ls [directory]/[sub-directory]
Enumere solo directorios en su directorio actual:
ls -d */
Enumere el contenido de un directorio y sus subdirectorios:
ls *
Enumere un tipo específico de archivo utilizando la coincidencia de patrones:
ls *.[file-extension]
Opciones
Hasta este punto, nos las hemos arreglado con un uso mínimo de argumentos opcionales, ya que los comandos que hemos estado ejecutando han sido relativamente simples.
Pero muchos comandos, como list, tienen numerosas opciones valiosas que se pueden especificar para modificar el funcionamiento de un comando.
La forma más fácil de encontrarlos para un comando es escribir:
[command] --help
Las opciones útiles para ls incluyen:
Mostrar todos los archivos ocultos (que tienen un punto antes del nombre):
ls -a
Mostrar el tamaño de los archivos:
ls -s
Mostrar archivos en el formato de lista larga (nombres de archivo, permisos, propietario, tamaño y hora/fecha de modificación):
ls -l
Ordenar por tamaño de archivo:
ls -S
Ordenar por hora de modificación:
ls -t
Ordenar por extensión:
ls -X
También es posible apilar opciones si lo desea, ya sea combinándolas en un argumento singular o especificando múltiplos.
Por ejemplo, al ingresar cualquiera de los siguientes, se mostrarán los archivos, incluidos los archivos ocultos, en formato de lista larga, ordenados por tamaño.
ls -aSl ls -a -S -l
Expediente
Mientras que ls en formato de lista larga proporciona información de alto nivel sobre archivos individuales, no proporciona información detallada sobre el tipo de archivo.
Aquí es donde entra el comando de archivo.
Encuentre el tipo de archivo legible por humanos:
file [file-name]
Encuentre los tipos de archivo para una carpeta completa:
file *
Encuentre el tipo de archivo para una extensión específica:
file *.[file-extension]
Encuentre el tipo mime para un archivo:
file -i [file-name]
Un buen caso de uso de SEO para el comando de archivo es identificar si los CSV están en el formato esperado.
Abrir y guardar archivos CSV en Excel puede causar estragos con caracteres especiales. Al usar el archivo, es fácil establecer si los archivos están codificados con UTF-8, ASCII o algo más.
¡También resaltará la presencia de cualquier carácter BOM, que potencialmente puede invalidar un archivo robots.txt o desautorizar! BOM characters
Creación y edición
Hacer directorios
Cambiar continuamente entre una GUI y una interfaz basada en texto puede ser una molestia. Afortunadamente, también hay un comando para eso.
Hacer un directorio:
mkdir [new-directory]
Hacer varios directorios:
mkdir {one,two,three}
Cree un directorio principal y subdirectorios:
mkdir –p directory/directory-2/directory-3
La opción -p permite a los usuarios definir una estructura de directorios y creará las carpetas faltantes necesarias para que coincidan.
Como ejemplo, si quisiéramos crear un directorio para descargar algunos archivos de registro comprimidos, un segundo directorio para los registros sin comprimir y una tercera carpeta para las solicitudes de Googlebot, podríamos ejecutar:
mkdir -p logs-new/uncompressed_logs/googlebot_requests
En la imagen de arriba, Ls -R logs se usa para mostrar la estructura de árbol de directorio creada.
Mover archivos y directorios
Además de usarse para mover archivos y directorios, el comando mover (mv) también se usa para cambiar el nombre y, por lo tanto, vale la pena recordarlo para evitar más clics molestos.
Mover un archivo:
mv [file-name] [directory]
Renombrar archivo:
mv [file1] [file2]
Mover varios archivos:
mv [file-1] [file-2] [directory]
Mover directorio:
mv [directory-1] [directory-2]
Mover archivos con una extensión específica:
mv *.[file-extension] [directory]
Agregue el parámetro -i para proporcionar un aviso antes de sobrescribir un archivo existente y -n para evitar que se sobrescriba un archivo.
Los atajos como los operadores de tilde y punto que aprendimos anteriormente también se pueden aprovechar para mover archivos y carpetas hacia arriba en la estructura de directorios.
Eliminación de archivos y directorios
Muy al contrario del comando mover es el comando eliminar (rm), que es fácil de recordar porque la sintaxis es casi idéntica.
También existe un comando de eliminación de directorio (rmdir), pero esto no es especialmente útil porque solo funciona en directorios vacíos.
Eliminar un archivo:
rm [file-name]
Eliminar varios archivos:
rm [file-1] [file-2] [file-3]
Eliminar varios archivos con una extensión específica:
rm *.[file-extension]
Eliminar un directorio vacío:
rm -d [directory]
Eliminar un directorio y archivos que no estén vacíos:
rm -r [directory]
Una vez más, el parámetro -i se puede especificar para proporcionar un aviso antes de la eliminación por archivo.
Si se enumeran tres o más archivos, los consolidaré en un mensaje.
Tocar
El comando táctil se puede utilizar para modificar las marcas de tiempo y crear archivos vacíos.
Cree un nuevo archivo sin ningún contenido:
touch [file-name]
Actualizar la última vez que se accedió a un archivo:
touch -a [file-name]
Actualice la última hora de modificación de un archivo:
touch -m [file-name]
Establece una hora específica de acceso y modificación:
touch -c -t YYDDHHMM [file-name]
Arriba hay una marca de tiempo de ejemplo establecida a las 22:59 del 15 de diciembre de 2018.
Copiar
En una CLI de UNIX, el comando de copia (cp) se usa únicamente para copiar un archivo o directorio de un lugar a otro.
Vale la pena tener esto en cuenta para aquellos más familiarizados con el símbolo del sistema de Windows, donde el comando de copia también se puede usar para combinar archivos.
Hacer una copia de un archivo:
cp [file-name] [new-file-name]
Copiar archivo al directorio:
cp [file-name] [directory-name]
Copie varios archivos al directorio:
cp [file-name] [another-file-name] [directory-name]
Copie todos los archivos al directorio de destino:
cp -r [existing-directory] [new-directory]
Copie todos los archivos con una extensión específica:
cp *.[file-extension] [directory-name]
Una vez más, -i se puede usar para proporcionar un aviso antes de que se sobrescriba un archivo, y -n se puede usar para evitar esto por completo.
Mostrar y manipular
La cabeza de la cola
Los archivos grandes pueden tardar mucho en cargarse cuando se usa una GUI, si es que se cargan…
Aquí es donde entran los comandos de cabeza y cola, que le permiten obtener una vista previa de la primera o la última.
Es increíblemente útil si está a punto de realizar algún tipo de manipulación de datos pero no está seguro de cómo está estructurado el archivo con el que está trabajando.
Vista previa del comienzo de un archivo:
head [file-name]
Vista previa del final de un archivo:
tail [file-name]
Ambos comandos muestran 10 filas de datos de forma predeterminada, que se pueden modificar con la opción -n.
head/tail -n 5 [file-name]
Un matiz que vale la pena señalar es que el comando tail viene con una opción más, que imprime datos comenzando en una línea específica en lugar de al final.
tail +5 [file-name]
Gato
El comando cat, abreviatura de concatenar, se usa para leer, combinar y escribir archivos.
Imprimir el contenido de un archivo:
cat [file-name]
Concatenar varios archivos en un archivo combinado:
cat [file-1] [file-2] [file-3] > [combined-file]
Combinar varios archivos con la misma extensión:
cat *.[file-extension] > [combined-file]
Arriba, el operador de redirección (>) es lo que indica que la salida debe guardarse como un archivo nuevo (o sobrescribir el archivo existente). Para evitar que se sobrescriban los datos existentes dentro de un archivo, especifique >>.
Concatenar dos archivos sin crear un nuevo archivo:
cat file1 >> file2
Un buen caso de uso de SEO para el comando cat es cuando realiza una investigación de enlaces. A menos que esté utilizando una API, esto implicará la descarga de múltiples exportaciones, todas las cuales tendrán el mismo formato.
Para combinar, coloque las exportaciones en una carpeta y ejecute un comando cat con coincidencia de patrones en la extensión.
El recuento de palabras
Más que un simple pony de un solo truco, el comando de conteo de palabras también admite el conteo de caracteres y, lo que es más importante para SEO, líneas.
Cuente el número de palabras en un archivo:
wc -w [file-name]
Cuente el número de caracteres en un archivo:
wc -m [file-name]
Cuente el número de líneas en un archivo:
wc -l [file-name]
En este punto, es importante introducir el comando de tubería. En lugar de usarse de forma aislada, se pueden encadenar varios comandos usando el carácter de barra vertical (|), lo que permite a los usuarios realizar operaciones más complejas.. Cuando se usa bien, esto puede ser tremendamente poderoso.
Como ejemplo básico, aquí se explica cómo contar la cantidad de archivos CSV en un directorio:
ls *.csv | wc -l
O cuente el número de líneas en varios archivos y enumere el total combinado:
cat * | wc -l
Lo anterior muestra que un conteo de líneas en un conjunto de datos de 73 millones de filas tomó < 20 segundos.
Grep
El comando grep se usa para realizar una búsqueda de una cadena específica de caracteres. Esto es increíblemente útil para SEO, donde la extracción de datos de archivos grandes es algo que ocurre casi a diario.. Como ejemplo, al analizar archivos de registro.
Extraiga cada línea que presente un patrón (en este caso, Googlebot) de un archivo:
grep "Googlebot" [file-name]
Extraiga cada línea que presente un patrón de varios archivos con una extensión específica:
grep "Googlebot" *.[file-extension]
Extraiga cada línea que presente un patrón de varios archivos con una extensión específica y escríbala en un nuevo archivo:
grep "Googlebot" *.[file-extension] > [file-name]
Debido a los posibles tamaños de archivo involucrados, los registros se almacenan casi universalmente en incrementos de un día, por lo que el uso de la coincidencia de patrones para realizar un grep en varios archivos es la norma.
El comportamiento predeterminado de Grep en este caso es prefijar cada línea con el nombre del archivo.
access.log-20200623:66.249.73.221 - - [22/Jun/2020:07:05:46 +0000] "GET / HTTP/1.1" 200 75339 "-" "Googlebot-Image/1.0" - request_time=24142
Esta información es totalmente irrelevante cuando se realiza un análisis de archivos de registro para SEO y, afortunadamente, se puede eliminar con la opción -h.
grep -h "Googlebot" *.[file-extension] > [processed-file]
Se pueden realizar múltiples coincidencias de patrones por línea usando el comando de tubería. Un buen caso de uso para esto es cuando las solicitudes de varios dominios se almacenan en la misma ubicación y solo desea uno.
Extraiga cada línea que presente dos patrones de varios archivos con una extensión específica y escríbala en un nuevo archivo:
grep -h "domain.com" | grep "Googlebot" *.[file-extension] > [processed-file]
Para contar las ocurrencias de un patrón en un archivo, use la opción -c. Sin embargo, vale la pena tener en cuenta que esto realizará un conteo por archivo, como con wc -l. Para obtener el total de coincidencias en varios archivos, combine con el comando cat.
cat *.[file-extension] | grep -c "Googlebot"
Extraiga cada línea que no presente un patrón de un archivo:
grep -v "pattern" [file-name]
Extraiga cada línea que presenta un patrón de un archivo (sin distinción entre mayúsculas y minúsculas):
grep -i "pattern" [file-name]
Extraiga cada línea que presenta un patrón de un archivo usando Regex:
grep -E "regex-pattern" [file-name]
Clasificar
De uso limitado por sí solo, ordenar se puede combinar con otros comandos para ordenar la salida alfabética o numéricamente.
Ordene alfabéticamente y envíe a un nuevo archivo:
sort [file-name] > [sorted-file]
Invierta el orden y la salida a un nuevo archivo:
sort -r [file-name] > [sorted-file]
Ordene numéricamente y envíe a un nuevo archivo:
sort -n [file-name] > [sorted-file]
Ordene alfabéticamente en la columna n (en este caso 3) y genere un nuevo archivo:
sort -k3 [file-name] > [sorted-file]
Ordene usando varias columnas y genere un nuevo archivo:
sort -k[column-1],[column-2] [file-name] > [sorted-file]
Ordenar también se puede usar para eliminar líneas duplicadas:
sort -u [file-name] > [sorted-file-unique-lines]
O apilado con recuento de palabras para obtener un recuento de líneas únicas dentro de un archivo:
sort -u [file-name] | wc -l
Separar
¿Tienes problemas para abrir algo?
Dividir un archivo en partes más pequeñas (1000 líneas por defecto):
split [file-name]
Divida un archivo en fragmentos más pequeños con un número específico de líneas:
split -l[number] [file-name]
Dividir un archivo en un número determinado de fragmentos:
split -n[number] file-name]
Divida un archivo en fragmentos más pequeños con un tamaño de archivo específico:
split -b[bytes] [file-name]
Los archivos también se pueden dividir en kilobytes, megabytes y gigabytes:
split -b 100K [file-name] split -b 10M [file-name] split -b 10G [file-name]
Si bien los comandos anteriores dividirán un archivo, no mantendrán automáticamente la extensión de los archivos. Para hacerlo, use la opción –additional-suffix.
Aquí hay un ejemplo más práctico de cómo dividir un archivo CSV grande en fragmentos de 100 MB usando esta opción. En él, también especificamos la opción -d y agregamos un sufijo personalizado. Esto significa que los archivos de salida seguirán una convención de nomenclatura de ‘logs_[number]’, en lugar de caracteres alfabéticos.
split -d -b 100M --additional-suffix=.csv logs.csv logs_
Al probar un script, a menudo es útil obtener una muestra de datos aleatoria de un archivo.. Desafortunadamente, el comando dividir no tiene una opción para esto. En su lugar, utilice shuf.
shuf -n [number] [file-name] > [new-file]
Corte
Cortar le permite acceder a partes de las líneas de un archivo de entrada y enviar los datos a un nuevo archivo. Aunque también se puede utilizar para segmentar por bytes y caracteres, la aplicación más útil para SEO es segmentar datos por campos.
Dividir archivo por campo:
cut -f [number] [file-name]
Dividir archivo por múltiples campos:
cut -f [number-1],[number-2] [file-name]
Divide el archivo por un rango de campos:
cut -f [number-1]-[number-2] [file-name]
Divida el archivo por un rango de campos (desde el número seleccionado hasta el final de la línea):
cut -f [number]- [file-name]
Cortar porciones usando el delimitador de tabulación de forma predeterminada, pero esto se puede cambiar usando la opción -d (por ejemplo,. espacio):
cut -d " " -f [number] [file-name]
También es posible apilar varios rangos juntos. Para proporcionar una ilustración más práctica, si desea extraer columnas específicas de varios archivos de enlaces que comparten el mismo formato:
cut -d "," -f 1,3-5,13-15 *.csv > cut.csv
Sed (Editor de transmisión)
El comando sed puede realizar una variedad de transformaciones de texto útiles, incluido el filtrado, buscar y reemplazar, inserciones y eliminaciones.
Ver líneas en el medio de un documento (que no es compatible con la cabeza y la cola):
sed -n '[number-1],[number-2]p' [file-name]
Realice una búsqueda y reemplazo y guarde la salida:
sed 's/[find-text]/[replace-with]/g' [file-name] > [new-file]
Realice una búsqueda y reemplace guardar en el lugar:
sed -i 's/[find-text]/[replace-with]/g' [file-name]
Realice una búsqueda, reemplace con nada y guarde la salida:
sed 's/[find-text]//g' [file-name] > [new-file]
Encuentre y elimine líneas con un patrón específico, guardando la salida:
sed '/[find-text]/d' [file-name] > [new-file]
Encuentre y elimine líneas en blanco (usando Regex), guardando la salida:
sed '/^$/d' [file-name] > [new-file]
Elimine los espacios al final de las líneas de texto y guarde el resultado:
sed 's/[[:blank:]]*$//' [file-name] > [new-file]
Ejecute buscar y reemplazar múltiples en un archivo y guarde el resultado:
sed -e 's/[find-text]/[replace-with]/g; s/[find-text-2]/[replace-with-2]/g' [file-name] > [new-file]
Awk
Para una manipulación de datos realmente pesada usando la línea de comando, aprenda a usar awk. Awk es un lenguaje de secuencias de comandos por derecho propio y es capaz de una variedad de transformaciones diferentes.
Cuente los valores únicos en una columna:
awk -F '[delimiter]' '{print $[column-number]}' [file-name] | sort | uniq -c
A continuación se muestra el recuento de códigos de estado en un archivo de registro.
Realice una búsqueda y reemplazo en una columna y guarde la salida:
awk -F '[delimiter]' '{ gsub("pattern", "new-pattern", $[column-number]) ; print}'
Filtre las filas según una columna que cumpla una condición (mayor que):
awk '[delimiter]' '$[column-number] > [number]' [file-name]
Filtre las filas utilizando la coincidencia de patrones en una columna (contiene):
awk -F '[delimiter]' '$[column-number] ~ /[pattern]/' [file-name]
Cuente la frecuencia de palabras dentro de un archivo:
awk 'BEGIN {FS="[^a-zA-Z]+" } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' *
Como puede ver en los ejemplos anteriores, la sintaxis de una consulta awk es un poco más compleja que lo que hemos cubierto anteriormente.
Awk admite muchas construcciones de otros lenguajes de programación, incluidas declaraciones if y bucles, pero si está más familiarizado con otro lenguaje, este puede ser el nivel de complejidad en el que vale la pena hacer la transición.
Dicho esto, siempre vale la pena hacer una búsqueda rápida de una solución awk primero.
Interactuando con la Web
Rizo (URL del cliente)
Curl es una utilidad de línea de comandos que permite a los usuarios descargar o transferir datos a un servidor. Esto lo hace increíblemente útil para SEO, donde tenemos que verificar continuamente los códigos de estado, los encabezados y comparar el servidor y el HTML del lado del cliente.
Obtener el contenido de una URL:
curl [url]
Guarde el contenido de una URL en un archivo:
curl -o [file-name] [url]
Descargue una lista de URL de un archivo:
xargs -n 1 curl -O < [file-of-urls]
Use curl con la opción -I para mostrar solo los encabezados y el código de estado:
curl -I [url]
Curl -I es una excelente manera de verificar los códigos de estado cuando un sitio usa un trabajador de servicio, que a menudo entra en conflicto con las extensiones del navegador.
También es excelente para verificar si la mitigación de bots de una CDN está causando problemas cuando intenta rastrear un sitio.. Si es así, es casi seguro que recibirá un código de estado 403 (Prohibido).
Para replicar completamente una extensión de rastreo de redirección, habilite seguir redirecciones con la opción -L:
curl -LI [url]
Obtenga el contenido de una URL utilizando un agente de usuario personalizado:
curl -A "User-Agent" [url]
Use un método de solicitud diferente con un encabezado personalizado:
curl -X POST -H "Content-type: application/json" [url]
Pruebe si una URL es compatible con un protocolo (p. ej.. si un sitio es compatible con HTTP2 o si un sitio en HTTP2 es compatible con versiones anteriores de HTTP/1.1):
curl -I --http2 [url] curl -I --http1.1 [url]
Obtener
Wget realiza una función similar a curl pero presenta descargas recursivas, lo que lo convierte en la mejor opción cuando se transfiere una gran cantidad de archivos (¡o un sitio web completo!).
Wget se incluye en la mayoría de las distribuciones automáticamente, pero si está utilizando GIT Bash, deberá instalarlo. you’ll have to install it
Descargar un archivo:
wget [url]
Descargue una lista de URL en un archivo de texto:
wget -i [file-name].txt
Descargar un sitio web completo:
wget -r [url]
De forma predeterminada, wget solo descargará páginas de forma recursiva hasta cinco niveles de profundidad. Amplíe esto usando la opción -l:
wget -r -l [number] [url]
O, si te sientes valiente, habilita la recursividad infinita:
wget -r -l inf [url]
Si desea descargar una copia local de un sitio, con los enlaces actualizados para hacer referencia a las versiones locales, utilice la opción espejo en su lugar:
wget -m [url]
También puede restringir los tipos de archivos descargados. Si, por ejemplo, solo quería archivos JPG:
wget -r -A jpg,jpeg [url]
O quería descargar todas las imágenes de un sitio web en un único directorio, incluidas las de una CDN, ignorando el archivo robots.txt:
wget -r -l inf -nd -H -p -A jpg,jpeg,png,gif -e robots=off [url]
Limpieza de su salida
Para terminar, se requiere un poco de limpieza.
Si ha estado siguiendo y probando comandos, es probable que su línea de comandos comience a verse desordenada.. Afortunadamente, limpiar, ¡o renunciar!
Borre la salida de la línea de comando:
clear
Salga de la línea de comando:
exit
Llevar las cosas más lejos
Los comandos anteriores le habrán dado una buena idea de los tipos de tareas que puede realizar usando la línea de comandos, pero esto es solo un punto de partida.
Con la capacidad de encadenar comandos, las posibilidades son prácticamente infinitas, especialmente si comienza a explorar las secuencias de comandos de Bash. Bash scripting
Para proporcionar algunas ideas más, podría:
Por último, un grado de competencia en el uso de la línea de comandos es esencial cuando comienza a codificar.
Es una habilidad que usará constantemente cuando navegue y ejecute sus scripts.
Y con la popularidad de los repositorios de Git como GitHub y Gitlab, ¡espero que lo use para contribuir a proyectos y compartir su trabajo con el mundo también!
Más recursos:
Imagen destacada: fatmawati achmad zaenuri/Shutterstock
Leer el articulo original en Search Engine Journal.