This question already has an answer here:

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.

marked as duplicate by muru, Eliah Kagan, Zanna command-line Nov 3 '17 at 8:07

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

up vote 8 down vote accepted

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
  • @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 ;) 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 1:25
  • Needs more explanation. – the_prole Nov 26 '15 at 18:33

Not the answer you're looking for? Browse other questions tagged or ask your own question.