Linux配置shell环境:profile和bashrc初始化脚本
在与Linux打交道的过程中经常会遇到配置shell环境的情况,以往总是莫名遇到各种问题反复查资料,现理清原理思路,总结配置方法,避免再遇到类似情况处理起来低效无绪。
在与Linux打交道的过程中经常会遇到配置shell环境的情况,以往总是莫名遇到各种问题反复查资料,现理清原理思路,总结配置方法,避免再遇到类似情况处理起来低效无绪。
1.shell环境分类
首先从是否交互和是否登录两个方向区分shell环境:
是否交互 | 是否登录 | |
---|---|---|
是 | shell等待用户输入,根据输入实时返回运行结果 | 在命令中需要输入用户和密码,或者参数指定login条件 |
否 | 以脚本方式执行命令,逐行执行后即退出shell环境 | 无需输入用户和密码就可以进入的shell |
以此可以将shell环境分为四种:
-
交互式登录
eg:
ssh远程连接获取shell
bash --login
运行的shell
su -l user
输入密码后进入的shell -
非交互式登录
eg:
以脚本文件方式登录的shell -
交互式非登录
eg:
在gnome、kde等桌面环境直接打开shell
su user
输入密码后进入的shell -
非交互式非登录
eg:
以脚本文件方式直接执行shell命令
2.shell初始化脚本
shell环境初始化脚本分为profile和bashrc两类,不同的shell环境执行的初始化脚本有所不同,具体如下:
-
交互式登录 / 非交互式登录
1./etc/profile:为系统的所有用户设置环境信息,存在则执行/etc/bashrc 或 /etc/bash.bashrc脚本。
2.~/.profile 或 ~/.bash_profile:配置特定用户的环境信息,存在则执行~/.bashrc 或 ~/bash.bashrc脚本。
profile初始化文件用于配置系统环境,如系统路径PATH、自定义环境变量、alias命令别名等。当用户重新登录后生效,也可以用source
或.
执行脚本,这样配置会在当前shell环境生效。 -
交互式非登录
1./etc/bashrc 或 /etc/bash.bashrc:为系统所有运行bash shell的用户配置运行环境
2.~/.bashrc:配置专属用户的bash shell运行环境,交互式非登录条件下执行
rc意为run command
,即运行一个软件的初始化命令,vimrc即用于配置vim的运行环境,bashrc即用于配置bash shell的运行环境,rc和profile本质上都是脚本文件,设置的内容可以相同,只是应用于不同的交互和登录shell环境。重新打开一个shell即可生效,也可以用source
或.
执行脚本生效。 -
非交互式非登录
不执行初始化文件,子shell和新建shell默认都不会继承当前父shell的环境变量,父shell中配置的环境变量要想在子shell中生效,变量定义时要用export限定(export只影响子shell的环境信息)。
3.执行命令区分
不同的命令执行环境不同,相应的环境变量、传递参数也不一样,在执行命令时要加以区分。
在当前shell中执行的命令:
source script
. script
bash -c command
$(command)
- `
command
`
开启子shell运行的命令:
./script
bash script
开启新shell运行的命令:
- 在gnome、kde等桌面环境新打开的shell
更多推荐
所有评论(0)