初心者必見!よく使うBashコマンド一覧と使い方ガイド

プログラミング・IT

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操作では時間のかかる作業も、コマンドを使えば一瞬で完了することが多々あります。

この記事で学んだポイント

  • ファイル・ディレクトリ操作の基本コマンド
  • ファイルの閲覧・編集に使える便利なコマンド
  • システム監視とプロセス管理のテクニック
  • ネットワーク関連の診断・操作方法
  • 日常作業を効率化する補助コマンド

コメント

タイトルとURLをコピーしました