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 命来修改,ll Script 的说明:
DOS 的 COMMAND.COM 就是一种 shell,负责解译你所下的指令并执行它。同样
的,UNIX 上也有这个,它是在你成功 login 以後由系统自动启动的。
UNIX 上有不少种 shell,sh, csh, ksh, tcsh, bash 等,一般都是用csh,login shell 可用 ypchsh 命令改变,但你必须先知道你要换的新壳子在那个目录下。tcsh 有类似 DOSKEY 的功能。
保存文件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”。这个就是指出要用哪个程序来执行脚本中的行。