Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

The PATH is an important concept when working on the command line. It's a list of directories that tell your operating system where to look for programs, so that you can just write script instead of /home/me/bin/script or C:\Users\Me\bin\script. But different operating systems have different ways to add a new directory to it:

Windows

  1. The first step depends which version of Windows you're using:
  • If you're using Windows 8 or 10, press the Windows key, then search for and select "System (Control Panel)".
  • If you're using Windows 7, right click the "Computer" icon on the desktop and click "Properties".
  1. Click "Advanced system settings".
  2. Click "Environment Variables".
  3. Under "System Variables", find the PATH variable, select it, and click "Edit". If there is no PATH variable, click "New".
  4. Add your directory to the beginning of the variable value followed by ; (a semicolon). For example, if the value was C:\Windows\System32, change it to C:\Users\Me\bin;C:\Windows\System32.
  5. Click "OK".
  6. Restart your terminal.

Mac OS X

  1. Open the .bash_profile file in your home directory (for example, /Users/your-user-name/.bash_profile) in a text editor.
  2. Add export PATH="your-dir:$PATH" to the last line of the file, where your-dir is the directory you want to add.
  3. Save the .bash_profile file.
  4. Restart your terminal.

Linux

  1. Open the .bashrc file in your home directory (for example, /home/your-user-name/.bashrc) in a text editor.
  2. Add export PATH="your-dir:$PATH" to the last line of the file, where your-dir is the directory you want to add.
  3. Save the .bashrc file.
  4. Restart your terminal.
Copy link

ghost commented Feb 12, 2020

** (gedit:23414): WARNING **: 12:31:52.288: Set document metadata failed: Setting attribute metadata::gedit-encoding not supported

am facing this error when trying to add a path

@FTheodore
Copy link

FTheodore commented Feb 12, 2020

use nano instead of gedit, gedit has issues when trying to run from tty

** (gedit:23414): WARNING **: 12:31:52.288: Set document metadata failed: Setting attribute metadata::gedit-encoding not supported

am facing this error when trying to add a path

@franciscotv
Copy link

franciscotv commented Feb 24, 2020

small correction use PATH instead of $PATH in the first parameter after export:
export PATH="$HOME/appl/code/leap-demo-app:$PATH"

Copy link

ghost commented Feb 27, 2020

@franciscotv
Copy link

franciscotv commented Feb 27, 2020

my pleasure :)
think about why using one instead of the other.

  • assign
  • expand
    that is why, they are different.

@SimonScharf
Copy link

SimonScharf commented Jul 20, 2020

I tried following these instructions on my Mac, edited my .bash_profile and appended the line:
export PATH="/Users/.../dart-sass:$PATH" (where ... is the rest of the absolute path of the dart-sass directory)
However, when I run sass --version in terminal, I get the error -bash: sass: command not found.

Am I doing anything wrong? It is very frustrating and confusing.

Edit: Problem was fixed when I tried the line: export PATH="$PATH:/Users/.../dart-sass". I am still confused as to how this fixed the problem though.

@davidenoma
Copy link

davidenoma commented Aug 16, 2020

for me: on .bashrc
I just added
PATH=$PATH:/directory

@kjcaputa
Copy link

kjcaputa commented Sep 22, 2020

You do not have to restart terminal. You can use source command
source ~/.bashrc

@franciscotv
Copy link

franciscotv commented Sep 22, 2020

@kjcaputa
Thanks!, source command is awesome!
example

@Zorono
Copy link

Zorono commented Nov 15, 2020

Thank you, dude!!
in my case (Ubuntu Desktop 20.10) I just ran the following command in the Terminal PATH="/directory:$PATH"

@TMSantos
Copy link

TMSantos commented Jan 1, 2021

For those using Z-Shell (zsh) don't forget it's .zshrc instead of .bash_profile

@michee1367
Copy link

michee1367 commented Feb 4, 2021

thanks

@rafaVls
Copy link

rafaVls commented Feb 10, 2021

For those using Z-Shell (zsh) don't forget it's .zshrc instead of .bash_profile

This worked for me using zsh, thanks!

@davidliu611
Copy link

davidliu611 commented Mar 17, 2021

why do we need to append ":$PATH" at the end?

@Ghasak
Copy link

