LinuxやmacOSのターミナルでよく使われる「Bash(バッシュ)」シェル。
最初はむずかしく感じるかもしれませんが、基本的なコマンドを覚えるだけで操作がぐんと楽になります。
この記事では、Bashで頻繁に使う主要コマンドをジャンルごとにまとめ、初心者にもわかりやすく解説します。
ファイル・ディレクトリ操作の基本コマンド

現在地を確認するコマンド
ターミナルを開いたら、まず「今どこにいるのか」を確認することが大切です。
現在のディレクトリを確認
pwd
実行例
$ pwd
/Users/username/Documents
「pwd」は「Print Working Directory」の略で、現在いる場所のフルパスを表示します。
ディレクトリの中身を確認
ls
実行例
$ ls
file1.txt file2.pdf projects/ pictures/
詳細な情報も表示
ls -la
実行例
$ ls -la
total 24
drwxr-xr-x 5 user staff 160 Jan 8 10:30 .
drwxr-xr-x 8 user staff 256 Jan 7 15:20 ..
-rw-r--r-- 1 user staff 1024 Jan 8 09:15 file1.txt
-rw-r--r-- 1 user staff 2048 Jan 8 10:30 file2.pdf
drwxr-xr-x 3 user staff 96 Jan 7 14:45 projects
-l
オプションで詳細表示、-a
オプションで隠しファイルも表示されます。
ディレクトリ間の移動
指定したディレクトリに移動
cd ディレクトリ名
実行例
$ cd projects
$ pwd
/Users/username/Documents/projects
一つ上のディレクトリに移動
cd ..
ホームディレクトリに移動
cd ~
# または単に
cd
直前のディレクトリに戻る
cd -
ディレクトリとファイルの作成・削除
新しいディレクトリを作成
mkdir フォルダ名
実行例
$ mkdir new_project
$ ls
file1.txt file2.pdf new_project/ projects/
複数階層のディレクトリを一度に作成
mkdir -p project/src/main
空のファイルを作成
touch ファイル名
実行例
$ touch readme.txt
$ ls
file1.txt file2.pdf new_project/ readme.txt
ファイルを削除
rm ファイル名
実行例
$ rm readme.txt
$ ls
file1.txt file2.pdf new_project/
ディレクトリごと削除
rm -r ディレクトリ名
注意:rm
コマンドで削除したファイルは復元できません。-r
オプションは再帰的に削除するため、十分注意して使用してください。
より安全な削除(確認あり)
rm -i ファイル名 # ファイル削除時に確認
rm -ri ディレクトリ名 # ディレクトリ削除時に確認
ファイルのコピーと移動
ファイルをコピー
cp コピー元 コピー先
実行例
$ cp file1.txt backup_file1.txt
$ ls
file1.txt file2.pdf backup_file1.txt
ディレクトリごとコピー
cp -r ディレクトリ名 コピー先
ファイルを移動・リネーム
mv 移動元 移動先
実行例
$ mv file1.txt documents/file1.txt # 移動
$ mv old_name.txt new_name.txt # リネーム
これらはBash操作の基本です。まずは頻繁に使うこれらを覚えましょう。実際に手を動かして練習することが上達への近道です。
ファイル閲覧・編集コマンド

