What is the difference between “echo $PATH” and /etc/paths?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








6















When I echo $PATH I get this: Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mac/Library/Android/sdk/platform-tools:/platform-tools.



I want to remove some paths from this, but when I open the file using the command vim /etc/paths, I get the following results:



/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin


Is the file /etc/paths different from the $PATH variable?










share|improve this question
























  • Which version of OS X? I don't have /etc/paths in mine, but I'm running 10.4.11 and things have probably changed since then

    – Fox
    Apr 8 '17 at 0:52






  • 1





    But according to an answer on AskDifferent, /etc/paths is used to generate the default $PATH, which you can later modify

    – Fox
    Apr 8 '17 at 0:57











  • It's the default. By the time user starts their shell, though, it would be modified by other files that shell sources, like ~/.bashrc or ~/.profile

    – Sergiy Kolodyazhnyy
    Sep 14 '18 at 17:38

















6















When I echo $PATH I get this: Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mac/Library/Android/sdk/platform-tools:/platform-tools.



I want to remove some paths from this, but when I open the file using the command vim /etc/paths, I get the following results:



/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin


Is the file /etc/paths different from the $PATH variable?










share|improve this question
























  • Which version of OS X? I don't have /etc/paths in mine, but I'm running 10.4.11 and things have probably changed since then

    – Fox
    Apr 8 '17 at 0:52






  • 1





    But according to an answer on AskDifferent, /etc/paths is used to generate the default $PATH, which you can later modify

    – Fox
    Apr 8 '17 at 0:57











  • It's the default. By the time user starts their shell, though, it would be modified by other files that shell sources, like ~/.bashrc or ~/.profile

    – Sergiy Kolodyazhnyy
    Sep 14 '18 at 17:38













6












6








6


2






When I echo $PATH I get this: Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mac/Library/Android/sdk/platform-tools:/platform-tools.



I want to remove some paths from this, but when I open the file using the command vim /etc/paths, I get the following results:



/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin


Is the file /etc/paths different from the $PATH variable?










share|improve this question
















When I echo $PATH I get this: Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mac/Library/Android/sdk/platform-tools:/platform-tools.



I want to remove some paths from this, but when I open the file using the command vim /etc/paths, I get the following results:



/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin


Is the file /etc/paths different from the $PATH variable?







osx path






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Sep 14 '18 at 17:09









Jeff Schaller

44.7k1163145




44.7k1163145










asked Apr 8 '17 at 0:10









level0level0

3113




3113












  • Which version of OS X? I don't have /etc/paths in mine, but I'm running 10.4.11 and things have probably changed since then

    – Fox
    Apr 8 '17 at 0:52






  • 1





    But according to an answer on AskDifferent, /etc/paths is used to generate the default $PATH, which you can later modify

    – Fox
    Apr 8 '17 at 0:57











  • It's the default. By the time user starts their shell, though, it would be modified by other files that shell sources, like ~/.bashrc or ~/.profile

    – Sergiy Kolodyazhnyy
    Sep 14 '18 at 17:38

















  • Which version of OS X? I don't have /etc/paths in mine, but I'm running 10.4.11 and things have probably changed since then

    – Fox
    Apr 8 '17 at 0:52






  • 1





    But according to an answer on AskDifferent, /etc/paths is used to generate the default $PATH, which you can later modify

    – Fox
    Apr 8 '17 at 0:57











  • It's the default. By the time user starts their shell, though, it would be modified by other files that shell sources, like ~/.bashrc or ~/.profile

    – Sergiy Kolodyazhnyy
    Sep 14 '18 at 17:38
















Which version of OS X? I don't have /etc/paths in mine, but I'm running 10.4.11 and things have probably changed since then

– Fox
Apr 8 '17 at 0:52





Which version of OS X? I don't have /etc/paths in mine, but I'm running 10.4.11 and things have probably changed since then

– Fox
Apr 8 '17 at 0:52




1




1





But according to an answer on AskDifferent, /etc/paths is used to generate the default $PATH, which you can later modify

– Fox
Apr 8 '17 at 0:57





But according to an answer on AskDifferent, /etc/paths is used to generate the default $PATH, which you can later modify

– Fox
Apr 8 '17 at 0:57













