Fabric: open_shell์ด โ€‹โ€‹nano ๋˜๋Š” vim์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2018๋…„ 02์›” 17์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: fabric/fabric

nano์™€ ํ•จ๊ป˜ open_shell()์„ ์‚ฌ์šฉํ•  ๋•Œ ์ด ์ด์ƒํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™”์‚ดํ‘œ ํ‚ค๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์ชฝ ํ™”์‚ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฒซ ๋ฒˆ์งธ ๋ˆ„๋ฅผ ๋•Œ ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š๊ณ  ๋‘ ๋ฒˆ์งธ ๋ˆ„๋ฅผ ๋•Œ ๋ฌธ์ž 'A'๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” vim์—์„œ๋„ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์˜ showkey -๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋™์ž‘์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ํ˜„์žฌ Fabric3 1.14.post1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

## When Ran with open_shell(command='nano  /home/pi/.piHoleRestore/01-pihole.conf.old')
# THen I exit the Nano Editor

pi<strong i="10">@raspberrypi</strong>:~$ showkey -a


^[       27 0033 0x1b # Up First arrow Key Press
[        91 0133 0x5b # Up Second Arrow Press
A        65 0101 0x41 #
^[       27 0033 0x1b # Down First arrow Key Press
[        91 0133 0x5b # Down Second Arrow Press
B        66 0102 0x42 #
^[       27 0033 0x1b # Left First arrow Key Press
[        91 0133 0x5b # Left Second Arrow Press
D        68 0104 0x44 # 
^[       27 0033 0x1b # Right First arrow Key Press
[        91 0133 0x5b # Right Second Arrow Press
C        67 0103 0x43 #


# WHen ran with normal ssh session

pi<strong i="11">@raspberrypi</strong>:~$ showkey -a


^[[A     27 0033 0x1b # Up Arrow
         91 0133 0x5b
         65 0101 0x41
^[[D     27 0033 0x1b # Down Arrow
         91 0133 0x5b
         68 0104 0x44
^[[B     27 0033 0x1b # Left Arrow
         91 0133 0x5b
         66 0102 0x42
^[[C     27 0033 0x1b # Right Arrow
         91 0133 0x5b
         67 0103 0x43

๋ชจ๋“  5 ๋Œ“๊ธ€

https://github.com/fabric/fabric/issues/196 ์„ ์ฐธ์กฐ
์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€?) ๋ฌธ์ œ. ๋‚˜๋Š” ์•ฝ๊ฐ„์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ์œ ์šฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค
๋ฌธ์„œํ™”๋˜์—ˆ์ง€๋งŒ. ์ œ ์ž์‹ ์ด ์ •๋ง ์งœ์ฆ๋‚ฉ๋‹ˆ๋‹ค.

2018๋…„ 2์›” 16์ผ ์˜คํ›„ 11์‹œ 48๋ถ„์— "John McGrath" [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

nano์™€ ํ•จ๊ป˜ open_shell()์„ ์‚ฌ์šฉํ•  ๋•Œ ์ด ์ด์ƒํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™”์‚ดํ‘œ ํ‚ค๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์œ„์ชฝ ํ™”์‚ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ,
์˜ˆ๋ฅผ ๋“ค์–ด ์ฒซ ๋ฒˆ์งธ ๋ˆ„๋ฅผ ๋•Œ ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š๊ณ  ๋‘ ๋ฒˆ์งธ ๋ˆ„๋ฅผ ๋•Œ
๋ฌธ์ž 'A'

์ด ๋ฌธ์ œ๋Š” vim์—์„œ๋„ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

showkey -a ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ๋•Œ ์›€์ง์ž„์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜์—.

์ €๋Š” ํ˜„์žฌ Fabric3 1.14.post1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

open_shell(command='nano /home/pi/.piHoleRestore/01-pihole.conf.old')๋กœ ์‹คํ–‰ํ–ˆ์„ ๋•Œ

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋…ธ ํŽธ์ง‘๊ธฐ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

pi@raspberrypi :~$ ์‡ผํ‚ค -a

^[ 27 0033 0x1b # ์œ„์ชฝ ์ฒซ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ํ‚ค ๋ˆ„๋ฆ„
[ 91 0133 0x5b # ์œ„์ชฝ ๋‘ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ๋ˆ„๋ฅด๊ธฐ
A 65 0101 0x41 #
^[ 27 0033 0x1b # ์•„๋ž˜์ชฝ ์ฒซ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ํ‚ค ๋ˆ„๋ฆ„
[ 91 0133 0x5b # ์•„๋ž˜์ชฝ ๋‘ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ๋ˆ„๋ฅด๊ธฐ
B 66 0102 0x42 #
^[ 27 0033 0x1b # ์™ผ์ชฝ ์ฒซ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ํ‚ค ๋ˆ„๋ฆ„
[ 91 0133 0x5b # ์™ผ์ชฝ ๋‘ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ๋ˆ„๋ฅด๊ธฐ
D 68 0104 0x44 #
^[ 27 0033 0x1b # ์˜ค๋ฅธ์ชฝ ์ฒซ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ํ‚ค ๋ˆ„๋ฆ„
[ 91 0133 0x5b # ์˜ค๋ฅธ์ชฝ ๋‘ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ๋ˆ„๋ฅด๊ธฐ
C 67 0103 0x43 #

์ผ๋ฐ˜ ssh ์„ธ์…˜์œผ๋กœ ์‹คํ–‰ํ–ˆ์„ ๋•Œ

pi@raspberrypi :~$ ์‡ผํ‚ค -a

^[[A 27 0033 0x1b # ์œ„์ชฝ ํ™”์‚ดํ‘œ
91 0133 0x5b
65 0101 0x41
^[[D 27 0033 0x1b # ์•„๋ž˜์ชฝ ํ™”์‚ดํ‘œ
91 0133 0x5b
68 0104 0x44
^[[B 27 0033 0x1b # ์™ผ์ชฝ ํ™”์‚ดํ‘œ
91 0133 0x5b
66 0102 0x42
^[[C 27 0033 0x1b # ์˜ค๋ฅธ์ชฝ ํ™”์‚ดํ‘œ
91 0133 0x5b
67 0103 0x43

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/fabric/fabric/issues/1719 , ๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABUzl55nzK_drLV4Q8bYs9Azzn1UXZHzks5tVnY2gaJpZM4SJN4T
.

ํ•ด๋‹น ๋ฌธ์ œ ๊ธฐ๋ก์„ ์ฝ์œผ๋ฉด์„œ ์ž ์žฌ์ ์œผ๋กœ ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ์ˆ˜์ • ์‚ฌํ•ญ์€
์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฑ ํ•œ ์ค„์ž…๋‹ˆ๋‹ค.

2018๋…„ 2์›” 19์ผ ์˜ค์ „ 10์‹œ 56 ๋ถ„์— "Brian Peterson"

https://github.com/fabric/fabric/issues/196 ์„ ์ฐธ์กฐ
IIRC๊ฐ€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์—†์•ด์Šต๋‹ˆ๊นŒ?) ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์–ด๋Š์ •๋„ ์žˆ์œผ๋ฉด ์œ ์šฉํ•  ๊ฒƒ ๊ฐ™์•„์š”
๋ฌธ์„œํ™” ๋œ ๋ฌธ์ œ. ์ œ ์ž์‹ ์ด ์ •๋ง ์งœ์ฆ๋‚ฉ๋‹ˆ๋‹ค.

2018๋…„ 2์›” 16์ผ ์˜คํ›„ 11์‹œ 48๋ถ„์— "John McGrath" [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

nano์™€ ํ•จ๊ป˜ open_shell()์„ ์‚ฌ์šฉํ•  ๋•Œ ์ด ์ด์ƒํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™”์‚ดํ‘œ ํ‚ค๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์œ„์ชฝ ํ™”์‚ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ,
์˜ˆ๋ฅผ ๋“ค์–ด ์ฒซ ๋ฒˆ์งธ ๋ˆ„๋ฅผ ๋•Œ ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š๊ณ  ๋‘ ๋ฒˆ์งธ ๋ˆ„๋ฅผ ๋•Œ
๋ฌธ์ž 'A'

์ด ๋ฌธ์ œ๋Š” vim์—์„œ๋„ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

showkey -a ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ๋•Œ ์›€์ง์ž„์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜์—.

์ €๋Š” ํ˜„์žฌ Fabric3 1.14.post1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

open_shell(command='nano /home/pi/.piHoleRestore/01-pihole.conf.old')๋กœ ์‹คํ–‰ํ–ˆ์„ ๋•Œ

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋…ธ ํŽธ์ง‘๊ธฐ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

pi@raspberrypi :~$ ์‡ผํ‚ค -a

^[ 27 0033 0x1b # ์œ„์ชฝ ์ฒซ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ํ‚ค ๋ˆ„๋ฆ„
[ 91 0133 0x5b # ์œ„์ชฝ ๋‘ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ๋ˆ„๋ฅด๊ธฐ
A 65 0101 0x41 #
^[ 27 0033 0x1b # ์•„๋ž˜์ชฝ ์ฒซ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ํ‚ค ๋ˆ„๋ฆ„
[ 91 0133 0x5b # ์•„๋ž˜์ชฝ ๋‘ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ๋ˆ„๋ฅด๊ธฐ
B 66 0102 0x42 #
^[ 27 0033 0x1b # ์™ผ์ชฝ ์ฒซ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ํ‚ค ๋ˆ„๋ฆ„
[ 91 0133 0x5b # ์™ผ์ชฝ ๋‘ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ๋ˆ„๋ฅด๊ธฐ
D 68 0104 0x44 #
^[ 27 0033 0x1b # ์˜ค๋ฅธ์ชฝ ์ฒซ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ํ‚ค ๋ˆ„๋ฆ„
[ 91 0133 0x5b # ์˜ค๋ฅธ์ชฝ ๋‘ ๋ฒˆ์งธ ํ™”์‚ดํ‘œ ๋ˆ„๋ฅด๊ธฐ
C 67 0103 0x43 #

์ผ๋ฐ˜ ssh ์„ธ์…˜์œผ๋กœ ์‹คํ–‰ํ–ˆ์„ ๋•Œ

pi@raspberrypi :~$ ์‡ผํ‚ค -a

^[[A 27 0033 0x1b # ์œ„์ชฝ ํ™”์‚ดํ‘œ
91 0133 0x5b
65 0101 0x41
^[[D 27 0033 0x1b # ์•„๋ž˜์ชฝ ํ™”์‚ดํ‘œ
91 0133 0x5b
68 0104 0x44
^[[B 27 0033 0x1b # ์™ผ์ชฝ ํ™”์‚ดํ‘œ
91 0133 0x5b
66 0102 0x42
^[[C 27 0033 0x1b # ์˜ค๋ฅธ์ชฝ ํ™”์‚ดํ‘œ
91 0133 0x5b
67 0103 0x43

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/fabric/fabric/issues/1719 , ๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABUzl55nzK_drLV4Q8bYs9Azzn1UXZHzks5tVnY2gaJpZM4SJN4T
.

@bepetersn ๋‚˜๋ฅผ ์œ„ํ•ด ์ด๊ฒƒ์„

์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด. ์—ฌ๊ธฐ์—์„œ io.py๋ฅผ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

https://github.com/fabric/fabric/pull/1389/commits/8efbff173cdbc5f6f84eb7caeab12b8e1bfded22

์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด Fabric V2์— ์ ์šฉ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋งˆ๊ฐ ๋ฌธ์ œ

์—ญ์‚ฌ์  ์ฐธ๊ณ ๋กœ, ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ž‘์—…์€ Invoke ๋ฐ ๊ณง ์ถœ์‹œ๋  Fabric 2์—์„œ ํ›จ์”ฌ ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ํ•ด๋‹น ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ run() ๋ฅผ ํ†ตํ•ด vim์„ ์ผ์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