コマンドラインから、コマンドのカンニングペーパーを参照できる、cheat.shがちょっと面白い

GitHubのTrendingを見ていたら、cheat.shというのを見つけました。

コマンドラインから、Linuxコマンドなどのcheat sheet(カンニングペーパー)を参照できるツールです。

ちょっとおもしろかったので、簡単に書きます。

READMEに書いてあるように、curlコマンドさえあれば使うことができます。
インストールなどは不要でした。

Linuxコマンドだけでなく、プログラミング言語の構文もサポートしており、55のプログラミング言語と、1,000のLinuxコマンドをカバーしているそうです。

curlコマンドを使ってカンニングペーパーが検索されると、100 ms以内でレスポンスを返すことを目標にしているようです。

簡単な使い方は、cheat.sh/の後に、カンニングペーパーを参照したいコマンドを指定して、curlでGETします。
例えば、ssコマンドの場合は、下記の通りです。

$ curl cheat.sh/ss

下記のようなレスポンスが返って来ました。

# Utility to investigate sockets
#
# Options:
#   -4/-6   list ipv4/ipv6 sockets
#   -n      numeric addresses instead of hostnames
#   -l      list listening sockets
#   -u/-t/-x list udp/tcp/unix sockets
#   -p      Show process(es) that using socket

# show all listening tcp sockets including the corresponding process
ss -tlp

# show all sockets connecting to 192.168.2.1 on port 80
ss -t dst 192.168.2.1:80

# show all ssh related connection
# documentation on the filter synax: sudo apt-get install iproute2-doc
ss -t state established '( dport = :ssh or sport = :ssh )'

# Display timer information
ss -tn -o

# Filtering connections by tcp state
ss -t4 state established

CentOS 7から、ssコマンドを使うようになって、たまに忘れてしまうので、ちょっと便利そうです。

コマンドの名前を忘れてしまった場合は、キーワードで検索できます。
~の後にキーワードを指定します。
例えば、ダウンロードに関係するコマンドを検索したい時は、

$ curl cheat.sh/~download

下記、レスポンスを一部抜粋します。
ダウンロードに関係するコマンド、apt-get、curl、wgetなどのカンニングペーパーが検索されました。

 apt-get 
# To download and install updates without installing new package.
....
 curl 
# Resume a previously failed download
....
 wget 
# To download a single file
wget http://path.to.the/file

Linuxコマンドだけでなく、プログラミング言語にも対応しています。
例えば、pythonのfunctionについて、検索したい場合は、

$ curl cheat.sh/python/func

すると、下記のようなレスポンスが返ります。

# Simple function
def functionName():
    return True

# Function with parameters 
def functionName(a, b): 
if(a < b): 
return a
else: 
return b

# Return multiple values 
def functionName(a, b, c): 
return (a, b, c) // Returns a tuple
return {'return_a':a, 'return_b':b ,'return_c':c } // Returns a dictionary 

funcの部分ですが、他にもClasses、Modulesなどを指定できます。
指定できる単語の種類は、下記のように:listを検索することで、一覧できます。

$ curl cheat.sh/python/:list
doc
func
hello
lambda
loops
recursion
Primitive_Datatypes_and_Operators
Variables_and_Collections
Control_Flow
Functions
Classes
Modules
Advanced
Comments
:learn

キーワードで検索することもできるようです。
例えば、pythonで辞書をキーでソートしたいと思った時は、下記のようにします。
スペースの代わりに、+を使います。

$ curl cheat.sh/python/sort+key

下記、レスポンスの一部抜粋です。

In [1]: import collections

In [2]: d = {2:3, 1:89, 4:5, 3:0}

In [3]: od = collections.OrderedDict(sorted(d.items()))

In [4]: od
Out[4]: OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])

少し設定を行えば、より短く、下記のように検索できるようです。
下記は、プログラミング言語Goについて、配列を逆にする場合のカンニングペーパーを検索しているようです。

$ cht.sh go reverse a list

どのくらい実用的なのかはわかりませんが、おもしろそうなので、たまに使ってみようと思います。

コメント

このブログの人気の投稿

PowerShell 6で、Shift_JISのCSVをImport-Csvで読み込んだら文字化けした

Windowsで、特定のユーザーに特定のサービスの再起動を許可する

PowerShellでイベントログを取得する時、「指定した選択条件に一致するイベントが見つかりませんでした。」が煩わしいのでcatchする