1-3. コマンドライン基礎
このセクションで学ぶこと
Section titled “このセクションで学ぶこと”- シェルとは何か
- 基本的なコマンドでファイル操作ができる
- パイプとリダイレクトの使い方
- 環境変数とパスの概念
1. シェルとは
Section titled “1. シェルとは”シェル(Shell) とは、OSに対してコマンド(命令)を入力するためのインタフェース。
ユーザー → シェル → OS(カーネル) → ハードウェアGUIのファイルマネージャーを使ってファイルを操作するのと同じことを、文字で行う。エンジニアがCLIを使う理由は以下の通り。
- 操作を自動化できる(スクリプト化)
- リモートサーバーにはGUIがない場合が多い
- GUIより高速に操作できる
この研修では、Windows 上でも Git Bash を標準シェルとして使う。
1-1 で学んだように、OS はファイルシステムやプロセスを管理している。
コマンドラインでは、その OS の機能を文字による命令として直接扱う。
代表的なシェル
Section titled “代表的なシェル”| シェル | 説明 |
|---|---|
| Git Bash | Windows で bash 系コマンドを使うための、この研修の標準シェル |
| bash | Linux で広く使われるシェル |
| zsh | macOS でよく使われる高機能シェル |
| PowerShell | Windows 標準の高機能シェル |
ターミナルを開くと、シェルが起動してコマンドの入力を待っている状態になる。
student@PC MINGW64 ~$ ← これがプロンプト(入力を促す表示)上の例では MINGW64 が Git Bash 環境を表している。
プロンプトの表示はPCごとに異なるが、「ここにコマンドを入力する」という意味は同じ。
2. ファイル・ディレクトリ操作
Section titled “2. ファイル・ディレクトリ操作”ディレクトリの構造
Section titled “ディレクトリの構造”ファイルはディレクトリ(フォルダ)を使って木構造で管理されている。
/(Git Bash から見たルート)├── c/│ └── Users/│ └── student/│ ├── Desktop/│ ├── Documents/│ └── practice/│ └── demo/└── usr//(スラッシュ)は Git Bash から見たルートディレクトリ(最上位)~(チルダ)はホームディレクトリ(ユーザーのディレクトリ)の省略記法- Windows の
C:\Users\student\practice\demoは、Git Bash では/c/Users/student/practice/demoと表される
基本コマンド
Section titled “基本コマンド”現在地の確認
Section titled “現在地の確認”$ pwd/c/Users/student/practice/demopwd(Print Working Directory):現在いるディレクトリのパスを表示。
ファイル・ディレクトリ一覧の表示
Section titled “ファイル・ディレクトリ一覧の表示”$ lsREADME.md src/
$ ls -l # 詳細表示total 8drwxr-xr-x 1 student 197121 0 Mar 20 10:00 src-rw-r--r-- 1 student 197121 512 Mar 20 10:00 README.md
$ ls -la # 隠しファイルも含めて詳細表示ディレクトリの移動
Section titled “ディレクトリの移動”$ cd src # src に移動$ cd .. # 1つ上のディレクトリに移動$ cd ~ # ホームディレクトリに移動$ cd /c/Users/student/Documents # 絶対パスで移動ディレクトリの作成・削除
Section titled “ディレクトリの作成・削除”$ mkdir new_dir # ディレクトリを作成$ mkdir -p a/b/c # 中間ディレクトリも含めて作成
$ rmdir new_dir # 空のディレクトリを削除$ rm -r new_dir # 中身ごと削除(注意:元に戻せない)ファイルの作成・表示・削除
Section titled “ファイルの作成・表示・削除”$ touch file.txt # 空のファイルを作成(または更新日時を更新)
$ cat file.txt # ファイルの内容を全部表示$ less file.txt # ページャーで表示(qで終了)$ head -n 10 file.txt # 先頭10行を表示$ tail -n 10 file.txt # 末尾10行を表示$ tail -f log.txt # ファイルの追記をリアルタイムで表示
$ rm file.txt # ファイルを削除ファイルのコピー・移動・リネーム
Section titled “ファイルのコピー・移動・リネーム”$ cp file.txt copy.txt # ファイルをコピー$ cp -r dir1/ dir2/ # ディレクトリをコピー
$ mv file.txt moved.txt # ファイルを移動(またはリネーム)$ mv file.txt ~/Documents/ # ホーム配下の Documents/ へ移動絶対パスと相対パス
Section titled “絶対パスと相対パス”| 種類 | 説明 | 例 |
|---|---|---|
| 絶対パス | ルート(/)から始まる完全なパス | /c/Users/student/practice/demo |
| 相対パス | 現在地からの相対的なパス | ../../Documents や ./README.md |
現在地: /c/Users/student/practice/demo
./README.md → /c/Users/student/practice/demo/README.md../ → /c/Users/student/practice/../../Documents → /c/Users/student/Documents3. ファイルの検索
Section titled “3. ファイルの検索”$ grep "pattern" file.txt # ファイル内を検索$ grep -r "pattern" ./ # ディレクトリを再帰的に検索$ grep -n "pattern" file.txt # 行番号付きで表示
$ find . -name "*.md" # 拡張子が .md のファイルを探す$ find . -type d # ディレクトリのみを探す4. パイプとリダイレクト
Section titled “4. パイプとリダイレクト”リダイレクト(>)
Section titled “リダイレクト(>)”コマンドの出力をファイルに保存する。
$ echo "Hello" # 画面に "Hello" と表示$ echo "Hello" > hello.txt # "Hello" を hello.txt に書き込む(上書き)$ echo "World" >> hello.txt # hello.txt に追記するパイプ(|)
Section titled “パイプ(|)”あるコマンドの出力を、次のコマンドの入力として渡す。
# ls の出力を grep に渡して "md" を含む行だけを表示$ ls | grep "md"
# ファイルの内容を sort して上位10行を表示$ cat access.log | sort | head -n 10
# ファイルの行数を数える$ cat file.txt | wc -lパイプはコマンドを組み合わせることで、複雑な処理を実現できる強力な機能。
5. 環境変数とパス
Section titled “5. 環境変数とパス”OSが管理する変数。プログラムの設定やシステムの情報を格納する。
$ echo $HOME # ホームディレクトリのパス/c/Users/student
$ echo $USER # 現在のユーザー名student
# 環境変数を設定する$ export MY_NAME="Alice"$ echo $MY_NAMEAlice
# 全ての環境変数を表示$ envPATH(パス)
Section titled “PATH(パス)”コマンドを入力すると、OSは PATH という環境変数に登録されたディレクトリを順番に探して実行する。
$ echo $PATH/mingw64/bin:/usr/bin:/c/Program Files/nodejs:/c/Windows/System32
# git コマンドがどこにあるか調べる$ which git/mingw64/bin/gitPATH に含まれていないディレクトリのプログラムは、フルパスで指定しないと実行できない。
# PATH に追加する(一時的)$ export PATH="$PATH:/c/Users/student/myapp/bin"
# 永続化するには ~/.bashrc に追記する6. よく使うショートカット
Section titled “6. よく使うショートカット”| ショートカット | 動作 |
|---|---|
Ctrl + C | 実行中のコマンドを強制終了 |
Ctrl + Z | 実行中のコマンドを一時停止(バックグラウンドへ) |
Tab | コマンドやパスの補完 |
↑ / ↓ | コマンド履歴を辿る |
Ctrl + R | コマンド履歴をキーワード検索 |
Ctrl + L | 画面をクリア(clear コマンドと同じ) |
| コマンド | 役割 |
|---|---|
pwd | 現在のディレクトリを表示 |
ls | ファイル一覧を表示 |
cd | ディレクトリを移動 |
mkdir | ディレクトリを作成 |
rm | ファイル・ディレクトリを削除 |
cp | ファイルをコピー |
mv | ファイルを移動・リネーム |
cat | ファイルの内容を表示 |
grep | ファイル内のパターン検索 |
echo | 文字列を表示 |
| ` | `(パイプ) |
>(リダイレクト) | 出力をファイルへ保存 |
次のステップ
Section titled “次のステップ”演習問題 に取り組んで理解を確認しよう。
第1章の全セクションを終えたら、2-1. ネットワーク基礎 へ進もう。