unix下常见的shell有sh(bourne shell,默认的shell),csh,ksh(korn shell),那我们选择哪一个shell呢?
korn shell:是bourne shell的增强,也是偶的选择,它有很多很不错的特性是你的shell script简单高效and faster。
bourne shell可是在任何unix下都可以找到的shell,选择它也很明智,这样你在各种unix都have a familar enviroment。
cshbourne shell和korn shell大同小异,就象c++ ,java,c#的差异,而csh便不同了,就象pascal,完全不同,不过也许你偏爱呀。
每个用户用什么shell在增加用户时定义,如果你是root,你可以一劳永yi的用usermod -s
/bin/ksh来是试自己login后便用ksh,普通用户要用ksh,可以在当前shell下敲ksh
各个shell在不同的unix目录不同,用type命令可以准确的高诉你一个可找到的命令的类型和位置。有些unix下有whence,都可以啊
exercise:type ksh
用使自己的shell script坚持使用某一shell,那么在你shell的第一行如下写便可以了:
以sco unix,ksh为例:
#! /bin/ksh
所以你看到shell里这样的语句不要当成是注释啊。
创建shell
vi是unix下的编辑工具,功能强大啊,开始使用的时候不熟悉,感觉别扭,用不了多久,也许你就想在windows找一个vi工具用用了,偶便喜欢lemmy。
$vi first
echo “this is my first script"
:x
$first
ksh:first:cannot execute
A mistake?
运行shell
$ls -l first
-rw-r--r-- 1 valentine 34 Mar 14 14:52 fisrt
没有执行权限啊
$chmod u+x first
or $chmod a+x first or chmod 777 first or ....
$first
this is my first script
OK.
你也可以用不修改权限,而用以下方式运行:
$sh first
$ksh first
这两种方式都是系统重新运行一个shell来解释执行first
很多情况需要在当前shell运行,如何做到呢?
$. first
记住了,很多情况都会用着啊。
That's all for today.
commands list:
ls ,vi ,whence ,type,chmod,usermod