Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20140529_nanapistudy_vol2_pub.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
wadap
May 29, 2014
Technology
1
3k
20140529_nanapistudy_vol2_pub.pdf
wadap
May 29, 2014
Tweet
Share
More Decks by wadap
See All by wadap
20200311_コネヒト_リモートワークを支える文化
wadap
2
2.7k
副業が難しいと思う理由
wadap
3
660
2016-11-10_chuo_university
wadap
2
3.8k
how_to_survive.pdf
wadap
0
110
how_to_choose_technology
wadap
7
4.3k
nanapiの会社風土と文化づくり
wadap
2
23k
20140826_nanapi_engineer_culture_pub.pdf
wadap
2
150
nanapiの開発現場をどのようにして回しているか
wadap
40
11k
nanapi TechBlog
wadap
1
7k
Other Decks in Technology
See All in Technology
Databricks Free Edition講座 データエンジニアリング編
taka_aki
0
2.8k
Git Training GitHub
yuhattor
1
270
3リポジトリーを2ヶ月でモノレポ化した話 / How I turned 3 repositories into a monorepo in 2 months
kubode
0
100
ファシリテーション勉強中 その場に何が求められるかを考えるようになるまで / 20260123 Naoki Takahashi
shift_evolve
PRO
3
330
これまでのネットワーク運用を変えるかもしれないアプデをおさらい
hatahata021
4
270
re:Inventで見つけた「運用を捨てる」技術。
ezaki
1
140
AI に「学ばせ、調べさせ、作らせる」。Auth0 開発を加速させる7つの実践的アプローチ
scova0731
0
370
書籍執筆での生成AIの活用
sat
PRO
1
200
3分でわかる!新機能 AWS Transform custom
sato4mi
1
130
会社紹介資料 / Sansan Company Profile
sansan33
PRO
13
400k
人はいかにして 確率的な挙動を 受け入れていくのか
vaaaaanquish
4
2.4k
Azure SRE Agent x PagerDutyによる近未来インシデント対応への期待 / The Future of Incident Response: Azure SRE Agent x PagerDuty
aeonpeople
0
110
Featured
See All Featured
How GitHub (no longer) Works
holman
316
140k
The Invisible Side of Design
smashingmag
302
51k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Six Lessons from altMBA
skipperchong
29
4.1k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.5k
Leo the Paperboy
mayatellez
4
1.3k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Automating Front-end Workflow
addyosmani
1371
200k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Transcript
nanapi ษڧձ vol2 - Shellษڧձ - nanapi CTO Shuichi Wada
/ @wadap
• ࣮·ͩ2ճΊͷnanapiओ࠵ ͷษڧձͰ͢ • ಛʹςʔϚͳ͘ɺͦͷ࣌ʹ ڵຯ͋Δ͜ͱͰΓ·͢ • લճ։ൃڥʹ͍ͭͯ͢ ͷΛΓ·ͨ͠ nanapiษڧձͱʁ
ࣗݾհ • ాमҰ / @wadap • 1981ੜ·Ε • גࣜձࣾnanapi Co-Founderʢڞಉۀऀʣ
औక ࣥߦһ CTO • αʔόΠϯϑϥʙαʔόαΠυ։ൃ͕ಘҙ • ݱࡏͰΠϯϑϥपΓͷϝΠϯΤϯδχΞ
ຊͷςʔϚ
None
λʔήοτ • γΣϧૢ࡞ΛݟΒΕͯɺޙΖͷਓʹ͔ͭΕͨਓ • ͍ͭͷۀΛΑΓ͘ɺޮΑ࣮͘ߦ͍ͨ͠ਓ • γΣϧͷૢ࡞ʹࣗ৴͕ͳ͍ਓ
ͲΜͳ৬छʁ • ։ൃͷԆઢͰUnix/Linux৮ͬͯΔΤϯδχΞ • ͕ͬͭΓUnix/Linux৮ͬͯΔΤϯδχΞ • ΤϯδχΞ͡Όͳ͍ʢσβΠφʔͱ͔ʣ
ຊ
ຊͳ͢͜ͱ ϫϯϥΠφʔͰTIFMM͠Α͏ FNBDT͔ΒTIFMMΛ͏͍͔ͭ͘ͷํ๏
ຊͳ͢͜ͱ ϫϯϥΠφʔͰTIFMM͠Α͏ FNBDT͔ΒTIFMMΛ͏͍͔ͭ͘ͷํ๏
͜Μͳ͜ͱͬͯ·ͤΜ͔ʁ $ cd /path/to/dir $ ls foo bar buzz $
mv foo foo.bak $ mv bar bar.bak $ mv buzz buzz.bak
shellscriptʹ͢Δͱ͜͏ #!/bin/sh ! LIST=$(ls /path/to/dir) for i in $LIST do
mv $i{,.bak} done
1ߦͰΔͱ͜Μͳײ͡ for i in $(ls /path/to/dir); \ do mv $i{,.bak};
done
for͕͑ΔͱḿΔ • shellૢ࡞ͬͯ܁Γฦ͠࡞ۀଟ͍ • forΛ͔ͭͬͨॻ͖ํ͕છΈ͚Δͱ͍͍ • ίϚϯυஔΛҾʹͱΔͱศར
$ dig s.nanapi.jp $ dig p.nanapi.jp $ dig m.nanapi.jp υϝΠϯʴIPΞυϨεͷ
ରԠදͭ͘Γ͍ͨ
υϝΠϯʴIPΞυϨεͷ ରԠදͭ͘Γ͍ͨ for i in m p s ; \
do host $i.nanapi.jp ; \ done | grep addr | \ awk '{print $1" "$4}'
࿈൪ϑΝΠϧͭ͘Γ͍ͨ • seqίϚϯυ -w ͰθϩຒΊͱ͔Ͱ͖Δ • {1..10}Έ͍ͨͳهड़ʢݺͼํෆ໌ʣ • {a..z}ͱ͔Ͱɺঢॱɾ߱ॱͰ͑Δ
࿈൪ϑΝΠϧ࡞Γ͍ͨ for i in $(seq -w 1 1 100); do
touch file_$i.txt; done
ຊͳ͢͜ͱ ϫϯϥΠφʔͰTIFMM͠Α͏ FNBDT͔ΒTIFMMΛ͏͍͔ͭ͘ͷํ๏
ͳͥemacsʁ • emacs͕͖͔ͩΒ • shellͷૢ࡞σϑΥϧτͰemcasΩʔόΠϯυ • vimͬͯͯɺshellૢ࡞ͦͷ··͍͡Δਓଟ͍
emacs + shell • emacsͷ্ʹ͍ͯɺshell͍͍ͨͱ͖͋Δ • σΟϨΫτϦͭͬͨ͘Γͱ͔ɺϑΝΠϧૢ࡞ͱ͔ • diredҰ୴͓͍͓ͯ͜͏ •
IDEҰ୴͓͍͓ͯ͜͏
ผλʔϛφϧ
• CTRL + z Ͱbackgroud • γϯάϧΟϯυͰͰ͖Δ • emacsͰϠϯΫͨ͠จࣈྻ ͔ͭͬͯshell͍͍ͨ
• λʔϛφϧͰͷίϐϖͳ͊ • tmux/screen͔ͭ͏ͷͳ͊ -nwݶఆ background
• ୯ൃར༻ͳΒ͜Ε͕ศར • scriptॻ్͍ͯͯதͰ࣮ߦͨ͠ Γ͍ͨ͠ͱ͖ͱ͔ • ͔ͨ͠ඪ४Ͱ͑ͨͣ M-! shell-command
• elispͰ࣮͞ΕͯΔshell • lsίϚϯυͳΒɺem-ls.el͕ݺ Ε͍ͯΔ • ͍͘͢͝ʹ͍͘͠ɺ͋͑ͯ Θͳ͍͍ͯ͘ͱࢥ͏ • ศརͳ͍ํ͋Δͷ͔ͳɾɾɾ
M-x eshell
• Լ෦ʹshellઐ༻Οϯυ͕ ग़ͯ͘Δ • F6ʹׂΓͯͯɺදࣔɾඇද ࣔΛτάϧͤͯ͞Δ • ඞཁͳͱ͖͚ͩʹ͔ͭ͑Δͷ Ͱ͘͢͝ศར shell-pop.el
ຊͷ·ͱΊ • ϫϯϥΠφʔͰॻ͘ͱ͍Ζ͍ΖḿΔ • ͱ͘ʹforศརͳͷͰखบʹͳΔͱ͍͍ײ͡ • emacsͷ͕ଟͯ͘͢Έ·ͤΜ
None