用户登录环境配置
当用户登录时,将按照下图顺序读取配置文件,设置用户的环境变量,为每个用户创建各自的运行环境。
/etc/environment:定义了所有进程初始化的基本环境变量,对所有用户生效,默认只有root可以修改此文件。
/etc/profile:定义用户登录的系统级默认环境变量以及相关命令对所有用户生效,其中所有设置都可以被用户.profile覆盖。默认只有root可以修改此文件。
.profile:定义用户级自定义环境变量,只对当前登录用户生效,默认root和当前用户可以修改此文件。
.kshrc:.kshrc文件用来设置Shell的环境,每个subshell启动时都要读取.kshrc文件,而.profile文件只在登录时读取一次。
用户登录环境变量
定义个性化的shell提示符
ksh默认的提示符是KaTeX parse error: Expected 'EOF', got '#' at position 2: 和#̲,缺点是不能显示当前用户,主机…USER’@“hostname
”:‘ ”
PWD的单引号与hostname反引号的作用
定制Linux的shell提示符
Linux登录过程中加载配置文件顺序:
– /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc →[/etc/bashrc]
PS1常用的参数:PS1=’[\[email protected]\h \W]$ ’
– \u :#当前用户的账号名称
– \h :#仅取主机的第一个名字
– \W :#利用basename取得工作目录名称,所以只会列出最后一个目录
– $ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $
shell颜色值设置
– PS1中设置字符颜色的格式为:\033[F;Bm
– 其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47
– 用 \033[0m 恢复默认值
PS1=‘[\033[31;1m\[email protected]\033[33;1m\H: \033[34;1m\W \033[0m]$ ‘
别名和命令历史
别名:
用简单字符串代替长串命令以简化输入
命令历史:
重复调用先前执行过的历史命令以提高效率
ksh特性——别名:
ksh特性——命令历史:
$HOME/.sh_history文件储存了最近的128条命令
ksh的命令行历史与编辑(vi模式)
ksh的命令行历史与编辑(Emacs模式)
修改用户默认的shell
/etc/passwd文件,其中记录着用户的相关信息,其中最后一列是用户默认的shell
使用chsh命令修改用户的默认shell
usermod -s /usr/bin/bsh 用户名
手工修改/etc/passwd文件
C语言编译环境
AIX默认不带编译器,编译AIX的源码(C语言)需要用户自己安装编译器
Linux系统最常用的C语言编译器是GCC
GCC=GNU Compiler Collection,可编译C,C++, Fortran, Java等语言
AIX上安装gcc需安装Linux RPM格式支持
安装步骤
安装Linux RPM格式支持
安装gcc RPM软件包
修改用户环境变量PATH
用gcc编译C语言程序
小结
login profile的作用被认为是定制文件的连接:/etc/profile,/etc/environment, $HOME/.profile 和 $HOME/.kshrc.
shell历史机制是重新调用以前的命令的一种方法
别名可以被设置,用来提供命令的替换名字
习题
1、用户登录时系统会依次读取哪些文件来设置用户的环境?
/etc/environment,/etc/profile,$HOME/.profile
2、哪个文件定义系统级的环境变量?
/etc/profile
3、用户可以修改哪个文件来定制自己的环境?
$HOME/.profile
4、.kshrc文件有什么作用?
.kshrc文件用来设置shell的环境,每个subshell启动时都要读取.kshrc文件
5、PS1变量有什么作用?
定义主命令的提示符
6、TERM变量有什么作用?
定义用户终端类型
7、PATH变量有什么作用?
定义执行命令时的搜寻路径
8、alias命令有什么作用?
设定和显示命令的别名,用简单字符串代替长字符串命令以简化输入
9、如何调用历史命令?
用fc -l查看,r加序号或首字母调用历史命令
10、如何在aix下编译C语言程序?
下载并安装gcc编译器
(内容来自湖南大学肖老师的PPT)