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和ShellScript的说明:
DOS的COMMAND.COM就是一种shell,负责解译你所下的指令并执行它。同样
的,UNIX上也有这个,它是在你成功login以後由系统自动启动的。
UNIX上有不少种shell,sh,csh,ksh,tcsh,bash等,一般都是用csh,loginshell可用ypchsh命令改变,但你必须先知道你要换的新壳子在那个目录下。tcsh有类似DOSKEY的功能。
DOS中有所谓的批次档,用以方便处理一些例行工作。UNIX也有批次处理,它就叫做ShellScript,而且比DOS的批次档强很多,写法几乎是一个高阶语言。ShellScript是个文字档,但其地位和其它的命令或可执行档是完全相同的,只要用chmod指令将ShellScript存取权设为可执行即可。$home目录下的.login档就是一个典型的ShellScript,类似DOS的autoexec.bat。
保存文件passwd,退出。这样,就可以实现用Tab键补全命令行的输入和上下箭头实现输入命令的历史回放,而sh却没有这样的功能。但是,仅仅这一点修改,并不能实现命令行提示符中出现象Linux提示符中既有用户名,又有主机名和当前路径名。
需要另外编辑文件。即在$HOME下新建文件.profile,如果文件存在的话就在里面添加内容。由于是root用户,所以$HOME的路径为根目录/。在根目录下新建文件.profile,并在其中添加如下内容:
PS1='[/u@/h:$PWD]#'
exportPS1
保存退出该文件,并重启系统。进入系统后,打开一个终端,则命令行提示符为:
[root@solaris:/]#
执行命令:
[root@solaris:/]#echo$SHELL//查看系统默认的shell
/usr/bin/bash
执行命令:
[root@solaris:/]#cdhome
则命令行变为:
[root@solaris:/home]#
其中,root是指用户名,solaris是主机名,/home为当前路径。
当然,如果习惯使用csh,可以先将shell切换至csh。然后可以输入命令:
#setfilec
这样,可以在csh下实现命令行补全。不过,补全输入使用的不是Tab键,而是ESC键
我们在编写shell脚本的时候,必须在第一行加上“#!/bin/ksh”。这个就是指出要用哪个程序来执行脚本中的行。
注:整理自网络