SlideShare a Scribd company logo
1 of 23
Download to read offline
CLIツール作るの楽しい
たいちょー
みなさん#!/bin/bash(こんにちはの意)
たいちょーです
 @xztaityozx_001
母語はC#
明日から海外へ行きます
近況
前回のシェル芸勉強会
難読化シェル芸
本題
前回のあらすじ!
大雨で中止になった第36回シェル芸勉強会@大
阪サテライト!前日にICPCに参加したら家に帰
れなくてゼミ室に泊ってたはいいけど結局大雨
で動けないしもうどうしたらいいの~~
~!??!?!?!
難読化シェル芸
ゼロ幅文字難読化シェル芸(kanataさん)
https://www.slideshare.net/kanata1/unicode-104771309
ゼロ幅スペースを利用したヤバすぎるヤツ!
難読化ここに極まれり(何も見えないため)
ゼロ幅文字難読化シェル芸
手法
文字⇒16進数⇒4進数⇒4種のゼロ幅文字へ置換
例
ゼロ幅文字難読化シェル芸
絶句した
手の加えようがない
記号オンリーは課題があった
ヤバい
本題
実は私は
趣味がCLIツールづくりなんですよ
難読化シェル芸ツール
xztaityozx/nandokuka
YouTubeのURLをVLCに食わせるだけのツール
xztaityozx/yov
CLIツールと私
高校3年生の時にシェル芸人を自前で発症
授業で使うCLIツールを作る
楽しくなる
実は私は
院生なんですよ
授業とかなんかいろいろあってたいへん!
研究もしなくちゃ!
CLIツールを作る事例1
まずは無限にデータを取らないと!👍
↓
手作業はヤバいな・・・☻
↓
CLIツールを作って楽しよう!
手順
1. 対象が吐き出すデータを眺める
2. ほしいと思ったデータの形式を思い浮かべる
3. シェル芸する
4. まとめる(シェルスクリプト)
機能を増やしたくなったら別の言語に移る
改良して運用する
数多の改良を重ねた
途中で言語を切り替える
今はただ待っているだけでOKにまでなった
同期にも使わせた
フィードバックがすぐ来るので良い
CLIツール事例2
cat ~/.bash_history | grep cd | wc -l
皆さんcpd(cd per day)はいくつぐらいですか
CLIで生きるうちの大半はlsとcd
よく聞く話ですね
ところで
cdコマンドのラッパー使ってますか?
enhancd
b4b4r07/enhancd
z
rupa/z
高級なcdコマンドがあると<TAB><TAB>しなくて
よくなるのでいいですよね
cdxよろしくお願いいたします
実は僕もcdコマンドのラッパー作ってます
cdx
xztaityozx/go-cdx
cdxの機能
ヒストリー
ブックマーク
シェル芸で作ったリストから選んでcd
そのたもろもろ
ヒストリー機能
これまでcdしてきたパスから1つ選んでcdできる
選択にはfzfとかpecoを使う
あとでデモをします
ブックマーク機能
自由にブックマークを"追加できる"
ブックマークから1つ選んでcdできる
選択にはfzfとかpecoを使う
シェル芸で作ったリストから選んでcd
ghq listの出力をcdxに渡す
相対パス以下にあるディレクトリ一覧をcdxに渡す
など
デモをします
します
あなたのCLIツールはなんですか
cdxをよろしくお願いいたします
GitHubの★を押していただけると嬉しいです
皆様ご自慢のツールもぜひ知りたいです

More Related Content

More from xztaityozx

呪符式高速詠唱シェル芸2
呪符式高速詠唱シェル芸2呪符式高速詠唱シェル芸2
呪符式高速詠唱シェル芸2xztaityozx
 
呪符式高速詠唱シェル芸
呪符式高速詠唱シェル芸呪符式高速詠唱シェル芸
呪符式高速詠唱シェル芸xztaityozx
 
surgeコマンド作りました
surgeコマンド作りましたsurgeコマンド作りました
surgeコマンド作りましたxztaityozx
 
ナーベンシュタイン距離 ~グラフを添えて~
ナーベンシュタイン距離 ~グラフを添えて~ナーベンシュタイン距離 ~グラフを添えて~
ナーベンシュタイン距離 ~グラフを添えて~xztaityozx
 
あの、selのリベンジをさせてください
あの、selのリベンジをさせてくださいあの、selのリベンジをさせてください
あの、selのリベンジをさせてくださいxztaityozx
 
