前言 由於業務需要,需要多台雲伺服器,但是公有雲的帶寬價格不菲,所以不可能給所有的雲伺服器都配上公網IP,一方面是成本的問題,另一方面也是公網安全的問題。 所以通過其它的方式使用無公網的雲伺服器來來實現對外資源的訪問。 一、操作步驟 至少需要有一臺具有公網IP的雲伺服器! 1、開啟ECS的路由轉發功 ...
[20231109]bash shell快捷鍵alt+number的問題.txt
--//前一陣子,我想實現12行合併1行的輸出,理論講要使用paste命令加入12個- .輸入命令時候要數輸入了多少-.我知道bash shell有一
--//個快捷鍵alt+number可以產生連續輸入某個字元,但是我一直不知道如何關掉這個功能.有時候誤觸發這個功能,有一些版本每次輸入1
--//個字元相當於輸入多個,我不知道如何關閉,出現這樣情況我基本選擇關閉會話,重新登陸.
--//比如輸入:
$ seq 12 | paste - - - -
--//可以這樣操作,輸入:
seq 12 | paste <alt-4>-
--//然後移動回去加入空格.
--//有一些版本存在bug,比如你再使用方向鍵向左移動,相當於移動向左移動4個字元.使用完成後必須關閉它.
--//打入一個字元會出現4個相同字元的情況.
--//我測試一下,發現使用<ALT+`>可以關閉,好像這個問題存在於早期bash shell版本中。
# man bash
Numeric Arguments
digit-argument (M-0, M-1, ..., M--)
Add this digit to the argument already accumulating, or start a new argument. M-- starts a negative argument.
--//怎麼還能輸入負數,不理解,負數實際上反向操作。
111 222 333<alt + 3><esc><backspae> --//假設游標在最後,刪除3個詞。
111 222 333<alt + - 3><esc><backspae> --//假設游標在1的位置,也能實現相同效果。
universal-argument
This is another way to specify an argument. If this command is followed by one or more digits, optionally with a
leading minus sign, those digits define the argument. If the command is followed by digits, executing
universal-argument again ends the numeric argument, but is otherwise ignored. As a special case, if this command
is immediately followed by a character that is neither a digit nor minus sign, the argument count for the next
command is multiplied by four. The argument count is initially one, so executing this function the first time makes
the argument count four, a second time makes the argument count sixteen, and so on.
通用參數
這是指定參數的另一種方法。如果此命令後面跟著一個或多個數字,或者帶有前導負號,則這些數字將定義該參數。如果命令後面跟著數
字,則執行通用參數再次結束數字參數,否則將忽略。作為一種特殊情況,如果這個命令緊接著是一個既不是數字也不是負號的字元,下
一個命令的參數計數乘以4。參數計數最初是1,所以第一次執行這個函數使參數數4,第二次使參數數16,以此類推。
--//不理解?怎麼意思。
--//如果你需要輸出12 個1,如何操作呢?要輸入ctrl+v.
--//<alt+1+2>,<ctrl+v> 1 .
--//另外我還看了一些blog,發現一個技巧就是利用它輸入前面輸入的參數.
--//假設先執行如下命令:
$ echo 1 2 3
1 2 3
$ echo 4 5 6
4 5 6
$ echo 7 8 9
7 8 9
--//要實現echo 1 5 9,可以這樣操作.
<alt+0> <alt+.> --//顯示echo,輸入空格
<alt+1> <alt+...> --//顯示1,輸入空格
<alt+2> <alt+..> --//顯示5,輸入空格
<alt+3> <alt+.> --//顯示9,回車執行.
--//最後一步可以使用<alt+.>顯示最後一個參數.我個人很少使用這個功能,我喜歡在inputrc定義<insert>鍵抽取最後1個參數。
"\e[2~": yank-last-arg # insert
--//有一些功能類似vim.比如
$ echo 0123456
--//想刪除123456 6個字元,可以這樣輸入:
<alt+6> <backspace>
<alt+-> 6 <del>
<alt+-> 6 <ctrl+d>
--//負數表示反向操作的意思。
--//鏈接上有一些介紹:
https://qastack.cn/programming/562115/press-alt-numeric-in-bash-and-you-get-arg-numeric-what-is-that
--//我前面的測試產生12個-.如果要實現輸入12個-加空格,如何操作呢?
$ seq 24 | paste - <alt+2><backspace> <alt+12><ctrl+y>
--// 先<alt+2><backspace> ,刪除"- ",記入緩存。
--// 然後<alt+12><ctrl+y>,抽取緩存12次。
--// 我的測試無效!!不知道那位有什麼好方法.