一葉笑天
          雄關漫道真如鐵, 而今邁步從頭越。 從頭越, 蒼山如海, 殘陽如血。
          posts - 73,comments - 7,trackbacks - 0
          Shell是一些特定的程序接口,用于用戶和UNIX/Linux操作系統核交互。如下圖所示:
          1.Unix Shell
            (1) Bourne shell (sh)是標準的UNIX shell, 用于管理系統. 很多系統管理的腳本。例如rc start和stop腳本以及shutdown 是Bourne shell 腳本;缺省的Bourne shell 表示為($)
            (2) C shell (csh)是伯克利開發的,增加了很多新的特征, 例如command-line history, aliasing, built-in arithmetic, filename completion, and job control. Bourne shell 腳本快于和簡單于C shell. 缺省C shell 表示為(%)
            (3) Korn shell是Bourne shell的超集. Korn shell 增強的特征有editable history, aliases, functions, regular expression wildcards, built-in arithmetic, job control, coprocessing, and special debugging features. Bourne shell is 完全向上兼容Korn shell,q缺省的Korn shell提示符是 ($)
          2.Shell的職責是:
          (1)讀入輸入和解析命令行
          (2)計算特殊字符,例如wildcards和歷史字符
          (3)建立管道,重定向和后臺處理
          (4)處理信號
          (5)建立可執行程序
          3.Shell命令執行圖:

          4.系統啟動和登錄Shell
          啟動系統->>調用init->>分配PID=1->>打開終端線->>建立stdin,stdout和stderr->>輸入login name,->>輸入password->> /bin/login通過passwd文件驗證你的密碼.如果login驗證成功,則會開始建立初始環境 HOME, SHELL, USER, 和 LOGNAME 是從passwd中抽取的變量值. HOME變量指定你的home目錄, SHELL指定登錄shell的名稱,它是passwd文件的最后一個入口. USER 和 LOGNAME 變量指定你的登錄名. ->>執行passwd文件中的最后一個入口程序. 通常這個程序就是shell. 如果passwd文件中的最后一個程序是 /bin/csh, C shell被執行,如果是 /bin/bash 或者null, Bash shell執行. 如果是 /bin/ksh 或者 /bin/pdksh, Korn shell 被執行. ->>檢查系統初始化文件建立->>檢查登錄目錄下的初始化文件. ->>等待用戶輸入。
          4.1解析命令行的過程:
          (1)執行歷史記錄替換
          (2)命名行被分割成符合或者字
          (3)更新歷史記錄
          (4)處理引用
          (5)別名替換和定義函數
          (6)建立重定向,后臺和管道
          (7)執行變量($user, $name, etc.) 替換
          (8)執行命令替換
          (9)文件名替換,調用globbing (cat abc.??, rm *.c, etc.)
          (10)執行命令
          4.2命令的類型
          (1)別名
          (2)關鍵字
          (3)函數
          (4)內建命令
          (5)可執行命令
          5.進程和Shell
          5.1查看進程
          $ ps aux  (BSD/Linux ps)  (use ps -ef for SVR4)
          $ pstree
          6.環境和繼承
          1   $ id
             uid=502(ellie) gid=502(ellie)
          查看用戶的標識user identification (UID), group identifications (GID),
          6.3修改文件許可
          chmod
          Permission Modes

          Decimal

          Binary

          Permissions

          0

          000

          none

          1

          001

          --x

          2

          010

          -w-

          3

          011

          -wx

          4

          100

          r--

          5

          101

          r-x

          6

          110

          rw-

          7

          111

          rwx

          chmod is as follows: r = read; w = write; x = execute; u = user; g = group; o = others; a = all.
          1   $ chmod 755 file
              $ ls –l file
              –rwxr–xr–x 1 ellie  0 Mar  7 12:52 file
          2   $ chmod g+w file
              $ ls -l file
              –rwxrwxr-x  1 ellie  0 Mar 7 12:54 file
          3   $ chmod go-rx file
              $ ls -l file
              –rwx-w---- 1 ellie  0 Mar 7 12:56 file
          4   $ chmod a=r file
              $ ls -l file
              –r--r--r-- 1 ellie  0 Mar 7 12:59 file
          chown改變文件和目錄的所有屬性
          1   $ ls -l filetest
              -rw-rw-r--   1 ellie    ellie           0 Jan 10 12:19 filetest
          6.4工作目錄
          1   > cd /
          2   > pwd
              /
          3   > bash
          4   $ cd /home
          5   $ pwd
              /home
          6   $ exit
          7   > pwd
              /
              >
          6.5查看變量
          $ env
          6.6重定向和管道
          重定向
          1   $ who > file
          2   $ cat file1 file2 >> file3
          3   $ mail tom < file
          4   $ find / -name file -print 2> errors
          5   % ( find / -name file -print > /dev/tty) >& errors
          管道
          |
          who | wc
          6.7Shell和信號
          標準信號

          Number

          Name

          Description

          Action

          0

          EXIT

          Shell exits

          Termination

          1

          SIGHUP

          Terminal has disconnected

          Termination

          2

          SIGINT

          User presses Ctrl-C

          Termination

          3

          SIGQUIT

          User presses Ctrl-\

          Termination

          4

          SIGILL

          Illegal hardware instruction

          Program error

          5

          SIGTRAP

          Produced by debugger

          Program error

          8

          SIGFPE

          Arithmetic error; e.g., division by zero

          Program error

          9

          SIGKILL

          Cannot be caught or ignored

          Termination


          posted on 2008-06-18 10:37 一葉笑天 閱讀(635) 評論(0)  編輯  收藏 所屬分類: Shell技術
          主站蜘蛛池模板: 宜宾县| 禹州市| 江永县| 凌云县| 象州县| 梁河县| 新兴县| 玛曲县| 安乡县| 微山县| 遵义县| 中阳县| 临漳县| 天峻县| 凤阳县| 安丘市| 南澳县| 耒阳市| 平顶山市| 屏山县| 南靖县| 屯留县| 清水河县| 阿合奇县| 张掖市| 临武县| 外汇| 万州区| 邵阳县| 玛多县| 英超| 南阳市| 皋兰县| 乌拉特后旗| 尉犁县| 攀枝花市| 观塘区| 溧水县| 余庆县| 基隆市| 大洼县|