Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ASCII art oneliner
Search
MSR
October 29, 2016
Technology
2.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ASCII art oneliner
アスキーアート(突然の死、slコマンド、端末画面ぐちゃぐちゃ)をワンライナーでやってみた
※完全版
MSR
October 29, 2016
More Decks by MSR
See All by MSR
horizon
msr_i386
0
1.5k
fujiaire by shell
msr_i386
0
1.2k
colaboratory
msr_i386
0
190
yes command faster
msr_i386
0
470
Amazon Dash Hack
msr_i386
0
1.4k
cgroup
msr_i386
0
1.5k
discover fork-bomb
msr_i386
0
2k
kanji banner
msr_i386
0
2k
QR Code Shell
msr_i386
0
2.4k
Other Decks in Technology
See All in Technology
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
1k
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
Why Agent Cost Needs Observability
nttcom
0
140
2026-09-08 そのJavaモダナイゼーション、AIに丸投げで大丈夫?IBM Bobで変わる品質と効率
yutanonaka
1
140
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
170
手を動かして実感する、Kiro が変える開発体験
inariku
0
140
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
120
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
530
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
4
700
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
110
C#未経験の僕がAIに読めるコードを書かせるまで
maguroalternative
0
240
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
340
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
280
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
580
sira's awesome portfolio website redesign presentation
elsirapls
0
420
Leo the Paperboy
mayatellez
10
2.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Writing Fast Ruby
sferik
630
63k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
Transcript
ΞεΩʔΞʔτ ϫϯϥΠφʔ @ୈ25ճγΣϧܳษڧձ େࡕαςϥΠτ (2016.10.29) MSR (@msr386)
࣍ ➤ ࣗݾհ ➤ ࠓ·Ͱͷল ➤ ΞεΩʔΞʔτͳγΣϧܳ (όφʔܳ) ➤ ಥવͷࢮ
➤ slίϚϯυ ➤ λʔϛφϧը໘Λ͙ͪΌ͙ͪΌʹ͢Δ ➤ ·ͱΊ
ࣗݾհ ➤ ϋϯυϧωʔϜ: MSR (@msr386) ➤ C++ϓϩάϥϛϯάɺαʔόʔӡ༻͕ಘҙ ➤ ٻ৬த ➤
Chromium Contributor (1ճ͚ͩ) ➤ Webϒϥβ࡞͍ͬͯ·͢ (http://app.tungsten-start.net/)
ࠓ·Ͱͷল
͜Ε·Ͱͷࣗͷओͳ LTൃදΛৼΓฦΔͱ
(1)Χφμͷങ͍ΓVPSͷհ ӡ༻ʹ͑ͳ͍͚ͲγΣϧܳ࿉ʹͽͬͨΓ?
(2) QRίʔυγΣϧܳ? QRةݥγΣϧܳ / QRίʔυγΣϧܳͷՄೳੑΛࡧ
΄ͱΜͲγΣϧܳͱ ؔͳ͍͡ΌΜ (ΨνͷγΣϧܳΖ͏ͥ)
࠷ۙͷόφʔܳͱ͍͏ ྲྀߦʹΓ
ΞεΩʔΞʔτγΣϧ ܳΛΓ·͢
1. ಥવͷࢮ
?P? ɹɹc ɹɹ
ʘ ?P? ɹʘc ɹɹɹʼ
ʻ ?P? ʼ ɹࡾ ࡾ ʻʉʉʼ
Є ?P? ɹʻ ʼάΩο ʻʉʉʼ
ʊਓਓਓਓʊ ʼಥવͷࢮʻ ʉ:?:?:?:ʉ
ಥવͷࢮ ➤ 2012ࠒɺͱ͋Δܝࣔ൘ʹॻ͖ࠐ·Εͨͷ͕ݩωλͱݴΘΕ͍ͯΔ ➤ ࠷ޙͷғΈจࣈͷΞεΩʔΞʔτ͚͕ͩΑ͘ΘΕ͍ͯΔ ➤ 2013ʹTwitterͰվߦίʔυ͕ରԠ͔ͯ͠Βڻҟతʹ֦ࢄ ➤ ओͳಛ ➤
൚༻ੑͷߴ͞ ➤ ΞεΩʔΞʔτͷ୯७͞ ➤ ݟͨͷྗڧ͞ ➤ ʮಥવͷࢮδΣωϨʔλʔʯͱ͍͏໊લͰWebαʔϏεԽɺiOSAndroid͚ʹΞϓ ϦԽ͞Ε͍ͯΔ
ಥવͷࢮɹγΣϧεΫϦϓτ൛͕ଘࡏ ➤ γΣϧεΫϦϓτ͋Δ (https://fumiyas.github.io/2013/12/25/echo-sd.sh-advent-calendar.html) $ echo -e "crontab -r\n突然の危険シェル芸" |
echo-sd -s --center _人人人人人人人人人人人_ > crontab -r < > 突然の危険シェル芸 < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $ $ echo-sd -v 縦書き _人人_ > 縦 < > 書 < > き < ‾Y^Y^‾ $
ಥવͷࢮɹγΣϧεΫϦϓτ൛͕ଘࡏ ➤ ॎॻ͖ɺɺετϨεൃੜաఔϞʔυɺπΠʔτػೳͳͲػೳ͕๛ $ echo-sd --stress "crontab: no crontab for
root" あれ?中身消えてる "(historyの結果) 334 sudo crontab -r" "eとr押し間違い!バック アップない!!" 危険シェル芸 crontab: no crontab for root ↘ あれ?中身消えてる ⾫ (historyの結果) 334 sudo crontab -r ↘ eとr押し間違い!バックアップない!! ⾫ _人人人人人人人人_ > 危険シェル芸 < ‾Y^Y^Y^Y^Y^Y^Y^Y^‾ $ echo-sd --tanzaku ":(){ :|:& };:" ┏-┷-┓ ┃ ‥ ┃ ┃ ⏜ ┃ ┃ ⏝ ┃ ┃ ⏞ ┃ ┃ ┃ ┃ ‥ ┃ ┃ | ┃ ┃ ‥ ┃ ┃ & ┃ ┃ ┃ ┃ ⏟ ┃ ┃ ; ┃ ┃ ‥ ┃ ┗━━┛
ϫϯϥΠϯ࣮ɺ։࢝
࢝ΊΔલʹ ୯७ԽͷͨΊʹɺҎԼͷΑ͏ͳखൈ͖Λ͠·͢ ➤ ෯ϑΥϯτʹಛԽ ➤ 1ߦ͚ͩରԠ ෳߦͰߟྀ͖͢͜ͱ͕૿͑ΔͨΊ ➤ શ֯จࣈ͚ͩରԠ ֯จࣈͱΓ͋͑ͣແࢹ͢Δ
➤ LANG=ja_JP .UTF-8 લఏ LANGʹΑΓจࣈܭࢉ͕͓͔͘͠ͳΒͳ͍Α͏ʹ͢ΔͨΊ
੍࡞աఔ 1. ಛΛଊ͑Δ _人人人人人人_ > 突然の死 < ‾Y^Y^Y^Y^Y^Y^‾ ಥવͷࢮɺจࣈʹԠ্ͯ͡෦ɺԼ෦ͷจࣈ͕มԽ͢Δ →্෦ʮਓʯͱԼ෦ʮY^ʯΛશ֯1จࣈʹରͯ͠1ݸͣͭ૿ͤΑ͍
੍࡞աఔ 2. จࣈΛௐΔʹ? awkͷlength()Λ༻͢Δ for (i=0; i<length()+2; i++) { up=up
"ਓ"; dn=dn "Y^" } ※+2ࠨӈͷه߸ͱ༨ന 3. printfͰܗ͢Δ printf("ʊ%sʊ\nʼɹ%sɹʻ\nʉ%sʉ\n", up, $0, dn)
ಥવͷϫϯϥΠφʔ୯७൛ $ echo 突然の死 | awk \ '{for(i=0;i<length()+2;i++) \ {up=up
"人"; dn=dn "Y^"} printf( \ "_%s_\n> %s <\n‾%s‾\n", \ up, $0, dn)}'
ಥવͷϫϯϥΠφʔ୯७൛ɹ࣮ߦྫ $ echo 突然の死 | awk '{for(i=0;i<length()+2;i++){up=up "人"; dn=dn "Y^"}
printf("_%s_\n> %s <\n‾%s‾\n", up, $0, dn)}' _人人人人人人_ > 突然の死 < ‾Y^Y^Y^Y^Y^Y^‾ $ $ echo Hankakuだとずれる | awk '{for(i=0;i<length()+2;i++){up=up "人"; dn=dn "Y^"} printf("_%s_\n> %s <\n‾%s‾\n", up, $0, dn)}' _人人人人人人人人人人人人人人_ > Hankakuだとずれる < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $
ಥવͷϫϯϥΠφʔ୯७൛ͷಛͱ ಛ ➤ awkҰൃܳ ➤ πΠʔτՄೳ(112จࣈ) ➤ ֯จࣈࠞ͟ΔͱͣΕΔͷखൈ͖͠ա͗͡Όͳ͍? ֯จࣈͰͣΕΔݪҼɺawkͷlength()ͷ༷
➤ LANGڥมʹґଘ ➤ ja_JP .UTF-8ͷ߹ɺશ֯֯1Λฦ͢ ➤ ͳΒɺશ֯2ɺ֯1ΛฦͤͣΕͳ͍ΑͶ?
ಥવͷϫϯϥΠφʔվྑ൛ $ echo 突然の死 | awk \ '{for(i=1;i<=length();i++){ \ len+=(substr($0,i,1)~/[\x01-\x7E]/)?1:2}
\ for(i=0;i<len/2+2;i++){ \ up=up "人";dn=dn "Y^"} \ printf("_%s_\n> %s <\n‾%s‾\n", \ up,$0,dn)}'
ಥવͷϫϯϥΠφʔվྑ൛ɹ࣮ߦྫ $ echo 突然のワンライナーEx | awk '{for(i=1;i<=length();i++){len +=(substr($0,i,1)~/[\x01-\x7E]/)?1:2}for(i=0;i<len/2+2;i++){up=up "人";dn=dn "Y^"}printf("_%s_\n> %s <\n‾%s‾\n",up,$0,dn)}'
_人人人人人人人人人人人人_ > 突然のワンライナーEx < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $ $ echo Hankakuでもずれは最小限 | awk '{for(i=1;i<=length();i++){len +=(substr($0,i,1)~/[\x01-\x7E]/)?1:2}for(i=0;i<len/2+2;i++){up=up "人";dn=dn "Y^"}printf("_%s_\n> %s <\n‾%s‾\n",up,$0,dn)}' _人人人人人人人人人人人人人人_ > Hankakuでもずれは最小限 < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $
ಥવͷϫϯϥΠφʔվྑ൛ͷಛ ➤ վળ ➤ ͕֯ࠞͬͯͣ͟Εͳ͍ ➤ վѱ ➤ πΠʔτෆՄ
վྑ൛ͷղઆ ➤ awkΛܗ͢Δͱ͜ͷΑ͏ʹͳΔ { for(i = 1; i <= length();
i++) { len += ( substr($0,i,1) ~/[\x01-\x7E]/ ) ? 1 : 2 } for(i = 0; i < len / 2 + 2; i++) { up = up "ਓ"; dn = dn "Y^" } printf("ʊ%sʊ\nʼɹ%sɹʻ\nʉ%sʉ\n", up, $0, dn) }
վྑ൛ͷղઆ (1.) for(i = 1; i <= length(); i++) {
len += (substr($0,i,1)~/[\x01-\x7E]/) ? 1 : 2 } (2.) for(i = 0; i < len / 2 + 2; i++) { up = up "ਓ"; dn = dn "Y^" } (3.) printf("ʊ%sʊ\nʼɹ%sɹʻ\nʉ%sʉ\n", up, $0, dn) 1. จࣈΛऔಘ 1จࣈͣͭऔΓग़͠ɺจࣈ͕UTF-8Ͱ1όΠτ จࣈͰ͋Δ߹1ɺͦΕҎ֎2ͱ͢Δɻ UTF-8ͷ1όΠτจࣈɺ0x01ʙ0x7eؚ͕· Ε͍ͯΔ͔Ͳ͏͔Ͱఆ͢Δɻ 2. ্෦ʮਓʯɺԼ෦ʮY^ʯΛจࣈʹԠͯ͡ ૿͢ ૿͢શ֯ج४Ͱ͋Δ͜ͱʹҙ 3. printfͰܗ
͞ΒͳΔվྑͷಓ ➤ ෳߦରԠ ➤ ϧʔϓճΛݮΒ͢ͳͲͷ࠷దԽ ➤ awkΛΘͳ͍ํ๏ ➤ etc. ➤
ͬͱ͍͍ํ๏͋ΔͣͳͷͰɺՋͳͱ͖ʹνϟϨϯδ͠·͠ΐ͏
൪֎ฤ _人人人人人人人_ > 突然のSEGV < ‾Y^Y^Y^Y^Y^Y^Y^‾
൪֎ฤ ➤ SEGVͰམͪͨɾɾɾ༷? $ awk --version GNU Awk 4.1.3, API:
1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0) <ҎԼུ> $ echo ಥવͷSEGV | awk '{print $0~/[\x00-\x7F]/}' 1 $ echo ಥવͷSEGV | awk '{print $0~/[\x00-\x80]/}' awk: ίϚϯυϥΠϯ:1: க໋తΤϥʔ: ෦Τϥʔ: ηάϝϯςʔγϣϯҧ Aborted (core dumped) $
2. SLίϚϯυ
LSͷ͋Δ͋Δ ➤ lsͱೖΕΑ͏ͱͯ͠ $ sl -l sl: command not found
$ ➤ lʮ͔ͯ͠͠ʯ sʮΘͨͨͪ͠ʯ ҎԼུ ➤ lsͱؒҧ͑ͯslͬͯೖΕͪΌͬͨʂͱ͍͏͋Δ͋Δ͔Βɺslͱ͍͏δϣʔΫίϚϯ υ͕ੜͨ͠
SLίϚϯυͷ͍ྺ࢙ ➤ 1987ɺUNIXχϡʔεάϧʔϓfj.sourceʹॳొ(࡞ऀՎਖ਼͞Μ) ➤ 1993ɺ๛ాਖ਼࢙͞Μ(ݱࡏɺ।ڭत)͕slίϚϯυΛϦϦʔε ͨͩͷδϣʔΫίϚϯυ͔ΒΩʔλΠϓڲਖ਼ίϚϯυʹਐԽ ➤ 1990ޙʙ LinuxσΟετϦϏϡʔγϣϯʹࡌ͞ΕΔΑ͏ʹͳΔ ➤
2000ɺslͷվ൛͕ొ ➤ དྷͰ30प!
SLίϚϯυͷಛ ➤ Ctrl+C (SIGINT) Λԡͯ͠தஅ͠ͳ͍ ΩʔλΠϓڲਖ਼͕త͔ͩΒ ➤ lsΑΓ࣮ߦ͕࣌ؒΔ͔ʹ͍ ΩʔλΠϓڲਖ਼͕త͔ͩΒ ➤
Φϓγϣϯ͕lsʹࣅ͍ͯΔ Ωʔt δϣʔΫίϚϯυ͔ͩΒ
SLίϚϯυΛγΣϧܳͰ
݅ ➤ ݩωλͷΞεΩʔΞʔτΛϕʔεͱ͢Δ o o o ____ --
|OO| _||__| | | | /-O=O O=O-- ➤ ंྠճΒͳ͍ ➤ ৠؾݻఆ͔ͭग़ͬͺͳ͠ ➤ ӈ͔Βࠨಈ͕͘ɺؿंશମৗʹදࣔͤ͞Δ ➤ Ctrl+C༗ޮ (ΩʔλΠϓڲਖ਼͕తͰͳ͍͔Β)
γΣϧܳखॱ̍ AAΛ1ߦʹ $ echo -e " o \n o \n
o ____\n -- |OO|\n _||__| |\n | |\n/-O=O O=O--" o o o ____ -- |OO| _||__| | | | /-O=O O=O-- $
γΣϧܳखॱ̎ ӈ٧Ί͢Δ ڥʹԠͯ͡ tput colsɺBSDܥͳΒ tput coɺBashͳΒecho $COLUMNS Ͱͷ෯͕ औಘͰ͖Δ
$ echo $COLUMNS 120 awkͷ-vΦϓγϣϯͰγΣϧมΛ͠ɺεΫϦϓτͷprintfͰӈ٧Ίͤ͞Δ $ echo -e " o \n o \n o ____\n -- |OO|\n _||__| |\n | |\n/-O=O O=O--" | awk -v col=$COLUMNS '{printf("%" col "s\n", $0)}'
γΣϧܳखॱ̏ ӈ٧Ίͷ෯ΛݮΒ͍͖ͯ͠ɺ for ; do ; doneΛ༻͢Δ $ for ((i=$COLUMNS;
i>=11; i--)); do clear; echo -e " o \n o \n o ____\n -- |OO|\n _||__| |\n | |\n/-O=O O=O--" | awk -v col=$i '{printf("%" col "s\n", $0)}'; sleep 0.06; done
͞ΒͳΔվྑͷಓ ➤ ͍͖ͳΓݱΕ͍͖ͯͳΓࢭ·ΔͷͰɺྻंࣄނͷΑ͏ʹݟ͑Δ ˞ݩωλΓڈΔ ➤ ʹΑͬͯͪΒͭ͘͜ͱ͕͋Δ ➤ Ctrl-CΛແޮʹ͢ΔʹͲ͏ͨ͠Β͍͍? ➤ etc.
➤ ͬͱ͍͍ํ๏͋ΔͣͳͷͰɺՋͳͱ͖ʹνϟϨϯδ͠·͠ΐ͏(2ճ)
SLίϚϯυ൪֎ฤ(1) lsʹࣅͨΦϓγϣϯଘࡏ͢Δ ➤ $ sl -a HELP! ➤ $ sl
-F ඈΜͩʂ ➤ $ sl -l ͪͬ͞ʂ ➤ $ sl -c C51ͩʂ(Α͘Βͳ͍) ➤ $ sl -aFlc શ෦ͤʂ
SLίϚϯυ൪֎ฤ(2) ➤ slίϚϯυͷιʔείʔυgithubʹɻϓϧϦΫͰ͞ΒʹਐԽ ➤ վ൛ͬͱ͍͢͝ ʮSL վܭըʯhttp://www.izumix.xyz/sl/ ʢύονద༻ࡁʣhttp://qiita.com/gm_kou/items/2840a6670dc2e733d00a ٬ं૿ͨ͠Γɺ౿ग़͖ͯͨΓɺSL͕ԟ෮ͨ͠Γɺ͕όϥόϥͩͬͨΓ͍Ζ͍Ζ δϣʔΫίϚϯυͷྖҬΛ͑ͨ࡞
➤ GistʹژٸԽύον͕͋Δ https://gist.github.com/poochin/1423262 # SL͡Όͳ͍͡ΌΜʂͱ͍͏ͳಥࠐΈ͝ԕྀ͍ͩ͘͞
3.λʔϛφϧը໘Λ ͙ͪΌ͙ͪΌʹ
λʔϛφϧը໘Λ͙ͪΌ͙ͪΌʹ ➤ ANSIΤεέʔϓγʔέϯεΛ͏͜ͱͰɺจࣈʹ৭Λ͚ͭͨΓɺഎܠ৭Λม͑ͨΓ ͕Ͱ͖Δ ➤ ͜ΕΛར༻ͯ͠ɺը໘Λ͙ͪΌ͙ͪΌʹ͢Δ͜ͱ͕Մೳ
എܠ৭Λม͑ΔANSIΤεέʔϓγʔέϯε ➤ എܠ৭Λม͑ΔΤεέʔϓγʔέϯε(جຊ8৭) ESC[ʻ40ʙ47ʼm 40: ࠇ, 41: , 42: ,
43: ԫ, 44: ੨, 45: Ϛθϯλ, 46: γΞϯ, 47: ന ※ʹΑΓ৭ඍົʹҟͳΔ ➤ എܠ৭Λม͑ΔΤεέʔϓγʔέϯε(256৭) ESC[48;5;ʻ৭൪߸ʼm 48: ֦ுഎܠ৭; 5: 256৭ΠϯσοΫεΧϥʔ; ৭൪߸: 0ʙ255Λࢦఆ ➤ ΤεέʔϓγʔέϯεͷϦηοτίʔυ (͜Ε͕ͳ͍ͱ৭͕Ϧηοτ͞Εͳ͍) ESC[0m
➤ echoίϚϯυͰ"\e"Λ͏ ※"\e"Λೝࣝ͠ͳ͍ڥ͋Δ ➤ printfίϚϯυͰ"\033"Λ͏ $ printf
"\033[45m%s\033[0m\n" Ϛθϯλ ANSIΤεέʔϓγʔέϯε͖Ͱදࣔ Ϛθϯλ $ echo -e “\e[46mγΞϯ\e[0m] γΞϯ
λʔϛφϧը໘͙ͪΌ͙ͪΌɹ˞ $ clear; while :; do c=`expr $RANDOM % 256`;
echo -en "\e[48;5;$ {c}m \e[0m"; done
λʔϛφϧը໘͙ͪΌ͙ͪΌɹվྑ൛ ➤ echo ➤ printf
※ൈ͚Δʹsleep 500Λফ͔͢Ctrl+CͰ $ clear; for color in `od -vAn -tu1 -N $(($COLUMNS*$LINES)) < /dev/urandom` ; do echo -en "\e[48;5;${color}m \e[0m"; done; sleep 500 $ clear; for color in `od -vAn -tu1 -N $(($COLUMNS*$LINES)) < /dev/urandom` ; do printf "\033[48;5;${color}m \033[0m"; done; sleep 500
ղઆ 1. 0ʙ255·ͰͷཚΛऔಘ odͱ/dev/urandomΛ༻͢Δ $ od -vAn -tu1 -N 1
< /dev/urandom 15 2. ͷը໘͍ͬͺ͍ʹͳΔΑ͏ʹɺܻ * ߦճ͚ͩཚΛऔಘ͢Δ $ od -vAn -tu1 -N $(($COLUMNS*$LINES)) < /dev/urandom 241 178 43 211 3 255 29 178 181 247 234 112 157 18 152 29 3. ΤεέʔϓγʔέϯεͰ৭Λม͑ͤ͞Δ $ echo -en “\e[48;5;${color}m \e[0m” $ printf “\033[48;5;${color}m \033[0m” 4. 2.ͰٻΊͨ݁ՌΛforͰճͤ
·ͱΊ ➤ ಥવͷࢮδΣωϨʔλʔͱslίϚϯυͳͲΛϫϯϥΠφʔͰ࣮ݱ ➤ awkͷ൚༻ੑΕͳ͍ ➤ δϣʔΫίϚϯυΛγΣϧܳͰ࣮ݱͤ͞Δͷָ͍͠ ➤ ͬͱ͍͍ํ๏͋ΔͣͳͷͰɺՋͳͱ͖ʹνϟϨϯδ͢ΔͷΑ͍ͱࢥ͍·͢