TOOLS

Tools

自分が作成してるツール類についてのページ。基本的にすべて Github で管理している。

Dotfiles

自分のDotfiles。 zsh/bashを使い分けてるのだが、どちらもプロンプトに顔文字を入れるようにしてる(´・ω・`)。

シェル関数

なにかの参考になるかもしれないので、よく使ってる関数だけ抜粋して記述する。

docker_runin/docker_login

使用するdockerコンテナをTUIで選択して起動orログインする。

# docker_runin:
#     Docker Imageをpecoなどで選択して起動する
#         -r ... 事前に定義したrcfileを使ってbashを起動する
#         -e ... 現在の環境変数や関数を読み込んでbashを起動する
#         -v ... ボリュームをマウントする
docker_runin
docker_runin -r -v ~/images/:/images

# docker_login:
#     起動中のDockerコンテナをpecoなどで選択して起動する
#         - r ... 事前に定義したrcfileを使ってbashを起動する
#         - e ... 現在の環境変数や関数を読み込んでbashを起動する
docker_login -r

pping

複数ホストにパラレルでpingをする。 pingの実行結果はタイムスタンプを付けて色付けしてる。

# pping:
#     パラレルで複数のホストにpingをする
#         -n ... pingをする回数
#         -m ... タイムアウト(mill second)
#         -p ... Port(tcp)

# 192.168.0.1-5までにパラレルでpingを行う
pping 192.168.0.{1..5} 

# 172.28.10.200-255までにpingを実行してttlでgrepする(疎通が取れたホストだけ抽出する)
pping -n 1 -m1000 172.28.10.{200..255} | grep ttl --line-buffered 

# portを指定してpingする
pping -p 8000 127.0.0.1

ddig

複数のホスト名を複数のDNSサーバに名前解決させる。 @hogeでDNSサーバを指定する。

# ddig:
#     複数のホスト・DNSサーバを指定して一気に名前解決の結果を取得する
ddig google.{com,{co.,ne.,}jp,org,net} @{8.8.8.8,1.1.1.1} orebibou.com
$ ddig google.{com,{co.,ne.,}jp,org,net} @{8.8.8.8,1.1.1.1} orebibou.com
google.com in @8.8.8.8: 172.217.175.14
google.com in @1.1.1.1: 216.58.220.142
google.co.jp in @8.8.8.8: 172.217.161.67
google.co.jp in @1.1.1.1: 216.58.220.131
google.ne.jp in @8.8.8.8: 172.217.26.35
google.ne.jp in @1.1.1.1: 172.217.25.195
google.jp in @8.8.8.8: 172.217.175.3
google.jp in @1.1.1.1: 172.217.161.35
google.org in @8.8.8.8: 216.239.32.27
google.org in @1.1.1.1: 216.239.32.27
google.net in @8.8.8.8: 172.217.25.100
google.net in @1.1.1.1: 216.58.197.228
orebibou.com in @8.8.8.8: 157.112.152.17
orebibou.com in @1.1.1.1: 157.112.152.17

imgview

iTerm2用の画像表示のスクリプト関数。

imgview /path/to/imgfile

lssh

Golangで書いてるsshクライアント。 TUIで選択したホストにssh接続する。

以下、特徴。

  • Goのcrypt/sshを使用
  • ssh/scp/sftp別にコマンドを分割
  • sshでのシェル接続対応(vimやpasswdなどもOpenSSHクライアントと同じような感覚で利用できる)
  • 複数ホストでのコマンドの並列実行が可能
  • ssh agent対応
  • Proxy接続(ssh/http/socks)対応
  • x11 forwarding対応
  • Local/Remote/Dynamic Port forwarding対応
  • ターミナルログの取得対応
  • ssh_configをそのまま読み込み可能

設定ファイル

~/.lssh.confというtomlファイルを作成して利用する。 以下サンプル。

~/.lssh.conf
[common] port = "10022" user = "user" [server.ServerName1] # user port=10022,user=user addr = "192.168.0.101" user = "password" note = "this is a test. password auth" [server.ServerName2] # user port=10022,user=user addr = "192.168.0.102" key = "/path/to/key" note = "this is a test. key auth" [server.ServerName3] addr = "192.168.0.103" port = "22" # overwrite common port number user = "test" # overwrite common user key = "/path/to/key" keypass = "password" note = "this is a test. key auth"

lssh

シェル接続

$ # ホストを選択して接続
$ lssh 
$
$ # 独自シェルを利用して複数ホストに接続する(-s)
$ lssh -s

コマンド実行

$ # コマンドを実行するホストを選択して接続(複数のホストを選択する場合は`Tab`キーで選択)
$ lssh command...
$
$ # 複数ホストでコマンドを並列に実行する場合は`-p`オプションを付与
$ lssh -p command...

lscp

$ # sftpプロトコルを使ってファイルをコピーする
$ # ローカルのファイルをリモート(複数可)にコピーする
$ lscp /path/to/local r:/path/to/remote
$
$ # リモート(複数可)のファイルをローカルにコピーする
$ lscp r:/path/to/remote /path/to/local
$
$ # リモート(複数可)のファイルをリモート(単体)にコピーする
$ lscp r:/path/to/remote r:/path/to/remote

lsftp

$ # 複数ホストにsftpで接続し、専用のシェルを介してファイルをやり取りする
$ lsftp

hwatch

Rustで書いてるCUIツール。watchコマンドのように、定期的に指定したコマンドをするCLIツール。 watchコマンドにhistory管理や実行結果の記録、diff機能を追加している。

diffの有無やどのタイミングの実行結果を表示するかはTUIで都度操作する。

hwatch command...

boco

lssh使用時に接続先で利用するために作成したbash用のfunction。 シェル関数で速度を出すためにgrep、sortコマンドが必要。

command ... | boco

websearch

GoogleやBingでの検索結果をスクレイピングで一気に取得するためのツール。 BANされないようにSplashと一緒に使うこと前提。

$ websearch search -S localhost:8050 -t google bing -n 10 -T "unko"
Google Text Search: unko
Bing Text Search: unko
-> Finally got 10 links Bing
[BingSearch]: 株式会社うんこ: https://unco.co.jp/
[BingSearch]: うんこの仕方48手: https://unko48.com/
[BingSearch]: うんこミュージアム【公式】: https://unkomuseum.com/
[BingSearch]: 日本うんこ学会: http://www.unkogakkai.jp/
[BingSearch]: UNKO 国連朝鮮半島統一機構 - konisimple: http://neta.konisimple.net/unko/
[BingSearch]: うんこ (企業) - Wikipedia: https://ja.wikipedia.org/wiki/%E3%81%86%E3%82%93%E3%81%93_(%E4%BC%81%E6%A5%AD)
[BingSearch]: 株式会社うんこ【公式ショップ】: https://unco.shop/
[BingSearch]: うんこ - 語源由来辞典: http://gogen-allguide.com/u/unko.html
[BingSearch]: うんこ学園 - 笑いながら学べる教育プラットフォーム: http://unkogakuen.com/
[BingSearch]: jun channel - YouTube: https://www.youtube.com/channel/UCx1nAvtVDIsaGmCMSe8ofsQ
-> Finally got 10 links Google
[GoogleSearch]: うんこミュージアム【公式】: https://unkomuseum.com/
[GoogleSearch]: うんこミュージアム オンライン: https://unkomuseum.com/online/
[GoogleSearch]: うんこミュージアム TOKYO【公式】: https://unkomuseum.com/tokyo
[GoogleSearch]: うんこミュージアム YOKOHAMA【公式】: https://unkomuseum.com/yokohama
[GoogleSearch]: 株式会社うんこ【公式ショップ】: https://unco.shop/
[GoogleSearch]: うんこ学園 - 笑いながら学べる教育プラットフォーム: https://unkogakuen.com/
[GoogleSearch]: 世界で一番かっこいい(!?)うんこのミュージックビデオ!水曜日の ...: https://prtimes.jp/main/html/rd/p/000000230.000014685.html
[GoogleSearch]: 株式会社うんこ: https://unco.co.jp/
[GoogleSearch]: うんこ (企業) - Wikipedia: https://ja.wikipedia.org/wiki/%E3%81%86%E3%82%93%E3%81%93_(%E4%BC%81%E6%A5%AD)
[GoogleSearch]: UNKOが紡ぐ新感覚アミューズメント空間「うんこミュージアム ...: https://www.kayac.com/news/2019/02/unkomuseum