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
シェル芸特論
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
shima-529
July 29, 2018
Programming
500
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
シェル芸特論
shima-529
July 29, 2018
Other Decks in Programming
See All in Programming
気持ちぃ〜角丸 Squircle
ryu1013
0
310
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
360
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Workers Cache を知る
syumai
0
360
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.6k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
190
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
The Rails Doctrine Decade
koic
2
590
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
670
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
550
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
For a Future-Friendly Web
brad_frost
184
10k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
RailsConf 2023
tenderlove
30
1.6k
Abbi's Birthday
coloredviolet
4
10k
エンジニアに許された特別な時間の終わり
watany
109
250k
The Language of Interfaces
destraynor
162
27k
Crafting Experiences
bethany
1
380
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Transcript
— :(){:|:&};: — ਤγΣϧܳΛָ͠ΉࢠͲ ਤţŖŰƅŖŰŜŖ ਤγΣϧܳษڧձ
:0 • PSoC (#!2 )=(2 73 )% • CPLD
with ARM • MSP430(Texas Instruments) +$ • RXMac or Linux <1'9 • ",4-I2CLCD ;&6 % • /8. 5> GCC*Mac
Index • $.(' • ,)/* • 3- •
,"2 • & • 0 , • 1 • , ! • ,! • , • +#%
-51/ • 0 ! "42 • ! "4$ • !
"4+ 88 • 376 (..,QoL&# • Micr◦ $◦ft )'*% • + • ! "4 8
2օ͞Μλʔϛφϧ ͬͯ·͔͢ʁʁʁ "ͳΜ͔ා͍ "ࣗͦ͜·Ͱग़དྷͳͯ͘ʜ "HDD͢ΔͨΊͷιϑτͰ͠ΐʁʁ " 5XJUUFSͱ͔5PHFUUFSͰݟͯΔ͚Ͳ γΣϧܳਓΩϞ͍ "
7JTVBM4UVEJPΈ͍ͨͳ Οϧε࡞ιϑτ͡Όͳ͍ͷʜ ͟Θʜ͟Θʜ ͟Θʜ ͟Θʜ "ઍ༿େͬͯγΣϧܳେֶͰ͠ΐʁʁ ͬͱ༗ޮ׆༻͠Α͏͡Όͳ͍Ͱ͔͢ʂʂ
'$/L • .#(6!)2(&2-D • GUI*2/"H4 O • NB1MJ1+%(,9F" •
CLIIA&.0-8:3@ • K! &.0-8: • gcc echo gcc -xc - E'$/LQ(75G ?>) γΣϧܳͷఆٛ 7FSr ্ాϒϩά IUUQTCMPHVFEBUFDI QBHF@JE ʹΑΔ • <P ;= • C 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 ( )
• ! • - echo
• &" - python • - bc • $ - sed, tr • #% - factor • - awk, perl • …
1; #+7> • 34&(,(standard I/O) • C<= stdio.h •
$34 (,(stderr) • • | (Shift + .!) 9 • 0%34(, .%34&,8 • : '5 • 2/*1:(-)2/¥n) '5: • "*6 '5
7j 1. 1 100_L$8cZ 2. file00 file99$6G
D8IC@ .yjsnpi $5 3. ;b5, 6, 3, 10, 1LAO#-&'0!S< R(/-$6G 4. 1, 5, 3, 6, 9, 0, 1, 4, 2, 54 fd ",2*$J 5. (?F)]Q\)'1N`$KW HT=% 6. 1 100000##1>9U"/1+.,2*$ a:VE #$hi3P e^Mg "[BX$Y"
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]); } } } IPHFD
. 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 "1¥n5¥n3¥n6¥n9¥n0¥n1¥n4¥n2¥n5" | 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/(.)(.*)/¥2¥1/#'{1..10} қ ˒˒˒ มଶ ˒˒˒ ) Vim vimshell (https://togetter.com/li/1080646)
)$9\Mf#."%5(1) • grep: PXOIC H] ^W • grep -o: 4-,
OIC^W • grep -o . : OI Z=(4;0 • xargs: OI Q=(4;0 • eval: OIC`@ A] (4;0K] • sort: *</ %3)7; *</eLa2"<90 RJE[ • uniq: c_] 1 .<+>*</ • seq: bV F]BDseq inf SdNI GY • yes: Sd] G':-' ?TE[ • yes gf'81-': U • yes 38&6!5 : U
$ ,WGd&!+(2) • cat: K@MP15YR • tac: X aYR •
rev: C98^YR • paste: ZJ*,05;XNbV • openssl prime: 10cUJ4A • openssl prime -hex: 05>J16c(0xHe_/[) • factor: 10cU=J2\ • nkf: K@6Q K@#.(?I • wc: XJ"-'(7B¥n"-')K@)'J"-' • wc -l : XJ"-' • wc -c : )'J"-' • base64: ==TK@3L:\]G[ • file - : MP05O` &.%EDYR < L:\]FS
!( • $!3/+ • Excel 444 • Excel 01
*%) • gnuplot • csvLaTeX .#" ' • LaTeX gnuplot - Micr◦ $◦ft , )&2
6M$!1I • F@B9(OS).3#3(3' D: CA • %/3"1
• H<;K $!1I24> • ;K root • ;K 4=+$2 • ,-0EL 5? G6M$!1I Docker;K *&) J 87 ˞ ʲࢼ͞ͳ͍ͰʳةݥγΣϧܳʲҧ๏ ๏ γΣϧܳΛקΊΒΕͨΓɺ ۙͳਓ͕࣋ͬͯ ͍ͨΓ͠·ͤΜ͔ʁʳ 5PHFUUFS·ͱΊ IUUQTUPHFUUFSDPNMJ ʹΑΔ
ةݥγΣϧܳͷྫ ࣮ߦݫې ϚδͰ • echo > /etc/passwd w ೋͱϩάΠϯͰ͖ͳ͘ͳΔ •
:(){:|:&};: w ϓϩηε͕ރׇͯ͠ݻ·Δ ?OΦʔμʔͰ૿৩ • rm tmp /* */ w ίϝϯτͰ͢Αʂ w ϧʔτҎԼશͯআ • echo 'exec sl' > ~/.bashrc w γΣϧΛىಈͨ͠ॠؒؿं͕ͬͯऴ • echo {0000000000..9999999999} w ߦ͝ͱͷॲཧ͕Ͱ͖ͣʹεϫοϓྖҬരൃ • alias emacs='vim' alias emacs='rm -rf /' sudo ln -s $(which emacs) $(dirname $(which emacs))/vim w फڭઓ૪ຄൃෆՄආ • alias eval='eval eval'; eval w FWBM͕࠶ؼతʹ૿৩ͯ͠Կނ͔ͦͷޙϚγϯͷௐࢠ͕ѱ͘ͳͬͨ ܦݧஊ • sudo apt-get remove glibc w ԿʹͰ͖ͳ͘ͳΔ HMJCDͷ࠶ΠϯετʔϧෆՄ
"!3 • H4sICBmZ4lcAA2VsZgCrd/VxY2RkZIABJgZmBhAvMcBEyIQBAUwYFBhgquCqgWpAVDMUs4 I4AgwMjxvbHjdNftw4mQuodgcLUHA3SMvOEKD6XbxA1tmGHSCB3QxgNgCMjcoWgwAAAA== • 01 /-
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 • ').*(&,) • 2 ո͍͠γΣϧܳΩϡϨʔγϣϯαΠτ r ্ాϒϩά IUUQTCMPHVFEBUFDI Q ʹΑΔ
#.W?F 6 • man"+2' • awk "+2'R man awk
• #.W?F8Aa4X – 5P*0! (https://blog.ueda.tech/?page_id=684) 5P`4L • U29B#.W?F8@>][H Perl12,(3<_(U1B) (https://umidori.github.io/shellgei-29th-am/) cMS4L • U30B#.W?F8@>][H Perl12,(3<_(U2B) (https://umidori.github.io/shellgei-30th-am/) cMS4L • 9Q:G^ (https://orebibou.com/) )$L • #.-%/ & C=NY - JDKE+,bVZ (http://d.hatena.ne.jp/m- hiyama/20071221/1198221671) • 7!3!.;OTIQ\A
2 % • Software Design 2017$1*" 30+
.8 et al 3&567/ • 2 9AWK)0(4 !' 31,/ • #- .8 3&567/
#!&L8B, • EAQ0 • <7*D@.30* • ;3 •
30+(20+;3 • I27?sed #!&L8B,<7 • >RNJ https://blog.ueda.tech/?p=9283 • 1>2FK6 • "&)%4 /*%' • 1:6PO5 • 4-=$&M CG203H9
#/ ! • super_unko )1.'( - Togetter
(https://togetter.com/li/1145304) • ($"+ !)/ & %*! • Raspberry Pi • on Python • 0,-
.:25 • GNU Emacs acronym expansions (https://www.gnu.org/fun/jokes/gnuemacs.acro.exp.html) • ';09 Ver.
1.1 – ,7#) (https://blog.ueda.tech/?page_id=1434) • Vim ';vimshell8-< 6 43 - Togetter (https://togetter.com/li/1080646) • SHELQ: 1 ';%(+ &*" – ,7#) (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!!