Mac：Terminalの基本

# はじめに
MacのTerminalの使い方に迷う時があり、都度調べては忘れるの繰り返しなので、、
ここいらで学び直そうと思う。
MacのTerminalの基本的なコマンドや使い方について本記事に記載していく。

・実施環境
　Mac OS：Sequoia 15.3 

# 基本
## ショートカット
### コマンド履歴から実行：ctrl + r
Terminal上で　$ ctrl + r　と入力するとコマンド履歴から実行することが可能となる。
例えば以下のような感じで、頭の文字列を打つと過去に入力したコマンド履歴が自動的に表示され、実行することができる。
![スクリーンショット 2025-02-01 10.37.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782130/38d18a75-ba5e-6e6c-43c0-ab2e8d869b4c.png)

### 画面のクリア：ctrl + l or $ clear
ctrl + l　で画面をクリア可能。
また、コマンドとしても　$ clear　で画面をクリア可能。
## Tree構造でファイルを表示してくれる：tree
デフォルトでは使えないので、brewでインストール
```$ brew install tree```
brewでインストールしたとに $ tree　と入力すると以下のように表示されて便利⭐️
![スクリーンショット 2025-02-01 10.57.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782130/47f7dadf-e0a5-62f4-b747-ac2e7c7ea212.png)

###  カーソルを文頭にする：ctl + a
コマンドを入力し、
![スクリーンショット 2025-02-01 11.01.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782130/55a39ba3-882a-d355-88b9-89a6936c62d4.png)
ctl + a　と入力するとカーソルの位置が文頭になる
![スクリーンショット 2025-02-01 11.01.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782130/87554c36-f8fe-3d2f-c86b-ba9142735166.png)

###  カーソルを文末にする：ctl + e
文頭の逆。これも便利

### tabによる補完
tabを打つとコマンド名やファイル名を予測して表示してくれる

### ↑ / ↓
過去に打ったコマンドを出すことが出来る

### Finderで開いたDirectoryをTerminalにドラッグ&ドロップすると、Terminal上でパスが表示される
これ、個人的に一番使うので覚えておいて損は無いかと。

## 超基本コマンド
| コマンド | 説明 |
|:-:|:-:|
| $ ls  | 今いる地点にあるファイルを一覧表示してくれるコマンド  |
| $ pwd  | 今いる場所を教えてくれるコマンド（print working directorの略）  |
| $ cd  | ディレクトリ移動（「change directory」の略）  |
| $ mkdir  | ディレクトリ作成  |
| $ mv  | ディレクトリ移動（moveの略）  |
| $ cp [コピーするファイル] [新しく作るファイル名  | ファイルコピー、ディレクトリーコピー可  |
| $ cd -  | 一つ前のディレクトリに戻る（意外と使うかも？）  |
| $ cat (ファイル名)  | ファイルの中身を表示  |

## ファイルアクセス系
### ファイルの中身を表示：cat 
![スクリーンショット 2025-02-01 11.14.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782130/0f7ff552-ed9d-0387-17bb-55313e06184a.png)

### 検索：find
・検索条件
　find ディレクトリ -type d  #ディレクトリを探し出す
　find ディレクトリ -type f  #ファイルを探し出す
・アクション
　find ディレクトリ 検索条件 -print  #検索ファイルを表示する
　find ディレクトリ 検索条件 -ls  #検索ファイルを詳しく表示する）

ワイルドカードを使うと便利（""は効かないっぽい）
```
# カレントディレクトリからファイル名"test.txt"で検索
$ find . -name test.txt 

# カレントディレクトリからファイル名"test"と言うファイル名で拡張子が何でも良いので検索
% find . -type f -name test.*  

# カレントディレクトリからファイル名の頭に"test"と言う文字列であるファイル名を検索
% find . -type f -name test* 
```

※こちらの記事が超分かりやすいのでおすすめ
　https://zenn.dev/heku/articles/877c7d5503b812

### ファイルの末尾を表示：tail
サーバログを最新ログを動かしながら追うときとかによく使うと思われる。
```
$ tail -n 10 test.log  #ファイル末尾から10行目までを表示
$ tail -f test.log     #指定したファイルを常に監視して表示を更新する
```

### ファイル内から指定した文字に一致する内容を含む行を検索：grep
grep オプション 検索文字列 ディレクトリ名
```
% grep test1 test.txt
test1

$ grep test1 *.txt   
test1
```

## その他便利なコマンド
### Finderで開く、ファイルを開く
デフォルトのテキストエディタでファイルを開く
```$ open test.text```

アプリを起動
```$ open /System/Applications/App\ Store.app ```

URLからWebページ開く
```$ open https://qiita.com```

ディレクトリ指定してFinder起動
```$ open ~/Downloads/```

今いるディレクトリをFinderで表示
```$ open ./```

### 過去に打ったコマンドの一覧表示：history
historyと入力するとこんな感じで過去に打ったコマンドの一覧表示される。
![スクリーンショット 2025-02-01 11.07.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782130/0d0c0002-2057-ef15-43b7-f54d348cc055.png)

便利なのが「![履歴番号]」過去に入力したコマンドを実行できること
味噌は頭に"!"をつける必要があること。
![スクリーンショット 2025-02-01 11.09.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782130/06fb92ca-db9c-d0c6-a79e-391425e7482b.png)

### 起動しているプロセスを表示：ps
![スクリーンショット 2025-02-01 11.33.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782130/b403bfcc-79da-2237-7442-356155739b2d.png)



以上