很多在shell进程中定义的特性(如:别名)重启shell后就失效了,可以通过修改bash配置文件来解决重启配置丢失的问题。
profile类:为交互式登录的shell进程提供配置
bashrc类:为非交互式登陆的shell进程提供配置
登陆类型介绍:
交互式登录: 直接通过某终端输入账号密码后登陆打开的shell进程
使用su命令:su - username 或者使用su -l username执行的登陆切换
非交互式登陆: 使用su username执行的登陆切换
图形界面下打开的终端
运行的脚本
profile类配置文件:
配置文件路径:/etc/profile
/etc/profile.d/*.sh
配置文件路径:~/.bash_profile //个人家目录下的隐藏文件 .bash_profile
profile类配置文件的作用:
bashrc类配置文件:
配置文件路径:/etc/bashrc
配置文件路径:~/.bashrc//个人家目录下的.bashrc
bashrc类配置文件的作用:
定义本地变量,使其一直有效;定义命令别名;
bash配置文件读取优先次序:
交互式shell进程:先后次序如下
/etc/profile---/etc/profile.d/*.sh---~/.bash_profile---~/.bashrc---/etc/bashrc
非交互式shell进程:先后次序如下:
~/.bashrc---/etc/bashrc---/etc/profile.d/*.sh
注意:命令行中定义的特性,例如变量和别名作用域为当前shell进程的生命周期。配置文件定义的特性,只对随后新启动的shell进程有效。
让通过设定配置文件的特性立即生效办法如下:
方法一:通过命令行重复定义一次
~]#source /path/to/conf_file//conf_file为配置文件
或~]. /path/to/conf_file //.是内嵌命令,conf_file为配置文件
问题:
如何定义对所有用户都生效的命令别名?例如:lftps=lftp x.x.x.x/pub
让centos用户登录时,提示其已经登陆,并显示当前系统时间。
修改 ~/.bash_frofile