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
シェル芸入門
Search
ishiy1993
May 30, 2017
Programming
950
0
Share
シェル芸入門
CAMPHOR- 「CLIについて語る会」における発表資料
ishiy1993
May 30, 2017
Other Decks in Programming
See All in Programming
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
250
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
230
Java 21/25 Virtual Threads 소개
debop
0
340
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
120
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
310
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
130
iOS機能開発のAI環境と起きた変化
ryunakayama
0
170
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
290
Nuxt Server Components
wattanx
0
260
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
270
まかせられるPM・まかせられないPM / DevTech GUILD Meetup
yusukemukoyama
0
110
AIエージェントで業務改善してみた
taku271
0
500
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Between Models and Reality
mayunak
3
260
Practical Orchestrator
shlominoach
191
11k
Agile that works and the tools we love
rasmusluckow
331
21k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
330
Exploring anti-patterns in Rails
aemeredith
3
310
[SF Ruby Conf 2025] Rails X
palkan
2
930
Transcript
γΣϧܳೖ ishiy 2017.05.28
$ whoami • Twitter: @ishiy1993 • Arch Linux • Zsh
• urxvt • Neovim ͜ͷεϥΠυதͷྫ্هͷڥͰςετ͍ͯ͠·͢ɻ Mac ͷਓɺ”GNU coreutils”ΛΠϯετʔϧͯ͠༻͍ͯͩ͘͠͞ɻ
͓͠ͳ͕͖ • γΣϧܳͱ • γΣϧܳͷجຊɺίπ • Α͘͏ίϚϯυ 8 બ •
͓͢͢Ίॻ੶ɺγΣϧܳษڧձ
γΣϧܳͱ ϚεΘͣɺιʔείʔυͣ͞ɺGUI πʔϧΛ্ཱͪ͛ Δؒͳ͘ɺ͋ΒΏΔௐࠪɾܭࢉɾςΩετॲཧΛ CLI ͷ ίϚϯυೖྗҰܸऴΘΒ͢͜ͱɻ͋Δ͍ͦͷͱ͖ͷίϚϯυೖ ྗͷ͜ͱɻ from https://blog.ueda.tech/?page
id=1434 ҰݴͰ͍͏ͱɺγΣϧϫϯϥΠφʔ
γΣϧܳͷجຊ ύΠϓ | ͰίϚϯυΛͭͳ͍ͰΓ͍ͨ͜ͱΛ࣮ݱ͢Δ ྫ: P ͔Β͡·Δϓϩάϥϛϯάݴޠ? $ cat programming
-languages.txt | grep ’^P’ PHP Perl Python PureScript ύΠϓʹΑͬͯ୯ػೳͳίϚϯυΛࣗ༝ʹΈ߹ͤΒΕΔ!!!
γΣϧܳͷίπ ଟ͘ͷίϚϯυߦʹରͯ͠࡞༻͢Δ ⇒ ͏·͘σʔλΛมܗͯ͠ѻ͏ ྫ: LICENSE ͱ͍͏ϑΝΠϧதʹ࠷සޠԿ͔? ·ͨԿݸ͋Δ͔? $ cat
LICENSE | tr ’A-Z’ ’a-z’ | xargs -n 1 | tr -d ’,.()’ | sort | uniq -c | sort -k1 ,1nr | head -1
Α͘͏ίϚϯυ8બ ࠓճհ͢Δͷ • cat • sort • uniq • grep
• xargs • tr • sed • awk
cat ϑΝΠϧͷதΛ࿈݁ͯ͠ग़ྗ͢Δ $ cat sample1.txt sample2.txt -Ͱඪ४ೖྗΛࢦఆͰ͖Δ $ date +%F
| cat sample1.txt sample2.txt -
sort, uniq sort: ೖྗΛιʔτͯ͠ग़ྗ͢Δ $ cat programming -languages.txt | sort
Α͘͏Φϓγϣϯ: k, n, r, s uniq: ॏෳΛݟ͚ͭΔɺআ͢Δ $ cat programming -languages.txt | sed ’s/\(.\).*/\1/ ’ | sort | uniq -c Α͘͏Φϓγϣϯ: u, d, c
grep ݅ʹϚον͢ΔߦΛग़ྗ͢Δ $ grep "^.*$" * Α͘͏Φϓγϣϯ: E, i, v,
o, A, B, C $ cat LICENSE | grep -o the $ seq 1 100 | grep -C 2 1
xargs ඪ४ೖྗΛίϚϯυͷҾʹ͢ $ ls *.txt | awk ’{print $1 ,$1".bak"}’
| xargs -n 2 cp γΣϧܳਓత͍ํ $ seq 1 9 | xargs -n 3
tr จࣈΛஔ͢Δɺআ͢Δ $ cat presen.csv | tr ’,’ ’ ’
Α͘͏Φϓγϣϯ: d, c $ cat /dev/urandom | tr -dc ’1-9’ | fold -w 4 | head -1
sed ετϦʔϜΤσΟλʔ ͍Ζ͍ΖͰ͖Δ͕ɺจࣈྻͷஔʹ͏͜ͱ͕ଟ͍ $ echo " x x ʹ ͭ
͍ ͯ ޠ Δ ձ " | sed ’s/xx/CLI/’ $ seq 1 100 | sed ’0~3s/.*/ Fizz/’ | sed ’0~5s/.*/ Buzz/’ | sed ’0~15s/.*/ Fizz Buzz/’
awk ϓϩάϥϛϯάݴޠ جຊతͳ͍ํ $ cat presen.csv | tr ’,’ ’
’ | awk ’{print $1" ʮ" $2" ʯ ʹ ͭ ͍ ͯ ͠ · ͢"} ’ $ seq 1 10 | awk ’NR >=5’ $ seq 1 10 | awk ’NR %3==0{ print $1*$1}’ $ seq 1 100 | factor | awk ’NF ==2{ print $2}’
հͰ͖ͳ͔ͬͨίϚϯυͨͪ ࠓճհͨ͠Ҏ֎ʹ͞·͟·ͳίϚϯυ͕͋Δɻ ͦͷҰ෦Λྻڍ͓ͯ͘͠ɻ • find • diff • paste •
curl • wget • jq • nkf • ͳͲͳͲ
͓͢͢Ίॻ੶ • ্ా ོҰ ʮγΣϧϓϩάϥϛϯά࣮༻ςΫχοΫʯ • Piro(݁༸ࢤ) ʮ·Μ͕ͰΘ͔Δ Linux γεܥঁࢠʯ
• Piro(݁༸ࢤ) ʮ·Μ͕ͰΘ͔Δ Linux γεܥঁࢠ 2ʯ ͬͱγΣϧͰ͍Ζ͍ΖΓ͍ͨͱ͍͏ํʹ 1 CLI Λ͍͡Ί͔ͨΓͱ͍͏ํʹ 2,3 Λ͓͢͢Ί͠·͢ɻ ͋ͱ man ΛಡΉͷ͓͢͢Ί͠·͢ɻ
γΣϧܳษڧձ • 2ϲ݄ʹ 1 ճ։࠵ (౦ژɺେࡕɺԬ) • γΣϧܳͰΛղ͘ • YouTube
ͰϥΠϒ৴͍ͯ͠Δ • Twitter(#γΣϧܳ) ͰΓ্͕͍ͬͯΔ • աڈҰཡ: https://blog.ueda.tech/?page id=684
·ͱΊ γΣϧܳΛۦͯ͠࡞ۀޮΛ্͠Α͏!!!
Thank you.