Welcome to the new Linux Foundation Forum!

more man page trouble

tw3aktw3ak Posts: 37

Linux nEWb,

working my way through the man pages still... confused one in this statement? : export PATH="$PATH:/opt/gnome/bin" I thought I could do export PATH="$PATH=/opt/gnome/bin"???.... Also, this is temp? when I reboot it's gone? right? If I'm learning anything I'd have to put it in ./bashrc or ./bash_profile right?

Comments

  • mfillpotmfillpot Posts: 2,180
    I am a bit confused because you show the same command in both cases, but the command would be
    export PATH="/opt/gnome/bin"
    


    If you enter the command via terminal then it is temporary and will only exist as long as that terminal session is open, you are correct in saying that you need to append it to .bashrc to keep it for future sessions.
  • bastibbastib Posts: 6
    I think you should use
    export PATH="${PATH}:/opt/gnome/bin"
    
    this appends your PATH-variable.
    export PATH="/opt/gnome/bin"
    
    overwrites it afaik.
  • CCCCCC Posts: 12
    I'd suggest that you do an
    echo $PATH
    
    . That will show you what your PATH variable currently is; it'll be a whole lot of directories, separated by colons. When you type in a command without a path, for example "ls", it will search through those directories, one by one, for a program entitled ls and run it.

    Now if you try
    export PATH="$PATH:/opt/gnome/bin"
    
    and then
    echo $PATH
    
    again, you'll see that the PATH environment variable now has ":/opt/gnome/bin" stuck on the end, but is otherwise unchanged. (The colon is there to separate directories).

    Using an equals instead of a colon will probably (I'm not quite sure here) result in it trying to look in a directory with a name something like /bin=/opt/gnome/bin every time it tries to run a command; since /bin= (presumably) doesn't exist, this will cause a problem. Especially as it's no longer looking in /bin (which includes, for example, ls); which can cause problems. (Your PATH might not have /bin at the end; it is merely used in an illustrative sense).

    If you use
    export PATH="/opt/gnome/bin"
    
    , then your path will only consist of /opt/gnome/bin. Now try something simple, like ls... and then it's probably a good idea to close that terminal and open a new one.
  • woboylewoboyle Posts: 501
    CCC wrote:
    Now if you try
    export PATH="$PATH:/opt/gnome/bin"
    
    and then
    echo $PATH
    
    again, you'll see that the PATH environment variable now has ":/opt/gnome/bin" stuck on the end, but is otherwise unchanged. (The colon is there to separate directories).
    DON'T do this:
    export PATH="$PATH:/opt/gnome/bin"
    
    as environment variables can get confused depending upon the following character (a colon in this case). It is better to use
    export PATH="${PATH}:/opt/gnome/bin"
    
    Using $PATH by itself is not recommended. Using ${PATH} is as there is no ambiguity - the terminating curly-brace is definitive.
  • abrenarabrenar Posts: 117
    if you are confuse, the easiest way is to add the "/opt/gnome/bin"
    to the last colon in the line PATH in your .bashrc

    ;)
  • CCCCCC Posts: 12
    woboyle wrote:
    CCC wrote:
    Now if you try
    export PATH="$PATH:/opt/gnome/bin"
    
    and then
    echo $PATH
    
    again, you'll see that the PATH environment variable now has ":/opt/gnome/bin" stuck on the end, but is otherwise unchanged. (The colon is there to separate directories).
    DON'T do this:
    export PATH="$PATH:/opt/gnome/bin"
    
    as environment variables can get confused depending upon the following character (a colon in this case). It is better to use
    export PATH="${PATH}:/opt/gnome/bin"
    
    Using $PATH by itself is not recommended. Using ${PATH} is as there is no ambiguity - the terminating curly-brace is definitive.

    My apologies. You are, of course, perfectly correct; the {}s are better practice.
  • echo " export PATH='$PATH:/opt/gnome/bin' " >> ~/.bashrc && su - `whoami`

    thats it.
  • amnesiaamnesia Posts: 60
    ?
  • ? is right. It would appear you are having him switch users to himself to source in the new PATH.

    the quicker and easier way to refresh your terminal is to just execute the command:
    source .bashrc

    Although you have to be in your home directory for that to work. Otherwise you have to put in the full path.
Sign In or Register to comment.