Linux有问必答:如何在Linux中修改环境变量PATH

提问: 当我试着运行一个程序时,它提示“command not found”。 但这个程序就在/usr/local/bin下。我该如何添加/usr/local/bin到我的PATH变量下,这样我就可以不用指定路径来运行这个命令了。

在Linux中,PATH环境变量保存了一系列的目录用于用户在输入的时候搜索命令。PATH变量的值由一系列的由分号分隔的绝对路径组成。每个用户都有特定的PATH环境变量(由系统级的PATH变量初始化)。

要检查用户的环境变量,用户模式下运行下面的命令:

  1. $ echo $PATH
  2. /usr/lib64/qt-3.3/bin:/bin:/usr/bin:/usr/sbin:/sbin:/home/xmodulo/bin

或者运行:

  1. $ env | grep PATH
  2. PATH=/usr/lib64/qt-3.3/bin:/bin:/usr/bin:/usr/sbin:/sbin:/home/xmodulo/bin

如果你的命令不存在于上面任何一个目录内,shell就会抛出一个错误信息:“command not found”。

如果你想要添加一个另外的目录(比如:/usr/local/bin)到你的PATH变量中,你可以用下面这些命令。

为特定用户修改PATH环境变量

如果你只想在当前的登录会话中临时地添加一个新的目录(比如:/usr/local/bin)给用户的默认搜索路径,你只需要输入下面的命令。

  1. $ PATH=$PATH:/usr/local/bin

检查PATH是否已经更新:

  1. $ echo $PATH
  2. /usr/lib64/qt-3.3/bin:/bin:/usr/bin:/usr/sbin:/sbin:/home/xmodulo/bin:/usr/local/bin

更新后的PATH会在当前的会话一直有效。然而,更改将在新的会话中失效。

如果你想要永久更改PATH变量,用编辑器打开~/.bashrc (或者 ~/.bash_profile),接着在最后添加下面这行。

  1. export PATH=$PATH:/usr/local/bin

接着运行下面这行永久激活更改:

  1. $ source ~/.bashrc (或者 source ~/.bash_profile)

改变系统级的环境变量

如果你想要永久添加/usr/local/bin到系统级的PATH变量中,像下面这样编辑/etc/profile。

  1. $ sudo vi /etc/profile

  1. export PATH=$PATH:/usr/local/bin

你重新登录后,更新的环境变量就会生效了。



via: http://ask.xmodulo.com/change-path-environment-variable-linux.html

作者:Dan Nanni 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-5478-1.html

时间: 2024-10-07 10:30:07

Linux有问必答:如何在Linux中修改环境变量PATH的相关文章

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

Linux中的环境变量PATH

首先一点Linux中的每个命令其本质是一个可执行的文件,以ls命令为例.通过命令:$:whereis ls可以查看ls命令的位置在/bin/目录下.当用$:ls -l /bin/ls命令查看文件/bin/ls的属性时,得到如下结果: 其实我们在任意目录下执行的ls命令时,其实执行的是位于/bin目录下的ls文件.那么当在任意目录下执行各种命令时,是怎么找到各自的命令的呢?这就是PATH的作用.查看环境变量PATH的内容如下: PATH的作用就是,当输入命令的时候,Linux会去查找PATH里面记

Ubuntu修改环境变量PATH方法

在LINUX安装一些软件通常要添加环境变量.环境变量通俗的讲就是把程序的路径"备案"到系统中,这样执行这些程序时就不需要输入完整路径,直接在bash输入程序名就可以执行.比如常用的ls命令就是添加好了环境变量才可以直接执行ls 环境变量的名字是PATH,$符号用于读取变量的值,终端输入echo $PATH返回如下,各路径用:隔开 echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ga

变量的声明及其作用域、脚本、修改环境变量$PATH【:VALUE】

变量的声明及其作用域 本地变量 VARNAME=VALUE:作用域为整个bash进程[打开新的shell进程,没有该变量] [root@jiakang a]# A=123 [root@jiakang a]# bash [root@jiakang a]# echo $A [root@jiakang a]# 局部变量 local VARNAME=VALUE:作用域为当前代码段 环境变量 作用域为当前shell及其子进程[打开一个shell就是一个进程] export VARNAME=VALUE或者

Linux下修改环境变量PATH

1.什么是环境变量(PATH) 在Linux中,在执行命令时,系统会按照PATH的设置,去每个PATH定义的路径下搜索执行文件,先搜索到的文件先执行. 我们知道查阅文件属性的指令ls 完整文件名为:/bin/ls(这是绝对路径), 那你会不会觉得很奇怪:"为什么我可以在任何地方执行/bin/ls这个指令呢? " 为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变量 PATH 的帮助所致呀! 当我们在执行一个指令癿时候,举例

linux下查看和修改环境变量path

查看环境变量 echo $PATH 临时修改环境变量 export PATH=/xxx:$PATH 这种方法在终端关闭后,就会消失,只是临时更改. 彻底修改环境变量,要编辑文件/etc/profile #vim /etc/profile   在文档最后,添加: export PATH="/xxx:$PATH" 保存,退出,然后运行: #source /etc/profile   不报错则成功.

Centos中修改环境变量,导致命令丢失的解决办法

本人初学linux,在安装jdk时,修改环境变量导致大量命令丢失? 其实命令还是在系统当中,不过由于环境变量错误,导致修改命令无法通过之前的方式找到,所以出现上面的问题. 这时我们可以通过绝对路径来调用命令,将环境变量修改回来. /bin/vi 这是vi编辑器的绝对路径 之后的问题相信就能自己解决了.

Asp.Net Core 如何在 IIS 中设置环境变量

当运行一个 Asp.Net Core 应用的时候, WebHostBuilder 根据环境变量来判断当前运行的是哪个环境,可能是 Development,Staging或者Production.你也可以设置成随便的一个字符串. 这个链接将会告诉你 如何在各种平台各种环境中设置环境变量.但如果你使用 IIS来代理 Asp.Net Core.你需要在 web.config 中设置环境变量 <configuration> <system.webServer> <handlers&g

查看和修改环境变量PATH

echo $PATH  显示当前shell的环境变量,root用户,transfor等普通用户环境变量根据个人配置而不同.因 .bashrc 配置文件 没有设置环境变量的时候,运行命令:/usr/local/tomcat/bin/tomcat start 用export在/etc/profile中添加文件路径(对系统所有用户有效): #vim /etc/profile export PATH=/usr/local/tomcat/bin:$PATH 修改用户主目录中的隐藏文件.bashrc文件(只