注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

欢迎来到我的博客进行技术交流

 
 
 

日志

 
 

选择自己喜爱的shell  

2009-08-09 05:13:08|  分类: 基础知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

        Shell译意为外壳,它是人们与操作系统核心沟通的界面,人们对操作系统下指令,在shell界面中输入命令,shell把你输入的命令传达给核心,核心传达给硬件,硬件使整部电脑动作起来。如果我们的FreeBSD没有安装 X-window,那么我们沟通就要直接在shell中输入指令了。没错,平时命令黑底白字的那个就是shell。
 FreeBSD默认有3个Shell供给大家使用。分别是 sh , csh , tcsh 。我是怎么知道有这3个shell可以用呢?是/etc/shells文件告诉我的。打开它,可以看到里面有三行:


/bin/sh
/bin/csh
/bin/tcsh

声明!本文属于原创文章。欢迎转载,但务必保持原文完整,保留作者名,并注明出处。

作者:星外天空

原文地址:http://vsbsd.blog.163.com/blog/static/1165189292009795138705


      这是3个shell的路径,它告诉系统,用户可以从3个Shell中选一个使用,同时,除了这3个shell之外,其它任何shell都不能使用。这个shells文件可是很重要的,里面记录着可以让用合法使用的shell。如果管理员把三行删掉,用户们在本机登陆仍会给你进入,但会出现很多问题,例如你不能使用chsh命令改变默认shell,退出后也不会把曾输入过的指令记录到.history文件中等等。
       如果我们安装了新的shell给用户使用,那么就需要在shells文件中加入该shell的路径。使用ports来安装的shell一般会自己在shells文件中加入,必要时最好还是检查一下shells文件。
 

更换Shell有2种方法:
1.临时改变shell
临时改变也就是说改变Shell是临时性的,退出后再登陆又变回默认Shell了。临时改变shell是直接输入shell的名字,如我想将shell临时变为bash,我就直接输入bash就可以了。
2.永久性改变shell
何为永久性,即把你想使用的shell写入到文件中,退出系统重新再登陆也不会变,这就是你默认的shell了。刚才提到chsh命令,这个命令就是给用户自己更换默认Shell的。直接输入chsh命令后,将会显示一些文本内容,你会看见其中一行是以Shell:开头,类似于这样的行:
Shell: /bin/tcsh
这行是你正在使用的默认shell,你可以把/bin/tcsh 改为你要替换的Shell的路径,然后保存退出就可以了。下次你登陆时,会发现Shell已经改变。其实你编辑的这个文件是在/etc目录下的一个临时文件,保存退出后,这个文件就会被删除。同时/etc/passwd与/etc/master.passwd的内容也改变。我们知道,普通用户是不能直接修改这两个文件的。但修改shell其实就是修改这两个文件的内容,所以chsh命令是让用户间接性地修改这两个文件中的内容。

用户登陆后,会马上显示一大堆信息,这些信息的内容就在/etc/motd文件中。

      

接下来研究一下shell的配置文件

任何shell都有两种级别的配置文件,系统级与用户级,系统级别的配置文件对所有用户生效,而用户级别的配置文件只针对某用户生产作用。下面分别介绍csh/tcsh与bash的配置文件。

一、csh/tcsh 的配置文件

系统级别的配置文件有:
csh.cshrc
csh.login
csh.logout

用户级别的配置文件有:
.cshrc         //这个是环境变量配置文件
.login          //这个是用户登陆执行的文件,用户可以把要在登陆时自动运行的命令写到这里
.logout        //这个是用户退出登陆时执行的文件,用户可以把要在退出时自动运行的命令写到这里

.cshrc文件对shell环境起着很大的作用,它的默认设置有创建“别名”功能,如“alias ll  ls -lA ;设置运行命令默认查找路径,如set pach = ...................;设置环境变量,如”setenv EDITOR vi“。而.cshrc和.login在/usr/share/skel是存在的,所以在创建用户时,会把这两个文件都复制到用户家目录,但.logout这个文件并不存在,所以要手动创建。

 

二、sh 的配置文件
系统级别的配置文件有:profile
bash仅仅只有这一个全局配置文件,它相当于将csh.cshrc和csh.login功能组合在一起,且没有系统级别的退出执行文件,也即它相对csh/tcsh来说,缺少了csh.logout文件的功能。

用户级别的配置文件有:
.profile
.shrc           这个文件是.profile中指定的,作用是设置命令别名等。
.bash_logout    作用是退出时运行的内容。跟.logout功能一样

 

 

 

  评论这张
 
阅读(93)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017