SlideShare a Scribd company logo
1 of 19
bash(の変な使い方)update
シェル芸勉強会の方から来ました
上田 隆一
本日引用したツイート、その他関連ツイートまとめ
https://togetter.com/li/1394143
自己紹介(=謝罪)
• LLイベントで暴れてきてすみませんでした
• 今日も行儀が悪いです
2019/8/24 LL2019 2
ビール瓶を持ち暴れる
(2012年)
酒乱の称号獲得
(2015年)
任意のホストにsshで
rm –rf /(2009年)
お知らせ
• bashでCMSを作る本(改訂2版)を書きました
2019/8/24 LL2019 3
こんなサイトが作れます
いくらでもサインします!!!1
本日の話: language updateというテーマですが・・・
• bash自体の更新はゆるやか
• 2016年9月15日: bash-4.4
• 2019年1月7日: bash-5.0
• bash(やシェル)の進化は文法だけではない
• シェルはコマンドが9割
• 普通の言語との共通点: ライブラリに相当
• 普通の言語との相違点: シェル愛とは全く関係なく増殖
2019/8/24 LL2019 4
シェル芸botでコマンド増殖の様子が観察できる
シェル芸bot
@minyoruminyon
• 誕生日: 2017年6月22日
• 作者: ふるつき氏 @theoldmoon0602 作
• 機能
• フォロワーが「#シェル芸」とつけてコマンドをツイート
すると標準出力をツイート
• セキュリティー関係はシェル芸界隈で常時検証
2019/8/24 LL2019 5
SGWeb(https://shellgei-web.net)
• 誕生日: 2019年8月1日
• 作者: @kekeho 氏
• シェル芸botの下書きなど
の用途
• 誰でも試せます
• これから出てくるコマンド
を叩いてみてください
2019/8/24 LL2019 6
💩系コマンドの進化
• 某氏がシェル芸botで💩を描く
• ブームになる
• 同じものではつまらないので
変化形が多数登場
• 字数制限+打ち込みが面倒で
大したことができない
2019/8/24 LL2019 7
unko.towerコマンド
• コマンドに機能がまとめられる
• 旧
• seq 3 | tac | perl -snle '$l=" "x$_;$m=" "x($n-$_);print $l."($m
$m)"' -- -n=3 | sed "s/( )/ 人/" | sed 's/^/./' | sed 's/人/🍊/’
• 新
• unko.tower 3 | sed 's/人/🍊/’
• unko.towerに乗っかる形で
さらに複雑化
• 💩の中に作文したい
(動機は謎)
→ unko.towerにオプション
2019/8/24 LL2019 8
unko.shout
• さらにunko.towerに生命を宿したいという需要
(動機は謎)
• 需要に応じてunko.shoutコマンド登場
• 長いワンライナーが不要に
• unko.shout <メッセージ>
2019/8/24 LL2019 9
初期バージョン 最終形
💩系コマンドから分かること
• 面倒な操作 + 多くの人 → コマンド化
• bashの関数や文法を改善しようという
方向には基本行かない
• 計画的ではなく、自然発生的
• 文献を見るとUnix黎明期もそんな感じ
• シェルやコマンドはこうなる
• なんとなく統一感があるけど不統一
• 面倒だと感じた時は大抵コマンドがある
2019/8/24 LL2019 10
「シェルを勉強したい」
• 目的や目標がないと勉強しようがないので設定
• ないときはとりあえず💩を描くことを目標に
• 💩を描く余裕がないときは仕事優先で
• コマンドを起動するものと割り切る
• 面倒だ -> コマンドがあるかもしれない
• コマンドをつなげるときに文法の必然性が分かる
2019/8/24 LL2019 11
画像系コマンドの進化
• シェル芸botが画像出力に対応
(2018年7月13日)
• すぐにImageMagickでのお絵かき大会開始
• 動画もできるけど字数的にはキツい
2019/8/24 LL2019 12
imgout, animation
• テキストを画像にするのにconvertで細かい設定を
するのは面倒
• imgoutとanimationというコマンドを即日作成
• 中央のアニメーションのワンライナー
• shuf –er う こ ん | paste - - - | head –n 50 | tr ‘t’ ‘ ‘ |
animation –d 3 –l 1
2019/8/24 LL2019 13
textimg
• imgout、animationは即興で作って放置
• textimgが出現
• 作者: 次郎氏
• 端末への出力イメージをそのまま画像・動画化
• go製(シェル芸botもgo製)
2019/8/24 LL2019 14
最近の画像シェル芸の高度化
• 画像がアップロードできるように
なったのでいらすとやの画像を
アニメーション
• ここ数日はシェル芸bot内で
X Window Systemを立ち上げて動画
を撮影するワンライナーのブーム
2019/8/24 LL2019 15
これらもコマンドに
まとめられるかも
まとめ
• bashというよりシェル芸botで起こったことを
中心に話をした
• bashの話どこいった?
→シェルという基盤がないとここまで面白くならない
• 全ての言語で作ったプログラムの母艦となる
(シェル使いは全ての言語を自分のものにする)
• 入出力をつなぐ
2019/8/24 LL2019 16
難読化
• @kanata201612 氏、@xztaityozx_001 氏が
ブームに火をつける
• 「難読化シェル芸」
• 以前から難読化ワンライナーはあったが
シェル芸botで動態展示
• 基本(の一部)
• 以下全てdateコマンドの実行
• $’x64x61x74x65’
• __=$(ls --help
2>&1);"${__:53:1}${__:50:1}${__:68:1}${__:54:1}”
• __=(/???/???/????/???????/???/??????);${__##*/??}
2019/8/24 LL2019 17
入門書あり
by @kanata201612 氏
こわい人も参戦
2019/8/24 LL2019 18
コマンドの助けを借りた難読化
タイプ(コマンド) WTF???
date “+%Y%m:%d %H:%M:%S”
を難読化したもの
ワタナベ難読化
(https://github.com/xzta
ityozx/noc)
by たいちょー氏
Unicodeの異体字セ
レクタで符号化
辺邉󠄀辺邉󠄀邉󠄁邊邉󠄀邊󠄁邊邊󠄄邉󠄀邉󠄀邊邊󠄄辺
邉󠄉邊邉󠄁邊󠄄辺邉󠄀邊邉󠄀邊󠄄邉󠄀邉󠄇邊邉󠄁邊󠄄邉󠄀
邉󠄌邊邉󠄁邊󠄄邉󠄀邉󠄀邊邊󠄁
呪文詠唱難読化
(https://github.com/ama
noese/yukichant)
by @amanoese 氏
音声認識でコマンド
入力するときのフォ
ネティックコードの
ようなもの
悪夢の極光よ守護を求める。魔手よ時に
死者に為り。閃光よ地も底を火照り。地
上を悪夢の魔神よ為り。輝きと力と地上
に貫け。力持て地獄の冥界住む。源の妖
精に具現化せよ。
空白文字難読化
by kanata氏
Unicodeの空白文字
で符号化
記述できない(空白なので)
2019/8/24 LL2019 19

More Related Content

More from Ryuichi Ueda

2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
Ryuichi Ueda
 

More from Ryuichi Ueda (20)

第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
 
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
 
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
 
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
 
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
 
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
 
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
 
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
 
Robot frontier lesson3 2018
Robot frontier lesson3 2018Robot frontier lesson3 2018
Robot frontier lesson3 2018
 
Robot frontier lesson2 2018
Robot frontier lesson2 2018Robot frontier lesson2 2018
Robot frontier lesson2 2018
 
Robot frontier lesson1 2018
Robot frontier lesson1 2018Robot frontier lesson1 2018
Robot frontier lesson1 2018
 
第34回シェル芸勉強会
第34回シェル芸勉強会第34回シェル芸勉強会
第34回シェル芸勉強会
 
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
 
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
 
第31回シェル芸勉強会スライド
第31回シェル芸勉強会スライド第31回シェル芸勉強会スライド
第31回シェル芸勉強会スライド
 
direct use of particle filters for decision making
direct use of particle filters for decision makingdirect use of particle filters for decision making
direct use of particle filters for decision making
 
Robot frontier lesson3
Robot frontier lesson3Robot frontier lesson3
Robot frontier lesson3
 
Robot frontier lesson2
Robot frontier lesson2Robot frontier lesson2
Robot frontier lesson2
 
Robot frontier lesson1
Robot frontier lesson1Robot frontier lesson1
Robot frontier lesson1
 
電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!
 

Recently uploaded

Recently uploaded (11)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

bash(の変な使い方)update