Unix shell - tcsh 简介3
——
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: >
>
将会列出目前所有以设定时间与命令的对照表。
Not that many scheduled events.
>sched -2
>sched
1 Wed Apr 4 15:42 /usr/lib/uucp/uucico -r1 -sother
>
将scheduled list的第二项移去。
评论