HowTo: Run the .sh File Shell Script In Linux / UNIX

by on September 26, 2007 · 43 comments· LAST UPDATED September 13, 2010

in , ,

I've downloaded a software for Linux from the Internet. There is a file called install.sh. How do I run an .sh file to install the software?

.sh file is nothing but the shell script to install given application or to perform other tasks under UNIX like operating systems. The easiest way to run .sh shell script in Linux or UNIX is to type the following commands. Open the terminal (your shell prompt) and type the command:

sh file.sh

OR

bash file.sh

.sh File As Root User

Sometime you need to install application which requires root level privalage
Some time you need root access to install application; without root, you won't have the necessary permissions to install application or make system level modifications. Root access is disabled by default on many Linux and UNIX like systems. Simply use sudo or su as follows:

sudo bash filename.sh

Type your password. Another option is to use the su command as follows to become superuser:

su -

Type root user password and finally run your script:

bash filename.sh

chmod Command: Run Shell Script In Linux

Another recommend option is to set an executable permission using the chmod command as follows:

chmod +x file.sh

Now your can run your .sh file as follows

./file.sh

See also:

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 43 comments… read them below or add one }

1 lekhraj October 1, 2007 at 7:53 am

anybody tell by which coomand i will check the modified date of files/dir in linux o/s

Reply

2 sushant suryawanshi October 13, 2012 at 8:14 am

date -s “2 OCT 2006 18:00:00″

Reply

3 rashid February 20, 2008 at 9:38 am

if we want to install software from cd.. how should be the command? i’m the newbie

Reply

4 anonomys December 19, 2008 at 9:43 pm

rashid, if you want to install software from the cd you should try synaptic package handler or apt-get .

if the software is usually from the cd it will tell you to insert it

Reply

5 Black_Ps` June 11, 2009 at 3:31 am

How can i execute this command export PS1=”\[[33[01;32m\]\u@\h\[33[01;34m\] \W]\]#” from a .sh script for example and make it work ?

Thanks.

Reply

6 J_Art June 21, 2009 at 9:51 pm

Hey Black_Ps`
There are a few ways to do this but if you are not familiar with some of the nuances of Linux, it might be easier to create a new folder to place the file in (or all of your scripts in) like home/username/Desktop/scripts (substituting the actual user name in place of username). The following instructions are based on Fedora 10 with GNOME desktop so if you are running a different Linux distro, you may or may not have a few slight variances. Once you have a good place to store your scripts, you can use the GUI to help with creation of the shell script. Next, click on the “Applications” menu and highlight “Accessories” and then select “Text Editor” Type the following command #!/bin/bash and then press the enter key. Now, type the command you listed into the text editor and then select the “Save As” option. Now name your file (highly recommended that you don’t name it with spaces and make the name all lower case to help with ease of use later) and save it to your new folder you created…remember to give it a .sh name extension. Now close the text editor and go back to the “Applications” menu and highlight “System Tools” and then select “Terminal”. Type the following command cd /home/username/Desktop/scripts (again substituting the actual user name in place of username). The command ls and then press the enter key. Did it return the name of your script as a file in that folder? If so, move on to the next step. If it did not, navigate to the folder where you saved this file and move it to the correct folder. Type the following command chmod 755 yourfilename.sh. That’s it, you now have an executable shell script that will execute your command. You can do so by double clicking on it from the GUI, calling it from the terminal like so bash /home/username/Desktop/scripts/yourfilename.sh or you could put it on the cron to run unattended if you needed to. I hope this helps some or at least points you in the right direction.

Reply

7 kashif February 9, 2012 at 11:53 am

can you please expalin it more detailes.

Reply

