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 : 指定輸出用某一字串取代,而非執(zhí)行tcsh所提供之控制命令,類
似alias的功能。
-c : 指定輸出用某一UNIX命令取代并加以執(zhí)行。
-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定義為執(zhí)行l(wèi)s -alF這個UNIX命令。
5.周期性命令之執(zhí)行(Periodic Command Execution)
藉著設定shell變數tperiod與代名(alias)periodic,可執(zhí)行周期性之命令。
語法: set tperiod=<minute(s)>
alias periodic <command>
說明: <minute(s)> 時間間隔,以分鐘為單位。
<command> 欲執(zhí)行之命令。
例如:
>set tperiod=30
>alias periodic checknews
tcsh將會每隔30分鐘執(zhí)行checknews這個命令一次。
6.時間性事件列表(Timed Event List)
tcsh提供了一個命令sched,讓你能在每天特定的時間執(zhí)行某個命令,其功能類似
UNIX上原有之crontab的功能。
語法: (1)sched [+]hh:mm <command>
(2)sched
(3)sched -<number>
說明: (1)[+]hh:mm 欲執(zhí)行命令之時間,+表示過了中午12:00,或可利用’am’或
’pm’來指定,例如:8:00表示早上8:00,亦可用8:00am來表示,
而+3:30表示下午3:30,亦可用3:30pm來表示。
<command> 欲執(zhí)行之命令。
(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的第二項移去。
評論