站在用户登录角度来说,shell的类型
- 登录式shell
①正常通常某终端登录
②su - USERNAME
③su -l USERNAME - 非登录式shell
①su USERNAME
②图形终端下打开的命令窗口
③自动执行的shell脚本
要想了解他们之间的不同需要先了解bash的配置文件及各类文件的作用
bash的配置文件
- 全局配置
/etc/profile,/etc/profile.d/*.sh, /etc/bashrc - 个人配置
~/.bash_profile, ~/.bashrc
profile类的文件
- 设定环境变量:
①在/etc/profile,/etc/profile.d/*.sh, 定义的环境变量对全部的用户起作用。
②在~/.bash_profile定义的环境变量只对当前用户起作用。 - 运行命令或脚本:在用户登录之前运行相对应的命令和脚本做好准备工作。
bashrc类的文件
- 设定本地变量
- 定义命令别名
登录式与非登录式shell的区别
- 登陆式shell如何读取配置文件
/etc/profile→/etc/profile.d/*.sh→~/.bash_profile→ ~/.bashrc→etc/bashrc - 非登录式shell如何读取配置文件
~/.bashrc→etc/bashrc→/etc/profile.d/*.sh
永久定义命令别名
- 编辑家目录下的.bashrc:在中间添加alias CMDALIAS=‘COMMAND’就可以在此用户下此命令别名永久有效
登录提示语
- 编辑~/.bash_profile:在最后添加
echo “hello,USERNAME,welcome to our system,it is $(date)”.
设置永久的umask(不随用户退出而恢复为002或022)
- 编辑~/.bash_profile:在最后添加
umast 数字