小技【ターミナル】

# はじめに

ターミナルの簡単コマンドテクニック集です。

# 一度に作成する
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">知らなかった、実はターミナルでできること<br><br>☆一度に作成<br>- 複数ディレクトリ<br>- （複数ディレクトリ以下に）複数ファイル<br>- 名前の一部が違うファイル<br><br>☆mkdirとcdの同時実行<br><br>☆カーソルを単語ごとに移動 / 文頭・文末に移動<a href="https://t.co/V4vfwCTMxx">https://t.co/V4vfwCTMxx</a></p>&mdash; たま（漢）＠3/27 LINEbotイベント！ (@SamuraiStats) <a href="https://twitter.com/SamuraiStats/status/1770054647434355011?ref_src=twsrc%5Etfw">March 19, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

https://qiita.com/simeji/items/cae94349a2ae02d3204d

```bash
mkdir (dir1, dir2) #ディレクトリを2つ作成

touch dir1/{file1, file2} #dir1以下にファイルを2つ作成

touch {dir1, dir2}/{file1, file2} #それぞれのディレクトリに2つのファイルを作成

touch file_{1, 2, 3}_hoge #file_1_hoge, file_2_hoge, file_3_hogeを作成
```

# `mkdir`と`cd`の同時実行

> ```bash
> mkdir /the/directory/path; cd $_
> ```

# カーソルの単語ごとの移動
> カーソル移動は、  
> `Ctrl-A` で先頭、 `Ctrl-E` で末尾には飛べますが、  
> `ESC-f` で1単語進める、 `ESC-b` で1単語戻る事ができます。  
> さらにこの `ESC` は `CTRL-[` でもokです。 Vim もそうですね。

# コマンド履歴から検索して実行

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">☆コマンド履歴を検索して実行<a href="https://t.co/YpKwFHMPGT">https://t.co/YpKwFHMPGT</a></p>&mdash; たま（漢）＠3/27 LINEbotイベント！ (@SamuraiStats) <a href="https://twitter.com/SamuraiStats/status/1770054899835035859?ref_src=twsrc%5Etfw">March 19, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

https://qiita.com/quwa/items/3a23c9dbe510e3e0f58e

1. `ctrl + r`で検索モードに移行
2. 検索したい文字列を入力
3. `ctrl + r`を押すと該当する履歴を順番に遡る
# ファイルの絶対パスを取得

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">☆ファイルの絶対パスを取得<br><br>☆Finder（mac）/ File Explorer（win）でファイルを開く<br><br>☆ファイルの検索<a href="https://t.co/Q8FslMebIn">https://t.co/Q8FslMebIn</a></p>&mdash; たま（漢）＠3/27 LINEbotイベント！ (@SamuraiStats) <a href="https://twitter.com/SamuraiStats/status/1770055343172956666?ref_src=twsrc%5Etfw">March 19, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

https://staffblog.amelieff.jp/entry/2020/06/24/100031

ファイルをターミナルにドラッグ&ドロップ

# Finder（mac）/ File Explorer（win）でファイルを開く

```bash
open sample.txt # mac
start sample.txt # windows
```

# ファイルの検索

`find`コマンドと`--name`オプションを使用します。
ワイルドカードは`*`です。

```
find . -name "*hoge*" # hoge...にも、...hogeにも、...hoge...にもマッチする
```

# その他、一生に一度は使うかもしれないコマンド

https://www.amazon.co.jp/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AA%E3%82%89%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84macOS%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%AD%E3%83%9B%E3%83%B3-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%BBDocker%E3%83%BB%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AA%E3%81%A9%E3%82%92%E3%82%A4%E3%83%81%E3%81%8B%E3%82%89%E8%A7%A3%E8%AA%AC-%E5%A4%A7%E6%B4%A5-%E7%9C%9F/dp/4295015032

## 日付を取得

- `date`：現在時刻を取得。パイプラインを使用するとファイルへの書き込みが可能
  例：`date >> sample.txt`（`sample.txt`の末尾に現在時刻を追記）
- `date -v`：日付を調整して返す
  例：`date -v+20d`（20日後を取得）

## 計算

- `echo $((計算))`
  例：`echo $((1+1))`

## 辞書検索

- `open dict://"word"`
  例：`open dict://"ディレクトリ"`
# その他、ネタコマンド

https://viktor-lab.com/mac-tips/315/

## `sl`

SL機関車が走ります。

## `say`

その後に続く言葉を読み上げてくれます

# おわりに

先人の文献に感謝です。ありがとうございます。