--Shell编程基础知识1
然而,从使用者的角度来说,使用者也没办法直接操作 kernel ,而是透过 kernel 的"外壳"程序,也就是所谓的shell ,来与 kernel 沟通。
从技术角度来说,
因此,shell 的最简单的定义就是---命令解译器(Command Interpreter):
* 将使用者的命令翻译给核心(kernel)听,并且让核心(kernel)处理,
* 同时,将核心(kernel)处理的结果翻译给使用者。
====================
每次当我们完成系统登入(login),
若从进程(process)的角度来说,我们在 shell 所下达的命令,均是 shell 所产生的子进程。
这现象,我们暂可称之为fork。
如果是执行脚本(shell script)的话,脚本中的命令则是由另外一个非互动模式的子shell (sub shell)来执行的。
也就是primary shell 产生 sub shell 进程,sub shell 再产生 script 中所有命令的进程。
FreeBSD的基本系统中可以使用的shell有两个:
-------------------------------------------
这两个基本shell的风格不太相同,
在默认安装下,FreeBSD支持sh、csh、tsch,从/
----------------
命令提示符补充一下:
如果shell是sh,则提示符为“$”,
----------------
Bourne shell(sh)和POSIX shell(csh)又有以下不同的分支:
Bourne shell :
1.burne shell (sh)
2.burne again shell (bash)
3.korn shell (ksh)
POSIX shell:
1.c shell (csh)
2.TENEX/TOPS C shell ( tcsh)
-----------------
Bourne Shell(最初的UNIX shell)是由Stephen R. Bourne于20世纪70年代中期在新泽西的AT&
Bourne shell 是一个交换式的命令解释器和命令编程语言。
Bourne shell 可以运行为login shell或者login shell的子shell(subshell)。
此时,shell先读取/etc/
/
最后,
------------------------
C Shell 是Bill Joy于20世纪80年代早期,
它主要是为了让用户更容易的使用交互式功能,
==================
有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。
为了改变这种状况,AT&
ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。
因此,Korn shell广受用户的欢迎。
它还新增了数学计算,进程协作(
Korn Shell 是一个交互式的命令解释器和命令编程语言.
它符合POSIX——>
<<<<<<<<<<<<<
POSIX不是一个操作系统,
>>>>>>>>>>>>>POSIX需要单独解释
==============================
bash(Bourne shell的第二个分支)是GNU计划的一部分,用来替代Bourne shell。
它用于基于GNU的系统如Linux.
--------------------
POSIX shell本身是Korn shell的一个变种.
当前提供POSIX shell的最大卖主是Hewlett-Packard。
各主要操作系统下缺省的shell:
AIX 下是Korn Shell.
Solaris和FreeBSD缺省的是Bourne shell.
HP-UX缺省的是POSIX shell.
Linux是Bourne Again shell
-----------------------------
输入命令echo $SHELL可查看你用的是什么shell,
如果shell是csh,则为"%",
----------------
对于管理员来将,
----------------
系统登录时(应该是用户登录时吧),sh将首先执行/etc/profile文件(这里的sh是什么意思,是泛指的shell),
而csh将使用/etc/csh.
----------------
执行了系统级别的登录文件(/etc/profile文件或其他等价的文件)之后,
sh使用.profile文件,
csh使用.
这些资源文件均使用相应的shell语言,/etc/
系统管理员可以改动这些资源文件,
CODE:
# ls /usr/share/skel
dot.cshrc dot.login_conf dot.mailrc dot.rhosts
dot.login dot.mail_aliases dot.profile dot.shrc在/usr/share/
常用的环境变量:
EDITOR 设置用户常用的编辑器,
HOME 用户的主目录的名字,这个变量由login程序设置,
DISPLAYX 使用这个环境变量来标识具体的显示位置,格式为“计算机名字:
LANG 系统使用的语言,用于系统的本地化,缺省为 “C” ,具体的设置可以查看 /usr/share/locale 目录,那里定义了不同的语言,可以将其设置为zh_CN.
MAIL 用户mail文件的位置,也不需要改动
PATH 使用冒号分隔的一系列路径,系统用它来查找具体可执行程序,
MANPATH 使用冒号分隔的一系列路径,系统用它来查找具体命令的在线手册,
PS1sh 风格的shell使用这个变量的值作为提示符,缺省值为 “$”(root为 “#” )。更现代的sh就增强了提示符的灵活性,
PS2sh 风格的shell使用这个变量的值作为后续提示符,
TERM 终端的类型,对于需要全屏操作的程序,非常重要。
TZ 时区设置,具体的时区信息位于/usr/share/
可以将用户的shell设置为特殊的应用程序,
例如通过源代码编译安装mysql的时候,
引用:

浙公网安备 33010602011771号