Shell 小技巧一則

2021-05-25 13:38:44 字數 1358 閱讀 5151

經常與 shell 為伍的你是不是也會經常碰到下面這些情境:@vern 兄攢寫

1$ mv /somewhere/file /your/folder/

2$ vi /your/folder/file

要儲存某些檔案到特定目錄,然後開始檢視/編輯

1$ cp /somewhere/foo.c /somewhere/foo.c.orig

2$ vi /somewhere/foo.c

或者先備份某個檔案,然後開始搗鼓

1$ tar zcvf archives.tgz /somewhere/folder /and/somewhere/file1 /and/somewhere/file2

2$ scp archives.tgz [email protected]:~/blabla/

或者要打包某些目錄/檔案,然後上傳什麼的。在上面這些情境中,當你輸入第二條命令時,可以試試像這樣:

1$ mv /somewhere/file /your/folder/

2$ vi alt-.file

按住 alt 再按點,你會發現上一條命令的最後乙個引數已經被自動輸入了,繼續輸入 file 回拆。

1$ cp /somewhere/foo.c /somewhere/foo.c.orig

2$ vi alt-1+alt-.

先按 alt 再按數字鍵 1,保持 alt 鍵不鬆,再按點,幫助你補全上乙個命令的第乙個引數。

1$ tar zcvf archives.tgz /somewhere/folder /and/somewhere/file1 /and/somewhere/file2

2$ scp alt-2+alt-. [email protected]:~/blabla/

先按 alt 再按數字鍵 2,保持 alt 鍵不鬆,再按點,自動補全上乙個命令的第二個引數。

用 zsh 的同學要設定一下,5 個應該足夠了。

bindkey 「^[1″  digit-argument

bindkey 「^[2″  digit-argument

bindkey 「^[3″  digit-argument

bindkey 「^[4″  digit-argument

bindkey 「^[5″  digit-argument

bindkey 「^[-」  neg-argument

這些個數字引數在使用時,bash 是從左往右正數的,zsh 是從後往前逆數的。即

$ touch 1a 2b 3c 4d 5e

bash 的 alt-1 是 1a,alt-2 是 2b。zsh 的 alt-1 是 5e,alt-2 是 4d,alt–1 (alt-負1) 是 1a,alt–2 (alt-負2) 是 2b。

省時省力 Shell小技巧一則

經常與 shell 為伍的你是不是也會經常碰到下面這些情境 1 mv somewhere file your folder 2 vi your folder file要儲存某些檔案到特定目錄,然後開始檢視 編輯 1 cp somewhere foo.c somewhere foo.c.orig 2 ...

duilib list效率優化小技巧一則

經常有人問list資料量上萬的時候,更新效率很低的問題 事實上,對任何介面庫,資料量大到一定程度,優化都是必須的 有人提出了虛擬視窗的方法,就是list只維護少數item,滾動的時候根據顯示範圍調整這幾個item的顯示屬性。這也是個優化方法,而且能夠處理的資料量級理論上非常大。不過這種方法不是太通用...

Linux find 命令使用小技巧一則

今天需要清理一下原來每日構建產生的一些用來存放包的目錄,這些目錄名字是按照一定規則存放,比如 dailybuild module name yyyy mm dd 這裡考慮僅需要儲存最近5天的dailybuild,對於早於5天的目錄執行刪除操作。檢視了一下find命令說明,可以 使用 type d 引...