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键

 

-----------如果/etc/passwd修改错误,则可能导致root无法识别自己的shell环境,从而导致无法登录系统--------------

 

原因: sh 在 /sbin/sh 而bash则在/bin/bash   只改了sh为-->bash 没有更改全部路径,所以造成无效shell登陆。


【解决方法】: 

一:在系统启动时输入e进入编辑启动菜单。

 

在如上图处输入- s ,回车后按B进入单用户模式

二:输入root密码

三:vi /etc/passwd ,将bash改为sh

四:reboot

问题解决

 

posted @ 2019-08-27 17:17  ∴9527  阅读(638)  评论(0编辑  收藏  举报