¿Cómo ejecuto archivos .sh?

244

Cada vez que abro un archivo .sh, lo abre en gedit en lugar de en la terminal. No puedo encontrar ninguna opción similar a clic derecho → abrir con → otra aplicación ... → terminal .

¿Cómo abro este archivo en la terminal?

    
pregunta Alex 01.05.2011 - 04:39

16 respuestas

374

Dar permiso de ejecución a su secuencia de comandos:

chmod +x /path/to/yourscript.sh

Y para ejecutar su script:

/path/to/yourscript.sh

Dado que . hace referencia al directorio actual: si yourscript.sh está en el directorio actual, puede simplificar esto a:

./yourscript.sh
    
respondido por el karthick87 01.05.2011 - 05:18
72

Debe marcar los scripts de shell como ejecutables para ejecutarlos desde el administrador de archivos:

  1. Haga clic con el botón derecho en su archivo .sh y seleccione Propiedades :

  2. En la pestaña Permisos , marque Permitir la ejecución del archivo como programa :

  3. Cierre la ventana Propiedades y haga doble clic en el archivo. Aparecerá un cuadro de diálogo que le brinda la opción de ejecutar el script en una terminal:

respondido por el Isaiah 01.05.2011 - 05:02
22

Requisito previo

Antes de poder ejecutar el archivo .sh, debe hacerlo ejecutable:

  1. Haz clic con el botón derecho en el archivo
  2. Seleccione Propiedades
  3. Seleccione Permisos
  4. Seleccione Permitir la ejecución del archivo como un programa

Advertencia

Asegúrese de confiar en la fuente de donde obtuvo el archivo. Podría ser un virus .

La manera muy simple

  1. Haz doble clic en el archivo
  2. Haga clic en ejecutar en terminal

Esto tiene un problema. El terminal se cerrará inmediatamente y no podrá ver la salida.

La manera simple

  1. Aplicaciones abiertas - & gt; Accesorios - & gt; Terminal
  2. Arrastre y suelte el archivo .sh en la terminal y presione Entrar

La forma en que los profesionales lo hacen

  1. Aplicaciones abiertas - & gt; Accesorios - & gt; Terminal
  2. Buscar donde el archivo .sh

    • Utilice los comandos ls y cd
    • ls mostrará una lista de los archivos y carpetas en la carpeta actual . Pruébalo: escribe "ls" y presiona Enter.
    • Una vez que vea la carpeta a la que desea acceder, ejecute cd , seguido de un espacio, seguido de un nombre de carpeta
    • Si ingresas en una carpeta que no quieres, ejecuta cd .. para subir de nivel arriba
  3. Ejecuta el archivo .sh

    • Una vez que puede ver, por ejemplo, script1.sh con ls , ejecute esto:

      ./ script.sh

¿Por qué hacerlo de forma complicada?

El terminal tiene un conjunto rico de potentes herramientas a las que se puede acceder escribiendo los comandos. Los profesionales ubican el archivo .sh escribiendo ls y cd . Una vez que esté en la carpeta correcta , puede ejecutar el script de esta manera:

./script1.sh

o puede ejecutar y redirigir la salida a un archivo:

./script1.sh > out.txt

o puede filtrar la salida para palabras clave (por ejemplo, "manzanas") y luego redirigir a un archivo:

./script1.sh | grep apples > ./only-apples

Hay miles de cosas que puedes hacer en ese archivo simplemente escribiendo algunos comandos.

Otro, puede descargar un archivo de Internet con un simple comando:

wget www.google.com/images/logos/ps_logo2.png

Y luego abra el archivo de esta manera:

shotwell ps_logo2.png
    
respondido por el Aleksandr Levchuk 01.05.2011 - 04:52
18

Abre una terminal y navega hasta la carpeta donde se encuentra el archivo .sh . Luego escribe:

sh <name of file>.sh
    
respondido por el italianfoot 20.12.2012 - 08:43
15

En Ubuntu 13.04, los archivos ejecutables abiertos en Nautilus ahora se abren en gedit de forma predeterminada en lugar de solicitar al usuario que los ejecute. Para habilitar el comportamiento clásico, necesita ajustar las preferencias:

Nautilus → Menú Editar → Preferencias → pestaña Comportamiento → Haga clic en el botón de radio cerca de Preguntar cada vez.

    
respondido por el imjustmatthew 10.06.2013 - 23:41
5

Vaya al directorio donde está el archivo .sh usando cd . En este ejemplo, he almacenado mi archivo sh como ~/Desktop/shell_practice/test.sh

primero haz pwd para descubrir dónde estás, y si devuelve /home/username (donde username es tu nombre de usuario real), puedes ejecutar

cd Desktop/shell/practice

Si parece que está en otro lugar, puede usar la ruta absoluta

cd ~/Desktop/shell/practice

o

cd $HOME/Desktop/shell/practice

o incluso

cd /home/$USER/Desktop/shell/practice

estas son todas formas de describir el mismo lugar. Una vez que haya llegado a la ubicación de su secuencia de comandos, escriba

ls

Si puede ver el archivo sh en la salida, puede usar chmod para hacerlo ejecutable. En mi caso, recuerda, el nombre del archivo es test.sh , así que correría

chmod u+x test.sh

Ahora que estamos en el mismo directorio que el script, tenemos que especificar al shell que queremos ejecutar el archivo dando su ubicación ./ (el directorio actual seguido de un separador de ruta, para distinguirlo de el nombre del archivo). Para ejecutar mi archivo escribiría:

./test.sh

Si su script se ha escrito correctamente, se ejecutará sin errores ...

