网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 操作系统-> Unix系列-> UNIX常见问题解答(五)

UNIX常见问题解答(五)
作者:佚名 来源:InterNet 加入时间:2004-11-10
相关文章
  • Tru64 unix--Trucluster 安装手册
  • Tru64 UNIX系统磁盘备份与恢复
  • UNIX系统远程存取操作
  • SCO UnixWare 7下磁带机的安装与备份
  • SCO UNIX的注册警告信息
  • SCO UNIX操作系统序列号冲突
  • UNIX下format和tar易用性的一种改进方法
  • UnixWare 7 root口令遗失的解决方法
  • 在SCO UNIX系统中使用光驱
  • UNIX系统安全
  • 相关书籍:
  • tcpip详解卷三:tcp事务协议,http,nntp和unix域协议
  • Unix傻瓜书
  • SCO UNIX入门
  • 莱昂氏UNIX源代码分析
  • Unix操作手册英文版 
  • UNIX系统安全工具
  • SCO UNIX实用教程
  • 本篇文章回答以下问题:

    5.1) shell 要如何分类呢?
    5.2) 在一个 shell script 里面要如?nbsp;"include" 另一个 shell script 呢?
    5.3) 是不是所有 shell 都有 alias,有没别的替代方案呢?
    5.4) 要如何设定 shell 的变数呢?
    5.5) 要如何得知是否是在一 interactive shell 中?
    5.6) 那些以 "." 开始其档名的档案在各种 shell 中的用途为何?
    5.7) 我想要知道更多各种 shell 的相异之处。请指点明路。


    5.1) shell 要如何分类呢?

    一般来说,shell 可以分成两类。第一类是由 Bourne shell 衍生出来的包括
    sh,ksh,bash,与 zsh。第二类是由 C shell 衍生出来的,包括 csh 与
    tcsh。除此之外还有一个 rc,有人认为该自成一类,有人认为该归类在
    Bourne shell。

    把上面的分类法记住,就可以写出所有 Bourne shell类的 shell 或是所有 C
    shell 类的 shell 都可用的 script。


    5.2) 在一个 shell script 里面要如何 "include" 另一个 shell script 呢?

    由 Bourne shell 衍生者(包括 rc)用 "." 这个指令。由 C shell 衍生者则使
    用 "source"。


    5.3) 是不是所有 shell 都有 alias,有没别的替代方案呢?

    除了 sh 外,主要的 shell 都有 alias,不过用法不大一样。例如有些 alias
    不接受参数。

    Bourne shell 类中 shell function 虽然严格说来不是 alias,不过也差不多了。
    Shell function 还可以做到一些 alias 所做不到的事情。从 Version 7 Unix
    的衍生出来的系统(包括 System III 与 4.2BSD) 里面的 Bourne shell 没有
    shell function。System V 与 4.3BSD 的 sh 都有 shell function。

    用 unalias 来去除 alias, 用 unset 来去除 shell function。


    5.4) 要如何设定 shell 的变数呢?

    在 C shell 类的 shell 中用 "set variable=value" 来设定只给这个 shell
    看的变数,用 "setenv variable value" 来设定环境变数。要去除变数则以
    unset 与 unsetenv 为之。在 Bourne shell 类的 shell 中则用
    "variable=value" 来设定变数,若要将一变数并成环境变数则用 "export
    VARIABLE_NAME"。要去除一个变数则用 unset。


    5.5) 要如何得知是否是在一 interactive shell 中?

    在 C shell 类中,看看 $prompt 这个变数便知分晓。

    在 Bourne shell 类中,可以看 $PS1 这个变数,不过最好是检查 $- 这个变
    数。假如 $- 里有 i,那就表示是在 interactive shell 中。作法如下:

    case $- in
    *i*) # do things for interactive shell
    ;;
    *) # do things for non-interactive shell
    ;;
    esac


    5.6) 那些以 "." 开始其档名的档案在各种 shell 中的用途为何?

    下面的说明或许不尽完整,但应该讲的都讲了。

    csh
    有一些版本在系统中所有使用者都必须读取的 .cshrc 与 .login。不
    过,每一个版本放置这些档案的地方不大相同。

    启动 (依照所列顺序):
    .cshrc - 每次都会读取
    .login - login shell 才会读取

    结束之前:
    .logout - login shells.

    其他:
    .history - 储存history (根据 $savehist 的值决定大小).

    tcsh
    启动 (依照所列顺序):
    /etc/csh.cshrc - 每次都会读取
    /etc/csh.login - login shells 才会读取
    .tcshrc - 每次都会读取
    .cshrc - 假如没有 .tcshrc 在的话
    .login - login shells 才会读取

    结束之前:
    .logout - login shells 才会读取.

    其他:
    .history - saves the history (based on $savehist).
    .cshdirs - saves the directory stack.

    sh
    启动 (依照所列顺序):
    /etc/profile - login shell 才会读取
    .profile - login shell 才会读取

    结束之前:
    any command (or script) specified using the command:
    trap "command" 0

    ksh
    启动 (依照所列顺序):
    /etc/profile - login shells 才会读取
    .profile - login shells 才会读取
    $ENV - always, if it is set.

    结束之前:
    如果你用了 trap "command" 0,则结束之际会执行 "command" (

    bash
    启动 (依照所列顺序):
    /etc/profile - login shell 才会读取
    .bash_profile - login shell 才会读取
    .profile - 如果没有 .bash_profile,则会在 login 时读取
    .bashrc - interactive non-login shell 才会读取
    $ENV - 若有设定则读取之

    结束之前:
    .bash_logout - login shell 读取之

    其他:
    .inputrc - Readline 初始化之时
    zsh
    启动 (依照所列顺序):
    .zshenv - 若无 -f 就会读取
    .zprofile - login shell 呕岫寥?nbsp;
    .zshrc - interactive shell 若无 -f 就会读取
    .zlogin - login shell 结束之前

    结束之前:
    .zlogout - login shell 才会读取

    rc
    启动 (依照所列顺序):
    .rcrc - login shell 才会读取


    5.7) 我想要知道更多各种 shell 的相异之处。请指点明路。

    你可以用 anonymous ftp 在下列地点取得一份有关 sh、tcsh、ksh、
    bash、zsh 与 rc 的详细比较。

    cs.uwp.edu (131.210.1.4):pub/vi/docs/shell-101.BetaA.Z
    utsun.s.u-tokyo.ac.jp:misc/vi-archive/docs/shell-101.BetaA.Z

    这个档案中比较了呼叫 shell 时的旗号、程式的文法、输出/入之转向、与环
    境变数。不过这个档案并不讨论以 "." 为档名开头的档案以及环境变数与
    函数的继承。

    [文章录入员:tonny]

    相关文章
  • Tru64 unix--Trucluster 安装手册
  • Tru64 UNIX系统磁盘备份与恢复
  • UNIX系统远程存取操作
  • SCO UnixWare 7下磁带机的安装与备份
  • SCO UNIX的注册警告信息
  • SCO UNIX操作系统序列号冲突
  • UNIX下format和tar易用性的一种改进方法
  • UnixWare 7 root口令遗失的解决方法
  • 在SCO UNIX系统中使用光驱
  • UNIX系统安全
  • 相关书籍:
  • tcpip详解卷三:tcp事务协议,http,nntp和unix域协议
  • Unix傻瓜书
  • SCO UNIX入门
  • 莱昂氏UNIX源代码分析
  • Unix操作手册英文版 
  • UNIX系统安全工具
  • SCO UNIX实用教程
  • 本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    Unix系列
    Win9X/ME
    Win2000
    Win2003/2008
    Unix系列
    Linux系列
    WindowsXP
    WinVista/WIN7
    注册表
    其它
    电脑教程阅读排行
    ·cpio命令详细用法
    ·UNIX系统远程存取操作
    ·UNIX系统操作命令
    ·FreeBSD安装指南
    ·FTP命令使用精萃
    ·AIX常用命令
    ·用crontab命令完成SCO ...
    ·网络文件系统(NFS)使用指南
    ·shell script 浅讲
    ·Unix下 Pro*c 编译命令