LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1356|回复: 3

为什么rc.local里写alias ll="ls -l"无效

[复制链接]
发表于 2009-8-24 17:17:04 | 显示全部楼层 |阅读模式
我知道去掉 /etc/bash.bashrc 或 ~/bashrc 中的 语句“# alias ll='ls -l' ”的注释即可实现(当然,修改profile也可以)。 但是rc.local也是在启动时运行的,为什么加入alias ll="ls -l"语句无效?想不通,望指点。

下面是我修改后的rc.local。除了括号注释部分开机启动无效外,其他都能起来,为什么?

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#启动SSHD
/usr/sbin/sshd

#启动Telnet
service openbsd-inetd start

#启动WEB服务器lighttpd
cd /home/usr948/lighttpd-1.4.19/usr/bin
./lighttpd -f ./lighttpd.conf

#启动xdm,xmanager需要使用它来进行远程登录到桌面。
/usr/bin/xdm

# 设定 ll 命令
#(下面的语句无效)
alias ll='ls -l'

exit 0

该问题我在ubuntu中文论坛发了,一天过去了,都没有答案。我感觉这应该是个基本问题,也许高人都没看到,到这里来寻达人指点。
发表于 2009-8-24 18:56:38 | 显示全部楼层
alias 仅在当前 shell 及子进程中有效。如果你清除了环境,或者在其他进程中运行,就无效。

rc.local 最后退出了。而你的bash并不是它的子进程,因此此间的设置没有作用。
回复 支持 反对

使用道具 举报

发表于 2009-8-24 19:38:46 | 显示全部楼层
你的bash是用户的登录shell,写在barhrc里肯定没有问题,rc.local应该是系统shell吧,ubuntu默认是dash吧,不是一个Shell
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-24 20:57:58 | 显示全部楼层
多谢楼上两位,学到了。刚接触linux2个月,以后多多指教。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表