ファイルの内容を表示
ファイルの中身を一気に表示
cat ファイル名
実行例
$ cat config.txt
database_host=localhost
database_port=3306
database_name=myapp
複数のファイルを連結して表示
cat file1.txt file2.txt
行番号付きで表示
cat -n ファイル名
ページ単位での表示
スクロールしながら表示
less ファイル名
lessコマンドの操作方法
Space
:次のページb
:前のページ/検索文字
:文字列検索q
:終了
先頭部分を表示
head ファイル名 # 先頭10行
head -n 5 ファイル名 # 先頭5行
実行例
$ head -n 3 log.txt
2025-01-08 10:00:01 INFO アプリケーション開始
2025-01-08 10:00:02 INFO データベース接続成功
2025-01-08 10:00:03 INFO サーバー起動完了
末尾部分を表示
tail ファイル名 # 末尾10行
tail -n 5 ファイル名 # 末尾5行
リアルタイムでログを監視
tail -f ログファイル名
これはログファイルの監視に非常に便利です。Ctrl + C
で終了できます。
文字列の検索
ファイル内で文字列を検索
grep "検索文字列" ファイル名
実行例
$ grep "ERROR" log.txt
2025-01-08 10:15:22 ERROR データベース接続失敗
2025-01-08 10:20:45 ERROR ファイル読み込みエラー
複数ファイルから検索
grep "検索文字列" *.txt
大文字小文字を区別しない検索
grep -i "error" log.txt
行番号も表示
grep -n "ERROR" log.txt
簡単なテキスト編集
nanoエディタでファイルを編集
nano ファイル名
nanoの基本操作
Ctrl + O
:保存Ctrl + X
:終了Ctrl + W
:検索Ctrl + K
:行の削除
実行例
$ nano config.txt
# エディタが開き、ファイルを編集できる
ファイルの中身を確認・編集するコマンドは、トラブル対応時にも役立ちます。ログファイルの確認や設定ファイルの編集など、日常的に使用する機会が多いでしょう。
プロセスとシステム情報の確認コマンド

プロセスの管理
現在動いているプロセス一覧を表示
ps
実行例
$ ps
PID TTY TIME CMD
1234 pts/0 00:00:01 bash
5678 pts/0 00:00:00 ps
詳細なプロセス情報を表示
ps aux
実行例
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user 1234 0.1 0.5 21528 2048 pts/0 Ss 10:00 0:01 bash
user 5678 0.0 0.1 8944 512 pts/0 R+ 10:15 0:00 ps aux
リアルタイムでシステム状況を表示
top
CPUやメモリの使用状況をリアルタイムで監視できます。q
で終了します。
より見やすいプロセス表示(htopがインストールされている場合)
htop
プロセスの制御
プロセスを終了
kill プロセスID
実行例
$ kill 1234
強制終了
kill -9 プロセスID
プロセス名で検索して終了
killall プロセス名
システム情報の確認
システムの稼働時間とロードアベレージ
uptime
実行例
$ uptime
10:30:45 up 2 days, 14:25, 3 users, load average: 0.52, 0.58, 0.61
ディスク使用量を確認
df -h
実行例
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 12G 7.1G 63% /
/dev/sda2 100G 45G 50G 48% /home
メモリ使用量を確認
free -h
実行例
$ free -h
total used free shared buff/cache available
Mem: 8.0G 2.1G 3.2G 128M 2.7G 5.5G
Swap: 2.0G 0B 2.0G
CPUの情報を確認
lscpu
システムの状態確認やプロセスの管理に役立ちます。サーバー管理やトラブルシューティングの際に頻繁に使用するコマンドです。
ネットワーク関連コマンド
接続確認
ping で接続確認
ping アドレス
実行例
$ ping google.com
PING google.com (172.217.175.46): 56 data bytes
64 bytes from 172.217.175.46: icmp_seq=0 time=15.123 ms
64 bytes from 172.217.175.46: icmp_seq=1 time=14.891 ms
Ctrl + C
で停止します。
回数を指定してping
ping -c 4 google.com
データの取得
Webデータを取得
curl URL
実行例
$ curl https://api.github.com/users/octocat
{
"login": "octocat",
"id": 1,
"name": "The Octocat",
...
}
ヘッダー情報も表示
curl -i URL
ファイルにダウンロード
curl -o ファイル名 URL
wgetでファイルをダウンロード
wget URL
実行例
$ wget https://example.com/file.zip
--2025-01-08 10:30:15-- https://example.com/file.zip
Resolving example.com... 93.184.216.34
Connecting to example.com|93.184.216.34|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1048576 (1.0M) [application/zip]
Saving to: 'file.zip'
ネットワーク設定の確認
ネットワークインターフェースの確認
ifconfig
または新しいシステムでは
ip a
実行例
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
ルーティングテーブルの確認
route -n
# または
ip route
DNS設定の確認
nslookup ドメイン名
# または
dig ドメイン名
ポートの確認
開いているポートを確認
netstat -tuln
# または
ss -tuln
特定のポートの使用状況
lsof -i :ポート番号
ネットワークの接続確認やデータ取得時に便利です。Web開発やサーバー管理で欠かせないコマンド群です。
その他便利なコマンド

