您的位置:首页 > 运维架构 > Shell

linux shell编程指南第十三章------登录环境

2013-12-06 13:51 197 查看
登录成功后,系统执行两个环境设置文件,第一个是/ e t c / p r o f i l e,第二个是. p r o f i l e,位

于用户根目录下。

系统还会处理其他的初始化文件。这里只涉及p r o f i l e文件。

/etc/profile:

用户登录时,自动读取/ e t c目录下p r o f i l e文件,此文件包含:

• 全局或局部环境变量。

• PAT H信息。

• 终端设置。

• 安全命令。

• 日期信息或放弃操作信息。

下面就来详细解释上述各项内容。设置全局环境变量便于用户及其进程和应用访问它。

PAT H定位包含可执行文件,库文件及一般文本文件的目录位置,便于用户快速访问。终端设

置使系统获知用户终端的一般特性。安全命令包括文件创建模式或敏感区域的双登录提示。

日期信息是一个文本文件,保存用户登录时即将发生事件的记录或放弃登录的信息文件。

回到. p r o f i l e,一般来说创建帐户时,一个p r o f i l e文件的基本框架即随之创建。不要忘了

在. p r o f i l e文件中可以通过设置相关条目以不同的值或使用u s e t命令来覆盖/ e t c / p r o f i l e文件中的

设置。如果愿意,可以定制用户自己的. p r o f i l e文件。

stty用法:

设置终端时遇到的一个最普遍问题是退格键不起作用。这不是不可挽救的。本机s t t y命令

中^ ?即为退格键,使用< C t r l - H >可能会退格并删除前一个字符。在命令行中设置一个s t t y选项,

一般格式为:

stty name character

以下将退格设置为^ H:

$ stty erase '\^H'

在. p r o f i l e文件中使用上述命令可能会碰到一些问题,因为s t t y期望输入一个实际' C o n t r o l

H '序列,在v i编辑器环境下使用下述方法解决它:

按住C t r l键,同时按下V键,释放V键,再按下H键。

最常用的s t t y命令使用在下述设置上:

名称键含义

i n t r ^ C 终止进程

e c h o 打开e c h o功能

- e c h o 关闭e c h o功能

e o f ^ D 文件尾;注销

k i l l ^ Y 删除一行

s t a r t ^ Q 滚动屏幕文本

s t o p ^ S 停止滚动屏幕文本

s t t y的一个可用选项为:

stty -g。

此选项允许以可读格式保存s t t y现有设置,便于以后重置回s t t y。正像前面在文件

/ e t c / p r o f i l e中看到的一样。将stty -g内容放入一个变量中,工作完成后,任何改动的设置将被

写回s t t y。

创建.logout文件:

使用Bourne shell与其他s h e l l不同,其缺点是不包含. l o g o u t文件。此文件保存有执行e x i t命

令时,在进程终止前执行的命令。

但是通过使用t r a p命令( t r a p和信号将在本书后面讨论),Bourne shell也可以创建自己的

. l o g o u t文件。方法如下:编辑. p r o f i l e文件,在最后一行加入下列命令,然后保存并退出。

trap "$HOME /.logout"0

再键入一个. l o g o u t文件,敲入下列执行命令。如果愿意,可以在此脚本中加入任何命令。

[root@localhost ~]# cat .logout

rm -f $HOME/*.log

rm -f $HOME/*.tmp

rm -f $HOME/*.tmp

echo "BYE...$LOGNAME"

用户退出时,调用. l o g o u t文件。过程如下:用户退出一个s h e l l时,传送了一个信号0,意

即从现在s h e l l中退出,在控制返回s h e l l继续退出命令前, . p r o f i l e文件中t r a p行将捕获此信号并

执行. l o g o u t。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: