コマンドラインで作業を行ってる時、
ちょっとオプション等の使い方がわからないコマンドがあった時に
ヘルプやman
を参照したり、それでもよくわからないとググる
ことがありますが、
cheat
コマンドを使えば具体的な使い方をぱっと見ることが出来ます。
cheat
コマンドのインストールは
$ pip install cheat
かまたはMacなら
$ brew install cheat
で1。
使い方は
$ cheat sed
# To replace all occurrences of "day" with "night" and write to stdout:
sed 's/day/night/g' file.txt
# To replace all occurrences of "day" with "night" within file.txt:
sed -i 's/day/night/g' file.txt
# To replace all occurrences of "day" with "night" on stdin:
echo 'It is daytime' | sed 's/day/night/g'
# To remove leading spaces
sed -i -r 's/^\s+//g' file.txt
# To remove empty lines and print results to stdout:
sed '/^$/d' file.txt
# To replace newlines in multiple lines
sed ':a;N;$!ba;s/\n//g' file.txt
$
の様に知りたいコマンドをcheat
に与えるだけ。
現在見れるコマンドは以下のとおり140コマンド。
7z dnf jrnl paste ssh-copy-id
ab docker less pdftk ssh-keygen
apk dpkg lib php stdout
apparmor du ln ping strace
apt emacs ls ping6 systemctl
apt-cache ffmpeg lsof pip systemd
apt-get find lvm ps tail
aptitude for man python tar
asciiart gcc markdown readline tcpdump
asterisk gdb mdadm rename tee
at git mkdir rm tmux
awk gpg more route top
bash grep mount rpm tr
bower gs mysql rss2email truncate
chmod gzip mysqldump rsync udisksctl
chown hardware-info nc sam2p uname
convert head ncat scp uniq
crontab history netstat screen unzip
csplit http nkf sed vagrant
cups hub nmap shred vim
curl ifconfig notify-send smbclient weechat
cut indent nova snmpwalk wget
date ip ntp sockstat xargs
dd iptables numfmt sort yaourt
df irssi od split youtube-dl
dhclient iwconfig openssl sqlmap yum
diff journalctl p4 ss zip
distcc jq pacman ssh zoneadm
vim
やemacs
に関しては
$ cheat vim
# File management
:e reload file
:q quit
:q! quit without saving changes
:w write file
:w {file} write new file
:x write file and exit
# Movement
k
h l basic motion
j
こんな感じで起動後の使い方の簡単なtipsを表示してくれます。
基本的にはman
を熟読すればどのコマンドもきちんと使える様になるものですが、
ぱっと具体例が見れるのは非常に便利です。
コマンドラインからぱっと確認できれば安易にGoogleに頼ることも減って捗るかと。
ちなみに、cheat
コマンド自体はMacでも使えますが、
例えば最初の例に出したsed
とかだと、
-r
オプションはGNUのsed
にしかなく、BSDのsed
にはないので
Macではデフォルトsed
を使うと出来ないこともあるのでちょっと注意です。
他のコマンドもGNU/BSDで違いが あるものは基本GNUの物が主体だと思います。
現在140コマンドですが、 Pull Requests で新たなコマンドの追加などもあって、 どんどん便利になっていく感じがします。
GNU専用オプションとかになっているものもちょっとした注意書きとか Pull Requestとかどんどんしていくと便利になっていくと思います。 (気が向いたらしてみよう。。。)