Unix_Linux中的shell机制Linux认证考试

文章作者 100test 发表时间 2009:10:03 16:35:11
来源 100Test.Com百考试题网


  对于初次接触 Unix/Linux 系统的同学来说,Unix/Linux 系统与 Windows 系统最大的不同就是,操作 Unix/Linux 系统更多时候不是使用 GUI 图形界面而是使用 shell 命令行。那么,作为 Unix/Linux 系统的标志性建筑,shell 机制究竟是什么呢?

  shell 是功能强大的命令解释程序,是 Unix/Linux 系统面向用户的接口界面。但是,shell 程序仅仅是操作系统的一部分,是用以与系统内核进行交互的工具,并不是操作系统的核心组成部分。程序员可以根据需要编写符合接口规范的 shell 程序。

  我们分析一下 Unix/Linux 系统的启动登陆过程,就可以更清楚的了解 shell 程序在 Unix/Linux 系统中的地位了。

  当 Unix/Linux 系统启动时,操作系统的内核部分被装入内存,其余部分仍在硬盘上,只有当用户请求执行时才会被加载到内存中。Unix/Linux 系统完成启动后,由内核中的 init 进程激活 getty 进程,getty 进程在相应的终端上显示“login: ”提示,等待用户登录。当用户输入用户名时,getty 进程读取用户输入并启动 login 进程,由 login 进程完成整个登陆过程。用户完成登录后,login 进程根据启动配置文件,启动与该登录用户相对应的“默认 shell ”。此时,shell 进程被启动,用户可以通过 shell 终端与系统内核进行交互。

  从 Unix/Linux 系统的启动过程可以看出,shell 程序并非神秘无比,而是一种“长相奇特”的“普通的”、“用以与内核进行交互”的“应用程序”。

  各种各样的shell

  和 Unix/Linux 中的其它程序一样,shell 也仅仅是一个程序,在 Unix/Linux 系统中并没有特权。这也是为什么 Unix/Linux 系统中出现各种各样 shell 的原因。

  1、Bourne shell(sh)。大多数 Unix 系统的默认安装 shell。

  2、Korn shell(ksh)。

  3、C shell(csh)。

  4、TENEX/TOPS C shell(tcsh)。

  5、Bourne Again shell(bash)。大多数 Linux 系统的默认安装 shell。

  切换shell

  大多数的 Unix/Linux 系统都提供了多个 shell。当系统启动时,由启动配置文件确定启动(默认的) shell,用以用户与系统进行交互。

  在 Red Hat 9 中,可以通过以下任何一种命令,确定登录用户的默认 shell。

  cat /etc/passwd #M1

  echo $SHELL #M2

  在决定要切换 shell 之前,必须知道系统中安装了哪些 shell。在 Red Hat 9 中,可以通过以下命令,确定系统中已经安装的各种 shell 程序。

  cat /etc/shells

  在我的 Red Hat 9 系统中,得到了如下的结果:

  /bin/sh

  /bin/bash

  /sbin/nologin

  /bin/bash2

  /bin/ash

  /bin/bsh

  /bin/tcsh

  /bin/csh


相关文章


linux之Tar命令常用参数Linux认证考试
BFS简介Linux系统提速的必修课Linux认证考试
linux系统性能检测Linux认证考试
tcp.c文件的sock结构Linux认证考试
Unix_Linux中的shell机制Linux认证考试
Linux认证辅导:Linux自动备份Linux认证考试
Linux认证辅导:Linux特殊文件权限Linux认证考试
Linux防火墙规则示例Linux认证考试
Linux认证辅导:Linux内核中的循环链表结构Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