8 Black_Ps` June 21, 2009 at 10:09 pm

Ok thanks i’ll give it a try

Reply

9 shunan June 30, 2009 at 6:17 am

When i open the terminal in UNIX..something like interactive keyboard authentication bla.. bla.. is coming..nd its difficult me to go on typing my commands and navigating through the directors and files..how can i fix this..? any idea…? any command? anything helpful will be highly appreciated. _thanks_

Reply

10 J_Art June 30, 2009 at 9:52 pm

Hi shunan

Is it safe to assume that you have someone in an administrative role who oversees the security of this UNIX terminal? The reason I ask is because this sounds like something I encountered once with something called PAM (Pluggable Authentication Module). It’s a security concept that involves VSHELL. To be perfectly honest, I’m not too familiar with it and the only thing I can vaguely remember about it is that it somehow involves configuring authentication to be controlled by PAM via keyboard-interactive authentication. I realize I didn’t help much here but I hope this at least points you in the right direction. PAM is a product of SUN so you might find something worth while on their page but I haven’t really read up on it so I can’t make any promises. –> http://www.sun.com/software/solaris/pam/

Reply

11 Nate September 23, 2009 at 8:06 pm

This is just straight pissing me off.
I’ve run the install.sh file in the terminal and have gotten to a eula where it asks if I accept and to type yes or no. I type yes and hit enter.
it said it can’t install it because permission is denied. But a window didn’t pop up to ask for my password.
I’m about to kick Ubuntu in the face.

Reply

12 nixCraft September 23, 2009 at 8:46 pm

Try
sudo sh install.sh

Reply

13 hhxxxuu July 12, 2011 at 10:40 am

haha

Reply

14 Dare_devil December 2, 2009 at 10:52 pm

hi i am newbie too to linux system i’ve a direct question:
i have arch linux but nothing from these commands work terminal tell me the following:
command not found
help me!

Reply

15 tugrul March 2, 2010 at 10:25 pm

if you are using fedora 12 like i am, open up the terminat, switch to the root and with the terminal get on the fileway that you downloaded your .sh file.So write “sh YOURDOWNLOADEDFILE.sh” click on enter and that’s it

Reply

16 Gary James March 8, 2010 at 8:50 pm

Excellent advice. Thanks Gary ( A newly converted Linux enthusiast)

Reply

17 dishant March 23, 2010 at 9:16 am

can i execute a shell script in another shell script

Reply

18 Iqbal June 5, 2010 at 9:28 am

Hey all,

Yes dishant,

You can run the shell script inside the other.
But keep in mind that In the second script do not kill the first one.
If you want to kill the first one, then back up the file name somewhere and kill it, then use that path in the second script.

Cheers,
Iqbal S.

Reply

19 panchotiya jigar r April 15, 2010 at 4:57 pm

this is the best site of linux information to me
i learn lots of by this web site
it’s realy very helpful web site
i use this website for longtime
it’s give all answer of your questions
thanks for help

Reply

20 sara August 21, 2010 at 6:11 am

in fedora 12 i switch to root by command : su
and ./install.sh but the error come out: install.sh: No such file or directory
why?
i want to know how it detect the folder install.sh is inside?

Reply

21 sara August 21, 2010 at 6:12 am

switch to root with command: su -

Reply

22 MikeM November 2, 2010 at 2:12 pm

So, I have a similar problem as Sara. Created a miketest.sh script, and used “./” prefix to execute it, and received “ksh: ./miketest.sh: not found.”

If I use “sh” instead of “./” it seems to run fine.
Permissions of miketest.sh are set to 777.
I have other scripts that run fine, and some that do not… What am I missing here?

Reply

23 pari February 28, 2011 at 4:57 am

may be u r not giving the correct path, check ur path again. Firstly reach to ur folder n then switch to root. I know it is very basic thing but sometimes mistake happens in such things also…

Reply

24 dave April 23, 2011 at 4:17 am

This is hilarious. Came across this site by accident, but just noticed advice to a newbie.

“Open the terminal (your shell prompt) and type the command:”

To a newbie, that is still gibberish.

Reply

25 nathan June 13, 2011 at 10:08 am

nice one for beginners.. good working

Reply

26 shin_chan July 6, 2011 at 5:06 am

Alright a very nice tutorial….really helpful but I have a little problem…..
I want to run the .sh in background so that even I can logout.
I am using the command “nohup sh filename.sh &” and a file named “nohup.out” is also made but it contains an error which says “no such file or directory”…I am using the command in folder where the .sh file is located.
Pls tell where I am doing it wrong!!!!

Reply

27 Clifford February 3, 2012 at 12:43 am

Put the following at the end of the syntax:

2>&1 &

I hope this helps!!!

Reply

28 sonaht August 23, 2011 at 8:39 pm

Thanks for this good and clear information. Very helpful for eachothers.. that are beginners :)

Reply

29 Areeg September 18, 2011 at 11:59 pm

in ubunto 11.04
you need to specify the full path of the file not only th name .sh

Reply

30 Dhruv September 22, 2011 at 7:41 pm

very nice … i need some more article on that particular topics can you please send me some link so that i can check daily

Reply

31 kishore November 7, 2011 at 4:36 pm

i m getting the error output ……The program returned an error code (126)……..
when i run the sh script.sh

Reply

32 ashok March 1, 2012 at 8:35 am

how to save modified .sh file.Iam trying to install hadoop on my system.But JAVA_HOME path is to be changed from jdk 1.5 to jdk6.i need to modify hadoop-env.sh file.But mysystem is not allowing.please suggest me

Reply

33 maxx March 11, 2012 at 7:13 am

thanks for the clear information

Reply

34 Doug April 3, 2012 at 11:28 pm

I am trying o run ” admire_root.sh ” in my terminal. In several attempts at rooting my phone. Samsung SCH 720 Admire. In the You Tube video ” http://www.youtube.com/watch?v=EEpU8-RBVHo” the tech describes very fast ” You may need to run chmod or chmod 755 run.sh” ?? What ever that means.???

I have googles searched till my fingers blead and eyes tear . This is going on 5 days. I cannot figure this out. Please help.

My question is. When I am in Terminal– What do I type in order to run the admire_root.sh file? Or Chmod 755 the file? Can I simply copy paste the script from the file into Terminal?

Reply

35 nixCraft April 4, 2012 at 11:11 am

Type any one of the following command:

chmod +x admire_root.sh
./admire_root.sh 

OR

bash admire_root.sh 

OR

sh admire_root.sh 

Reply

36 Hennie June 17, 2012 at 8:30 pm

thnx for this info noobs like us are always looking for simple clean command lines
i created a script that cleans/delete logfiles but could not test it
using the simple bash filename.sh i could test it
added the cronjob after that and it all works fine

#!/bin/bash

OWNER=root
TARGETDIR_1=/var/log
FILE_1=XXX.log

echo && date

if test -f $TARGETDIR_1/$FILE_1 ; then
echo “XXX.log present!”
chown $OWNER $TARGETDIR_1/$FILE_1
rm $TARGETDIR_1/$FILE_1
else
echo “No XXX.log present?!?!Nothing to remove”
fi

exit

Reply

37 ramchandra deshmukh October 29, 2012 at 7:51 am

sir i try script program us but plz explain at commands in details in terminal prompt …

Reply

38 balakrishnan December 3, 2012 at 6:21 am

i want to include macro in my script file like #define INT int how to use this macro in my script file

Reply

39 cat January 20, 2013 at 7:54 am

hey guys :)
i want a script to send data from DB to E-mail automatically

Reply

40 Rajesh Sharma August 22, 2013 at 8:18 pm

Please tell me how to download software from net to run unix command in desktop

Reply

41 Ravinder October 19, 2013 at 6:36 am

thanks guys. this is really helpful

Reply

42 abdul April 22, 2014 at 8:22 am

i need to write a shell script that will give read, write and execute permissions to the file owner and group owner of the file

Reply

43 Jas June 16, 2014 at 5:32 am

Can anybody help me how to schedule below command to run every week on Monday?
df -h |egrep ‘Filesystem|log|new’ |awk ‘{print $0,”\n”}’ | less | mailx -s “subject” mail@company.com

Thanks in advance for your help.

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: