SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
— :(){:|:&};: —
• Twitter @obknnt
• ※TL Twitter
• http://blueeyes.sakura.ne.jp/
•
•
• Vim Vim Vim
• EMACS Makes Any Computer Slow
*
• Sublime Text
• Emacs Atom
$ whoami
• PSoC ( )
• CPLD with ARM
• MSP430 (Texas Instruments)
• RX Mac or Linux
• I2CLCD
• GCC Mac
Index
•
•
•
•
•
•
•
•
•
•
•
•
•
•
• QoL
• Micr○ $○ft
•
• ※


•
GUI
CLI
• gcc echo gcc -xc - (
)
•
• OK
OS: macOS Sierra (MacBook Air Early 2014)
Terminal: iTerm2
Shell: Zsh 5.4.1 with GNU coreutils
: https://github.com/shima-529/
dotfiles/
※ Windows 10 Bash on Ubuntu on Windows (
)
•
• - echo
• - python
• - bc
• - sed, tr
• - factor
• - awk, perl
• …
• (standard I/O)
• C stdio.h
• (stderr)
•
• | (Shift + )
•
•
• 1 ( n)
•
1. 1 100
2. file00 file99 .yjsnpi
3. 5, 6, 3, 10, 1
4. 1, 5, 3, 6, 9, 0, 1, 4, 2, 5
5. ( )
6. 1 100000 1
7. hoge()
main
#include <stdio.h>
#include <string.h>
int main(void){
hoge("NULL");
return 0;
}
void hoge(const char *str) {
if( strcmp(str, "NULL") == 0 ) {
printf("NULL NULL n");
}else{
for(int i=0; i<strlen(str); i++) {
printf("%c ", str[i]);
}
}
}
8. echo
(
) 

1. seq 1 100 | factor | awk 'NF==2{print $2}' |
xargs
2. touch file{00..99};

find . | xargs -n1 basename | sed -n 's/^.*$/mv &
&.yjsnpi/e'
3. cat graph | awk '{printf $0 ": ";for(i=0; i<$0;
i++){printf "*"}printf "n"}'
4. echo "1n5n3n6n9n0n1n4n2n5" | sort -n |
uniq -d
5. seq 1 $(tput cols) | awk
'{a=22*(1+sin($1/30));system(sprintf("tput cup %d
%d", a, $1-1));printf "*"}
END{system("clear;sleep 1")}'
6. seq 1 100000 | shuf >data # 

cat data | sort -nr #
7. sed '/main/,/^}/{H;d};$G' hoge.c

Vim ※


