GUIよりもCUIが便利なとき！実践で学ぶ効率化テクニック（初心者向け）

## **はじめに**

こんにちは！今回は、CUI（キャラクターユーザインターフェース）の便利さを実践例を通じて紹介します。CUIは一見とっつきにくいと思うかもしれませんが、一度覚えれば非常に強力かつ効率的で魔法のような力を秘めています。

特に、次のような場合にその便利さを実感できるでしょう。

- **大量のファイルやフォルダを一括で操作したい**
- **特定の条件でファイルを検索・編集したい**
- **手作業では時間がかかる処理を一瞬で終わらせたい**

今回は「GUIだと大変だけど、CUIだと一瞬でできる！」をテーマに、わかりやすい例を交えながらCUIの使い方を紹介します。初心者の方や高校生でも気軽に試せる内容になっていますので、ぜひ最後までお読みください！

---

## **CUIとGUIの違い**

まずは簡単にCUIとGUIの違いをおさらいしておきましょう。

### **GUI（グラフィカルユーザーインターフェース）**
- 見た目: アイコンやウィンドウなどのビジュアルが豊富
- 操作方法: マウスでクリックして操作
- 長所: 直感的で使いやすい
- 短所: 手作業が多く、効率が落ちることも

### **CUI（キャラクターユーザインターフェース）**
- 見た目: コマンドラインに文字を入力するだけ（だけど何かカッコイイ！）
- 操作方法: キーボードでコマンドを入力
- 長所: 自動化や大量処理が得意
- 短所: 初心者には少し難しい？（とっつきにくい感）

---

## **CUIが便利な場面と具体例**

ここからは、CUIの便利さを具体例で解説していきます。全てUbuntuやMacターミナルで動作確認済みです。

---

### **1. 大量のフォルダを一括で作成**

あなたは管理者で100個のフォルダを作るとしましょう。

#### **GUIの場合**
1. デスクトップ上で右クリック → 「新しいフォルダ」。
2. フォルダ名を「folder_001」に変更。
3. これを100回繰り返す…。

正直、大変すぎます。

#### **CUIの場合**
以下のコマンド1行で解決します！

```bash
for i in $(seq -w 1 100); do mkdir "folder_$i"; done
```

- **`seq -w 1 100`**: 1から100までの数字を0埋め（001, 002, ...）で生成。
- **`mkdir`**: フォルダを作成。
- **結果**: `folder_001` ～ `folder_100` が一瞬で作成されます。

---

### **2. 奇数番号のフォルダだけ削除**

作成した100個のフォルダから奇数番号を削除する。

#### **GUIの場合**
1. 奇数番号のフォルダを目で確認。
2. 1つずつ削除。
3. これを50回繰り返す…。

これも手間です。。。面倒過ぎ！

#### **CUIの場合**
以下のコマンドで一瞬です！

```bash
for i in $(seq -w 1 2 100); do rm -r "folder_$i"; done
```

- **`seq -w 1 2 100`**: 1から100まで2ずつ増加（奇数番号）。
- **`rm -r`**: フォルダを削除。

---

### **3. 偶数番号のフォルダを名前変更**

今度は偶数番号のフォルダの名前を変更したい場合です。
もうGUIは書きませんよ。

例えば、偶数番号のフォルダを `even_folder_002`, `even_folder_004` ... に変更したい場合も、CUIなら以下の通り。

```bash
for i in $(seq -w 2 2 100); do mv "folder_$i" "even_folder_$i"; done
```

- **`mv`**: ファイルやフォルダの名前を変更。

---

### **4. 特定の文字列を含むファイルを検索**

サーバー管理等で仮に「error1234」という文字列を含むログファイルを探したいとき、GUIなら１つずつ中身を確認しながら探す事になりますが、CUIなら一瞬で結果がわかります。

```bash
grep -r "error" /path/to/directory
```

- **`grep`**: ファイル内の特定の文字列を検索。
- **`-r`**: フォルダ内の全ファイルを再帰的に検索。

---

### **5. ファイルを一括リネーム**

「.txt」の拡張子を「.bak」に変更する場合、CUIなら次のように一括で行えます。
.bakは設定ファイルをバックアップしておく時によく使います。

```bash
for i in *.txt; do mv "$i" "${i%.txt}.bak"; done
```

- **`${i%.txt}`**: ファイル名から拡張子を取り除く。

---

### **6. ファイルサイズが大きいものだけ削除**

例えば、10MB以上のファイルを削除したい場合:

```bash
find /path/to/directory -type f -size +10M -exec rm {} \;
```

- **`find`**: 条件に合うファイルを検索。
- **`-size +10M`**: サイズが10MBを超えるものを指定。

---

### **7. 定期的な作業を自動化**

CUIでは「cron」を使って作業をスケジュールできます。
GUIだと、、、土曜の深夜とかバックアップ作業どうする？

#### **例: 毎日深夜にフォルダをバックアップ**
```bash
(crontab -l; echo "0 0 * * * rsync -av /source /backup") | crontab -
```

---

## **まとめ**

ここまでの例から、CUIには次のようなメリットがあることがわかります。

- **スピード**: 手作業の何倍もの速さで作業が終わる。
- **正確性**: 人間のミスを防ぐことができる。
- **柔軟性**: 条件に応じた処理が簡単に可能。
- **自動化**: 定期的なタスクを完全に自動化できる。

---

## **実践的なタスクに挑戦してみよう！**

最後に、以下のタスクを是非お使いのLinuxやMacで実際試してみてください。

1. **1～100までのテキストファイルを作成**:
   ```bash
   for i in $(seq -w 1 100); do touch "file_$i.txt"; done
   ```

2. **奇数番号のファイルを削除**:
   ```bash
   for i in $(seq -w 1 2 100); do rm "file_$i.txt"; done
   ```

3. **偶数番号のファイルに内容を書き込む**:
   ```bash
   for i in $(seq -w 2 2 100); do echo "This is file $i" > "file_$i.txt"; done
   ```

---

## **注意点**

- コマンドは必ず実行前に意味を理解してください。
- 重要なデータを扱う際は、**必ずバックアップを取る**こと。
- 実験環境で試すことをおすすめします。

---

## **おわりに**

CUIは最初は、難しそうに感じるかもしれませんし、コマンド覚えるのって「正直意味ある？」って思ったりします。
実際私がそうでした。GUIで簡単だし、それでいいじゃんと！
でも実際にLinux Serverを使い始めるとその便利さに驚きました。特にリモートで作業を行う際はサクサク動作するのでCUI最高ってなりますよ！Linuxは元々全てのデータがディレクトリとファイルで構成されているのでCUIさえあれば問題なしです。
またバージョンが上がってもCUI操作は基本変わらないので長く使える技術になっているのも習得するメリットだと思います。

是非今回の例を参考に、積極的にCUIを使ってください。

もし質問や疑問があれば、コメント欄で教えてくださいね！

---