环境变量配置文件

参考:https://mp.weixin.qq.com/s/WHTAezINpwQpbObf-ivyGw

  • /etc/profile

  • /etc/profile.d/

  • /etc/bashrc

  • /etc/environment

  • ~/.bash_profile

  • ~/.bashrc

~/.bashrc~/.bash_profile ,这两个文件的区别为:
.bash_profile交互式login方式进入bash shell运行,.
bashrc交互式non-login方式进入bash shell运行。

可以理解为.bash_profile文件只会在用户登录的时候读取一次
.bashrc每次打开终端进行一次新的会话时都会读取。

su - root 加载的变量

su - 会完全切换用户,加载用户的环境变量

添加新变量时要添加export才能全局生效
在这里插入图片描述

su 不加载之前用户的变量

su依然使用之前用户的环境变量

在这里插入图片描述

查看变量

查看常用的的环境变量

# 查看$PATH列表
## 查看所有命令的搜索路径
echo $PATH

# 查看用户的主工作目录
echo $HOME

# 查看保存历史命令的条数
echo $HISTSIZE

# 查看当前登录用户名
echo $LOGNAME

# 查看当前用户使用的shell种类
echo $SHELL

Linux环境变量-小白菜博客
在这里插入图片描述

export显示当前系统定义的所有环境变量

参考: https://www.cnblogs.com/amboyna/archive/2008/03/08/1096024.html
https://cloud.tencent.com/developer/article/1758884

# 显示当前系统定义的所有环境变量
export

# 列出当前的环境变量值
export -p 

在这里插入图片描述

env 显示当前用户的变量;

# 查看所有环境变量
env|more

在这里插入图片描述

set 显示当前shell变量,shell变量包含用户变量;

# 可以查看更多变量,包括预定义变量和位置变量
set|more

在这里插入图片描述

查看别名alias列表

# 查看命令别名列表
alias

在这里插入图片描述

使别名不生效

如果别名冲突,需要临时使该alias不生效,命令前加/即可
https://blog.csdn.net/qq_36741436/article/details/78732201

在这里插入图片描述

# 使cp别名不生效
\cp -rf a b

常见内置变量

在这里插入图片描述

添加PATH变量

全局修改–修改/etc/profile文件:----不建议

vi /etc/profile

# 在里面加入:
export PATH=$PATH:/home/uusama/mysql/bin

# 生效/etc/profile配置
source /etc/profile

# 查看$PATH
echo $PATH

在这里插入图片描述

修改~/.bashrc文件:—推荐

vi /root/.bashrc

# 在里面加入:
export PATH=$PATH:/home/uusama/mysql/bin

# 生效~/.bashrc配置
source ~/.bashrc

# 查看$PATH
echo $PATH
# 看看输出里面是不是已经有了/home/uusama/mysql/bin这个路径了。

在这里插入图片描述

删除变量

unset 删除一个环境变量,如:

unset NAME;

在这里插入图片描述

将变量设为只读

readonly 设置环境变量只读,如:

# 将变量设置只读
## 只读变量unset无效
## 只读变量无法修改变量值
readonly NAME

在这里插入图片描述

删除只读变量

# 安装gdb
yum install gdb -y

# 删除只读变量
cat << EOF | gdb
> attach $$
> call unbind_variable("要删除的变量名")
> detach
> EOF

# 修改变量的值
name=zhangsan

# 打印变量的值
echo $name

在这里插入图片描述

局部变量与全局变量

export常用参数

-f  代表[变量名称]中为函数名称。
-n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p  列出所有的shell赋予程序的环境变量

# 列出当前的环境变量值
export -p 

提升到全局变量 export

参考: https://www.runoob.com/linux/linux-comm-export.html

# 定义变量
变量名=变量值

# 提升为全局变量
export 变量名

取消环境变量unset

# 取消环境变量
unset 变量名

Linux配置proxy

参考: Linux系统下终端proxy代理配置
Linux环境变量

全局proxy

Centos7/etc/environment文件不支持socks5代理配置

[root@rhel8 ~]# cat /etc/environment 
all_proxy="http://proxy-dmz.ibm.com:912"
no_proxy="ibm.com,10.166.30.64,ar09-12-wp,ar09-12-wp.cluster.local,10.166.30.85,ar09-10-wp,ar09-10-wp.cluster.local,127.0.0.1,10.166.30.64,10.166.30.85,127.0.0.1,localhost,.svc,10.233.0.0/22,10.244.0.0/16,.cluster.local"
# 这是github的token变量
github_token=gho_jxxxxx

~/.bashrc中配置

socks5h 表示远程解析 dns,如果直接写 socks5本地解析 dns

# 全局走的http_proxy
export all_proxy="http://admin:nihao123@proxy.ibm.com:443"

# 全局走的socks_proxy
export all_proxy="socks5h://admin:nihao123@proxy.ibm.com:443"

终端proxy

参考: Linux 让终端走代理的几种方法
socks5h 表示远程解析 dns,如果直接写 socks5本地解析 dns

# 全局走的代理
export all_proxy="socks5h://127.0.0.1:1080"

设置别名快速开启终端proxy和取消终端proxy,写入.bashrc文件中即可.

alias setproxy="export ALL_PROXY=socks5h://127.0.0.1:1080"
alias unsetproxy="unset ALL_PROXY"