PCはCUIだけで作業出来るのか？CUIアプリ10選を紹介します

# はじめに

現代のPC作業は、多くの場合GUI（グラフィカルユーザーインターフェース）に依存していますが、コマンドラインユーザーインターフェース（CUI）だけでも日常のほとんどのタスクをこなすことが可能です。（そんな奴いるのか？）
今回は、CUIだけで作業をこなすのに役立つアプリケーションを紹介します。
各アプリのインストール方法から基本的な使い方まで解説しますので、ぜひ参考にしてください。

## 1. Mutt: メールクライアント

### インストール方法
```bash
sudo apt install mutt
```

### 基本の使い方
Muttは軽量でカスタマイズ性の高いメールクライアントです。設定ファイル（`~/.muttrc`）を編集してメールアカウントを設定します。

- メールの確認: Muttを起動すると、受信トレイが表示されます。
- メールの作成: `m`キーを押して新規メールを作成。
- 返信・転送: メールを選択し、`r`で返信、`f`で転送。

### おすすめ設定
SSL/TLSの設定や署名の追加など、セキュリティと利便性を高める設定を行いましょう。

## 2. Newsboat: RSSフィードリーダー

### インストール方法
```bash
sudo apt install newsboat
```

### 基本の使い方
Newsboatはターミナル上で動作するRSSリーダーです。フィードリストを`~/.newsboat/urls`に保存します。

- フィードの購読: `a`キーで新しいフィードを追加。
- 記事の閲覧: 矢印キーで記事を選択し、Enterで内容を表示。
- 記事のマーク: `d`キーで記事を既読にマーク。

### カスタマイズ
テーマやキーバインドを変更して、自分好みのインターフェースにカスタマイズ可能です。

## 3. Rainbowstream: Xクライアント

### インストール方法
```bash
sudo apt install python3-pip #Python入っている場合は不要
pip3 install rainbowstream
```

### 基本の使い方
Rainbowstreamはターミナル内でTwitterを操作できるクライアントです。初回起動時に認証が必要です。

- タイムラインの表示: 起動すると最新のツイートが表示されます。
- ツイートの投稿: `t`キーを押して新しいツイートを作成。
- リプライ・リツイート: ツイートを選択し、`r`でリプライ、`t`でリツイート。

### 機能拡張
フィルタリングやリストの管理など、より高度な機能もサポートしています。

## 4. Vim: テキストエディタ

### インストール方法
```bash
sudo apt install vim
```

### 基本の使い方
Vimは強力なテキストエディタで、プログラミングやドキュメント作成に最適です。

```bash
vim filename
```

- 編集モード: `i`キーで挿入モードに入る。
- 保存・終了: Escキーを押してコマンドモードに戻り、`:wq`で保存して終了。
- 検索: `/`キーを押して検索キーワードを入力。

### プラグインの活用
プラグインマネージャー（例: Vundle）を使用して、機能を拡張しましょう。

## 5. Git: バージョン管理システム

### インストール方法
```bash
sudo apt install git
```

### 基本の使い方
Gitはソースコードのバージョン管理に欠かせないツールです。

```bash
git init
git clone https://github.com/user/repo.git
git status
git add .
git commit -m "コミットメッセージ"
git push origin main
```

- リポジトリの初期化: `git init`で新しいリポジトリを作成。
- 変更の確認: `git status`で現在の状態を確認。
- 変更のステージング: `git add`で変更をステージ。
- コミット: `git commit`で変更を保存。
- リモートへのプッシュ: `git push`でリモートリポジトリに反映。

### ブランチ管理
ブランチを活用して、並行して開発を進めましょう。

```bash
git branch feature-x
git checkout feature-x
```

## 6. Taskwarrior: タスク管理ツール

### インストール方法
```bash
sudo apt install taskwarrior
```

### 基本の使い方
TaskwarriorはCUIで動作する強力なタスク管理ツールです。

```bash
task add "タスクの内容"
task list
task done <タスクID>
```

- タスクの追加: `task add`で新しいタスクを追加。
- タスクの表示: `task list`で現在のタスクを一覧表示。
- タスクの完了: `task done <ID>`でタスクを完了。

### プロジェクト管理
プロジェクトごとにタスクを整理し、効率的に管理できます。

```bash
task add "プロジェクトXのタスク" project:ProjectX
```

## 7. w3m: CUIブラウザ

### インストール方法
```bash
sudo apt install w3m
```

### 基本の使い方
w3mはテキストベースのウェブブラウザで、画像表示もサポートしています。

