Solaris 默认Shell 修改
Solaris 有很多方面都用这和以前不大一样,下面讲Solaris中Shell的一些问题和解决方法。
Solaris的默认Shell是sh,即命令行提示符为(root用户):#
而在用Linux命令行的提示符中既有用户名,还有主机名称以及当前路径的名称。这样可以给人一目了然的感觉。不过Linux下一般默认Shell是bash,而不是sh。如果只想在当前的使用中切换Shell的话,方法很简单,可以在命令行中输入:
$ bash
bash-3.00$ csh
david% sh
$
如果要永久性的改变默认的shell,则需要修改/etc/passwd文件。打开passwd,第一行记录的是root用户的相关信息,该行内容为:
root:x:0:0:Super-User:/:/sbin/sh
其中,最后一个冒号后面即为root用户的默认shell,我们将其修改为bash的路径:
root:x:0:0:Super-User:/:/usr/bin/bash
当然,我们也可以使用stty 命来修改, 具体参考blog:
stty 命令
http://blog.csdn.net/tianlesoftware/archive/2010/03/15/5381984.aspx
Shell 和 Shell Script 的说明:
DOS 的 COMMAND.COM 就是一种 shell,负责解译你所下的指令并执行它。同样
的,UNIX 上也有这个,它是在你成功 login 以後由系统自动启动的。
UNIX 上有不少种 shell,sh, csh, ksh, tcsh, bash 等,一般都是用csh,login shell 可用 ypchsh 命令改变,但你必须先知道你要换的新壳子在那个目录下。tcsh 有类似 DOSKEY 的功能。
DOS 中有所谓的批次档,用以方便处理一些例行工作。UNIX 也有批次处理,它就叫做 Shell Script,而且比 DOS 的批次档强很多,写法几乎是一个高阶语言。Shell Script 是个文字档,但其地位和其它的命令或可执行档是完全相同的,只要用 chmod 指令将 Shell Script 存取权设为可执行即可。$home 目录下的 .login 档就是一个典型的 Shell Script,类似 DOS 的autoexec.bat。
保存文件passwd,退出。这样,就可以实现用Tab键补全命令行的输入和上下箭头实现输入命令的历史回放,而sh却没有这样的功能。但是,仅仅这一点修改,并不能实现命令行提示符中出现象Linux提示符中既有用户名,又有主机名和当前路径名。
需要另外编辑文件。即在$HOME下新建文件.profile,如果文件存在的话就在里面添加内容。由于是root用户,所以$HOME的路径为根目录/。在根目录下新建文件.profile,并在其中添加如下内容:
PS1='[/u@/h:$PWD]#'
export PS1
保存退出该文件,并重启系统。进入系统后,打开一个终端,则命令行提示符为:
[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键
我们在编写shell 脚本的时候, 必须在第一行加上“#!/bin/ksh”。这个就是指出要用哪个程序来执行脚本中的行。
注: 整理自网络