GitHub公式アカウントで、コマンドライン上からチートシートを表示するライブラリが紹介されていました。
そこで、実際に「cheat」コマンドをインストールして使ってみようと思います!
「cheat」とは?
リポジトリ:cheat / cheat
cheatを使うと、コマンドライン上でインタラクティブなチートシートを作成・閲覧することができます。
頻繁に使用するけれど、覚えるほどではないコマンドのオプションを思い出させるために設計されたとのことです。

cheatを使うと、わざわざブラウザを開いて、コマンドのオプション検索を行う手間が省けそうですね!
cheatをインストールする
cheatをインストールするには、以下の方法があります。
- リリースページから実行ファイルをダウンロードして、PATHに配置する
- goがインストールされている場合は、「go get」を使って、インストールする
今回は、後者の「go get」を使って、cheatをインストールしていこうと思います。
「go get」を使って、cheatをインストールする
goがインストールされていない場合は、インストールしましょう。
Macならbrewコマンドを使えば、簡単にインストールできます。
# go をインストール
$ brew install go
(省略)
# go のバージョンを確認
$ go version
go version go1.16.6 darwin/amd64
goをインストールしたら、「go get」を使って、cheatをインストールします
$ go get -u github.com/cheat/cheat/cmd/cheat
cheat を使う

では、cheatを使ってみます!
README.md
にも記載してあるように、初回実行時に設定ファイルを作成するかどうか聞かれます。
また、cheatの実行ファイルにはチートシート自体は含まれていませんが、コミュニティが提供するチートシートが利用できるようです。
$ go/bin/cheat tar
A config file was not found. Would you like to create one now? [Y/n]: Y
Would you like to download the community cheatsheets? [Y/n]: Y
Cloning into '/Users/userName/.config/cheat/cheatsheets/community'...
remote: Enumerating objects: 913, done.
remote: Counting objects: 100% (209/209), done.
remote: Compressing objects: 100% (140/140), done.
remote: Total 913 (delta 99), reused 142 (delta 69), pack-reused 704
Receiving objects: 100% (913/913), 249.62 KiB | 2.06 MiB/s, done.
Resolving deltas: 100% (362/362), done.
Created config file: /Users/userName/.config/cheat/conf.yml
Please read this file for advanced configuration information.
「go get」を使って、cheatをインストールしたので、実行ファイルが「go/bin/cheat」にありますが、毎回「go/bin/cheat」を打つのは面倒なので、パスを通しておきます。
$ export PATH=~/go/bin:$PATH
設定ファイルや、チートシートをインストールしたので、もう一度、cheatコマンドを打ってみます。
$ cheat tar
# To extract an uncompressed archive:
tar -xvf /path/to/foo.tar
# To extract a .tar in specified Directory:
tar -xvf /path/to/foo.tar -C /path/to/destination/
# To create an uncompressed archive:
tar -cvf /path/to/foo.tar /path/to/foo/
# To extract a .tgz or .tar.gz archive:
tar -xzvf /path/to/foo.tgz
tar -xzvf /path/to/foo.tar.gz
# To create a .tgz or .tar.gz archive:
tar -czvf /path/to/foo.tgz /path/to/foo/
tar -czvf /path/to/foo.tar.gz /path/to/foo/
# To list the content of an .tgz or .tar.gz archive:
tar -tzvf /path/to/foo.tgz
tar -tzvf /path/to/foo.tar.gz
# To extract a .tar.bz2 archive:
tar -xjvf /path/to/foo.tar.bz2
# To create a .tar.bz2 archive:
tar -cjvf /path/to/foo.tar.bz2 /path/to/foo/
# To list the content of an .tar.bz2 archive:
tar -tjvf /path/to/foo.tar.bz2
# To create a .tgz archive and exclude all jpg,gif,... from the tgz
tar -czvf /path/to/foo.tgz --exclude=\*.{jpg,gif,png,wmv,flv,tar.gz,zip} /path/to/foo/
# To use parallel (multi-threaded) implementation of compression algorithms:
tar -z ... -> tar -Ipigz ...
tar -j ... -> tar -Ipbzip2 ...
tar -J ... -> tar -Ipixz ...
tarコマンドに関するオプション等が表示されました!
他にもチートシートの編集や、設定したチートシートのパスなどを表示することができます。
# 指定したコマンドのチートシートを編集
$ cheat -e tar
# チートシートのパスを表示
$ cheat -d
# 利用可能な全てのチートシートを一覧表示
$ cheat -l
# 指定したタグの全てのチートシートを一覧表示
# タグは、networkingの他にもdateやpackaging、databaseなどがある
$ cheat -l -t networking
まとめ
cheatコマンドだけで、サっとコマンドの使い方やオプションを確認できるのは便利ですね。

チートシートを自分好みに編集できる点も良いなと思いました!
コメント