10

Is there a way to create and execute a script file in Ubuntu 14.04? Perhaps something like Windows batch files. Specifically, I mean the default scripting language of the Ubuntu terminal (Bash). How do you make a text file containing bash commands which will be run by the Ubuntu terminal from the top of the file to the bottom.

muru
  • 197,895
  • 55
  • 485
  • 740
Strato1
  • 2,120
  • 1
    Of course, most people use bash scripts, but you can use perl, python, awk ... See http://linuxcommand.org/lc3_writing_shell_scripts.php – Panther May 23 '14 at 22:15

1 Answers1

12

Your "shell" or the command line interface is called bash. You can write a bash script which is similar to a batch file. A bash script starts with a She-bang #!/bin/bash and is nothing more then a set of commands to run in a sequence to run them. You are not limited to bash command, you can call any binary on the system by using the full path to the binary or script.

A master thread on learning/books/terminal/bash/Linux etc Linux Command Line Learning Resources - cortman https://help.ubuntu.com/community/CommandLineResources

My first bash was several commands I was running multiple times in terminal. So I listed history with history command and copied them into text file. First line must be this (no spaces before it and first line):

#!/bin/bash

And after saving you must make it executeable.

sudo chmod +x <path>
sudo chmod 755 <filename>

Note that it is a good idea to put your scripts in one place, so you can run them without requiring a path. If you create a bin directory in your home ( mkdir ~/bin ) the next time you login, that will automatically be included in your PATH.

mkdir ~/bin
chmod 755 ~/bin

Edit : If you want the script to be available to all users, place it in /usr/local/bin and have it owned by root with rx access by others sudo chown root:root /usr/local/bin/your_script ; sudo chmod 655 /usr/local/bin/your_script

gksudo gedit ~/.bashrc

Add the following to the end of .bashrc and save:

if [ -d $HOME/bin ]; then
PATH=$PATH:$HOME/bin
fi
Panther
  • 102,067
oldfred
  • 12,100
  • @Strato1 bash scripts are most common, but Lucio raises a very valid point, one can use a long list of languages. They syntax is the same, start with a She-bang and list commands. Careful how you google search She-bang ;) http://en.wikipedia.org/wiki/Shebang_%28Unix%29 – Panther May 23 '14 at 22:34
  • I do mean Bash scripts. I have updated my question to be more specific. – Strato1 May 24 '14 at 01:25
  • Needs more explanation. – the_prole Nov 26 '15 at 18:33