Ubuntu将默认bash修改为csh
前言
为什么要将默认bash修改为csh,有时候安装的软件命令是基于csh写的,如果用bash使用软件就会报错,如:“No command ‘setenv’ found”,此时需要将Ubuntu默认的bash改为csh
Linux系统中的shell版本问题
Bourne Shell(即sh)是UNIX最初的shell,在shell编程方便相当优秀,但在与用户的交互方面不如其他shell。
LinuxOS默认的是Bourne Again Shell,简称bash。它是Bourne Shell的扩展,增加了命令补全,命令编辑和命令历史等功能。它还包含了很多C Shell和KornShell中的优点,同时又很友好的用户界面
C Shell是一种比Bourne Shell更适合的变种Shell,它的语法与C语言很相似。
Tcsh是CShell的一个扩展版本。Tcsh包括命令行编辑,可编程单词补全,拼写校正,历史命令替换,作业控制和类似C语言的语法,提供比Bash Shell更多的提示符参数。
Korn Shell集合了C Shell和Bourne Shell的优点,并且完全兼容BourneShell。
Linux提供了pdksh(ksh的扩展),它支持人物控制,可以在命令行上挂起,后台执行,唤醒或终止程序。Linux还提供了一些流行的Shell如:ash,zsh等。
修改方法
1、可以通过命令:echo $SHELL
(注意大写)来查看自己的系统当前使用的是什么类型的shell)
2、查阅系统存在的bash,使用命令:cat /etc/shells
3、发现系统默认没有csh所以没办法切换,所以要先下载一个csh,下载方法可以参考我前面写文章——Ubuntu用apt-get下载csh
4、下载好之后,就可以将bash切换为csh了,此时再检查shell类型,发现变成csh了,详细见下文。
bash切换csh方法
前提是已经下载好了csh
方法一:
首先:进入root模式:sudo -s
然后:chsh(如果发现提示chsh: PAM: Authentication failure,可以退出root再试一次chsh就可以了)
输入:/bin/csh
最后重启Ubuntu,打开终端,输入# echo $SHELL
返回s“/bin/csh”,说明SHELL修改成功。
方法二:
输入:sudo nano /etc/passwd
然后将这个位置的csh手动改为bash,保存退出(ctrl + X,回车)
最后重启客户端即可
创作不易,各位读者大大看完留个赞和评论再走吧!求求了~
温馨提示 关注不容易让文章走丢哦~
其他linux内容整理见:https://blog.csdn.net/weixin_45386875/article/details/116308755