便利なコマンドはみんなEnvaderから教わった　bat tigコマンド

30代後半、未経験からIT業界のエンジニアになる物語の主人公、kobakichiです。

今回はLinuxに触れる際に知っておくと便利、かつテンションが上がるコマンドを学習したのでその振り返りです。

教えていただいたのは、先輩でもなく家族でもなく。
オンラインでLinux環境が手軽に学べてしまうと噂のEnvaderにて便利なコマンド達を教えていただきました。

ターミナルカスタマイズコースなるものがあって、そのコースには文字通りターミナルをカスタマイズする方法がたくさん隠されています。

Envaderのホームはこちら

[Envader](https://envader.plus/)

## 実行環境

EnvaderではLinux環境を利用します。(debian系)

## 便利なコマンドその1 bat

私はこのコマンドを知った時、うわ！
めっちゃおしゃれになっていいじゃん！
単なる`cat`コマンドとは大違いで、ファイルの中身見るだけでテンション上がる！！！っと感じました。

今回はEnvaderのターミナルカスタマイズコースを利用させていただきながら進めました。

[ターミナルカスタマイズコース](https://envader.plus/course/7/scenario/1032)

### batコマンドの内容

`bat`コマンドですが、基本的には`cat`コマンドの親戚みたいな捉え方でしょうか。
ファイルの中身を表示させてくれるあのコマンドです。
ちょっとファイルの中身なんだったかな〜って時に使うやつ。

その`cat`コマンドに色々な味付けをされたのが`bat`コマンドになります。

以下のような特徴があります。

- ファイルをシンタックスハイライトで表示
- Gitの差分や変更を表示
- ファイルの連結
- 自動ページング
- 印刷できない文字の表示

`cat`と比べて結構たくさんの違いがありますね。

Unix系のディストリビューションや、Redhat系のディストリビューションもサポートしているみたいなのでmacやCentOSなんかにもインストールできますね！

## batコマンドのインストール 

batコマンドをインストールする

```bash
curl -LJO https://github.com/sharkdp/bat/releases/download/v0.9.0/bat_0.9.0_amd64.deb
sudo dpkg -i bat_0.9.0_amd64.deb

#curlコマンドのオプション説明
-L リダイレクトを有効にする
-J レスポンスをそのファイル名で保存する
-O URLのファイル名でダウンロードする
```

macへインストールするにはこちらのコマンド

```bash
brew install bat
```

### batコマンド出力例

私のターミナルにも`bat`コマンドを入れてみたので、実際に使ってみた画像を添付します。

batコマンド　![batコマンド画像](https://storage.googleapis.com/zenn-user-upload/d8b8a98470f6-20220306.png)

いかがでしょうか？
`cat`コマンドと同じファイルを見比べてみましょう。



catコマンド　![catコマンド画像](https://storage.googleapis.com/zenn-user-upload/86d8e4c2f703-20220306.png)


もう、一目瞭然で`bat`コマンドの勝ち！！！

## tigコマンド

このコマンドもEnvaderをやらなければ知らずに人生を終えていたかも知れません。

解説を読んでみると、gitコマンドのTUI(Text User Interface)らしいです。
何やらgitコマンドをGUI風に表示できるとか。

ちなみにTUI(Text User Interface)とは何なのか？ですが、ターミナル上でGUIのような操作性を提供してくれるらしいです。

`tig`コマンドでは、ファイルを開いて編集、コミットまで色々な事ができるので、Git管理が少し楽にできるようになる。っと言ったところでしょうか。


## tigコマンドをインストール

インストールするにはこちらのコマンド

```bash
sudo apt install tig -y
```

macの場合はこちらのコマンド

```bash
brew install tig
```

バージョンが古い可能性があるらしく、最新版を使いたい場合はソースコードからビルドした方がいいらしいです。

```bash
git clone git://github.com/jonas/tig.git
```
これで完了。


`tig`コマンドに関してはまだまだ使いこなせていないため上手く表現できませんが、きっとプロなグラマーさん達の間では重宝される事でしょう。

分かりやすい解説をされている方がいらしたので、ご紹介させていただきます。

[超絶便利なGitクライアントのtigのすすめ](https://qiita.com/vivid_muimui/items/7e7a740e6537749de0c0#url%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)


## まとめ

- `bat`コマンドはシンタックスハイライトでファイルが出力されるのでテンションが上がり、結果生産性が上がる。(はず)
- `tig`コマンドはTUI(Text User Interface)で、GUI風に表示ができるので便利。


今回はオンライン学習サービスEnvaderのターミナルカスタマイズコースに取り組んでみましたが、その他にも様々なコースが用意されているので、気になる方がいらしたらコース一覧のリンクを貼っておきますので、参考になればと思います。

[コース一覧](https://envader.plus/course)

## 参考にさせていただいた記事一覧

[【 cat 】コマンド――設定ファイルの内容を簡単に確認する](https://atmarkit.itmedia.co.jp/ait/articles/1602/25/news034.html#:~:text=cat%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A8%E3%81%AF%EF%BC%9F,%E5%A4%9A%E3%81%8F%E3%81%8C%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7%E3%81%99%E3%80%82)

[catをより良くしたCLIツール「bat」](https://co.bsnws.net/article/332)

[Curl - DOS コマンド一覧](https://www.pg-fl.jp/program/dos/doscmd/curl.htm#opt_remote_header_name)

[よく使うcurlコマンドのオプション](https://qiita.com/ryuichi1208/items/e4e1b27ff7d54a66dcd9)

[超絶便利なGitクライアントのtigのすすめ](https://qiita.com/vivid_muimui/items/7e7a740e6537749de0c0#url%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)

[GitのCUI最強クライアント「tig」のインストール(Mac)](https://qiita.com/uhooi/items/d1300f43f468341fcdc6)

最後まで読んでいただきありがとうございました。