Yugien

It’s like a “translator” that lets you tell your computer what to do using only text. You open a terminal window, type a command, and the shell sends it to the OS. Then the computer does the job and shows you the result.

Shell

パソコンに「文字だけで指示を出すための通訳さん」です。画面に文字の窓(ターミナル)を開いて、コマンド(命令文)を打つと、ShellがOSに伝えて実行し、結果を返してくれます。

Shell とは?

例:type ls(それが外部コマンドか、エイリアスか等の正体を表示)
例:echo $PATH(探す場所の一覧を表示)

Shellを学ぶと“何ができる”ようになるか

ふつうのPC操作を“高速・大量・自動”に持っていく力が身につきます。

ファイル・フォルダ操作を一瞬で

移動・作成・削除・コピー・検索
cd, ls, mkdir, rm, cp, mv, find
find ./logs -name "*.log" -mtime -1
(昨日から今日までに更新されたログを検索)

テキスト処理(ログ・CSV・設定ファイル)を自在に

抜き出し・置換・並べ替え・集計
grep, sed, awk, cut, sort, uniq, tr, xargs
grep "ERROR" app.log | cut -d' ' -f1 | sort | uniq -c | sort -nr
(エラーの発生日別件数を多い順に)

パイプとリダイレクトで“つなぐ・流す”

パイプ |
コマンドの出力を次のコマンドの入力へ
リダイレクト > >> <
出力をファイルへ/ファイルから入力
curl -s https://example.com | wc -l > lines.txt

自動化(シェルスクリプト)

変数・条件分岐・繰り返し・関数・引数処理・終了コードの扱い

日次のバックアップ、定期レポート作成、バッチ処理

作業環境の整備(“自分専用の道具箱”)

エイリアス・補完・プロンプト・履歴の活用、.bashrc / .zshrc などの設定

alias gs='git status'

プロセス・ジョブ管理で“動いているもの”を制御

実行中の確認・停止・優先度調整
ps, top, htop, jobs, fg, bg, kill, nice
sleep 300 &(裏で5分待機)→ jobsfg で前面へ

権限・ユーザー・セキュリティの基本を押さえる

sudo, chmod, chown, umask、ファイル所有者・権限の意味

chmod 600 id_rsa(秘密鍵を自分だけ読めるように)

圧縮・アーカイブ・転送

tar, gzip, zip, unzip, scp, rsync

tar -czf backup_$(date +%F).tar.gz ./project

ネットワーク・APIの触り

取得・送信・疎通確認
curl, wget, ping, dig, nc
curl -s https://api.example.com/items | jq .[] | wc -l

パッケージ管理で“道具”を増やす

Linux
apt, dnf, pacman
macOS
brew
sudo apt install jq

サーバ運用の入口

サービス管理・ログ閲覧・定期実行
systemctl, journalctl, cron, logrotate
crontab -e で毎日3:00にバックアップ

開発フローの加速(Git・Docker・CI/CD・クラウドCLI)

Git操作・ブランチ運用、Dockerビルド、GitHub Actionsのトリガ、AWS/Azure/GCPのCLI活用

データ前処理(CSV/TSV/JSONの軽作業)

巨大ファイルでも“待てる速度”で集計やフィルタが可能

csvcut, csvgrep, mlr (miller), jq

まず5分で“触って”みる(最短コース)

どの環境で?

macOS / Linux
標準でターミナルとシェル(bash/zsh)が使えます。
Windows
WSL(Windows Subsystem for Linux)を入れてUbuntuなどを使う。
もしくは Git Bash(簡単)。
PowerShellは“別系統のシェル”ですが、目的は似ています。

場所の確認と移動

Git Bash

pwd
ls
cd ..
ls -la

検索と数える(パイプの気持ち良さ)

Git Bash

grep -R "TODO" ./project | wc -l

Webから行数を数えてみる(つなぐ)

Git Bash

curl -s https://example.com | wc -l

超ミニスクリプト(1分)

拡張子.logのサイズ上位10件

Git Bash

cat <<'EOF' > top-logs.sh
#!/usr/bin/env bash
set -eu
find . -name "*.log" -type f -print0 \
  | xargs -0 ls -l \
  | sort -nr -k5 \
  | head -n 10
EOF
chmod +x top-logs.sh
./top-logs.sh

学び方の道筋(ロードマップ)

レベル1:入口(1日)

ターミナルとシェルの違い
pwd, ls, cd, cat, less
ヘルプの引き方
--help, man, help
安全第一
rm -rfは打たない、ワイルドカード*は慎重に、sudoは最小限

レベル2:つなぐ力(1〜2週間)

リダイレクト(>, >>, <)、パイプ(|

基本ツール
grep, cut, sort, uniq, tr, xargs

グロブ(*.txt)とクォート("…", '…')の違い

レベル3:自動化の基礎(2〜4週間)

シェルスクリプト
変数、if/for、関数、引数($1 など)、exitコード、trap
堅牢性の初歩
set -euo pipefail、一時ファイル、mktemp

レベル4:運用の入口(継続)

レベル5:発展(必要に応じて)

まずは“これだけ”守る安全ルール

削除系は即Enterしない
rm-i(確認つき)を検討。パスはタブ補完で誤字防止。
ワイルドカードはエコー確認
echo *.log で展開結果を見てから本番。
sudoは必要最小限
管理領域を書き換えるコマンドは意味を理解してから。
クォートで意図せぬ展開を防ぐ
"$var" を基本形に。
ドライラン
rsync -n など“実行せずに差分だけ確認”できるオプションを探す。

よくある誤解

ミニ用語辞典

Shell
コマンドを解釈してOSに渡すプログラム。
ターミナル(端末)
キーボード入力とテキスト表示を司るアプリ。
コマンド
Shellが実行する命令(外部コマンド/ビルトイン等)。
パイプ |
前コマンドの出力を次コマンドの入力へつなぐ。
リダイレクト > >>
出力をファイルへ保存。
環境変数
PATH, HOME など、コマンドの振る舞いに影響する設定。
exitコード(終了ステータス)
0は成功、0以外は失敗の合図。

次に作ると良いページ案(サイト構成の叩き台)

Index

cd
ターミナルの中で「今いるフォルダ」を別の場所に移りたいときに使う、移動用の基本コマンド。
ls
フォルダの中にどんなファイルがあるのかを、隠しファイルや細かい情報も含めて一覧で見られる、ターミナルでの“中身チェック”に欠かせないコマンドです。