linux - script - ¿Qué es un archivo.sh?
linux sh executable (7)
Así que no tengo experiencia en tratar con una gran cantidad de tipos de archivos, y no he podido encontrar mucha información sobre qué son exactamente los archivos .sh
. Esto es lo que estoy tratando de hacer:
Estoy intentando descargar conjuntos de datos de mapas que se organizan en mosaicos que se pueden descargar individualmente: http://daymet.ornl.gov/gridded
Para descargar una serie de mosaicos a la vez, dicen que descarguen su script, lo que finalmente lleva a daymet-nc-retrieval.sh
: https://github.com/daymet/scripts/blob/master/Bash/daymet-nc-retrieval.sh
Entonces, ¿qué se supone que debo hacer con este código? El sitio web no proporciona más instrucciones, asumiendo que los usuarios saben qué hacer con él. ¿Supongo que se supone que debes pegar el código en alguna otra aplicación no mencionada para un navegador (usando Chrome o Firefox en este caso)? Casi parece algo que podría pegarse en Firefox / Greasemonkey, pero no del todo. Solo con un Google rápido en el tipo de archivo no he podido verlo.
Estoy seguro de que hay una explicación simple sobre qué hacer con estos archivos, pero parece estar enterrado en muchas publicaciones donde la gente ya está asumiendo que sabes qué hacer con estos archivos. ¿Alguien está dispuesto a simplemente decir lo que debe hacerse desde la casilla uno después de llegar a la página con el código para implementarlo? Gracias.
Normalmente, un archivo .sh es un script de shell que puede ejecutar en un terminal. Específicamente, el script que mencionaste es un script de bash, que puedes ver si abres el archivo y miras en la primera línea del archivo, que se llama shebang o magic line.
Sé que esta es una pregunta antigua y probablemente no ayude, pero muchas distribuciones de Linux (por ejemplo, ubuntu) tienen una función "Live cd / usb", por lo que si realmente necesita ejecutar este script, puede intentar iniciar su computadora en Linux. Simplemente grabe un .iso en una unidad flash (vea cómo http://goo.gl/U1wLYA ), inicie su computadora con la unidad enchufada y presione la tecla F para acceder al menú de inicio. Si elige "... USB ...", iniciará el sistema operativo que acaba de poner en la unidad.
Si abre su segundo enlace en un navegador, verá el código fuente:
#!/bin/bash
# Script to download individual .nc files from the ORNL
# Daymet server at: http://daymet.ornl.gov
[...]
# For ranges use {start..end}
# for individul vaules, use: 1 2 3 4
for year in {2002..2003}
do
for tile in {1159..1160}
do wget --limit-rate=3m http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc -O ${tile}_${year}_vp.nc
# An example using curl instead of wget
#do curl --limit-rate 3M -o ${tile}_${year}_vp.nc http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc
done
done
Así que es un guión de bash. Tienes linux
En cualquier caso, el script no es más que una serie de recuperaciones de HTTP. Tanto wget como curl están disponibles para la mayoría de los sistemas operativos y casi todos los lenguajes tienen bibliotecas HTTP, por lo que es bastante trivial volver a escribir en cualquier otra tecnología. También hay algunos puertos de Windows de bash en sí (git incluye uno). Por último, pero no menos importante, Windows 10 ahora tiene soporte nativo para binarios de Linux .
Un archivo .sh es un archivo shell. Se puede utilizar para abrir programas y lo que no.
abra la ubicación en el terminal y luego escriba estos comandos 1. chmod + x filename.sh 2. ./filename.sh eso es todo
sh
archivos sh
son archivos ejecutables de shell de Unix (Linux), son el equivalente (pero mucho más poderoso) de los archivos bat
en Windows.
Por lo tanto, debe ejecutarlo desde una consola de Linux, simplemente escribiendo su nombre de la misma manera que lo hace con los archivos bat en Windows.
¿Qué es un archivo con extensión .sh?
Es un script de shell Bourne . Se utilizan en muchas variaciones de sistemas operativos similares a UNIX. No tienen "lenguaje" y son interpretados por su shell (intérprete de comandos de terminal) o si la primera línea está en el formulario
#!/path/to/interpreter
Ellos usarán ese intérprete en particular. Su archivo tiene la primera línea:
#!/bin/bash
y eso significa que usa Bourne Again Shell, también llamado bash. Es para todos los propósitos prácticos un reemplazo para el buen sh viejo.
Dependiendo del intérprete, tendrá un idioma diferente en el que está escrito el archivo.
Tenga en cuenta que, en el mundo UNIX, no es la extensión del archivo lo que determina qué es el archivo (consulte Cómo ejecutar un script de shell).
Si vienes del mundo de DOS / Windows, estarás familiarizado con los archivos que tienen extensiones .bat o .cmd (archivos por lotes). No son similares en contenido, pero son similares en diseño.
Cómo ejecutar un script de shell
A diferencia de algunos sistemas operativos tontos, * nix no confía exclusivamente en las extensiones para determinar qué hacer con un archivo. También se utilizan permisos. Esto significa que si intenta ejecutar el script de shell después de descargarlo, será lo mismo que intentar "ejecutar" cualquier archivo de texto. La extensión ".sh" está ahí solo para que tu conveniencia reconozca ese archivo.
Tendrá que hacer el archivo ejecutable. Supongamos que ha descargado su archivo como file.sh
, luego puede ejecutar en su terminal:
chmod +x file.sh
chmod
es un comando para cambiar los permisos de los archivos, +x
establece permisos de ejecución (en este caso para todos) y finalmente tiene su nombre de archivo.
También puedes hacerlo en GUI. La mayoría de las veces, puede hacer clic derecho en el archivo y seleccionar propiedades, en XUbuntu las opciones de permisos se ven así:
Si no desea cambiar los permisos. También puede forzar al shell a ejecutar el comando. En la terminal se puede ejecutar:
bash file.sh
El shell debe ser el mismo que en la primera línea de su script.
¿Qué tan seguro es?
Puede resultarle extraño que deba realizar otra tarea manualmente para ejecutar un archivo. Pero esto es en parte debido a la fuerte necesidad de seguridad.
Básicamente, cuando descargas y ejecutas un script bash, es lo mismo que alguien que te dice "ejecuta todos estos comandos en secuencia en tu computadora, prometo que los resultados serán buenos". Pregúntese si confía en la parte que ha suministrado este archivo, pregúntese si está seguro de haber descargado el archivo desde el mismo lugar en el que pensó, tal vez incluso echar un vistazo al interior para ver si algo parece fuera de lugar (aunque eso requiere que sabes algo sobre los comandos * nix y la programación de bash).
Desafortunadamente, aparte de la advertencia anterior, no puedo dar una descripción paso a paso de lo que debe hacer para evitar que ocurran cosas malas en su computadora; así que ten en cuenta que cada vez que creas un archivo de alguien ejecutable, dices "te dejo usar mi computadora para hacer algo".