I'm a web developer. When I want to start working, always i'm executing some command on terminal. For example:

sudo service apache2 start
sudo service mysql start

For speed up this process, I create a .sh file which contain these commands.

Now, when I want to start working, I'm just executing this .sh file and all services (mysql, apache2 etc.) starting.

Is it possible to create a custom command for this? For example if I type sudo start-working to terminal, it will execute these commands

2 Answers 2


A common way people handle this is to make a bin directory in their home directory: mkdir ~/bin

Then, you can put your custom scripts in there: mv start-working ~/bin

Make sure your script is executable: chmod +x ~/bin/start-working

Add this to the bottom of your ~/.bashrc file (if you're using bash, which you probably are): export PATH=$PATH:~/bin

Now log back in and out of your terminal and you should be able to simply type start-working, and your script will execute.

Now that your path is setup, any new scripts you drop into your ~/bin you can just type in the name of.

  • 16
    +1, and instead of logging out and in, you can simply run the source ~/.bashrc or . ~/.bashrc commands to apply the changes.
    – B Faley
    Commented Sep 2, 2012 at 7:35
  • Joe Oppegaard, I find this really useful information as there are completed scripts I have and would like run as a command rather than a script. Is there a way to include all subdirectories that you create in ~/bin so that you don't have to include multiple export lines in .bashrc? I tried export PATH=$PATH:~/bin/* but that didn't return the desired results. Commented Jan 10, 2013 at 15:09
  • 2
    The default ~/.profile already adds ~/bin to PATH, so appending it in ~/.bashrc in addition will pointlessly add it twice or more.
    – geirha
    Commented May 16, 2013 at 19:53
  • It worked without me appending anything to .bashrc, so you may be able to skip that as geriha says Commented Mar 6, 2015 at 23:56
  • in my experience, when you add new file you have to redo a chmod command, otherwise the permission will be denied
    – DiaJos
    Commented Feb 28, 2019 at 12:47

I was looking how to create custom commands and I found this question among others. I think what I was looking for was for aliases so I'll give you the way to do this with an alias.

On your home folder:

nano .bash_aliases

And there you can write down your commands in one line:

alias start-working='sudo service apache2 start; sudo service mysql start; sublime'

After saving the file reconfigure your bashrc

. ~/.bashrc

And check your new alias is loaded


That's it, you can start working now by running


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .