⑴ 环境变量-linux
我们经常在shell中输入一个命令然后就开始执行,但是shell是如何从 电脑里面找到这条指令的呢?
shell是通过 环境变量PATH 来进行 搜索 的,同样的在win里面也有这个PATH环境变量,这个PATH保存了shell中执行的命令的搜索路径
通常会得到:
我们可以看到,基本都是bin或者sbin路径,这种路径下都是二进制可执行文件。
系统会按照path中设定的路径按照顺序依次到目录中去查找,如果存在同名的命令,则执行先找到的那个。
如果我们有一个自定义的路径 /home/user/mybin 我们想把这个路径添加到PATH以便于直接在shell中执行这个命令,添加方式:
但是到这里还有一个问题:我们添加的这个路径只在当前shell下有效。
如何是添加的环境变量全局有效?
在每个用户的home目录中有一个shell每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等等。
这个配置文件是 .zshrc 相应的bash配置文件为 .bashrc
我们只需要修改.zshrc就可以了
上述命令中 >> 表示将输出以追加的方式重新定向到一个文件中
前面提到的 > 是以覆盖的方式重定向
让环境变量立刻生效:
⑵ linux在安装ffmpeg时怎么将/usr/local/ffmpeg/lib目录设置到LD_LIBRARY_PATH环境变量
1、下载ffmpeg。
2、解压缩 tar -zxvf ffmpeg.tar.gz
3、编辑profile文件:
vi /etc/profile
在文件末尾加上两句话:
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$FFMPEG_HOME/bin:$PATH
4、配置安装路径之类的:
./configure --enable-shared --prefix=/usr/local/ffmpeg
--enable-shared 参数据说是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。
如果出现异常,提示因为缺少yasm,需要添加参数,再执行以下命令:
./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg
如果执行结果不对,可以根据提示信息,并查看帮助,解决问题
./configure --help
5、编译安装
make
make install
6、安装之后在/usr/local/ffmpeg会看到有三个目录
bin 执行文件目录
lib 静态,动态链接库目录
include 编程用到的头文件
7、为了防止执行程序找不到库文件,
可以将/usr/local/ffmpeg/lib目录设置到LD_LIBRARY_PATH环境变量
8、若出现error while loading shared libraries: libavdevice.so.52的错误
修改/etc/ld.so.conf 在最后一行加上/usr/local/ffmpeg/lib
ldconfig -v
并修改 /usr/local/ffmpeg/lib目录下的文件权限为777
⑶ linux环境变量怎么设置
通过你的描述,环境变量的设置可以通过如下4种方式来进行更改设置:
查看PATH:echo $PATH
这里以添加mongodb server为例
修改方法一:
修改 export PATH=/usr/local/mongodb/bin:$PATH
//配置完后可以通过echo $PATH查看配置结果。
生效方法:立即生效
有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置
用户局限:仅对当前用户
修改方法二:
通过修改.bashrc文件:vim ~/.bashrc
//在最后一行添上:export PATH=/usr/local/mongodb/bin:$PATH
生效方法:(有以下两种)
1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
2、输入“source ~/.bashrc”命令,立即生效
有效期限:永久有效
用户局限:仅对当前用户
修改方法三:
通过修改profile文件:vim /etc/profile/export PATH
//找到设置PATH的行,添加export PATH=/usr/local/mongodb/bin:$PATH
生效方法:系统重启
有效期限:永久有效
用户局限:对所有用户
以上就是linux环境变量设置的三种方式,希望能帮到你。。。。。。
⑷ 如何让linux加载当前目录的动态库
linux 加载当前目录的动态库的方法是:设置合适的环境变量LD_LIBRARY_PATH。x0dx0a设置方法有以下三种:x0dx0ax0dx0a1、临时修改,log out之后就失效x0dx0a在terminal中执行:export LD_LIBRARY_PATH=./x0dx0ax0dx0a2、让当前帐号以后都优先加载当前目录的动态库x0dx0a修改~/.bash_profile在文件末尾加上两尘或歼行:派冲 LD_LIBRARY_PATH=./ 和 export LD_LIBRARY_PATH x0dx0ax0dx0a3、让所有帐号从此都团粗优先加载当前目录的动态库x0dx0a修改/etc/profile在文件末尾加上两行: LD_LIBRARY_PATH=./ 和 export LD_LIBRARY_PATH