bash的配置文件,
按范围分:
全局配置:
/etc/profile,
/etc/profile.d/*.sh
/etc/bashrc
个人配置:
~/.bash_profile
~/.bashrc
按功能分:
profile类:为交互式登录shell提供配置
/etc/profile,
/etc/profile.d/*.sh
~/.bash_profile
1, 定义环境变量,如PATH
2,运行命令或脚本
bashrc类:为非交互登录时shell提供配置
/etc/bashrc
~/.bashrc
1,用来提供命令别名
2,定义本地变量
变量:变量名就是指针,指向变量
类型:
环境变量:当前shell及其子进程
export name=value
declare –x name=value
本地变量:仅当前进程
name = value
局部变量:当前shell进程中的某代码片段
位置变量:$1,$2
特殊变量:$?
定义方式:
bash内置变量,无需定义,可直接调用。PATH
自定义变量:
赋值方法:变量名 = 值
自增:name=”$name dddddd”
弱类型!!!默认均保存为字符型
pstree可以查询进程树
查看环境变量
env
printenv
export
撤销变量
unset name
引用变量
$name ${name}
引用符号
‘’强引用,变量替换不会发生
“”弱引用
``命令引用,引用命令的执行结果
shell登录类型:
交互式:直接终端 su - username
非交互式:图形界面 su username
登录时的作用次序
交互式:/etc/profile —> /etc/profile.d/*.sh —> ~/.bash_profile
后面执行的覆盖前面的
非交互式:~/.bashrc –> /etc/bashrc –> /etc/profile.d/*.sh
新配置如何生效:
1,重新登录
2,重读配置文件
source /PATH/TO?SOMEFILE
. /PATH/TO?SOMEFILE
实验之后再更正:
1、如何定义对所用用户都生效的别名?
/etc/bashrc我猜测是在这里修改,
2、如果仅需要PATH环境变量的修改仅对root用户生效,该如何操作
~/.bashrc修改root的这个文件