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
入門Cureutils
Search
greymd
June 18, 2016
Programming
2.6k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
入門Cureutils
2016/06/18に開催された「jus共催、第5回初心者向けとは言うものの午前のシェル勉強会/第23回梅雨でモワッとしたシェル芸勉強会」で発表したLT資料です。
greymd
June 18, 2016
More Decks by greymd
See All by greymd
Breaking Through Firewalls with Shell-gei
greymd
0
170
狂気!AWS CloudShell細胞分裂!
greymd
0
2.6k
シェル芸人に必要なのは「マスキングテープ」だったのでは
greymd
19
11k
毎日叩ける シェル芸を覚えよう!
greymd
4
4.5k
Other Decks in Programming
See All in Programming
contenteditable と日本語入力に向き合う
colorful12
0
220
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3k
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
110
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
1.9k
最近”作らせてる” ローカルAIアプリの話
akit37
0
500
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
0
160
Jetpack Compose Mechanisms
skydoves
3
880
Groovy as a human and AI friendly programming language
paulk
0
120
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
240
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
260
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
850
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
110
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
433
67k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
860
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
810
Site-Speed That Sticks
csswizardry
13
1.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
440
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
580
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
Transcript
ೖCureutils @grethlen
~$ whoami Yasuhiro Yamada (HN: ͙Ε͞Μ) Twitter: @grethlen ϋΠύʔγΣϧܳΩϡΞΤϯδχΞ ओͳલՊ
• γΣϧܳ x WebεΫϨΠϐϯά (120stock) http://qiita.com/greymd/items/368faf898c161165fee7 • γΣϧܳ x ଟݴޠϚογϡΞοϓ (ͯͿҰҐʣ http://qiita.com/greymd/items/a4ecf8e70f11eb1e5f7 • γΣϧܳ x IoT (͋Γ͕ͪͳIoTܥهࣄ) http://www.slideshare.net/YasuhiroYamada1/arduino-52210988 • γΣϧܳ x Egison (270stock) https://github.com/greymd/egzact ྉཧͰ͖·ͤΜ
ϓϩάϥϛϯάڭҭ *1 https://twitter.com/13Mzawa2/status/741902695712182272/photo/1 2020ΑΓখֶߍ͔Βϓϩάϥϛϯά͕ඞमԽݟࠐΈ γΣϧεΫϦϓτ͔Δখֶੜ *1
ݒ೦.1 ಓ۩ద͔ʁ • ΞϧΰϦζϜ͚ͩڭ͑ͯҝʹͳΔͷ͔ʁ • γΣϧܳͷڭҭ༻πʔϧͱͯ͠ͷ ແବʹߴ͍ϙςϯγϟϧ 1. σʔλߏͷେֶ͞Δɻ ΞϧΰϦζϜ͚ͩͰͳ͍ɻ
2. ײ͞ɻωετ͠ʹ͍͘ɺ ੵΈΛੵΈ্͛Δײ֮ɻ 3. ෦Խͷେ͞ɻ Ұͭͷ෦Ұͭͷ͜ͱΛ͏·͘ɻ → S◦ratchΦϫίϯɻ࣌γΣϧܳ!? vs γΣϧܳͷྫ ڭҭ༻ιϑτͷྫ
ݒ೦.2 ۤखҙࣝͷέΞ ଟ͘ͷڞײʢˢ200RTʣΛੜΜͩ ࠃຽͷΛหͨ͠πΠʔτ*1 *1 https://twitter.com/grethlen/status/722066098758111232
ʲิࢿྉʳϓϦΩϡΞ • ຊ͕ੈքʹތΔ ࠃຽతΞχϝͷҰͭ • 13ઈࢍ์өதʂ ʮຐ๏͔͍ͭϓϦΩϡΞʯ • ςϨϏேܥྻ ༵ே8:30ʙ
γΣϧܳษڧձͷ࣍ͷ ૣ͘ى͖ͯ؍Α͏ *1 http://www.toei-anim.co.jp/tv/precure/ ఱୡ *1
ݒ೦3. ڭһΓ͍ͯΔͷ͔ʁ ্͕Δٕज़ऀͷٻਓഒ*1 Լ͕ΔϓϦΩϡΞͷࢹௌ*2 *1 http://doda.jp/guide/kyujin_bairitsu/#03 *2 http://prehyou2015.hatenablog.com/entry/shichourituichiran → ਂࠁԽ͢ΔएऀͷΩϡΞΤϯδχΞΕɻ
ʲ݁ʳࠓͷຊʹඞཁͳࣄ ʮγΣϧܳ & ϓϦΩϡΞʯ ͳ ٕज़ऀΛ૿͢ɻ
~$ man Cureutils Cureutils ʲ͖Ύ͋ΏʔͪΔͣʳ • ࣍ੈߴΩϡΞITਓࡐཆ༻ίϚϯυूɻ • UNIXॳֶऀͷֶश༻ʹɻ •
ͪΖΜۀʹཱͭɻ • Github: https://github.com/greymd/cureutils • RubyίϚϯυ • rubicure*1ΛґଘϥΠϒϥϦͱͯ͠࠾༻ɻ *1 https://github.com/sue445/rubicure
ಋೖํ๏ RubygemsొࡁΈ *1 • gemͰೖΕΒΕΔɻ $ sudo gem install cureutils
Πϯετʔϧ͢ΔͱcureίϚϯυ͕͑Δɻ • ͍ํͷදࣔɻ $ cure help *1 https://rubygems.org/gems/cureutils
~$ cure precures $ cure precures • ϓϦΩϡΞͷ໊લΛશһग़ྗ *1 *1
ݱࡏ·ͰͷςϨϏγϦʔζͷϝΠϯώϩΠϯͱΩϡΞΤίʔΛؚΊ46ਓɻ ʮΩϡΞʯ͕͔ͭͳ͍ͷؚΉɻΩϡΞ{ϒϥΠτ, ϒϧʔϜ}ͳͲͷ ಉҰਓͰҟ໊ͷϓϦΩϡΞʹͳΔͷഉআɻ೦ͳ͕Βຬͱ܆ؚ·ͣɻ
~$ cure girls $ cure girls • มલͷঁͷࢠͷ໊લΛશһग़ྗ
~$ cure {precures,girls} # ׆༻໘ • ςετ༻μϛʔσʔλ࡞ʹɻ • ৬/ֶߍͰͷ࡞Γʹɻ ʮणݶແݴ͑ΔΜͩɺ͍͢͝Ͷɻ͡Ό͋ϓϦΩϡΞʁʯ
• ࠾༻໘ରࡦʹɻ ʮFizzBuzzͩͤΔΑͶʁ͡Ό͋ϓϦΩϡΞͩͤΔʁʯ ʮ$ cure precuresʯ ʮ͛͐ͬɺγΣϧܳਓʂʯ
$ cure grep (1) $ cat text | cure grep
ࢲΩϡΞϒϥοΫͰ͢ɻ • ϓϦΩϡΞͷ໊લͷΈΛநग़͢Δɻ $ curl -Lso- goo.gl/L3Fp6h | cure grep | head -n 1 ΩϡΞϒϥοΫౖܹͨ͠ɻඞͣɺ… • ύΠϓͰͭͳ͙ͱண৭Λͣ͢ɻ
$ cure grep (2) • ਖ਼نදݱͰPBE͕ར༻Մೳʂ $ cat txt |
cure grep ‘ࢲ[:precure_name:]Ͱ͢ɻ’ ͜Μʹͪɺ ࢲΩϡΞϨϞωʔυͰ͢ɻ • ௨ৗͷBE (Bracket Expression) [:alnum:], [:lower:], [:upper:], [:space:] … • PBE (Precure Bracket Expressin) [:precure_name:] — ϓϦΩϡΞ໊ʹϚον [:human_name:] — ঁͷࢠ໊ʹϚον [:cast_name:] — ༏໊ʹϚον ͳͲ
~$ cure grep (3) γΣϧܳਓ͓ೃછΈͷίϚϯυϥΠϯΦϓγϣϯʂ • -o : Ϛον෦ͷΈग़ྗɻ •
-E : ͨͩͷ֦ுਖ਼نදݱΛ͏ɻ PBEແޮԽɻීஈͷgrepίϚϯυʹมʂ $ cat access.log | cure grep -E '192.168.1.1'
~$ cure grep #׆༻໘ • จষ͔ΒεϜʔζʹϓϦΩϡΞΛநग़ɻ • ࣄͷใࠂॻɺֶߍͷϨϙʔτͳͲɻ • Rubyͷਖ਼نදݱ͕͑Δgrepͱׂͯ͠ͱศར
• ෦ࣜݺͼग़͠*1ͱ͔͑Δ $ echo "aaaa\naabb" | \ cure grep '^(?<name>aa)\g<name>$' aaaa *1 http://docs.ruby-lang.org/ja/1.9.3/doc/spec=2fregexp.html
~$ cure transform • ϓϦΩϡΞΛมͤ͞Δɻ $ echo ‘ࢲͷ໊લेϦίͰ͢ɻ’ | cure
transform ࢲͷ໊લΩϡΞϚδΧϧͰ͢ɻ
~$ cure humanize • ϓϦΩϡΞͷมΛղআ͢Δɻ $ echo ΩϡΞ{ϋʔτ,Τʔε} | cure
humanize ૬ాϚφ ԁѥٱཬ
~$ cure {humanize,transform} # ׆༻໘ • ใͷਖ਼نԽɻ • Ұ୴શͯͷϓϦΩϡΞΛมͤ͞Δɻ •
grepΛ͔͚͘͢͢Δɻ
~$ cure date (1) $ cure date 2016-06-17 21:28:42 ຐ๏͔͍ͭϓϦΩϡΞʂ์өظؒ
• ݱࡏͷ࣌Λදࣔ͢Δɻ • ͦͷ࣌ͷϓϦΩϡΞؔ࿈ͷΠϕϯτදࣔɻ • ࣌์өதͷϓϦΩϡΞɻ • ॳճɾ࠷ऴճ์ө • ϓϦΩϡΞͷੜ • өըͷެ։ ͳͲ
~$ cure date (2) • -d ΦϓγϣϯରԠ $ cure date
-d ‘1 years ago’ • “+”ʹଓ͍ͯͷग़ྗϑΥʔϚοτΛࢦఆՄೳɻ $ cure date ‘+%Y-%m-%d @p’ • %Y : ྐྵ • %m : ݄ 01 - 12 • %d : 01 - 31 • @P : ϓϦΩϡΞؔ࿈ͷΠϕϯτ • ଞͷه๏ରԠ
~$ cure date #׆༻໘ • dateಉ༷ɺϩάͷग़ྗ࣌ࠁͱͯ͠ɻ • ϥΠϑϩάͷΤοηϯεͱͯ͠ɻ • ௨ৗͷdateίϚϯυͱҧ͍
YYYY-mm-dd HH:MM:SS ϑΥʔϚοτͰσϑΥϧτͰग़ྗɻ ͪΐͬͱ͋Γ͕͍ͨɻ
~$ cure echo (1) • ΩϡΞΤίʔͷมޱ্Λग़ྗ͢Δɻ • Φϓγϣϯ • -a
: ߈ܸͷޱ্ΛՃ • -q : ޱ্Λ͙͢ʹදࣔͤ͞Δɻ $ cure echo ΈΜͳͷࢥ͍ΛकΔͨΊʹ # ҎԼུ *1 http://cocoa08.com/anime/4287/ ܶ൛ݶఆͷϓϦΩϡΞ *1
~$ cure echo (2) • ͪΖΜଞͷϓϦΩϡΞʹରԠ • -p ϓϦΩϡΞΛࢦఆͰ͖Δɻ $
cure echo -p sword ϓϦΩϡΞϥϒϦϯΫʂ # ҎԼུ
~$ cure echo #׆༻໘ • ςετ༻μϛʔจষͷੜʹɻ • ҰൠϢʔβ͕rootʹͳΔ࣌ͷܯࠂͱͯ͠ɻ $ echo
“cure echo” >> /root/.bashrc • େ͖ͳྗʢݖݶʣΛ࣋ͬͨ͜ͱΛ֮ࣗͤ͞Δɻ • దٓམͪண࣌ؒ͘Λઃ͚ΒΕΔɻ → Φϖϛεͷݮ
~$ cure janken $ cure janken • ϐΧϦϯδϟϯέϯ͕Ͱ͖Δ • উഊʹΑΓ
ऴྃεςʔλε͕มԽɻ • উར: 0 • ഊ: 1 • ͍͋͜: 2 ϐΧϦϯ͡ΌΜ͚Μ by ΩϡΞϐʔε
~$ cure janken #׆༻໘ • ࣄதͷଉൈ͖ʹɻ • উෛڧ͍ਓ͚͕࣮ͩߦͰ͖ΔεΫϦϓτ࡞ʹɻ • ެฏͳ࡞ۀ୲ʹɻ
$ cure janken && mysql -u user ʮ࠷ॳʹউͬͨਓ͕drop table͠·͠ΐ͏Αɻʯ
ͦͷଞ GithubͰZsh༻ೖྗิεΫϦϓτΛެ։தʂ • Github: https://github.com/greymd/cureutils/blob/ master/etc/cure-completion.zsh RubyΛֶͿͨΊʹ࡞ͬͨͷɻ • RubylistͷํͷϑΟʔυόοΫͬͯ·͢ʂ