BBS水木清华站∶精华区

发信人: gqshen (香江游子), 信区: Linux 
标  题: Unix shell - tcsh 简介 [台湾转载](3) (转载) 
发信站: BBS 水木清华站 (Fri Nov 13 17:25:05 1998) 
 
【 以下文字转载自 Unix 讨论区 】 
【 原文由 gqshen 所发表 】 
    4.命令列编修(Command Line Editing) 
      tcsh提供类似GNU Emacs或VI的控制键来修改目前命令列之命令,其预设值为使用 
      GNU Emacs的控制键,但是使用者可利用bindkey命令将控制键改为VI模式,或是依 
      各人之喜好定义出自己认为方便的控制键。 
      关于 GNU Emacs 与 VI之控制键定义请查相关资料。 
      * 定义自己的控制键 
          使用者可利用bindkey命令,来定义自己需要或惯用的控制键,或是将某个按键 
          定义成常用的UNIX命令,甚至连使用者常用的字串亦可定义。 
          语法: bindkey [-a] [-c] [-s] [-v] [-e] [-d] [-k] [-l] [-r] [--] 
                        [[in-string | key-name][out-string | command]] 
          说明: -a : 
                -s : 指定输出用某一字串取代,而非执行tcsh所提供之控制命令,类 
                     似alias的功能。 
                -c : 指定输出用某一UNIX命令取代并加以执行。 
                -v : 将控制键命令对照方式设为VI模式。 
                -e : 将控制键命令对照方式设为Emacs模式。 
                -k : 
                -d : 
                -l : 列出可指定之控制命令。 
                -r : 将某一已定义之控制键移去。 
          例如: 
            >bindkey "[HOME]" beginning-of-line 
            将[HOME]这个键定义为移至一行之开头,以后当你在做命令列编修时,按下 
            [HOME],游标就会移至该命令列之开头。 
            >bindkey -r "[HOME]" 
            将[HOME]这个键的定义移去。 
            >bindkey -s "^F" I_am_Fish! 
            将Ctrl-F定义为I_am_Fish!这个字串,当你按下该键时,萤幕上会显示出 
            I_am_Fish!这个字串。 
            >bindkey -s "^X" ls -alF 
            将Ctrl-F定义为执行ls -alF这个UNIX命令。 
    5.周期性命令之执行(Periodic Command Execution) 
      藉著设定shell变数tperiod与代名(alias)periodic,可执行周期性之命令。 
      语法: set tperiod=<minute(s)> 
            alias periodic <command> 
      说明: <minute(s)> 时间间隔,以分钟为单位。 
            <command>   欲执行之命令。 
      例如: 
      >set tperiod=30 
      >alias periodic checknews 
      tcsh将会每隔30分钟执行checknews这个命令一次。 
    6.时间性事件列表(Timed Event List) 
      tcsh提供了一个命令sched,让你能在每天特定的时间执行某个命令,其功能类似 
      UNIX上原有之crontab的功能。 
      语法: (1)sched [+]hh:mm <command> 
            (2)sched 
            (3)sched -<number> 
      说明: (1)[+]hh:mm   欲执行命令之时间,+表示过了中午12:00,或可利用'am'或 
                          'pm'来指定,例如:8:00表示早上8:00,亦可用8:00am来表示, 
                          而+3:30表示下午3:30,亦可用3:30pm来表示。 
               <command>  欲执行之命令。 
            (2)不加任何参数,则列出已指定时间之命令。 
            (3)用以去除某一已设定之命令,<number>表示该命令在list中之编号。 
      例如: 
      (1)>sched 11:50 echo It\'s time to eat lunch. 
         >sched 5pm set prompt='[%h] It\'s after 5; go home: >' 
         于早上11:50在萤幕上印出It's time to eat lunch.,而在下午5:00时,将提示 
         符号(prompt)改为[26] It's after; go home: >,26是该命令history list中 
         的号码。 
      (2)>sched 
             1  Wed Apr  4 15:42  /usr/lib/uucp/uucico -r1 -sother 
             2  Wed Apr  4 17:00  set prompt=[%h] It's after 5; go home: > 
         > 
         将会列出目前所有以设定时间与命令的对照表。 
      (3)>sched -3 
         Not that many scheduled events. 
         >sched -2 
         >sched 
             1  Wed Apr  4 15:42  /usr/lib/uucp/uucico -r1 -sother 
         > 
         将scheduled list的第二项移去。 
 
 
-- 
  人的心事象一颗尘埃 
    落在过去  飘向未来 
      掉进眼里  就流出泪来 
 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.40.8] 

BBS水木清华站∶精华区