It's the default. By the time user starts their shell, though, it would be modified by other files that shell sources, like ~/.bashrc or ~/.profile

– Sergiy Kolodyazhnyy
Sep 14 '18 at 17:38





It's the default. By the time user starts their shell, though, it would be modified by other files that shell sources, like ~/.bashrc or ~/.profile

– Sergiy Kolodyazhnyy
Sep 14 '18 at 17:38










2 Answers
2






active

oldest

votes


















8














/etc/paths is part of what's used to set up $PATH for shell processes. When you open a new Terminal window, it starts bash, which runs several startup scripts: /etc/profile AND ~/.bash_profile OR (if that doesn't exist) ~/.bash_login OR (if that doesn't exist either) ~/.profile. These scripts set up the shell environment, including $PATH.



One of the things /etc/profile does is run /usr/libexec/path_helper, which reads /etc/paths and any files in /etc/paths.d, and adds their contents to $PATH. But this is just a starting point; your own startup script (if any exist) can add to $PATH, edit it, replace it completely, etc.



It looks to me like your startup script (and/or things it runs) is adding a number of entries to the basic set it gets from /etc/paths. "Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:" is added to the beginning of $PATH (meaning those directories will be searched first), and ":/Users/mac/Library/Android/sdk/platform-tools:/platform-tools" is added at the end. If you want to know exactly what's adding them, you need to look at your startup script.



BTW, this process for setting up $PATH only applies to bash "login" shells. Anything run by a bash shell will inherit $PATH from it, so probably have essentially the same thing. bash non-login shells follow a somewhat different setup process. Other shells, and things not started from a shell at all (e.g. cron jobs) may have completely different $PATHs.






share|improve this answer
































    0














    First places I'd look to check for modifications are,



    ~/.profile
    ~/.bashrc
    ~/.bash_profile


    If you're using something that's not Bash, check the configuration files for it to see any mention of PATH.






    share|improve this answer























      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "106"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f356688%2fwhat-is-the-difference-between-echo-path-and-etc-paths%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      8














      /etc/paths is part of what's used to set up $PATH for shell processes. When you open a new Terminal window, it starts bash, which runs several startup scripts: /etc/profile AND ~/.bash_profile OR (if that doesn't exist) ~/.bash_login OR (if that doesn't exist either) ~/.profile. These scripts set up the shell environment, including $PATH.



      One of the things /etc/profile does is run /usr/libexec/path_helper, which reads /etc/paths and any files in /etc/paths.d, and adds their contents to $PATH. But this is just a starting point; your own startup script (if any exist) can add to $PATH, edit it, replace it completely, etc.



      It looks to me like your startup script (and/or things it runs) is adding a number of entries to the basic set it gets from /etc/paths. "Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:" is added to the beginning of $PATH (meaning those directories will be searched first), and ":/Users/mac/Library/Android/sdk/platform-tools:/platform-tools" is added at the end. If you want to know exactly what's adding them, you need to look at your startup script.



      BTW, this process for setting up $PATH only applies to bash "login" shells. Anything run by a bash shell will inherit $PATH from it, so probably have essentially the same thing. bash non-login shells follow a somewhat different setup process. Other shells, and things not started from a shell at all (e.g. cron jobs) may have completely different $PATHs.






      share|improve this answer





























        8














        /etc/paths is part of what's used to set up $PATH for shell processes. When you open a new Terminal window, it starts bash, which runs several startup scripts: /etc/profile AND ~/.bash_profile OR (if that doesn't exist) ~/.bash_login OR (if that doesn't exist either) ~/.profile. These scripts set up the shell environment, including $PATH.



        One of the things /etc/profile does is run /usr/libexec/path_helper, which reads /etc/paths and any files in /etc/paths.d, and adds their contents to $PATH. But this is just a starting point; your own startup script (if any exist) can add to $PATH, edit it, replace it completely, etc.



        It looks to me like your startup script (and/or things it runs) is adding a number of entries to the basic set it gets from /etc/paths. "Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:" is added to the beginning of $PATH (meaning those directories will be searched first), and ":/Users/mac/Library/Android/sdk/platform-tools:/platform-tools" is added at the end. If you want to know exactly what's adding them, you need to look at your startup script.



        BTW, this process for setting up $PATH only applies to bash "login" shells. Anything run by a bash shell will inherit $PATH from it, so probably have essentially the same thing. bash non-login shells follow a somewhat different setup process. Other shells, and things not started from a shell at all (e.g. cron jobs) may have completely different $PATHs.






        share|improve this answer



























          8












          8








          8







          /etc/paths is part of what's used to set up $PATH for shell processes. When you open a new Terminal window, it starts bash, which runs several startup scripts: /etc/profile AND ~/.bash_profile OR (if that doesn't exist) ~/.bash_login OR (if that doesn't exist either) ~/.profile. These scripts set up the shell environment, including $PATH.



          One of the things /etc/profile does is run /usr/libexec/path_helper, which reads /etc/paths and any files in /etc/paths.d, and adds their contents to $PATH. But this is just a starting point; your own startup script (if any exist) can add to $PATH, edit it, replace it completely, etc.



          It looks to me like your startup script (and/or things it runs) is adding a number of entries to the basic set it gets from /etc/paths. "Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:" is added to the beginning of $PATH (meaning those directories will be searched first), and ":/Users/mac/Library/Android/sdk/platform-tools:/platform-tools" is added at the end. If you want to know exactly what's adding them, you need to look at your startup script.



          BTW, this process for setting up $PATH only applies to bash "login" shells. Anything run by a bash shell will inherit $PATH from it, so probably have essentially the same thing. bash non-login shells follow a somewhat different setup process. Other shells, and things not started from a shell at all (e.g. cron jobs) may have completely different $PATHs.






          share|improve this answer















          /etc/paths is part of what's used to set up $PATH for shell processes. When you open a new Terminal window, it starts bash, which runs several startup scripts: /etc/profile AND ~/.bash_profile OR (if that doesn't exist) ~/.bash_login OR (if that doesn't exist either) ~/.profile. These scripts set up the shell environment, including $PATH.



          One of the things /etc/profile does is run /usr/libexec/path_helper, which reads /etc/paths and any files in /etc/paths.d, and adds their contents to $PATH. But this is just a starting point; your own startup script (if any exist) can add to $PATH, edit it, replace it completely, etc.



          It looks to me like your startup script (and/or things it runs) is adding a number of entries to the basic set it gets from /etc/paths. "Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:" is added to the beginning of $PATH (meaning those directories will be searched first), and ":/Users/mac/Library/Android/sdk/platform-tools:/platform-tools" is added at the end. If you want to know exactly what's adding them, you need to look at your startup script.



          BTW, this process for setting up $PATH only applies to bash "login" shells. Anything run by a bash shell will inherit $PATH from it, so probably have essentially the same thing. bash non-login shells follow a somewhat different setup process. Other shells, and things not started from a shell at all (e.g. cron jobs) may have completely different $PATHs.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Mar 10 at 7:19









          DawnSong

          1033




          1033










          answered Apr 8 '17 at 6:03









          Gordon DavissonGordon Davisson

          1,33366




          1,33366























              0














              First places I'd look to check for modifications are,



              ~/.profile
              ~/.bashrc
              ~/.bash_profile


              If you're using something that's not Bash, check the configuration files for it to see any mention of PATH.






              share|improve this answer



























                0














                First places I'd look to check for modifications are,



                ~/.profile
                ~/.bashrc
                ~/.bash_profile


                If you're using something that's not Bash, check the configuration files for it to see any mention of PATH.






                share|improve this answer

























                  0












                  0








                  0







                  First places I'd look to check for modifications are,



                  ~/.profile
                  ~/.bashrc
                  ~/.bash_profile


                  If you're using something that's not Bash, check the configuration files for it to see any mention of PATH.






                  share|improve this answer













                  First places I'd look to check for modifications are,



                  ~/.profile
                  ~/.bashrc
                  ~/.bash_profile


                  If you're using something that's not Bash, check the configuration files for it to see any mention of PATH.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Apr 8 '17 at 5:19









                  rovr138rovr138

                  1663




                  1663



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Unix & Linux Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f356688%2fwhat-is-the-difference-between-echo-path-and-etc-paths%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown






                      Popular posts from this blog

                      How to check contact read email or not when send email to Individual?

                      Bahrain

                      Postfix configuration issue with fips on centos 7; mailgun relay