知っておいて損はしないコマンド・ターミナル操作！

こんにちは！[issy_s16](https://twitter.com/issy_s16)です！
今回は普段よく使うコマンドシェル操作などをまとめていきたいなと思います。

なお、この記事はGIGアドベントカレンダー13日目です！
GIGメンバーの投稿はこちら👇 から見てみてね！
https://qiita.com/organizations/gig-inc


## ディレクトリ移動を楽にする
お気に入りコマンドの１つ目は[autojump](https://github.com/wting/autojump)です。
これがあるとよく行くディレクトリには一発でcdできるようになります。
例えば `/Users/issy/Projects/sample-project` に移動したい場合は、

```
j sample-project
```

とかで遷移できるようになります。

あとは`j -s`とすると現在の優先度の確認ができたりします。

## 何かしらの標準出力結果をインクリメンタルサーチしたい
２つ目は[peco](https://github.com/peco/peco)です。
これは標準出力された結果を検索できるようになります。

例えばこんな感じ。

```
history | peco
```

こうすることでコマンド履歴を検索することができたりします。

## さっきいたディレクトリに戻りたい
3つ目はこれです！
cdはただディレクトリ指定して移動するだけじゃなくて、`cd -`とすると一つ前にいたディレクトリに移動できます。

```
cd -
```

## 今日何曜日だっけ？
ちょっとネタ感ありますが、例えば○日の曜日確認したいなーなんてときにターミナルから移動したくなくて、僕は以下のコマンドを打って確認してます。

```
cal
```

出力結果はこんな感じ。

```
      12月 2020
日 月 火 水 木 金 土
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
```

`cal 2020`とかその年のカレンダーを見たりすることもできます。

## 今日の天気が知りたい
これはおもしろいので紹介しておくと、[wttr.in](http://wttr.in/)っていう天気予報の情報をテキストベースで返却してくれるサービスがあります。

```
curl wttr.in/Tokyo
```

↓出力結果

```
Weather report: Tokyo

     \  /       Partly cloudy
   _ /"".-.     16 °C
     \_(   ).   ↗ 19 km/h
     /(___(__)  10 km
                0.2 mm
                                                       ┌─────────────┐
┌──────────────────────────────┬───────────────────────┤  Sun 13 Dec ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│  _`/"".-.     Patchy rain po…│               Overcast       │    \  /       Partly cloudy  │    \  /       Partly cloudy  │
│   ,\_(   ).   12..15 °C      │      .--.     12..15 °C      │  _ /"".-.     14 °C          │  _ /"".-.     9 °C           │
│    /(___(__)  → 58-67 km/h   │   .-(    ).   → 64-74 km/h   │    \_(   ).   → 48-57 km/h   │    \_(   ).   → 46-53 km/h   │
│      ‘ ‘ ‘ ‘  10 km          │  (___.__)__)  10 km          │    /(___(__)  10 km          │    /(___(__)  10 km          │
│     ‘ ‘ ‘ ‘   0.2 mm | 71%   │               0.0 mm | 0%    │               0.0 mm | 0%    │               0.0 mm | 0%    │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
                                                       ┌─────────────┐
┌──────────────────────────────┬───────────────────────┤  Mon 14 Dec ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│    \  /       Partly cloudy  │    \  /       Partly cloudy  │    \  /       Partly cloudy  │    \  /       Partly cloudy  │
│  _ /"".-.     11..14 °C      │  _ /"".-.     10..14 °C      │  _ /"".-.     10..14 °C      │  _ /"".-.     10..13 °C      │
│    \_(   ).   → 64-74 km/h   │    \_(   ).   → 67-77 km/h   │    \_(   ).   → 48-55 km/h   │    \_(   ).   → 43-49 km/h   │
│    /(___(__)  10 km          │    /(___(__)  10 km          │    /(___(__)  10 km          │    /(___(__)  10 km          │
│               0.0 mm | 0%    │               0.0 mm | 0%    │               0.0 mm | 0%    │               0.0 mm | 0%    │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
                                                       ┌─────────────┐
┌──────────────────────────────┬───────────────────────┤  Tue 15 Dec ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│    \  /       Partly cloudy  │    \  /       Partly cloudy  │    \  /       Partly cloudy  │    \  /       Partly cloudy  │
│  _ /"".-.     5..10 °C       │  _ /"".-.     5..10 °C       │  _ /"".-.     5..10 °C       │  _ /"".-.     4..9 °C        │
│    \_(   ).   → 68-78 km/h   │    \_(   ).   → 68-78 km/h   │    \_(   ).   → 73-84 km/h   │    \_(   ).   → 69-80 km/h   │
│    /(___(__)  10 km          │    /(___(__)  10 km          │    /(___(__)  10 km          │    /(___(__)  10 km          │
│               0.0 mm | 0%    │               0.0 mm | 0%    │               0.0 mm | 0%    │               0.0 mm | 0%    │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
Location: 東京都, 日本 [34.2255804,139.294774527387]
```

なので、これを僕の場合は`weather`ってコマンドで打てるようにaliasして使ってます。

## 一旦違う作業したい
例えばvimを開いてて保存したけど、開いたまま別の作業したいときとかありますよね？
そういう場合は`Ctrl+z`でバックグランドに移せることを知っておくと便利です！

その後、またvimでの作業に戻りたいときには`fg`コマンドを実行することで戻ってこられます。

```
fg
```

また、バックグランドに移したプロセスが複数ある場合は以下で状態を確認できます。

```
jobs
```

どのjobをフォアグラウンドに戻すか指定する場合は`fg ジョブ番号`で可能です。