Linux的一個(gè)特色就是其命令多而且功能強(qiáng)大, 頻繁輸入命令不僅麻煩而且工作量較大,雖然可以使用TAB進(jìn)行命令補(bǔ)足,或者使用aliase來簡化某個(gè)命令的輸入,但這并不能從根本上解決敲擊鍵盤次數(shù)過多的問題。\x0d\x0a\x0d\x0a可以把任何命令或命令的組合指定給鍵盤上的某個(gè)鍵,可以是Alt+[A-Z],\x0d\x0aCtrl-[A-Z], Alt+Shift+[A-Z], F1-F12, Ctrl-F[1-12], Alt-F[1-12], Alt+Shift+F[1-12],還有更不可思議的是甚至還可以為功能鍵加上“參數(shù)”,這樣你按下那個(gè)鍵的時(shí)候,它會等待你輸入相應(yīng)的參數(shù),并根據(jù)不同的參數(shù)運(yùn)行不同的命令。\x0d\x0a\x0d\x0a當(dāng)然,有一些熱鍵會被終端所捕獲,如常見的Ctrl-D/C/Q/Z等,不過沒關(guān)系,可用的熱鍵還多著呢!\x0d\x0a\x0d\x0a定義熱鍵的配置文件為:/etc/inputrc 或 ~/.inputrc,定義熱鍵的格式如下:\x0d\x0a\x0d\x0a"":""\x0d\x0a\x0d\x0a其中熱鍵對應(yīng)的ASCII字符可以通過 "先按Ctrl-V, 然后按熱鍵" 的方式來輸入, 如Ctrl-G對應(yīng)的字符為^G, Alt-P對應(yīng)的字符為^[p, Ctrl-Alt-H對應(yīng)的字符為^[^H.\x0d\x0a\x0d\x0a可以用/C來代替Ctrl,/M來代替Alt, /M-/C來代替Alt-Ctrl, 如/C-M = Ctrl-M, /M-/C-H = Alt-Ctrl-M. 另外還可以用/e代表^[.\x0d\x0a\x0d\x0a先來看一些基本的熱鍵定義,(這里熱鍵里的字母不區(qū)分大小寫):\x0d\x0a"^[-":"su -/C-M" # 按Alt+- 執(zhí)行su - 命令,末尾/C-M表示輸入完定義的命令后回車,也可以更簡潔地用一個(gè)/n來表示.\x0d\x0a\x0d\x0a"/M-/C-G":"gaim /dev/null disown/C-M"\x0d\x0a# 按Ctrl-Alt-g在當(dāng)前shell打開gaim, 并脫離該shell獨(dú)立運(yùn)行,即:即使你退出了該shell, gaim也不會關(guān)閉\x0d\x0a\x0d\x0a其他一些組合鍵可以根據(jù)自己的需要配置,偶就不多說了.\x0d\x0a\x0d\x0a大家也許會覺得這樣定義熱鍵太亂了,而且很難記住,還有一定的限制。這個(gè)問題在后面會得到解決。\x0d\x0a\x0d\x0a一般情況下,我們可以使用上下方向鍵來查找命令歷史列表,以此重復(fù)輸入命令,但是方向鍵離主鍵盤區(qū)太遠(yuǎn),如果頻繁使用的話,會耽誤不少時(shí)間,而且挪動右手時(shí)也不太方便,有沒有什么辦法把方向鍵的功能轉(zhuǎn)移到我們經(jīng)常敲命令的地方呢?如使用Alt+J = Down Arrow 向下查找,Alt+K=Up Arrow 向下查找\x0d\x0a\x0d\x0a通過定義熱鍵可以做到這點(diǎn):\x0d\x0a\x0d\x0a"/eh":"^[OD" # move left\x0d\x0a# Alt-H 向左移一個(gè)字符, 相當(dāng)于Left Arrowgh, 這里^[OD即向上方向鍵的ASCII字符,輸入方式與前面提到的類似\x0d\x0a"/el":"^[OC" # move right\x0d\x0a# Alt-L 向右移一個(gè)字符,相當(dāng)于Right Arrow\x0d\x0a\x0d\x0a"/ej":"^[OB" # move up\x0d\x0a# Alt-J 向下移動,相當(dāng)于Up Arrow\x0d\x0a\x0d\x0a"/ek":"^[OA" # move down\x0d\x0a# Alt-K 向上移動,相當(dāng)于Down Arrow\x0d\x0a\x0d\x0a"/ei":"^?" # left earse one character\x0d\x0a# Alt-I 向左刪除一個(gè)字符,相當(dāng)于Backspace\x0d\x0a\x0d\x0a"/eo":delete-char # right earse one character\x0d\x0a# Alt-O 向右刪除一個(gè)字符,相當(dāng)于Delete\x0d\x0a\x0d\x0a"/en":backward-kill-word # left kill one word\x0d\x0a# Alt-N 向左刪除一個(gè)單詞\x0d\x0a\x0d\x0a"/em":kill-word # right kill one word\x0d\x0a# Alt-M 向右刪除一個(gè)單詞\x0d\x0a\x0d\x0a"/ea":"^[n^[n^[n^[n^[n^[n^[n" # kill to the head\x0d\x0a# Alt-A 刪除當(dāng)前位置到開頭,也就是多Alt-N幾次(A-- ahead)\x0d\x0a\x0d\x0a"/ee":"^[m^[m^[m^[m^[m^[m^[m" # kill to the head\x0d\x0a# Alt-E 刪除當(dāng)前位置到末尾,也就是多Alt-M幾次(E-- end)\x0d\x0a\x0d\x0a"/ep": insert-last-argumem"\x0d\x0a# Alt-P 插入上一個(gè)命令最后一個(gè)參數(shù) (P-- Paste)\x0d\x0a\x0d\x0a"/ew": forward-word\x0d\x0a# 系統(tǒng)默認(rèn)Alt-F (forward)跳到當(dāng)前單詞詞尾,如果已在詞尾,則跳到下一個(gè)單詞(右邊一個(gè)單詞)詞尾\x0d\x0a\x0d\x0a"/eq": backward-word\x0d\x0a# 系統(tǒng)默認(rèn)Alt-B (backward)跳到當(dāng)前單詞詞首,如果已在詞首,則跳到上一個(gè)單詞(左邊一個(gè)單詞)詞首\x0d\x0a\x0d\x0a發(fā)覺F和B鍵離得太遠(yuǎn),不方便,偶分別改作Alt-Q, Alt-W, 但是Alt-F/B照樣可以用\x0d\x0a\x0d\x0a這樣輸入命令的時(shí)候幾乎可以不用離開主鍵盤區(qū),而且移動光標(biāo),刪除字符,刪除單詞,上下歷史命令查找都集中在一塊,比以前方便多了。不過開始可能有些不習(xí)慣,就跟使用vi一樣,但是多練幾次就熟練了。\x0d\x0a\x0d\x0aLinux下絕大部分服務(wù)的配置是基于配置文件的,一般說來,更改了某個(gè)服務(wù)的配置文件,要使其立即生效,還需重啟該服務(wù)直接的或依附的守護(hù)進(jìn)程才行。難道你就不覺得“每次 vi /etc/xxx.conf 完后又 service xxx restart/reload 或 killall -HUP xxx”這樣做很繁瑣么?如果要配置的服務(wù)較多而且要不停地調(diào)試呢?況且我們平常使用Linux時(shí)難免會不時(shí)地終止或啟動某個(gè)服務(wù)進(jìn)程,輸入命令的次數(shù)也不少。如果為每個(gè)服務(wù)都指定一個(gè)熱鍵的話,似乎不大可能。如果我們賦予一個(gè)熱鍵為一個(gè)基本鍵,而相應(yīng)的服務(wù)為其“參數(shù)”,那又如何呢?\x0d\x0a\x0d\x0a舉個(gè)例子,賦予Alt-S (S--Start)為啟動服務(wù)的基本鍵,服務(wù)名的前2個(gè)字符為啟動“參數(shù)”,那么就可以像下面那樣隨意啟動某個(gè)服務(wù)了:\x0d\x0a"/essm":"service smb start/n"\x0d\x0a# /es=Alt-s, sm=smb,\x0d\x0a# 即:按下Alt-s后緊跟著再輸入sm(這時(shí)輸入的sm并不會顯示在終端上),就可以啟動samba的服務(wù)進(jìn)程了,不必?fù)?dān)心按下鍵與輸入“參數(shù)”間的時(shí)間延遲問題,你按下Alt-s,然后去外面兜一圈回來,再接著輸入sm,照樣可以。\x0d\x0a\x0d\x0a"/esht":"service httpd start/n" # ht=httpd,啟動Apache服務(wù)\x0d\x0a\x0d\x0a類似地,我們賦予\x0d\x0aAlt-D(D-- shutDown) 為停止服務(wù)的基本鍵\x0d\x0aAlt-R(R-- Restart) 為重啟服務(wù)的基本鍵\x0d\x0aAlt-T(T-- Status) 為查看服務(wù)狀態(tài)的基本鍵\x0d\x0aAlt-C(C-- Configure) 為打開服務(wù)對應(yīng)的主配置文件的基本鍵\x0d\x0a如:"/ecnf":"vi /etc/exports/n" # Alt-c+nf 打開NFS的配置文件\x0d\x0a"/ecsm":"vi /etc/samba/smb.conf/n" # Alt-c+sm 打開smb的配置文件\x0d\x0a\x0d\x0a如果某個(gè)服務(wù)(如ssh)有2個(gè)配置文件,可以在其后再加一個(gè)數(shù)字,如:\x0d\x0a"/ecssh1":"vi /etc/ssh/sshd_config/n" # 打開sshd服務(wù)端配置文件\x0d\x0a"/ecssh2":"vi /etc/ssh/ssh_config/n" # 打開sshd客戶端配置文件\x0d\x0a\x0d\x0a如果要執(zhí)行某個(gè)應(yīng)用程序呢?可以用Alt-x做基本鍵(x-- eXeccute) 如:\x0d\x0a"/exga":"gaim /dev/null disown clean /n"\x0d\x0a"/exxm":"xmms /dev/null disown clean /n"\x0d\x0a"/exvm":"vmware /dev/null disown clean /n" "/exna":"nautilus /dev/null disown clean /n"\x0d\x0a等等....\x0d\x0a\x0d\x0a到現(xiàn)在為止我們只要按1個(gè)組合鍵+2個(gè)字符就可以實(shí)現(xiàn)下面眾多的功能:\x0d\x0a1. 執(zhí)行指定的應(yīng)用程序\x0d\x0a2. 啟動|重啟|關(guān)閉|指定的服務(wù)進(jìn)程\x0d\x0a3. 查看指定服務(wù)的狀態(tài)\x0d\x0a4. 打開指定服務(wù)的指定配置文件
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)昂仁免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
大于。在linux中,-gt是大于的意思。-eq是等于的意思。-ne是不等于的意思。-ge是大于等于的意思。-lt是小于的意思。-le是小于等于的意思。腳本簡單地說就是一條條的文字命令。
[1] 每兩行合并在一起
@dahuawk 'ORS=NR%2?" ":"\n"{print}'
[2] 每三行合并在一起
@dahuawk 'ORS=NR%3?" ":"\n"{print}'
[3] 每四行合并在一起
@dahuawk 'ORS=NR%4?" ":"\n"{print}'
[4] 統(tǒng)計(jì)std cell和sRam占的面積
@dahusummaryReport
[5] 找出drc的port相關(guān)的數(shù)量
@dahucat postroute_opt.drc | grep -B1 Type: | grep -v Type: | grep "\[" |-
[6] 獲得選中的pin的名字
@innovusdbget selected.name
[7]? 對一個(gè)文件,多目標(biāo)刪除
@dahused -i 's/MODE1\|MODE2\|MODE3\|MODE4\|MODE5//g'
[8] 獲得不規(guī)則fplan的坐標(biāo)組
@innovusdbget top.fplan.boxes
[9] 在某個(gè)目錄下找到帶某個(gè)字符的文件[區(qū)分大小寫]
@dahufind -iname "*tcic*"
[10] 在某個(gè)目錄下,遍歷所有文件內(nèi)容,得到含有某個(gè)字符/字符串的行
@dahugrep -r 'insertion delay' ./
[11] 查看當(dāng)前的INNOVUS版本號
@dahuecho $INVS_VER
[12] 替換某個(gè)目錄下所有文件內(nèi)容
@dahused -i"s/查找的內(nèi)容/替換后的內(nèi)容/g"`grep -rl"查找的內(nèi)容"./`
[13] 在gui界面下highlight某條path
@dahu ctd_trace?-from * ?-to * ?-color *
[14] 引用${REV},為什么采用大括號{}
為了防止引用造成后面錯(cuò)亂。
如:/fs/omp_com_03/RELEASE/top2hlb/R1/HLB_DEF/${REV}/${top}.def.gz
[15] 解壓命令
gzip -d FileName.gz
[16] 換某個(gè)cell的坐標(biāo) {AAA, BBB}
@innovus dbset [dbget top.inst.name XXXXXXXX].pt_x AAA
@innovus dbset [dbget top.inst.name XXXXXXXX].pt_y BBB
@innovus zoomSelected
[17] 設(shè)置某一個(gè)cell不用
@innovus set_dont_touch BUFF false
@innovus set_dont_touch BUFF true
[18] 找某個(gè)性質(zhì)
@innovus dbSet [].?h
[19] 刪去空白行
vim 中:g/^s*$/d
簡單解釋一下:
g :全區(qū)命令
/ :分隔符
^s*$ :匹配空行,其中^表示行首,s表示空字符,包括空格和制表符,*重復(fù)0到n個(gè)前面的字符,$表示行尾。連起來就是匹配只有空字符的行,也就是空行。
/d :刪除該行
[20] echo 寫入帶有雙引號""的內(nèi)容。
echo ‘ “AAAbbb” ’ 1.tcl
[21] echo 寫入帶有單引號‘’的內(nèi)容。
echo “ ‘AAAbbb' ” 1.tcl
[22] keep CPU 數(shù)目
@innovussetMultiCpuUsage -localCpu 16
@innovushistory keep 999999
[23] 打開xlsm文件
openoffice.org 文件
[24] 顯示clock path路徑
@innovus report_timing -to XXX -path_type full_clock
[25]報(bào)出沒有被約束到的path
@innovus report_timing -to XXX -uncounstrained
[26]報(bào)出穿過path中的某一點(diǎn)
@innovus report_timing -to XXX -view
view = MODE + corner
[27] vim 全選(高亮顯示 ):按esc后,然后ggvG或者ggVG
[28]