配置全局环境变量/etc/environment,/etc/profile区别,sudo -i和sudo su的区别

在 Ubuntu 系统中,可以使用 /etc/environment 文件来设置全局环境变量。这个文件中的环境变量会在系统启动时加载,对所有用户都生效。

/etc/profile 文件是系统的配置文件,它在系统启动时加载,对所有用户都生效。/etc/environment 文件也是一个系统配置文件,它在系统启动时加载,对所有用户都生效。

这两个文件的区别在于,/etc/profile 文件包含了系统的默认环境变量和配置,以及所有用户的个人配置。而 /etc/environment 文件仅包含系统的默认环境变量,但是我们也可以把自定义的环境变量放入这里, /etc/environment里的环境变量不再针对哪一个用户,他对整个系统都生效无论是哪个用户。

如果在这两个文件中设置了环境变量,必须系统启动后才能生效(也就是开机重启),锁屏重新登陆并不能使其生效。

如果想在当前终端会话中立即生效,可以使用 source 命令来重新加载这些文件。例如,你可以使用以下命令来重新加载 /etc/profile 文件:

source /etc/profile

同样,你也可以使用以下命令来重新加载 /etc/environment 文件:

source /etc/environment

但是,重新加载这些文件只会在当前终端会话中使新设置的环境变量生效。如果想让新设置的环境变量对所有用户都生效,需要重启系统。

sudo -i 和 sudo su 命令都是用来切换到 root 用户的。
它们之间的区别在于:
sudo -i 会清空当前用户的环境变量,然后加载 root 用户的环境变量,并且会加载加载 /etc/profile。

sudo su 则会保留当前用户的环境变量,并在其中添加 root 用户的环境变量,如会加载 /root/.bashrc 文件。但不会加载 /etc/profile。
还有一个区别sudo su在切换后会处在当前目录下,sudo -i切换后会处在/root目录下。

还有sudo +命令行不会加载root的配置文件,如/root/.bashrc,它也不会使用/etc/profile的权限

你也可以在 /etc/bash.bashrc 设置环境变量,这些环境变量会在所有用户切换到 bash 时加载,这时使用sudo su应该可以访问到/etc/bash.bashrc 设置环境变量中的环境变量。/etc/bash.bashrc 文件只对使用 bash shell 的用户生效。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

、、、、南山小雨、、、、

分享对你有帮助,打赏一下吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值