说明
/etc/profile
是一个系统级的启动文件,它为登录到系统的所有用户设置环境变量和执行脚本,以下是该文件的一些主要功能:
设置环境变量:/etc/profile 文件通常用来设置全局环境变量,如 PATH、USER、HOSTNAME 等,这些变量对系统中的所有用户都是有效的。
执行脚本:该文件可能包含一些shell脚本,这些脚本在用户登录时执行,可以用来配置系统的某些方面,或者设置特定的环境。
配置umask:umask决定了新创建的文件和目录的默认权限。通常在 /etc/profile 中设置umask值。
当执行source /etc/profile时,相当于执行profile这个脚本:
当前shell会读取
/etc/profile
文件的内容,并执行其中的命令。任何由
/etc/profile
设置的环境变量都会在当前shell中生效。如果
/etc/profile
中包含脚本或函数定义,它们也会在当前shell中生效。
需要注意的是,
source
命令仅在当前shell会话中有效,但是对于/etc/profile这个文件,比较特殊,当打开了新的shell窗口或标签,都会自动执行。
全局执行
如果想要某个程序在全局范围内可执行,即在任何用户的shell会话中都可以直接运行该程序而不需要指定完整的路径,可以通过修改 /etc/profile 文件来将程序的路径添加到全局 PATH 环境变量中。
打开 /etc/profile 文件,然后在文件末尾或适当的位置,添加以下行来扩展 PATH 变量:
export PATH=$PATH:/path/to/your/program_directory
其中/path/to/your/program_directory替换为实际程序的目录。
然后source /etc/profile
生效。
需要注意的是,如果你的程序,如jdk,redis等相关的程序java命令,redis-cli命令等,全局执行是依托本方式在/etc/profile文件添加export PATH
实现,那么当你想要开机启动某个程序,然后在/etc/rc.local文件中增加启动脚本时,如xxx.sh:
#!/bin/bash
nohup java -jar /home/wvp/wvp-pro-2.7.0-03051114.jar >> /dev/null &
你会发现启动不了,因为环境变量读取不到java这个程序,处理方式为,在/etc/rc.local最前面增加source /etc/profile,在执行环境强制读取环境变量。或者指明具体java程序的路径,如/home/jdk/java。
或者另外一种方式,将执行程序置于/usr/bin/命令下,也可以实现全局执行,并且开启自启动也能读到相关程序。