Как мне ввести n повторений цифры в bash в интерактивном режиме

В итоге мне удалось восстановить этот массив, выполнив следующую команду:

mdadm --create /dev/md126 --level=6 --raid-devices=14 --name=gigantor:128 /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdo /dev/sdm missing missing /dev/sdc /dev/sdb /dev/sdd /dev/sde --assume-clean

Затем я добавил два устройства обратно.

mdadm --add /dev/md126 /dev/sdn
mdadm --add /dev/md126 /dev/sdl

После этого, поскольку информация о LVM также была повреждена, мне пришлось восстановить ее:

pvcreate --uuid "kvEA4X-vobg-2Ipz-ITF1-ZhtW-Ewej-6liKVx" --restorefile /etc/lvm/backup/vg_data /dev/md126
vgcfgrestore vg_data
lvchange -ay /dev/vg_data/lvm0

Затем я попытался xfs_check LVM, и он сказал, что мне нужно запустить ремонт и уничтожить журналы:

xfs_repair -L /dev/mapper/vg_data-lvm0

После этого я смог подключить LVM, и мои данные остались нетронутыми.

Мой LVM восстанавливается.

Personalities : [raid6] [raid5] [raid4]
md126 : active raid6 sdm[14] sdl[7] sdk[15] sdn[6] sdj[5] sdi[4] sdg[2] sde[0] sdf[1] sdh[3] sdc[12] sda[11] sdd[13] sdb[10]
      46882646016 blocks super 1.2 level 6, 512k chunk, algorithm 2 [14/12] [UUUUUUUU__UUUU]
      [==========>..........]  recovery = 53.6% (2097061864/3906887168) finish=2448.0min speed=12321K/sec
      bitmap: 0/30 pages [0KB], 65536KB chunk

md127 : active raid6 sdac[15] sdaa[13] sdz[2] sdab[0] sdq[9] sdy[14] sdx[4] sdr[8] sdp[10] sdo[16] sdv[6] sdu[7] sdw[5] sds[12] sdt[11]
      50789533184 blocks super 1.2 level 6, 512k chunk, algorithm 2 [15/15] [UUUUUUUUUUUUUUU]

unused devices: <none>

Какая боль....

20
11.10.2016, 11:00
1 ответ

Игра с макросами:

Свяжите функциональную клавишу F8 , чтобы умножить на два последнее слово ( вверх на предыдущий пробел) (код клавиши F8 найден с помощью Ctrl-V F8 ):

$ bind '"\e[19~": "\C-w\C-y\C-y"'

Это можно сделать постоянным, отправив тот же текст на ~ / .inputrc

$ echo '"\e[19~": "\C-w\C-y\C-y"' >> ~/.inputrc

, затем введите :

echo 0 F8 F8 F8 F8

, чтобы получить 2 ^ 4 раза больше нуля. (еще 5 нажатий).

или введите:

echo book F8 F8 F8

, чтобы получить 2 ^ 3 книжных слова.

Еще быстрее:

Умножение на 4:

$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y"'

echo 0 F8 F8

3 нажатие клавиши.

Умножить на 8 (то же число, что и у функциональной клавиши)

$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'

echo 00 F8

Еще 3 нажатия клавиши.

Чит?

Чит умножить на 16.

$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'

echo 0 F8

Только 2 нажатия клавиши. (и все еще полезная простая функция)

^^^^^^^^^^^^^^^^ (база 36? Ха!) :-P

Явно обман:

$ bind '"\e[19~": "0000000000000000"'

echo F8

Всего 1 (да: одно ) нажатие клавиши.



Изменение привязки для ctrl + U :

Отправьте это на ~ / .inputrc :

echo '"\C-u": universal-argument >> ~/.inputrc

Перечитайте ~ /.inputrc файл:

ctrl+Xctrl+R

делайте это как обычно в emacs (как вы хотели):

foo --bar = baz ctrl + U 16 ctrl + U 0

7 ключей (после «настройки»).

Немного короче:

Используйте значение по умолчанию «умножить на 4» для «универсального аргумента» и заканчивать на

 ctrl+V 0 

foo --bar = baz ctrl + U ctrl + U ctrl + V 0

Всего 5 клавиш.

Использование alt + n доступа к (arg: n)

 foo --bar=baz Alt+16Ctrl+V0

Это 6 ключей для получения 16 нулей.

Не меняются никакие сочетания клавиш:

Если в вашем bash есть bash C-u убивает текущую набираемую строку .
Это потому, что "\ C-u": привязан к unix-line-discard .

Но это также может помочь:
Когда стирается то, что было перед курсором, оно также помещается в "список уничтожения".

Итак ctrl + u стирает, а ctrl + y возвращает то, что было стерто.
На чистой строке: введите 00 , удалите ее и дважды потяните назад, чтобы получить 0000 .
Повторите, чтобы получить 00000000 (8 нулей), наконец, введите команду и дважды вернитесь назад.

Первый набор (7 клавиш удерживают ctrl нажатым):

00 ctrl+Uctrl+Yctrl+Y ctrl+U 

Второй набор (5 клавиш)

ctrl+Uctrl+Yctrl+Y ctrl+U 

Это приведет к появлению восьми нулей в кольце стирания, затем введите то, что вы хотите:

 foo --bar=baz ctrl-Y ctrl-Y 

, чтобы получить:

foo --bar=baz 0000000000000000

После того, как вы поняли, что вам нужно, вы можете также ввести то, что вам нужно, перейти к началу строки ( ctrl-Y ), сделать, как указано выше (до восьми нули) идти до конца ( ctrl-E ) и дважды дергать.

foo --bar = baz ctrl-A 00 ctrl-U ctrl-Y ctrl-Y ctrl-U ctrl-Y ctrl-Y ctrl-U ctrl-E ctrl-Y ctrl-Y

Это 15 клавиш (помимо самой команды).
Не коротко, я знаю, но это работает только с тем, что было доступно.

Это немного короче:

0000 ctrl-U ctrl-Y ctrl-Y ctrl-Y ctrl-Y ctrl-A foo --bar = baz

Это 11 ключей

3
27.01.2020, 19:44

Теги

Похожие вопросы