Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

bash(の変な使い方)update

1,408 views

Published on

2019年8月24日 Learn Languages 2019 in ODC @ 日本工学院専門学校

Published in: Technology
  • Login to see the comments

bash(の変な使い方)update

  1. 1. bash(の変な使い方)update シェル芸勉強会の方から来ました 上田 隆一 本日引用したツイート、その他関連ツイートまとめ https://togetter.com/li/1394143
  2. 2. 自己紹介(=謝罪) • LLイベントで暴れてきてすみませんでした • 今日も行儀が悪いです 2019/8/24 LL2019 2 ビール瓶を持ち暴れる (2012年) 酒乱の称号獲得 (2015年) 任意のホストにsshで rm –rf /(2009年)
  3. 3. お知らせ • bashでCMSを作る本(改訂2版)を書きました 2019/8/24 LL2019 3 こんなサイトが作れます いくらでもサインします!!!1
  4. 4. 本日の話: language updateというテーマですが・・・ • bash自体の更新はゆるやか • 2016年9月15日: bash-4.4 • 2019年1月7日: bash-5.0 • bash(やシェル)の進化は文法だけではない • シェルはコマンドが9割 • 普通の言語との共通点: ライブラリに相当 • 普通の言語との相違点: シェル愛とは全く関係なく増殖 2019/8/24 LL2019 4 シェル芸botでコマンド増殖の様子が観察できる
  5. 5. シェル芸bot @minyoruminyon • 誕生日: 2017年6月22日 • 作者: ふるつき氏 @theoldmoon0602 作 • 機能 • フォロワーが「#シェル芸」とつけてコマンドをツイート すると標準出力をツイート • セキュリティー関係はシェル芸界隈で常時検証 2019/8/24 LL2019 5
  6. 6. SGWeb(https://shellgei-web.net) • 誕生日: 2019年8月1日 • 作者: @kekeho 氏 • シェル芸botの下書きなど の用途 • 誰でも試せます • これから出てくるコマンド を叩いてみてください 2019/8/24 LL2019 6
  7. 7. 💩系コマンドの進化 • 某氏がシェル芸botで💩を描く • ブームになる • 同じものではつまらないので 変化形が多数登場 • 字数制限+打ち込みが面倒で 大したことができない 2019/8/24 LL2019 7
  8. 8. 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
  9. 9. unko.shout • さらにunko.towerに生命を宿したいという需要 (動機は謎) • 需要に応じてunko.shoutコマンド登場 • 長いワンライナーが不要に • unko.shout <メッセージ> 2019/8/24 LL2019 9 初期バージョン 最終形
  10. 10. 💩系コマンドから分かること • 面倒な操作 + 多くの人 → コマンド化 • bashの関数や文法を改善しようという 方向には基本行かない • 計画的ではなく、自然発生的 • 文献を見るとUnix黎明期もそんな感じ • シェルやコマンドはこうなる • なんとなく統一感があるけど不統一 • 面倒だと感じた時は大抵コマンドがある 2019/8/24 LL2019 10
  11. 11. 「シェルを勉強したい」 • 目的や目標がないと勉強しようがないので設定 • ないときはとりあえず💩を描くことを目標に • 💩を描く余裕がないときは仕事優先で • コマンドを起動するものと割り切る • 面倒だ -> コマンドがあるかもしれない • コマンドをつなげるときに文法の必然性が分かる 2019/8/24 LL2019 11
  12. 12. 画像系コマンドの進化 • シェル芸botが画像出力に対応 (2018年7月13日) • すぐにImageMagickでのお絵かき大会開始 • 動画もできるけど字数的にはキツい 2019/8/24 LL2019 12
  13. 13. imgout, animation • テキストを画像にするのにconvertで細かい設定を するのは面倒 • imgoutとanimationというコマンドを即日作成 • 中央のアニメーションのワンライナー • shuf –er う こ ん | paste - - - | head –n 50 | tr ‘t’ ‘ ‘ | animation –d 3 –l 1 2019/8/24 LL2019 13
  14. 14. textimg • imgout、animationは即興で作って放置 • textimgが出現 • 作者: 次郎氏 • 端末への出力イメージをそのまま画像・動画化 • go製(シェル芸botもgo製) 2019/8/24 LL2019 14
  15. 15. 最近の画像シェル芸の高度化 • 画像がアップロードできるように なったのでいらすとやの画像を アニメーション • ここ数日はシェル芸bot内で X Window Systemを立ち上げて動画 を撮影するワンライナーのブーム 2019/8/24 LL2019 15 これらもコマンドに まとめられるかも
  16. 16. まとめ • bashというよりシェル芸botで起こったことを 中心に話をした • bashの話どこいった? →シェルという基盤がないとここまで面白くならない • 全ての言語で作ったプログラムの母艦となる (シェル使いは全ての言語を自分のものにする) • 入出力をつなぐ 2019/8/24 LL2019 16
  17. 17. 難読化 • @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 氏
  18. 18. こわい人も参戦 2019/8/24 LL2019 18
  19. 19. コマンドの助けを借りた難読化 タイプ(コマンド) 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

×