Owari version 2.0 をつくりました
Owari version 2.0 をつくりましたOwari version 2.0 をつくりました
Owari version 2.0 をつくりましたxztaityozx
 
実績を達成しました!
実績を達成しました!実績を達成しました!
実績を達成しました!xztaityozx
 
ワタナBase59
ワタナBase59ワタナBase59
ワタナBase59xztaityozx
 
ocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよxztaityozx
 
ワタナベシェル
ワタナベシェルワタナベシェル
ワタナベシェルxztaityozx
 
難読化PowerShell芸入門
難読化PowerShell芸入門難読化PowerShell芸入門
難読化PowerShell芸入門xztaityozx
 
シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!xztaityozx
 
~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!xztaityozx
 
レッツゴー難読化シェル芸
レッツゴー難読化シェル芸レッツゴー難読化シェル芸
レッツゴー難読化シェル芸xztaityozx
 
超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸xztaityozx
 
部活でシェル芸がはやらない
部活でシェル芸がはやらない部活でシェル芸がはやらない
部活でシェル芸がはやらないxztaityozx
 
ダブルシンク難読化シェル芸
ダブルシンク難読化シェル芸ダブルシンク難読化シェル芸
ダブルシンク難読化シェル芸xztaityozx
 
破壊的難読化シェル芸
破壊的難読化シェル芸破壊的難読化シェル芸
破壊的難読化シェル芸xztaityozx
 
みんなで!Base64難読化シェル芸
みんなで!Base64難読化シェル芸みんなで!Base64難読化シェル芸
みんなで!Base64難読化シェル芸xztaityozx
 

More from xztaityozx (20)

呪符式高速詠唱シェル芸2
呪符式高速詠唱シェル芸2呪符式高速詠唱シェル芸2
呪符式高速詠唱シェル芸2
 
呪符式高速詠唱シェル芸
呪符式高速詠唱シェル芸呪符式高速詠唱シェル芸
呪符式高速詠唱シェル芸
 
surgeコマンド作りました
surgeコマンド作りましたsurgeコマンド作りました
surgeコマンド作りました
 
ナーベンシュタイン距離 ~グラフを添えて~
ナーベンシュタイン距離 ~グラフを添えて~ナーベンシュタイン距離 ~グラフを添えて~
ナーベンシュタイン距離 ~グラフを添えて~
 
あの、selのリベンジをさせてください
あの、selのリベンジをさせてくださいあの、selのリベンジをさせてください
あの、selのリベンジをさせてください
 
Owari version 2.0 をつくりました
Owari version 2.0 をつくりましたOwari version 2.0 をつくりました
Owari version 2.0 をつくりました
 
実績を達成しました!
実績を達成しました!実績を達成しました!
実績を達成しました!
 
ワタナBase59
ワタナBase59ワタナBase59
ワタナBase59
 
ocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよocsとselってコマンド作ったわよ
ocsとselってコマンド作ったわよ
 
ワタナベシェル
ワタナベシェルワタナベシェル
ワタナベシェル
 
柿と杮
柿と杮柿と杮
柿と杮
 
難読化PowerShell芸入門
難読化PowerShell芸入門難読化PowerShell芸入門
難読化PowerShell芸入門
 
シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!シェル芸をドット絵にして思いを伝えよう!
シェル芸をドット絵にして思いを伝えよう!
 
~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!~/.bashrcを難読化しよう!
~/.bashrcを難読化しよう!
 
レッツゴー難読化シェル芸
レッツゴー難読化シェル芸レッツゴー難読化シェル芸
レッツゴー難読化シェル芸
 
超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸超・記号オンリー難読化シェル芸
超・記号オンリー難読化シェル芸
 
部活でシェル芸がはやらない
部活でシェル芸がはやらない部活でシェル芸がはやらない
部活でシェル芸がはやらない
 
ダブルシンク難読化シェル芸
ダブルシンク難読化シェル芸ダブルシンク難読化シェル芸
ダブルシンク難読化シェル芸
 
破壊的難読化シェル芸
破壊的難読化シェル芸破壊的難読化シェル芸
破壊的難読化シェル芸
 
みんなで!Base64難読化シェル芸
みんなで!Base64難読化シェル芸みんなで!Base64難読化シェル芸
みんなで!Base64難読化シェル芸
 

CLIツール作るの楽しい