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
nix:pathvars [2020/01/06 15:28] kauffmannix:pathvars [2020/01/06 16:00] (current) kauffman
Line 36: Line 36:
 </code> </code>
  
-==== Intro the the PATH variable ====+===== Intro the the PATH variable =====
  
 Generally your search path for binaries will look something like the below. Generally your search path for binaries will look something like the below.
Line 63: Line 63:
  
  
 +===== Setting up an Example =====
  
 +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.
 +
 +===== Manipulating the PATH variable =====
 +
 +<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. You can replace ''%%$HOME/bin%%'' with any path you wish and add as many paths as you want at once.
 +
 +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/attic/nix/pathvars.1578346097.txt.gz · Last modified: 2020/01/06 15:28 by kauffman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki