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 sudohace 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

shhace 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,
sho/bin/shsimplemente apunta adash.shse supone que ejecuta el intérprete de comandos predeterminado, que esdashpara Ubuntu. 1 sedashrefiere 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,zshetc. 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, sedashejecutafilepor usted.fuente
Solo una palabra de comentario:
sudoejecuta un comando conrootprivilegios. Cuando llama, losudo vmwareplayer.txtque claramente significa "ejecutar el comando vmwareplayer.txt con acceso de root" y falla, porque no existe dicho programa.sudo sh commandsignifica "ejecutarsh commandcon privilegios de root"y
sh commandejecutará 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
manes 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
shcuando 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.txtes (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
shutilidad 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.txtConsulte el siguiente enlace para obtener una explicación detallada: http://pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html
fuente