Modify Shell Path — macOS Sierra using Terminal

Image for post
Image for post

The shell path for a user in macOS or OSX is a set of locations in the filing system whereby the user has permissions to use certain applications, commands and programs without the need to specify the full path to that command or program in the Terminal. This will work in macOS Sierra and all older OSX operating systems; El Capitan, Yosemite, Mavericks and Lion.

Instead of running something like this, with a path to the command:

/usr/local/mysql/bin/mysql

You can just type the command, regardless of where you are in the filing system:

mysql

Your shell path is a bunch of absolute paths of the filing system separated by colons :

You can find out whats in your path by launching Terminal in Applications/Utilities and entering:

echo $PATH

And the result should be like this…

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

So this is stating that you can run Unix style applications located in 5 default locations of path in the filing system:

  • /usr/bin
  • /bin
  • /usr/sbin
  • /sbin
  • /usr/local/bin

These directories are not visible by default in the filing system but you can make them visible.

You can add extra locations to your path, in the mysql example above it’s location /usr/local/mysql/bin which is not in the default path, you can add it in Terminal like so:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin

So here I have copied my existing path and added the new location on the end. Test it is added by running echo $PATH again. One of the disadvantages of this is that the new location will only be honored for that particular Terminal session, when a new Terminal window is launched it will have the original default path again.

To make the new path stick permanently you need to create a .bash_profile file in your home directory and set the path there. This file control various Terminal environment preferences including the path.

Move into home directory

cd

Create the .bash_profile file with a command line editor called nano

nano .bash_profile

Add the below line which declares the new location /usr/local/mysql/bin as well as the original path declared as $PATH.

export PATH="/usr/local/mysql/bin:$PATH"

Save the file in nano by clicking ‘control’ +’o’ and confirming the name of the file is .bash_profile by hitting return. And the ‘control’+’x’ to exit nano

So now when the Terminal is relaunched or a new window made and you check the the path by

echo $PATH

You will get the new path at the front followed by the default path locations, all the time

/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

Happy coding 🙂

P.

PanayiotisGeorigou-Instagram
PanayiotisGeorigou-Instagram

Read More

Installing node.js on OSX — macOS Sierra

Crash Anyone’s iPhone With A Simple Emoji Text Message

Manage paid orders and payments settings from the Google Play Developer Console

Android Switching Between Activities — Example

Find me on Twitter

Follow @panay_georgiou

Github


Originally published at Panayiotis Georgiou.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store