solaris 修改sh 为 bash 及常见问题
Linux的bash可以通过Tab键自动补全命令和文件名,而且可以通过上下键翻出输入的历史命令内容,很是方便。但是Solaris默认使用的sh没有上述功能,造成使用的不便。为了方便使用可以将Solaris的sh改为bash。
【方法如下】:
以root用户修改/etc/passwd文件,
# vi /etc/passwd
将 root:x:0:0:Super-User:/:/sbin/sh 改为 --> root:x:0:0:Super-User:/:/bin/bash 即可。
测试登陆效果
su - root
可以看见提示符已经变为bash-3.00#了,修改成功。
bash-3.00#
这样,就可以实现用Tab键补全命令行的输入和上下箭头实现输入命令的历史回放,而sh却没有这样的功能。
但是,仅仅这一点修改,并不能实现命令行提示符中出现象Linux提示符中既有用户名,又有主机名和当前路径名。需要另外编辑文件。
即在$HOME下新建文件.profile,如果文件存在的话就在里面添加内容。由于是root用户,所以$HOME的路径为根目录/。在根目录下新建文件.profile,并在其中添加如下内容:
vi /.profile
PS1='[\u@\h:$PWD]#'
export PS1
保存退出该文件,重新登录su - root,则命令行提示符为:
[root@solaris:/]#
执行命令:
[root@solaris:/]#echo $SHELL //查看系统默认的shell
/usr/bin/bash
执行命令:
[root@solaris:/]#cd home
则命令行变为:
[root@solaris:/home]#
其中,root是指用户名,solaris是主机名,/home为当前路径。
当然,如果习惯使用csh,可以先将shell切换至csh。然后可以输入命令:
#set filec
这样,可以在csh下实现命令行补全。不过,补全输入使用的不是Tab键,而是ESC键
原因: sh 在 /sbin/sh 而bash则在/bin/bash 只改了sh为-->bash 没有更改全部路径,所以造成无效shell登陆。
【解决方法】:
一:在系统启动时输入e进入编辑启动菜单。
在如上图处输入- s ,回车后按B进入单用户模式
二:输入root密码
三:vi /etc/passwd ,将bash改为sh
四:reboot
问题解决