免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5412 | 回复: 4
打印 上一主题 下一主题

tcsh,如何给root用户设置环境变量 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-09 11:30 |只看该作者 |倒序浏览
/目录下默认没有配置文件。而且.profile好像是用于sh的,如果现在用的是/bin/tcsh,改如何设置环境变量呢?\r\n\r\n是不是需要在/目录下,自己生成一个.cshrc呢?\r\n\r\n谢谢!

论坛徽章:
2
双鱼座
日期:2014-02-23 12:10:03操作系统版块每日发帖之星
日期:2015-12-17 06:20:00
2 [报告]
发表于 2010-03-09 16:40 |只看该作者
# usermod -s /bin/tcsh root

论坛徽章:
0
3 [报告]
发表于 2010-03-10 08:23 |只看该作者
TCSH shell有3个初始化文件: .login .tcshrc .logout,\r\n\r\n.login文件是每次注册时执行的注册初始化文件, \r\n.tcshrc文件是每次进入TCSH shell时执行的shell初始化文件, 该文件在注册时执行或者用tcsh命令直接从另一个shell进入TCSH shell时执行,\r\n每次注消时执行.logout文件

论坛徽章:
0
4 [报告]
发表于 2010-03-10 08:26 |只看该作者
本帖最后由 yuhuohu 于 2010-03-10 08:27 编辑 \n\n1、 .login\r\n\r\n\r\nTCSH shell有自己注册初始化login,该文件用于配置用户shell的shell命令和特殊变量定义, .login文件相当于BASH和ZSH shell中使用的.profile文件。\r\n\r\n.login文件包含setenv命令,给TERM之类的特殊环境变量赋值,可以用任何标准的编辑器编辑它,改变这些值,也可添加新的值.但是要记住:在TCSH shell中,为环境变量赋值的命令是setenv,如:\r\n\r\n\r\n%setenv EXINIT \'set nu ai\'\r\n\r\n定义EXINIT变量并设置vi编辑器行计数和自动缩排的功能.\r\n\r\n当编辑.login文件时要十分小心,不经意的编辑可能造成错误的变量设置或者根本没有设置变量,因此,编辑之前最好备份.login文件.如果更改了.login文件,想让这些变化在当前注册期间生效,需要使用source命令重新执行该文件,source命令实际上可执行任何初始化文件,其中包括.tcshrc文件和.logout文件,如:\r\n\r\n\r\n%source .login\r\n\r\n\r\n2、 .tcshrc\r\n\r\n\r\n每当进入TCSH shell或产生任何子shell时,就执行.tcshrc初始化文件,如果TCSH shell是用户注册的shell,那么当用户注册时, .tcshrc文件和.login文件一起运行,如果从另外一个shell进入TCSH shell, .tcshrc文件被自动执行,文件中包含的变量和别名被定义.\r\n\r\n实际上,每当产生一个shell时,如运行shell脚本,就执行.tcshrc文件,也就是说,每当创建一个shell时,就执行.tcshrc文件,这允许在.tcshrc中定义局部变量,在某种意义上说,局部变量可以进入任何子shell,即时像history这样的用户定义的变量也是局部变量,但要为每个产生的子shell定义特殊变量,这样,为每个子shell变量设置history,但是,每个子shell都有自己的局部history变量,用户甚至可在不影响其他子shell的变量的情况下改变一个子shell的局部history变量,在shell初始化文件中定义特殊变量可以看做是BASH shell导出变量,在BASH shell和ZSH shell中的导出变量只把自己的拷贝传送给子shell,改变拷贝不会影响原始定义.\r\n\r\n.tchsrc文件也可包含别名变量和用于打开shell特征的特征变量,别名变量和特征变量是局部变量,限定于shell内部.但是.tcshrc文件在每个shell中都将定义这些变量.因此, .tcshrc文件通常保存各种命令定义的别名,如:\r\n\r\n.tcshrc\r\n\r\n\r\n#\r\nset shell=/usr/bin/csh\r\nset path=$PATH (/bin /usr/bin .)\r\nset cdpath=(/home/dirname/filename /home/dirname/files)\r\nset prompt=\"!$pwd>\"\r\nset history=20\r\nset ignoreeof\r\nset noclobber\r\nalias rm \'rm -i\'\r\nalias mv \'mv -i\'\r\nalias cp \'cp -i\'\r\n\r\n与环境变量不同,局部变量用set命令定义,在.tcshrc文件中的局部变量应该使用set命令定义,用setenv命令定义的环境变量是放在.login文件中的,请记住:当改变path或cdpath的路径名时,数组中包含这些路径名,数组中的每个元素要用空格分开,如果添加新的路径名时,必须保证用空格把它和其他的路径名分开.如果已经改变了.tcshrc文件,希望这些变化在当前注册中立即生效,别忘了用source命令重复执行.tcshrc文件。\r\n\r\n\r\n3、 .logout\r\n\r\n\r\n.logout文件也是初始化文件,只不过它在注消时执行,用户可以设置.logout文件以使其完成任何在注消时想要完成的操作,文件中没有定义变量,常包括关闭进程的shell命令.可以向.logout文件中添加自己的shell命令,如:\r\n\r\n.logout\r\n\r\n\r\n#\r\nclear\r\necho \"Good-bey...\"

论坛徽章:
0
5 [报告]
发表于 2010-03-10 16:21 |只看该作者
谢谢这么相信的答复。\r\n\r\n我还有个问题,是不是这些文件都需要自己创建呢?安装之后我好像根本找不到这些文件
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP