Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a .sh file that I need to create a symbolic link. I would like to be able to access the file using the Terminal.

The command I use is:

ln -s /path/roo.sh /usr/bin/roo

But when I type roo, it says command not found. If I type /path/roo.sh, it works. Am I missing a step somewhere?

share|improve this question
    
Can you verify that /usr/bin/roo exists? – poplitea Oct 13 '11 at 17:07
up vote 7 down vote accepted

What you did should work. Troubleshooting:

  1. Are you under root? Did ln command actually succeed? Verify with ls -l /usr/bin/roo which should list the newly created link. If the link is not there, add "sudo " before ln to execute it as root (sudo will prompt for root's password):

    sudo ln -s /path/roo.sh /usr/bin/roo

  2. Sometimes bash remembers where a certain executable is, and will not search in other locations. Enter hash -r to make it forget, and then try roo again.

  3. "/usr/bin" should definitely be in your PATH, but it won't hurt to verify: echo $PATH should include "/usr/bin"

share|improve this answer
2  
What I did wrong was that I use the current directory as the path ./folder1/folder2/roo.sh and when i type ls -l /usr/bin/roo, it shows that error. Thanks for that good tip haimg :) – okysabeni Oct 13 '11 at 17:41

Use the command alias roo="/usr/bin/roo"

share|improve this answer

If you are trying to use roo as a command ou might want to look at the alias command.

In this case you would do :

alias roo="path to roo"

to call it you will just need to do roo

For example

alias test="ruby /Users/user/Desktop/test.rb"
share|improve this answer

I think the symlink is did not created, as you can do this only with sudo from the terminal. Please check /usr/bin/roo is exists.

If exists, please try echo ${PATH} command, it shows you the folders where the shell search you command. If it does not contains /usr/bin, then try to fix it with adding export PATH="${PATH}:/usr/bin" into your ~/.profile

share|improve this answer

My echo $PATH showed me that /usr/local/bin/ was also in my path, so I just used /usr/local/bin/roo as my link target.

ln -s /path/roo.sh /usr/local/bin/roo
share|improve this answer

You must log in to answer this question.

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