vim -es hoge.c +':norm gg}d}Gp' +%p +q!
8. echo | sed -r -ne'p;s/(.)(.*)/
21/#'{1..10}
ド
※) Vim vimshell (https://togetter.com/li/1080646)
(1)
• grep:
• grep -o:
• grep -o . :
• xargs:
• eval:
• sort:
• uniq: 1
• seq: seq inf
• yes:
• yes :
• yes 5 :
(2)
• cat:
• tac:
• rev:
• paste:
• openssl prime: 10
• openssl prime -hex: 16 (0x )
• factor: 10
• nkf:
• wc: ( n )
• wc -l :
• wc -c :
• base64: ==
• file - :
•
• Excel
• Excel
• gnuplot
• csv LaTeX
• LaTeX gnuplot Micr○ $○ft
• (OS)
• 1
• 24
• root
•
•
Docker
※


• echo > /etc/passwd
• :(){:|:&};:
• rm tmp /* */
• echo 'exec sl' > ~/.bashrc
• echo {0000000000..9999999999}
• alias emacs='vim' alias emacs='rm -rf /' sudo ln -s $
(which emacs) $(dirname $(which emacs))/vim
• alias eval='eval eval'; eval
• sudo apt-get remove glibc
• H4sICBmZ4lcAA2VsZgCrd/
VxY2RkZIABJgZmBhAvMcBEyIQBAUwYFBhgquCqgWpAVDMUs4I4AgwMjxvbHjdNftw
4mQuodgcLUHA3SMvOEKD6XbxA1tmGHSCB3QxgNgCMjcoWgwAAAA==	
• 32bit ELF
• 140 (Twitter )
• eval eval ''n='''{1..'$(dc -e 1000vp)'}''' eval eval eval echo
'''''''$(('''''''$n''
'''''*''''''''{2..$
((1000/n))}''''''''))'''
'''';'' | tr ' ' n | sort -n | uniq -u	
• 1000 	
• l='L${r}FR${l}F${l}RF${r}L' r='R${l}FL${r}F${r}LF${l}R' eval eval
eval eval eval eval l= r= eval echo '$l' | { read a; b=${a%%F*};
echo "from turtle import
*;speed(0);pensize(2);ms=min(screensize())*0.8;l=2*ms/(2**$
{#b}-1);up();setpos(-ms,-ms);down();${a}done()"; } | sed 's/L/
lt(90);/g;s/R/rt(90);/g;s/F/fd(l);/g' | python	
• ( )
•
• man
• awk man awk
• – (https://
blog.ueda.tech/?page_id=684)
• 29 Perl ( 1 ) (https://
umidori.github.io/shellgei-29th-am/)
• 30 Perl ( 2 ) (https://
umidori.github.io/shellgei-30th-am/)
• (https://orebibou.com/)
•
- (http://d.hatena.ne.jp/m-hiyama/
20071221/1198221671)
•
• Software Design 2017 1 30
et al
• AWK
•
•
• 30
•
• 30 20
• 27 sed
• https://blog.ueda.tech/?p=9283
• 1
•
•
• 20
• super_unko
- Togetter
(https://togetter.com/li/1145304)
• ( )
• Raspberry Pi
• on Python
•
• GNU Emacs acronym expansions (https://www.gnu.org/fun/jokes/
gnuemacs.acro.exp.html)
• Ver. 1.1 – (https://
blog.ueda.tech/?page_id=1434)
• Vim vimshell
- Togetter (https://togetter.com/li/1080646)
• SHELQ: – (https://
blog.ueda.tech/?p=8862)
• https://steers.jp/c/forkbomb_navy
• T
May you have a happy
ShellGei life!!
Now, we can
:(){:|:&};:
in production!!

Más contenido relacionado

La actualidad más candente

Happy Go Programming Part 1
Happy Go Programming Part 1Happy Go Programming Part 1
Happy Go Programming Part 1
Lin Yo-An
 

La actualidad más candente (20)

When RegEx is not enough
When RegEx is not enoughWhen RegEx is not enough
When RegEx is not enough
 
Naughty And Nice Bash Features
Naughty And Nice Bash FeaturesNaughty And Nice Bash Features
Naughty And Nice Bash Features
 
A CTF Hackers Toolbox
A CTF Hackers ToolboxA CTF Hackers Toolbox
A CTF Hackers Toolbox
 
Tuga IT 2017 - Redis
Tuga IT 2017 - RedisTuga IT 2017 - Redis
Tuga IT 2017 - Redis
 
ClojureScript loves React, DomCode May 26 2015
ClojureScript loves React, DomCode May 26 2015ClojureScript loves React, DomCode May 26 2015
ClojureScript loves React, DomCode May 26 2015
 
Flowchart - Building next gen malware behavioural analysis environment
Flowchart - Building next gen malware behavioural analysis environment Flowchart - Building next gen malware behavioural analysis environment
Flowchart - Building next gen malware behavioural analysis environment
 
Xorg.Confb
Xorg.ConfbXorg.Confb
Xorg.Confb
 
チームメイトのためにdocstringを書こう! pyconjp2019
チームメイトのためにdocstringを書こう! pyconjp2019チームメイトのためにdocstringを書こう! pyconjp2019
チームメイトのためにdocstringを書こう! pyconjp2019
 
ハイパフォーマンスブラウザネットワーキング2
ハイパフォーマンスブラウザネットワーキング2ハイパフォーマンスブラウザネットワーキング2
ハイパフォーマンスブラウザネットワーキング2
 
プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話プログラム実行の話と
OSとメモリの挙動の話
プログラム実行の話と
OSとメモリの挙動の話
 
Go破壊
Go破壊Go破壊
Go破壊
 
ClojureScript for the web
ClojureScript for the webClojureScript for the web
ClojureScript for the web
 
Go for Rubyists
Go for RubyistsGo for Rubyists
Go for Rubyists
 
Java プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線MeetupJava プログラマーのための Swift 入門 #中央線Meetup
Java プログラマーのための Swift 入門 #中央線Meetup
 
Let's Go-lang
Let's Go-langLet's Go-lang
Let's Go-lang
 
Devoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hourDevoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hour
 
Happy Go Programming Part 1
Happy Go Programming Part 1Happy Go Programming Part 1
Happy Go Programming Part 1
 
Atmosphere 2016 - Krzysztof Kaczmarek - Don't fear the brackets - Clojure in ...
Atmosphere 2016 - Krzysztof Kaczmarek - Don't fear the brackets - Clojure in ...Atmosphere 2016 - Krzysztof Kaczmarek - Don't fear the brackets - Clojure in ...
Atmosphere 2016 - Krzysztof Kaczmarek - Don't fear the brackets - Clojure in ...
 
Mysql5.1 character set testing
Mysql5.1 character set testingMysql5.1 character set testing
Mysql5.1 character set testing
 
Nodejs - Should Ruby Developers Care?
Nodejs - Should Ruby Developers Care?Nodejs - Should Ruby Developers Care?
Nodejs - Should Ruby Developers Care?
 

Similar a シェル芸でライフハック(特論)

スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみたスマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
Taro Matsuzawa
 
オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)
Ryousei Takano
 
An Introduction to Go
An Introduction to GoAn Introduction to Go
An Introduction to Go
Cloudflare
 
A Replay Approach to Software Validation
A Replay Approach to Software ValidationA Replay Approach to Software Validation
A Replay Approach to Software Validation
James Pascoe
 

Similar a シェル芸でライフハック(特論) (20)

スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみたスマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboy
 
TypeScript
TypeScriptTypeScript
TypeScript
 
オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)オペレーティングシステム 設計と実装 第3版(20101211)
オペレーティングシステム 設計と実装 第3版(20101211)
 
CPAN 模組二三事
CPAN 模組二三事CPAN 模組二三事
CPAN 模組二三事
 
TDOH x 台科 pwn課程
TDOH x 台科 pwn課程TDOH x 台科 pwn課程
TDOH x 台科 pwn課程
 
An Introduction to Go
An Introduction to GoAn Introduction to Go
An Introduction to Go
 
Python と Docker で mypy Playground を開発した話
Python と Docker で mypy Playground を開発した話Python と Docker で mypy Playground を開発した話
Python と Docker で mypy Playground を開発した話
 
Lpt lopsa
Lpt lopsaLpt lopsa
Lpt lopsa
 
C言語静的解析ツールと Ruby 1.9 trunk
C言語静的解析ツールと Ruby 1.9 trunkC言語静的解析ツールと Ruby 1.9 trunk
C言語静的解析ツールと Ruby 1.9 trunk
 
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
CiklumCPPSat: Alexey Podoba "Automatic assembly. Cmake"
 
Linux Performance Tools 2014
Linux Performance Tools 2014Linux Performance Tools 2014
Linux Performance Tools 2014
 
A Replay Approach to Software Validation
A Replay Approach to Software ValidationA Replay Approach to Software Validation
A Replay Approach to Software Validation
 
Ultimate Unix Meetup Presentation
Ultimate Unix Meetup PresentationUltimate Unix Meetup Presentation
Ultimate Unix Meetup Presentation
 
Monitoring and Debugging your Live Applications
Monitoring and Debugging your Live ApplicationsMonitoring and Debugging your Live Applications
Monitoring and Debugging your Live Applications
 
Ansible docker
Ansible dockerAnsible docker
Ansible docker
 
今日から始めるPlan 9 from Bell Labs
今日から始めるPlan 9 from Bell Labs今日から始めるPlan 9 from Bell Labs
今日から始めるPlan 9 from Bell Labs
 
What has to be paid attention when reviewing code of the library you develop
What has to be paid attention when reviewing code of the library you developWhat has to be paid attention when reviewing code of the library you develop
What has to be paid attention when reviewing code of the library you develop
 
Portable PHP
Portable PHPPortable PHP
Portable PHP
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboy
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

シェル芸でライフハック(特論)

  • 2. • Twitter @obknnt • ※TL Twitter • http://blueeyes.sakura.ne.jp/ • • • Vim Vim Vim • EMACS Makes Any Computer Slow * • Sublime Text • Emacs Atom $ whoami
  • 3. • PSoC ( ) • CPLD with ARM • MSP430 (Texas Instruments) • RX Mac or Linux • I2CLCD • GCC Mac
  • 5. • • • • QoL • Micr○ $○ft • • ※
  • 6.
  • 7. • GUI CLI • gcc echo gcc -xc - ( ) • • OK
  • 8. OS: macOS Sierra (MacBook Air Early 2014) Terminal: iTerm2 Shell: Zsh 5.4.1 with GNU coreutils : https://github.com/shima-529/ dotfiles/ ※ Windows 10 Bash on Ubuntu on Windows ( )
  • 9. • • - echo • - python • - bc • - sed, tr • - factor • - awk, perl • …
  • 10. • (standard I/O) • C stdio.h • (stderr) • • | (Shift + ) • • • 1 ( n) •
  • 11. 1. 1 100 2. file00 file99 .yjsnpi 3. 5, 6, 3, 10, 1 4. 1, 5, 3, 6, 9, 0, 1, 4, 2, 5 5. ( ) 6. 1 100000 1
  • 12. 7. hoge() main #include <stdio.h> #include <string.h> int main(void){ hoge("NULL"); return 0; } void hoge(const char *str) { if( strcmp(str, "NULL") == 0 ) { printf("NULL NULL n"); }else{ for(int i=0; i<strlen(str); i++) { printf("%c ", str[i]); } } }
  • 14. 1. seq 1 100 | factor | awk 'NF==2{print $2}' | xargs 2. touch file{00..99};
 find . | xargs -n1 basename | sed -n 's/^.*$/mv & &.yjsnpi/e' 3. cat graph | awk '{printf $0 ": ";for(i=0; i<$0; i++){printf "*"}printf "n"}' 4. echo "1n5n3n6n9n0n1n4n2n5" | sort -n | uniq -d 5. seq 1 $(tput cols) | awk '{a=22*(1+sin($1/30));system(sprintf("tput cup %d %d", a, $1-1));printf "*"} END{system("clear;sleep 1")}' 6. seq 1 100000 | shuf >data # 
 cat data | sort -nr #
  • 15. 7. sed '/main/,/^}/{H;d};$G' hoge.c
 Vim ※ 
 vim -es hoge.c +':norm gg}d}Gp' +%p +q! 8. echo | sed -r -ne'p;s/(.)(.*)/ 21/#'{1..10} ド ※) Vim vimshell (https://togetter.com/li/1080646)
  • 16. (1) • grep: • grep -o: • grep -o . : • xargs: • eval: • sort: • uniq: 1 • seq: seq inf • yes: • yes : • yes 5 :
  • 17. (2) • cat: • tac: • rev: • paste: • openssl prime: 10 • openssl prime -hex: 16 (0x ) • factor: 10 • nkf: • wc: ( n ) • wc -l : • wc -c : • base64: == • file - :
  • 18. • • Excel • Excel • gnuplot • csv LaTeX • LaTeX gnuplot Micr○ $○ft
  • 19. • (OS) • 1 • 24 • root • • Docker ※
  • 20. 
 • echo > /etc/passwd • :(){:|:&};: • rm tmp /* */ • echo 'exec sl' > ~/.bashrc • echo {0000000000..9999999999} • alias emacs='vim' alias emacs='rm -rf /' sudo ln -s $ (which emacs) $(dirname $(which emacs))/vim • alias eval='eval eval'; eval • sudo apt-get remove glibc
  • 21. • H4sICBmZ4lcAA2VsZgCrd/ VxY2RkZIABJgZmBhAvMcBEyIQBAUwYFBhgquCqgWpAVDMUs4I4AgwMjxvbHjdNftw 4mQuodgcLUHA3SMvOEKD6XbxA1tmGHSCB3QxgNgCMjcoWgwAAAA== • 32bit ELF • 140 (Twitter ) • eval eval ''n='''{1..'$(dc -e 1000vp)'}''' eval eval eval echo '''''''$(('''''''$n'' '''''*''''''''{2..$ ((1000/n))}''''''''))''' '''';'' | tr ' ' n | sort -n | uniq -u • 1000 • l='L${r}FR${l}F${l}RF${r}L' r='R${l}FL${r}F${r}LF${l}R' eval eval eval eval eval eval l= r= eval echo '$l' | { read a; b=${a%%F*}; echo "from turtle import *;speed(0);pensize(2);ms=min(screensize())*0.8;l=2*ms/(2**$ {#b}-1);up();setpos(-ms,-ms);down();${a}done()"; } | sed 's/L/ lt(90);/g;s/R/rt(90);/g;s/F/fd(l);/g' | python • ( ) •
  • 22. • man • awk man awk • – (https:// blog.ueda.tech/?page_id=684) • 29 Perl ( 1 ) (https:// umidori.github.io/shellgei-29th-am/) • 30 Perl ( 2 ) (https:// umidori.github.io/shellgei-30th-am/) • (https://orebibou.com/) • - (http://d.hatena.ne.jp/m-hiyama/ 20071221/1198221671) •
  • 23. • Software Design 2017 1 30 et al • AWK •
  • 24. • • 30 • • 30 20 • 27 sed • https://blog.ueda.tech/?p=9283 • 1 • • • 20
  • 25. • super_unko - Togetter (https://togetter.com/li/1145304) • ( ) • Raspberry Pi • on Python •
  • 26. • GNU Emacs acronym expansions (https://www.gnu.org/fun/jokes/ gnuemacs.acro.exp.html) • Ver. 1.1 – (https:// blog.ueda.tech/?page_id=1434) • Vim vimshell - Togetter (https://togetter.com/li/1080646) • SHELQ: – (https:// blog.ueda.tech/?p=8862) • https://steers.jp/c/forkbomb_navy • T
  • 27. May you have a happy ShellGei life!! Now, we can :(){:|:&};: in production!!