Ghasak commented Apr 8, 2021

@davidliu611 This is a simple concatenation of the string in the bash scripting language. You allow the original PATH string to be concatenating with the dir that you specified. check this out using
echo $PATH (in terminal)
you will see that your dir has been added at the beginning of the PATH.
PATH is the location where the system will look for other apps, scripts, env. .etc.

@Screeeech
Copy link

Screeeech commented Jun 3, 2021

worked great, thank you so much

@ProfJamesMoriarty
Copy link

ProfJamesMoriarty commented Jun 25, 2021

It is not working for me. I am using kali linux. Do you know what is the problem?

@Midhlaj2006
Copy link

Midhlaj2006 commented Jul 7, 2021

Life saver 👍

@JosephBerm
Copy link

JosephBerm commented Sep 5, 2021

Excellent work. Thank you for this upload.

@moghaazi
Copy link

moghaazi commented Sep 9, 2021

For those using Z-Shell (zsh) don't forget it's .zshrc instead of .bash_profile

I forget that and spent 3 hours trying all solutions, till I read your comment.

@osorvr
Copy link

osorvr commented Oct 21, 2021

Works on Command prompt. But not in Bash? can anyone help?.

@Code-Cannibalist
Copy link

Code-Cannibalist commented Feb 22, 2022

it still says unknown command lvim

@byteknight
Copy link

byteknight commented Feb 26, 2022

RapidEE is an outstanding alternative to the Windows built-in control panel dialog box for environment variable management and viewing, including the PATH variable, of course. For those who like text walls, read on! xP

BTW, thanks nex3. Cool tips!


TL;DR Version:

Although it's not necessary in the slightest, and for the standard non-hacker end-user probably smacks of overkill, if you are like me in meeting the following two criteria:

  • A. Are forced to use Windows due to its popularity or your own masochistic tendencies; and furthermore
  • B. Make use of environment variables (esp. PATH) fairly often, like most developers,

then you should find in RapidEE a beautiful tool to replace the tiny control panel dialog box. The native Windows method is fine for simple, "one-off" changes to PATH or a different variable, for a more comprehensive, "bird's eye" view of both system and user variables and the ability to add/delete or modify them—all quickly and easily, without the confusion the regular dialog can entail—the handy, small program called Rapid Environment Editor (or RapidEE) is more than sufficient. Although it's closed-source (afaik), it's free, up-to-date and even supports operations on variables via command-line arguments.

I'm fully aware there are other apps that fill the same need, many of them FOSS, but when I use Windows RapidEE has served me very well, and its features continue to save me many headaches from confusion, tedium and their ilk. Anyway, happy hacking, guys, and thanks again nex3!

@ricky900
Copy link

ricky900 commented Mar 14, 2022

i tried for lunarvim and its not working
export PATH="$PATH: ~/.local/bin/"

@fatherofphysics
Copy link

fatherofphysics commented Mar 14, 2022

i tried for lunarvim and its not working export PATH="$PATH: ~/.local/bin/"

use this export PATH="your-dir:$PATH"

@linconl-cmd
Copy link

linconl-cmd commented Mar 18, 2022

In my experience , used : export PATH=/.cargo/bin:/.local/bin:$PATH In file .bashrc appended last line
ps. DIST. ARCH

@mauriciocoruja
Copy link

mauriciocoruja commented Apr 14, 2022

Still helpful. tks

@Chirpingdusty
Copy link

Chirpingdusty commented May 5, 2022

for those using fish on macOS,

  1. go to /Users/account-name/.config/fish

  2. open config.fish and paste the following line inside the file

export PATH="/Users/account-name/.local/bin:$PATH"

@billnice250
Copy link

billnice250 commented May 8, 2022

Sometimes, I noticed modifying the .bashrc file doesn't work instead,
Adding the new PATH in .zshrc file (which is the default shell for MacOs) works for me.
add a new line in the file $HOME/.zshrc:

#for example
export PATH="your-bin-dir:$PATH"

then run
source $HOME/.zshrc

to reflesh the file

@mra-ruiz
Copy link

mra-ruiz commented Aug 25, 2022

For those using Z-Shell (zsh) don't forget it's .zshrc instead of .bash_profile

Thank you!! This worked for me too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment