Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104579549
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-19 13:06:30

 

      用户通过shell系统向系统提交命令,shell是系统内核与用户之间的接口.


      ●系统几种常用的shell包括:Korn (ksh ),Bourne (bsh),C (cs)


      shell的基本功能有:


      ● 用户输入命令的语法分析器和命令解释器


      ● 能够支持多个任务(一个前台和多个后台任务)


      ● 提供一个shell编程环境

      ● 元字符----shell 解释时有特殊含义的字符


      例如: > < | ; ! * ? [ ] $ \ " ' `


      ● 通配符:能够在代替文件名中多个字符,包括有:


      ? ---- 替代一个字符


      * ---- 替代任意个字符


      [ ] --- 替代[ ] 中的任意一个字符


      [!] --- 替代除[ ] 中!后字符外的任意一个字符


      [-] --- 替代连续字符范围中的任一字符


      [!-] -- 替代字符范围以外的任一字符

      ? ----- 代替一个字符


      如: $ls ne?


      new net


      $ls ?e?


      new net few


      * ----- 代替多个字符


      $ls n*


      new nest net


      $ls test1*


      test1 test1.2 test1.3

      ●指定替代的范围: [ ] ! [ - ]


      $ls ne[stw]


      net new


      $rm [fghjdn]e[tw]


      few net new


      $ls *[1-5]


      test1 test1.2 test1.3


      $qprt [!tn]*


      myfile few

      ●标准文件



      系统中的标准文件是指标准输入(键盘),标准输出(显示器),标准错误输出(显示器)


      ●文件描述字


      ● 每个程序都有自己的文件描述字,程序启动后,shell 定义了三种描述字:STDIN , STDOUT , STDERR分别代表系统的三个标准文件,其它的描述字由程序在打开文件时指定.


      ● 重定向:


      ● command < filename 输入重定向到文件


      ● command > filename 输出重定向到文件


      ● command >> filename 输出重定向附加到文件


      ● command 2> filename 错误重定向到文件


      ● command 2>> filename 错误重定向附加到文件


      ● 输入重定向到文件: <


      ● $mail student < letter


      ● $

      ● 缺省标准输出:


      $ls


      file1 file2 file3


      输出重定向到文件: >


      $ls > ls.out


      输出重定向附加到文件 :>>


      $who >> whos.there


      ● 输出重定向的应用---用cat命令创建文件


      $cat > newfile


      this is a new file, It is created ….


      < ctrl+d >

      ● 缺省标准错误输出:


      $cat filea fileb


      cat : cannot open fileb


      ●错误输出重定向到文件 : 2 >


      $cat filea fileb 2 > errfile


      $cat errfile


      cat:cannot open fileb


      ●附加到文件: 2>>


      $cat filea fileb 2>> errfile

      ●重定向组合:


      $command < infile > outfile 2> errfile


      $command >> appendfile 2>> errfile < infile


      ●重定向联合:


      $command > outfile2 2>&1


      该命令将标准错误输出重定向到与标准输出相同的文件中去


      注意:上例与下例不同:


      $command 2>&1 outfile

      ● 管道 --- 一系列命令用 | 隔开构成管道,其中每一个命令的标准输出构成下一条命令的标准输入


      command1 | command2


      如: $ls | wc -w


      8


      ● 给出当前目录中的文件数(不包括隐藏文件),等价于:


      $ls > tmpfile


      $wc -w tmpfile


      ● 9 tmpfile


      $rm tmpfile

      过滤器指一个命令,它的功能是从标准输入读如数据,将其输入做某些改变,再输出到标准输出,这种命令常置于管道中间。


      ●command | filter


      cat 作为过滤器,如:


      $ls -R /home/wang | cat a* |wc -l


      tee作为过滤器。


      Tee命令从标准输入读,同时输出到标准输出和文件,起分离输出作用。如:


      $ls | tee /tmp/ls.save |wc -w


      ●同一命令行可以输入多条命令,命令间用 ; 隔开,各命令输入、输出不相关。


      ●command1 ; command2


      ●一条命令占多行:当命令在一行太长,希望分行输入时:


      ● $command1( 前部分 ) \ (回车 )


      > command1 ( 后部分 )


      如:


      $cat /home/student1/datadir/datafile\


      >/home/student2/datadir/datafile

阅读(616) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~