Soy realmente nuevo en el uso de terminales y he estado siguiendo la guía a ciegas sin saber por qué está ahí y qué hace ... aunque estas guías me ayudan a instalar el reproductor vmware.
este funcionó para mí ya que hace que el archivo sea ejecutable, haga clic en el archivo y se ejecute ... solo diga que se necesita acceso root.
sudo sh vmwareplayer.txt
(renombrado para ser más corto)
De alguna manera sé lo que sudo
hace pero ¿qué hace sh
? Sin ella, aparece "vmwareplayer.txt no encontrado". Y para los archivos de paquete, ¿por qué termina con .txt?
command-line
Gabino García
fuente
fuente
sh
hace en un comando que invoca un script. Esa pregunta es acerca de cómo#!
funciona un dentro de un archivo de script . Totalmente diferente.Respuestas:
sh significa "shell" y shell es el antiguo intérprete de línea de comandos similar a Unix. Un intérprete es un programa que ejecuta instrucciones específicas escritas en un lenguaje de programación o scripting. Entonces básicamente dices "Ejecuta ese archivo por mí".
Debe comprender que Linux realmente no mira la extensión del archivo para determinar cuál es el archivo (o programa). Por lo tanto, siempre que el contenido de ese archivo esté escrito de una manera que el intérprete sh comprenda, funcionará. Pero solo en aras de la legibilidad, estos archivos normalmente reciben una extensión .sh y no tengo idea de lo que el desarrollador estaba pensando cuando le dio a ese archivo una extensión .txt.
fuente
En Ubuntu,
sh
o/bin/sh
simplemente apunta adash
.sh
se supone que ejecuta el intérprete de comandos predeterminado, que esdash
para Ubuntu. 1 sedash
refiere al caparazón de Debian Almquist.Un shell es un intérprete de línea de comando para el sistema. Hay varias otras conchas como
bash
,csh
,zsh
etc. Aquí es un breve extracto de la página de hombredash
:Hay muchos tutoriales sobre shells de Linux, puede comenzar con este artículo de Wikipedia .
Al escribir su pregunta, si escribe
sh file
, sedash
ejecutafile
por usted.fuente
Solo una palabra de comentario:
sudo
ejecuta un comando conroot
privilegios. Cuando llama, losudo vmwareplayer.txt
que claramente significa "ejecutar el comando vmwareplayer.txt con acceso de root" y falla, porque no existe dicho programa.sudo sh command
significa "ejecutarsh command
con privilegios de root"y
sh command
ejecutará un comando bajo Bourne shell.Surge una nueva pregunta. ¿Qué son las conchas? Esta es una pregunta más larga y encontrarás información en wiki, supongo.
Mientras tanto, recuerda que
man
es tu mejor amigo.fuente
Creo que ninguno de los primeros en responder respondió la pregunta que realmente le hiciste a G., así que intentaré responder. La interposición de
sh
cuando ejecuta un programa como usted mencionó, ejecuta el programa en una subshell no interactiva . Los shells no interactivos se comportan de manera diferente (por ejemplo, la inicialización ) del shell interactivo estándar que estaba utilizando cuando ejecutó el programa.Honestamente, no sé qué efecto práctico tiene esto. Como notó,
sh vmwareplayer.txt
es (generalmente) capaz de ejecutar algo en la misma carpeta, donde simplemente escribirvmwareplayer.txt
(generalmente) no lo hará. Eso tiene que ver con el entorno de shell; no es ninguna cualidad nativa del shell o subshell en sí. Por supuesto, puede ejecutar directamente un programa en el directorio actual como root:sudo ./vmwareplayer.txt
. En mi experiencia, esto siempre funciona tan bien comosudo sh vmwareplayer.txt
. Esperaba que alguien viniera y explicara por qué la subshell a veces era deseable.fuente
La
sh
utilidad es un intérprete de lenguaje de comandos / un comando que ejecuta comandos leídos desde una cadena de línea de comando, la entrada estándar o un archivo especificado. La aplicación garantiza que los comandos que se ejecutarán se expresen en el idioma descrito en Shell Command Language.Por ejemplo:
Lo siguiente ejecuta un comando de shell desde una cadena:
sh -c "cat myfile.txt"
es decir, ejecuta el comando--cat myfile.txt
Consulte el siguiente enlace para obtener una explicación detallada: http://pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html
fuente