User Tools

Site Tools


nix:pathvars

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
nix:pathvars [2020/01/06 15:28] kauffmannix:pathvars [2020/01/06 15:49] kauffman
Line 63: Line 63:
  
  
 +===== Manipulating the PATH variable =====
  
 +Your shell will allow you manipulate the order in which these paths appear. It's as simple as setting a variable.
  
 +For the following examples I assume you are using the bash shell, which is the default in CS. The concept will translate to other shells, though the syntax may be different.
  
 +A common example to manipulate your path is if you have written a script and you'd like to invoke it without providing the full path:
  
 +Lets create the directory ''%%bin%%'' in the root of our home directory:
 +<code>
 +user@linux1:~$ mkdir ~/bin
 +</code>
  
 +We will place our example script that echo's 'Hello World!' into ''%%~/bin/hello%%''
 +<code>
 +#!/bin/bash
 +echo 'Hello World!'
 +</code>
 +
 +and make it executable.
 +<code>
 +user@linux1:~$ chmod +x ~/bin/hello
 +</code>
 +
 +Now that we have our executable ''%%hello%%'' we'd like to be able to call it without prepending the path like this: ''%%~/bin/hello%%''
 +
 +As you may have guessed we will want to add (pre or postpend) ''%%~/bin%%'' to our ''%%PATH%%'' variable.
 +
 +==== The reason you are here ====
 +
 +<code>
 +$ export PATH=$PATH:~/bin
 +</code>
 +
 +To test we will need the shell to reevaluate $PATH.
 +<code>
 +$ hash -r
 +</code>
 +
 +Now we can see that ''%%hello%%'' is in our path and we can execute it without the full path.
 +<code>
 +user@linux1:~$ which hello 
 +/home/user/bin/hello
 +
 +user@linux1:~$ hello
 +Hello World!
 +</code>
 +
 +==== Making the change permanent ====
 +Add the following line to a file called ''%%~/.bash_profile%%''.
 +
 +   export PATH=$PATH:$HOME/bin
 +
 +This will postpend our custom path to the search path every time we launch a bash login shell.
 +
 +If you'd like to prepend just move your path in front of ''%%$PATH%%''. Just make sure each path is separated by a colon ''%%:%%''.
 +
 +    export PATH=$HOME/bin:$PATH
  
/var/lib/dokuwiki/data/pages/nix/pathvars.txt · Last modified: 2020/01/06 16:00 by kauffman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki