Linux 环境变量_006
***Linux 环境变量指系统运行程序或命令的能快速找到其位置等其它功能,不用输入复杂命令。以$PATH环境变量为例子,
$PATH决定了shell指定寻找命令或程序的路径,比较执行ls命令,如果没有$PATH环境变量,执行ls命令需要绝对路径执行/bin/ls,
如果设置了$PATH环境变量,只要执行ls命令就会自动执行。
***Linux环境变量分单一用户环境变量和系统全局用户环境变量,单一用户环境变量配置文件在用户家目录.bash_profile,
修改此配置文件只对当前用户生效,其它用户不会生效;系统全局用户环境变量是针对所有Linux的用户都生效,配置文件在/etc/profile
Linux 两种办法修改环境变量:(以$PATH环境变量为例)
准备测试文本:
[root@oldboy ~]# echo $PATH ##默认$PATH环境变量
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# ls -l /tmp/test.sh ##创建一个测试文本
-rwxr-xr-x 1 root root 20 Nov 28 14:00 /tmp/test.sh
[root@oldboy ~]# chmod +x test.sh ##赋予文本可执行权限
[root@oldboy ~]# /tmp/test.sh ##测试文本运行显示
You set OK!
一、设置临时生效的环境变量,当用户退出登录或重启系统环境变量就恢复默认值
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@oldboy ~]$ export PATH=$PATH:/tmp
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin:/tmp
[oldboy@oldboy ~]$ test.sh
You set OK!
[oldboy@oldboy ~]$ su - root
Password:
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# test.sh
-bash: test.sh: command not found
二、 设置永久生效的环境变量
1、针对单一用户设置的环境变量
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@oldboy ~]$ vim .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/tmp
export PATH
[oldboy@oldboy ~]$ source .bash_profile
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin:/home/oldboy/bin:/tmp
[oldboy@oldboy ~]$ test.sh
You set OK!
2、针对系统全局用户设置的环境变量
[oldboy@oldboy ~]$ ls -l /etc/profile
-rw-r--r-- 1 root root 1820 Nov 27 16:35 /etc/profile
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# cp -a /etc/profile /root
[root@oldboy ~]# echo "PATH=$PATH:/tmp" >> /etc/profile
[root@oldboy ~]# grep "PATH=$PATH" /etc/profile
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@oldboy ~]# source /etc/profile
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@oldboy ~]# test.sh
You set OK!
******特殊的环境变量******
1、PATH环境变量
作用指定让命令自动搜索路径
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
2、PS1命令行提示符显示
作用修改指定的用户命令行提示符显示
[root@oldboy ~]echo $PS1
[\u@\h \w]
[root@oldboy ~]export PS1='[\u@\h \w\t]'
[root@oldboy ~14:47:13]echo $PS1
[\u@\h \w\t]
提示符 |
功能描述 |
\u |
当前用户的账号名称 如:root |
\h |
仅取主机的第一个名字,如上例,则为debian,.linux则被省略 |
\w |
完整的工作目录名称。家目录会以 ~代替 ,如cd /etc/sysconfig显示/etc/sysconfig |
\W |
利用basename取得工作目录名称,所以只会列出最后一个目录 如上例则只显示sysconfig |
\$ |
提示字符,如果是root时,提示符为:# ,普通用户则为:$ |
\t |
显示时间为24小时格式,如:HH:MM:SS |
\T |
显示时间为12小时格式 |
\A |
显示时间为24小时格式:HH:MM |
\v |
显示时间为24小时格式:HH:MM |
\# |
下达的第几个命令 |
\d |
代表日期,格式为weekday month date,例如:Wed Dec 12 |
\H |
完整的主机名称。例如:hostname是debian.linux |
感谢老男孩博客提供参考 https://blog.51cto.com/oldboy
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架