Aquí hay un ejemplo en vivo:

    
respondido por el TheExorcist 03.12.2016 - 12:14
3

2 pasos principales.

  1. en el terminal, use gedit para escribir y guardar el script con la extensión ".sh" en el escritorio. (pero se puede usar cualquier editor de texto)

  2. abre Nautilus y haz clic derecho en el archivo script.sh.

    • en propiedades, active la casilla de verificación "permitir la ejecución del archivo ..."

    • en el menú de Nautilus, haz clic en el archivo, luego en las preferencias y luego en el comportamiento

    • comprueba "ejecutar archivos de texto ejecutables cuando se abren".

Ahora, cuando hace doble clic en el archivo en el escritorio, debería ejecutarse. no hay necesidad de . o ./

    
respondido por el rob 24.10.2013 - 16:24
2

En Ubuntu 16.04, esta es la forma de abrirlo en Terminal:

Vaya al File Manager > Edit > Preferences > Behavior para Executable Text Files y seleccione Ask each time .

El problema es que está configurado por defecto en View Executable Files when they are opened .

    
respondido por el Leniel Maccaferri 11.12.2016 - 20:58
2
  1. Haz clic con el botón derecho en el archivo .sh y haz que sea ejecutable.

  2. Abre una terminal ( Ctrl + Alt + T ).

  3. Arrastra el archivo .sh a la ventana de la terminal y mira con asombro.

respondido por el 1p_bunny 10.06.2017 - 16:09
2

Hay algunas maneras de hacer esto.

Opción 1

  1. En el terminal, acceda al directorio en el que está el archivo Bash utilizando cd (change directory).

    Ej. cd Downloads

  2. Ejecutar bash <filename>.sh

    Esto también funciona con archivos .run. Hay un ejemplo de este uso en esta página web al actualizar Rhythmbox.

Opción 2

  1. En la terminal, navega hasta el directorio donde está el archivo bash.

  2. Ejecutar chmod +x <filename>.sh

  3. En Nautilus, abre el archivo.

respondido por el Kenny Stier 06.01.2014 - 22:33
1

Si coloca su script de shell u otro ejecutable que cree en / usr / local / bin, lo encontrará y ejecutará sin tener que proporcionar una ruta de carpeta en la línea de comando ni agregar ./ ​​al nombre. Por ejemplo, creé el siguiente script simple de 3 líneas bash para visualizar los UUID de disco:

#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid

Llamé al archivo uuid y lo coloqué en / usr / local / bin. Todo lo que necesito para ingresar en la línea de comando es:

uuid
    
respondido por el fragos 01.05.2011 - 09:14
1

Para Ubuntu 18.04 , hay una pequeña modificación, ya que no se obtiene un cuadro de diálogo emergente.

Entonces, lo que debes hacer es:

Haz clic con el botón derecho en Archivos, selecciona Preferencias & gt; Seleccione la pestaña Comportamiento & gt; Marque la opción 'Preguntar qué hacer' en Archivo de texto ejecutable.

Ahora, cuando hace doble clic en cualquier archivo .sh, obtendrá una ventana emergente, allí puede seleccionar la opción "ejecutar en terminal" para ejecutar su archivo .sh.

    
respondido por el Akhilesh Dhar Dubey 16.08.2018 - 12:18
0

Bueno, yo también enfrenté el mismo problema. Quería ejecutar el archivo .sh y se abrió con Gedit en CentOS 7. Así que aquí está lo que hice:

  1. Navegué hasta la ruta del archivo .sh que quería ejecutar.
  2. Abrí la terminal.
  3. Y simplemente arrastré y solté la ventana de la terminal y automáticamente tomó ese archivo junto con la ruta como entrada.
  4. ¡Presiona Enter y listo!
respondido por el Jen Bates 16.06.2016 - 17:11
0

El problema que he encontrado en algunas distribuciones es que han ocultado la opción de preferencias en Nautilus, pero arreglarlo en Ubuntu y otras distribuciones usando Gnome3 es lo mismo (literalmente acaba de hacer la versión Fedora de esto y publicar la corrección real) para recordarme cómo en el futuro).

  1. Instalar dconf-editor

    sudo apt-get install dconf-editor
    
  2. Ejecute dconf-editor utilizando la cuenta de usuario que desea que esté activada, es decir, NO root

    dconf-editor
    
  3. Navega al siguiente esquema:

    org.gnome.nautilus.preferences

  4. Cambiar la opción predeterminada para que no se abra de forma predeterminada:

    Buscar executable-text-activation hacer clic en la palabra display y cambiar a ask

que le dará la opción de editar, ver o ejecutar el archivo en el futuro

    
respondido por el Snider 22.12.2013 - 17:06
0

Soy un novato en Linux y solo tuve el mismo problema. Si todo lo demás falla:

  1. Terminal abierto
  2. Abra la carpeta que contiene el archivo .sh
  3. Arrastra y suelta el archivo en la ventana de la terminal
  4. La ruta del archivo aparece en la terminal. Presione Ingresar .
  5. Voila, tu archivo .sh se ejecuta.
respondido por el Linux_noob 07.05.2017 - 04:19
-2

También puedes usar . trucos, con la sugerencia de otras respuestas.

Por ejemplo:

chmod +x filename.sh , suponiendo que ya ha ido a la ruta del archivo, ejecute el archivo con cualquiera de estos comandos:

sh filename.sh

./filename.sh

. filename.sh
    
respondido por el Awais 02.01.2015 - 09:29

Lea otras preguntas en las etiquetas