コマンド履歴の活用
過去に実行したコマンドの履歴表示
history
実行例
$ history
501 cd projects
502 ls -la
503 cat config.txt
504 nano config.txt
505 history
履歴から検索
history | grep "検索文字列"
直前のコマンドを再実行
!!
履歴番号を指定して実行
!503
コマンドの短縮
エイリアスでコマンドの別名を作成
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'
実行例
$ alias ll='ls -la'
$ ll
total 24
drwxr-xr-x 5 user staff 160 Jan 8 10:30 .
drwxr-xr-x 8 user staff 256 Jan 7 15:20 ..
-rw-r--r-- 1 user staff 1024 Jan 8 09:15 file1.txt
現在のエイリアス一覧
alias
エイリアスの削除
unalias エイリアス名
ヘルプとマニュアル
コマンドのマニュアルを表示
man コマンド名
実行例
$ man ls
# lsコマンドの詳細なマニュアルが表示される
コマンドの簡単な説明
whatis コマンド名
コマンドの場所を確認
which コマンド名
実行例
$ which python
/usr/bin/python
画面とセッションの管理
画面をクリア
clear
またはCtrl + L
でも同じ効果があります。
現在ログインしているユーザーを確認
whoami
システムにログインしているユーザー一覧
who
最近のログイン履歴
last
便利なキーボードショートカット
ショートカット | 機能 |
---|---|
Ctrl + C | 実行中のコマンドを停止 |
Ctrl + D | ターミナルを終了 |
Ctrl + L | 画面をクリア |
Ctrl + A | 行の先頭に移動 |
Ctrl + E | 行の末尾に移動 |
Ctrl + U | カーソルより前を削除 |
Ctrl + K | カーソルより後を削除 |
Tab | コマンドやファイル名の自動補完 |
↑/↓ | コマンド履歴の参照 |
パイプとリダイレクト
コマンドの出力を別のコマンドに渡す
コマンド1 | コマンド2
実行例
$ ls -la | grep ".txt"
-rw-r--r-- 1 user staff 1024 Jan 8 09:15 file1.txt
-rw-r--r-- 1 user staff 512 Jan 8 10:30 readme.txt
出力をファイルに保存
コマンド > ファイル名 # 上書き
コマンド >> ファイル名 # 追記
入力をファイルから読み込み
コマンド < ファイル名
日々の作業を効率化するための補助的なコマンドも、積極的に活用しましょう。これらをマスターすることで、ターミナル操作が格段に効率的になります。
実践的な使用例
ログファイルの解析
# エラーログを確認
grep "ERROR" /var/log/app.log | tail -20
# 特定の時間帯のログを確認
grep "2025-01-08 10:" /var/log/app.log
# ログファイルの容量確認
ls -lh /var/log/*.log | sort -k5 -hr
ファイルの一括操作
# 特定の拡張子のファイルを別ディレクトリにコピー
find . -name "*.txt" -exec cp {} backup/ \;
# 古いファイルを削除(7日以上古いもの)
find /tmp -name "*.tmp" -mtime +7 -delete
# ファイル内の文字列を一括置換
sed -i 's/old_string/new_string/g' *.txt
システム監視
# CPUとメモリ使用率の高いプロセスを確認
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
# ディスク使用量の多いディレクトリを確認
du -sh /* | sort -hr | head -10
まとめ:Bashコマンドをマスターして効率的な作業を実現しよう
Bashコマンドを覚えることで、ターミナル操作の自由度が格段にアップします。
GUI操作では時間のかかる作業も、コマンドを使えば一瞬で完了することが多々あります。
この記事で学んだポイント
- ファイル・ディレクトリ操作の基本コマンド
- ファイルの閲覧・編集に使える便利なコマンド
- システム監視とプロセス管理のテクニック
- ネットワーク関連の診断・操作方法
- 日常作業を効率化する補助コマンド
コメント