```bash
w3m https://www.example.com
```

- ページの移動: 矢印キーでリンクを選択し、Enterで移動。
- 検索: `/`キーを押して検索キーワードを入力。
- 履歴の利用: `H`キーで履歴を表示。

### ファイルダウンロード
画像やファイルをダウンロードすることも可能です。

```bash
w3m -dump_source https://www.example.com/file.zip > file.zip
```

## 8. tmux: ターミナルマルチプレクサ

### インストール方法
```bash
sudo apt install tmux
```

### 基本の使い方
tmuxは一つのターミナルで複数のセッションを管理できるツールです。

```bash
tmux
```

- 新しいウィンドウの作成: `Ctrl + b` その後 `c`。
- ウィンドウの切り替え: `Ctrl + b` その後 矢印キー。
- ペインの分割: `Ctrl + b` その後 `%`（垂直分割）または `"`（水平分割）。

### セッションの管理
セッションを名前付きで管理し、再接続が可能です。

```bash
tmux new -s mysession
tmux attach -t mysession
tmux ls
```

## 9. rsync: ファイル同期ツール

### インストール方法
```bash
sudo apt-get install rsync
```

### 基本の使い方
rsyncは効率的にファイルを同期・バックアップするツールです。

```bash
rsync -av --delete ~/project/ /mnt/backup/project/
```

オプション解説:
- `-a`: アーカイブモード（ディレクトリ構造やシンボリックリンクを維持）
- `-v`: 詳細表示
- `--delete`: 送信先に存在しないファイルを削除

### スクリプトによる自動化
定期的なバックアップをスクリプト化して、自動実行することも可能です。

```bash
#!/bin/bash
rsync -av --delete ~/project/ /mnt/backup/project/
```


## 10. cmus: 音楽プレイヤー

### インストール方法
```bash
sudo apt-get install cmus
```

### 基本の使い方
cmusはターミナル内で動作する音楽プレイヤーです。

```bash
cmus
```

- ライブラリのスキャン: `:add ~/Music`
- 再生: 矢印キーで曲を選択し、Enterで再生。
- 再生操作: `c`で再生/一時停止、`x`で停止。

### プレイリスト管理
プレイリストを作成し、効率的に音楽を楽しめます。

```bash
:playlist-add "プレイリスト名" "曲のパス"
```


## まとめ

CUIだけでPC作業を完結させるのは、やはり現実的には難しいと改めて感じました。
制約が多く、すべてのタスクをCUI環境で行うのは無理があると痛感。

しかし、CUIの最大の利点は軽量さです。
メモリ消費が少なく、低スペックのPCには最適な選択肢であることは間違いありません。
特に途上国などではローエンドのPCがいまだに広く使われており、リソースの限られた環境では非常に有効です。

一方で、Linuxのウィンドウマネージャーは近年、よりグラフィカルでリッチな方向へ進化しています。
それ自体は素晴らしいことですが、重いGUI環境を嫌い、軽量な代替OSとしてLinuxを選ぶユーザーも少なくありません。
そのような場合、CUI環境は非常に有力な選択肢となります。
特に、SSHを使ったリモート作業ではCUIはほぼ必須です。

とはいえ、すべての作業をCUIだけで行うのは難易度が高く、私には全てを置き換えることはできませんでした。
もし、すべてCUIで作業している方がいれば、ぜひお話を伺いたい。

結論としては、やはり素直にGUIを使うのが最も効率的だと思います。
ただし、最軽量の環境を目指すなら、CUIを部分的に取り入れるのは非常におすすめです。

最後に、VimはCUI環境に限らず、すべてのプログラマーやターミナルユーザーにとって習得すべきツールです。
強力なテキストエディタであり、一度使いこなせるようになれば、作業効率が劇的に向上することでしょう。
ぜひ挑戦してみてください！

以下のVimの設定記事を紹介させてください。

https://qiita.com/yu_uk/items/2ed3ce509a0fcd2fe8ad

https://qiita.com/yu_uk/items/20d4cf45fde9fa95b925

https://qiita.com/yu_uk/items/2b0f043513da801a8a7b

### 今回使用したアプリ一覧
- Mutt: メールクライアント
- Newsboat: RSSフィードリーダー
- Rainbowstream: Twitterクライアント
- Vim: テキストエディタ
- Git: バージョン管理システム
- Taskwarrior: タスク管理ツール
- w3m: CUIブラウザ
- tmux: ターミナルマルチプレクサ
- rsync: ファイル同期ツール
- cmus: 音楽プレイヤー