Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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
sublime

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

share|improve this question

2 Answers 2

up vote 11 down vote accepted

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.

share|improve this answer
    
Thank you @Joe , it's working :) –  Eray Apr 2 '12 at 20:58
2  
+1, and instead of logging out and in, you can simply run the source ~/.bashrc or . ~/.bashrc commands to apply the changes. –  Meysam Sep 2 '12 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. –  Kevin Wyman Jan 10 '13 at 15:09
    
The default ~/.profile already adds ~/bin to PATH, so appending it in ~/.bashrc in addition will pointlessly add it twice or more. –  geirha May 16 '13 at 19:53

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:

$ sudo 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

$ alias

Thats it, you can start working now by running

$ start-working
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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