Ubuntu系统变量管理

Ubuntu系统变量管理

  • 常用系统变量

echo $SHELL		查看当前所使用的SHELL
echo $PATH		查看当前所用的环境变量
echo $HOME		查看当前家目录所在
env				查看/操作所 有系统变量
    -i:开始一个新的空的环境;
    -u<变量名>:从当前环境中删除指定的变量。
  • 注释
这些是我在工作中遇到的问题, 经过多方百度.大概了解到的内容.结果都是亲测过得.

切记,一旦安装了第三方的如: zsh的SHELL之后,~/.bashrc和~/.bash_profile就不生效了
需要再~/.zshrc中source一下这两个

以下为例:
摘自: Ubuntu16.04的.profile文件
PATH="$HOME/bin:$HOME/.local/bin:$PATH:$HOME/"
家目录下文件:
liuhao.sh内容
echo "I'm liuhao";

设置系统变量时, 其实理论上和window概念有一比, 都是将路径指向目录即可,而非具体的文件.
如window下XAMPP的MYSQL添加系统变量:
    C:\XAMPP\MYSQL\bin
只到目录, 而非具体到该文件.

此处设置时, 如果是在既定的写有系统变量的文件中添加.
如: 
    $HOME/.profile中已有
    PATH="$HOME/bin:$HOME/.local/bin:$PATH/"
    这时候, 我们只要在后面加一个:续写即可.
    此处的$PATH 应该是将所有系统变量都续写进来的意思.
    
    
若不想在已有系统变量的文件中写,或文件中没有.
可以手动填写.多个系统变量使用:英文冒号隔开.同时别忘了追加$PATH或者在$PATH后追加
export PATH="$PATH:XXXX:XXX:XX"
期初我认为:不加export导出的话, 在系统中不能直接echo $PATH.但是Ubuntu16.04测试中,发现没有关系.
在命令行中和自定义shell脚本中设置系统环境变量的话, 是必须要用的.
其实我在Ubuntu16.04的虚拟机当中并没有export导出,也没有问题, 百度很多案例也是没有.
但是在平时的书写当中, 还是要加一下. 防止某些Linux发行版不兼容问题.
书上说export是将自定义变量变成系统环 境变量

注意:
    我们是在追加PATH环境变量,所以我们不能只用 =赋值,  表达式中存在的:$PATH 就是在拼接文件
    在修改之后 我们需要重启终端或者重启系统才能完成修改
    如果修改成功 那么我们通过在命令行中输入 
    echo $PATH 
    便能看到修改结果

来自百度Linux公社

  • 简要说明
•/etc/profile —— 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置;

•/etc/environment —— 在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量;

•/etc/bashrc —— 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取;

•~/.profile —— 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的.bashrc文件;

•~/.bashrc —— 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取;


最后,如果同一个变量在用户环境(/etc/profile)和系统环境(/etc/environment)有不同的值那应该是以用户环境为准了。

  • 详细说明

UbuntuLinux系统环境变量配置文件
Ubuntu Linux系统环境变量配置文件分为两种:系统级文件和用户级文件,下面详细介绍环境变量的配置文件。

1.系统级文件:

/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。这个文件一般就是调用/etc/bash.bashrc文件。

/etc/bash.bashrc:系统级的bashrc文件,为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

/etc/environment: 在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。

2.用户级文件:

~/.profile: 在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。不推荐放到这儿,因为每开一个shell,这个文件会读取一次,效率 上讲不好。

~/.bash_profile:每个用户都可使用该文件输入专用于自己 使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

~./bash_login:不推荐使用这个,这些不会影响图形界面。而且.bash_profile优先级比bash_login高。当它们存在时,登录shell启动时会读取它们。

~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.

~/.pam_environment:用户级的环境变量设置文件。

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。 
  • 配置案例
三、设置环境变量的方法

由以上分析可知:

/etc/profile全局的,随系统启动设置【设置这个文件是一劳永逸的办法】

/root/.profile和/home/myname/.profile只对当前窗口有效。

/root/.bashrc和 /home/yourname/.bashrc随系统启动,设置用户的环境变量【平时设置这个文件就可以了】

那么要配置Ubuntu的环境变量,就是在这几个配置文件中找一个合适的文件进行操作了;如想将一个路径加入到$PATH中,可以由下面这样几种添加方法:
1.控制台中:

$PATH="$PATH:/my_new_path"    (关闭shell,会还原PATH)
2.修改profile文件:

$sudo gedit /etc/profile

在里面加入:

export PATH="$PATH:/my_new_path"
3.修改.bashrc文件:

$ sudo gedit /root/.bashrc

在里面加入:

export PATH="$PATH:/my_new_path"

后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:

$ echo $PATH

输出已经是新路径了。

举个列子,如果想把当前路径加入到环境变量中去,就可以这样做:

$  PATH ="$PATH:."

这样运行自己编写的shell脚本时就可以不输入./了

转载于:https://my.oschina.net/chinaliuhan/blog/3065302

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值