How to run .sh file [duplicate]

Possible Duplicate:
How do I run .sh files in Terminal?

I want to download JDownloader from the internet for Linux. But the file is .sh and when I tell ubuntu to open the file it uses some text editor. I searched Ubuntu Software Store and there was no application to open it. Is there any way I can get it installed?


  1. copy the file to the desktop (for convenience)

  2. Right click on the file and select properties

    enter image description here

  3. Under permission tab check allow executing file as program

    enter image description here

  4. double click on the file and chose run in terminal if it is not a gui program)

    enter image description here

By default the file manager may not show that option and open the file in gedit instead. In that case change the preference of the file manager at: Edit-> Preferences -> Behaviour to "ask each time" or right away to "run executables"

Command line

cd /path/to/file
chmod +x filename.sh
./filename.sh

Comment below if it wont work :)

If it still won't work, despite having allow executing file as a program ticked, when you double click on the .sh file, and it launches gedit, navigate to the folder with the script.

Once you are in the correct current folder for the script, you can run the script like this:

sudo ./filename.sh

If that doesn't work you may try

sudo bash filename.sh

From FAT partition

Follow this How do I execute a file from a FAT USB drive?


Command line

Apart from what liquid had recommended, usual procedure is to change permissions to make this file executable:

chmod +x file.sh

And then execute this file:

./file.sh

GUI

The same can be achieved in Nautilus file browser using context menu by changing Execute flags in Properties -> Permissions.


You can also use . tricks, with the suggestion of other answers.

For example:

chmod +x filename.sh, assuming you have already gone to the path to file then run the file with any one of these command:

sh filename.sh
./filename.sh
. filename.sh

Try sh nameoffile.sh in terminal (making sure you are in the folder where nameoffile.sh is saved)