≡ Menu

Display or print UNIX / Linux path ~ $PATH variable

Q. How do I print current path settings under BASH shell? I’m using Debian Linux.

A. In UNIX / Linux file systems, the human-readable address of a resource is defined by PATH. On Unix / Linux like operating systems, (as well as on DOS / Windows and its descendants), PATH is an environment variable listing a set of paths to directories where executables may be found.

Display current PATH

Use echo command:
$ echo $PATH
Output:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games

Modify current PATH

Use export command to add /opt/games to PATH, enter:
export PATH=$PATH:/opt/games

To format your PATH variable for easy viewing, add following code to your bash startup file (such as ~/.bashrc or ~/.bash_profile) :

function path(){
    old=$IFS
    IFS=:
    printf "%s\n" $PATH
    IFS=$old
}

(Function credit: usenet archive)

Now just run path:
$ path
Output:

/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/bin/X11
/usr/games

{ 6 comments… add one }

  • anon October 31, 2010, 2:50 am

    slight improvement:


    path ()
    {
    local IFS=:
    eval printf "%s\\\n" \$${1:-PATH}
    }

    accepts an optional argument that is the name of a path-like variable.

    • Pekka R March 6, 2014, 12:25 pm

      Hi,
      I did not get either of those path() working. I assume my version of unix does not recognize IFS when applying printf. But this works:

      echo $PATH | sed ‘s/\:/\n/g’ | sort

      • Dan R August 5, 2014, 9:08 pm

        Thanks for that, Pekka. I started using zsh, which has the same problem you described. The original solution works wonderfully in bash, but yours works in zsh.

  • Jamal A Talla November 21, 2010, 10:11 am

    Hello Sir;
    I am trying to run a program on a cluster and every time I run the program I have this message: mpiexec was unable to launch the specified application as it could not find an executable. ”
    so I am suggesting that the program is not recognize the mpixec path. so I need to add the MPI path in my working directory.
    my question is how to set this up?

  • ana November 12, 2011, 4:09 pm

    hola necesito decargar un editor ok lo descargo en superusuario y cuando esta descargando me dice q no puede continuar … me aparece esto : dpkg: aviso: `ldconfig’ no se ha encontrado en el PATH o no es ejecutable.
    dpkg: aviso: `start-stop-daemon’ no se ha encontrado en el PATH o no es ejecutable.
    dpkg: error: 2 expected programs not found in PATH or not executable.
    Note: root’s PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
    E: Sub-process /usr/bin/dpkg returned an error code (2)
    Un paquete no se pudo instalar. Tratando de recuperarlo:
    dpkg: aviso: `ldconfig’ no se ha encontrado en el PATH o no es ejecutable.
    dpkg: aviso: `start-stop-daemon’ no se ha encontrado en el PATH o no es ejecutable.
    dpkg: error: 2 expected programs not found in PATH or not executable.
    Note: root’s PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
    help me..

  • Kapil May 8, 2012, 2:52 pm

    In below code:
    Node=/liferay-portal-5.2.0/jboss-tomcat-4.2.3/server/node_portal
    export jboss=$Node/../..
    echo $jboss

    Output :

    /liferay-portal-5.2.0/jboss-tomcat-4.2.3/server/node_portal/../..

    But I need Output as :

    /liferay-portal-5.2.0/jboss-tomcat-4.2.3.

    Please help me out in this.

Leave a Comment