I'm a total linux noob. So when I tried to manually set up Drush on a Linux server today, I ran into a bit of trouble. Following the Drush instructions, I put drush outside of the webroot and attempted to create a symbolic link between the Drush directory and /usr/bin.
The drush readme instructs a noob to do the following:
ln -s /path/to/drush/drush /usr/bin/drush
So, I navigated to the drush directory and tried to follow instructions:
ln -s drush /usr/bin/drush
Attempting to run Drush then gave this error:
bash: /usr/bin/drush: Too many levels of symbolic links
After a lot of fruitless Google searching, I decided to try again with a closer attention to detail:
ln -s /var/www/drush/drush /usr/bin/drush
Huzzah! It worked. I had mistakenly assumed that the ln command was following the format
ln -s [filename] [different/directory/filename]. It turns out that you need to give the full path:
ln -s [path/to/filename] [different/directory/filename].
It makes sense now.