Linuxで日常的に使う「ls」「cp」「mv」「rm」「cat」「tail」「echo」などの基本コマンド。
これらの多くは、実はすべて「coreutils(コアユーティルズ)」というパッケージに含まれています。
軽量Linuxディストリビューションや最小構成のDockerコンテナを使っていると、「コマンドが見つかりません」と表示されることがあります。
そんなときは、coreutilsをインストールすれば一括解決!
この記事では、Linuxディストリビューション別のcoreutilsインストール方法と確認手順、含まれる代表的コマンド一覧をわかりやすく解説します。
coreutilsとは?どんなコマンドが含まれているのか
coreutilsの基本概念
GNU Core Utilitiesの略で、Linuxの基本操作に必要なコマンド群をまとめたパッケージです。
日常的に使うほとんどのシェル操作は、このパッケージで提供されています。
含まれる主なコマンド一覧
ファイル・ディレクトリ操作
コマンド | 用途 | 使用例 |
---|---|---|
ls | ファイル一覧表示 | ls -la |
cp | ファイルのコピー | cp file1 file2 |
mv | ファイルの移動・名前変更 | mv old.txt new.txt |
rm | ファイル削除 | rm file.txt |
mkdir | ディレクトリ作成 | mkdir newdir |
rmdir | 空ディレクトリ削除 | rmdir emptydir |
ln | リンク作成 | ln -s target link |
ファイル内容操作
コマンド | 用途 | 使用例 |
---|---|---|
cat | ファイル内容表示 | cat file.txt |
head | ファイルの先頭表示 | head -10 file.txt |
tail | ファイルの末尾表示 | tail -f log.txt |
wc | 行数・文字数カウント | wc -l file.txt |
sort | テキストのソート | sort file.txt |
uniq | 重複行の削除 | uniq file.txt |
権限・属性管理
コマンド | 用途 | 使用例 |
---|---|---|
chmod | ファイル権限変更 | chmod 755 script.sh |
chown | ファイル所有者変更 | chown user:group file.txt |
chgrp | グループ変更 | chgrp newgroup file.txt |
その他の基本コマンド
コマンド | 用途 | 使用例 |
---|---|---|
echo | 文字列出力 | echo "Hello World" |
pwd | 現在のディレクトリ表示 | pwd |
date | 日付・時刻表示 | date |
who | ログインユーザー表示 | who |
whoami | 現在のユーザー表示 | whoami |
id | ユーザー・グループID表示 | id |
なぜcoreutilsが重要なのか?
基本操作の基盤 Linuxの日常操作のほとんどがcoreutilsに依存しています
標準化 GNU coreutilsは多くのLinuxディストリビューションで共通して使用されています
スクリプト作成の必需品 シェルスクリプトでよく使われるコマンドが含まれています
他のツールとの連携 パイプやリダイレクトと組み合わせて強力なデータ処理が可能です
ポイント: coreutilsがないと、Linuxを操作する上で基本的な作業すらできません。
ディストリビューション別 coreutils のインストール方法
その1:Ubuntu / Debian系
# パッケージリストの更新
sudo apt update
# coreutilsのインストール
sudo apt install coreutils
特徴:
- ほとんどのUbuntuでは初期インストール済み
- Dockerなどの軽量イメージでは削除されていることもあります
- パッケージサイズは比較的大きめ
確認方法:
# インストール状況の確認
dpkg -l | grep coreutils
# パッケージ情報の詳細表示
apt show coreutils
その2:CentOS / RHEL / Rocky Linux / AlmaLinux
# CentOS 7 以前
sudo yum install coreutils
# CentOS 8 以降、Rocky Linux、AlmaLinux
sudo dnf install coreutils
特徴:
- Red Hat系でも標準的に導入されています
- 最小構成(Minimal Install)では手動追加が必要な場合があります
- 企業環境でよく使用されるため、安定性重視
確認方法:
# インストール状況の確認
rpm -qa | grep coreutils
# パッケージ情報の表示
yum info coreutils # または dnf info coreutils
その3:Fedora
# Fedoraでのインストール
sudo dnf install coreutils
特徴:
- 比較的新しいバージョンが提供されます
- 標準でインストール済みのことが多いです
その4:openSUSE
# openSUSE Leap / Tumbleweed
sudo zypper install coreutils
その5:Arch Linux / Manjaro
# Arch系ディストリビューション
sudo pacman -S coreutils
特徴:
- ローリングリリースのため最新版が利用可能
- 基本的には標準でインストール済み
- AURには追加の拡張版もあります
その6:Alpine Linux(軽量ディストリ)
# Alpine Linuxでのインストール
sudo apk add coreutils
重要な注意点:
- Alpineの標準コマンドはBusyBox版で、機能が制限されています
- GNU版を明示的に入れたい場合にcoreutilsをインストールします
- パッケージサイズが小さいため、Dockerコンテナでよく使用されます
BusyBoxとGNU coreutilsの違い:
# BusyBox版(デフォルト)
ls --version
# BusyBox v1.xx.x
# GNU coreutils版(インストール後)
/usr/bin/ls --version
# ls (GNU coreutils) 8.xx
その7:Amazon Linux
# Amazon Linux 2
sudo yum install coreutils
# Amazon Linux 2023
sudo dnf install coreutils
その8:コンテナ環境での注意点
Dockerコンテナでの使用例:
# Ubuntu ベースのコンテナ
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y coreutils
# Alpine ベースのコンテナ
FROM alpine:latest
RUN apk add coreutils
# CentOS ベースのコンテナ
FROM centos:8
RUN dnf install -y coreutils
覚えておこう: 各ディストリビューションに応じたパッケージマネージャーで「coreutils」をインストールすれば、ほぼすべての基本コマンドが使えるようになります。
インストール後の確認方法とトラブル対策
その1:正常にインストールされたか確認
# lsコマンドの場所確認
which ls
# 結果例: /bin/ls または /usr/bin/ls
# バージョン確認
ls --version
# 結果例: ls (GNU coreutils) 8.30
# coreutilsのすべてのコマンド確認
dpkg -L coreutils | grep /bin/ # Ubuntu/Debian
rpm -ql coreutils | grep /bin/ # CentOS/RHEL
その2:コマンドが機能しない・オプションが効かない場合
問題の診断:
# コマンドの実際のパス確認
type ls
type echo
type cat
# 環境変数PATHの確認
echo $PATH
# どのコマンドが実行されるか確認
which -a ls # 複数のlsがある場合、すべて表示
よくある問題と解決策:
問題1: BusyBox版が優先される(Alpine Linux)
# 現在使用されているコマンド確認
ls --version
# BusyBox v1.xx.x と表示される
# GNU版を明示的に実行
/usr/bin/ls --version
# ls (GNU coreutils) 8.xx と表示される
解決策:
# aliasでGNU版を優先
echo 'alias ls="/usr/bin/ls"' >> ~/.bashrc
echo 'alias cat="/usr/bin/cat"' >> ~/.bashrc
source ~/.bashrc
問題2: PATHの優先順位問題
# PATHの先頭にGNU coreutilsのパスを追加
export PATH="/usr/bin:$PATH"
# 永続化(.bashrcに追記)
echo 'export PATH="/usr/bin:$PATH"' >> ~/.bashrc
問題3: 権限の問題
# 実行権限の確認
ls -l /usr/bin/ls
# 権限がない場合(稀)
sudo chmod +x /usr/bin/ls
その3:特定のコマンドだけ使いたい場合
# 必要なコマンドだけシンボリックリンクで配置
sudo ln -s /usr/bin/ls /usr/local/bin/ls
sudo ln -s /usr/bin/cat /usr/local/bin/cat
# または環境変数で個別に指定
export LS_CMD="/usr/bin/ls"
$LS_CMD -la
その4:複数バージョンが混在している場合
# すべてのlsコマンドの場所を確認
find /usr -name "ls" 2>/dev/null
find /bin -name "ls" 2>/dev/null
# どれが実行されているか確認
strace -e execve ls 2>&1 | grep execve
BusyBoxとGNU coreutilsの詳細比較
機能面での違い
項目 | BusyBox | GNU coreutils |
---|---|---|
サイズ | 非常に小さい(1MB程度) | 大きい(数十MB) |
機能 | 基本機能のみ | 豊富なオプション |
オプション数 | 制限あり | 非常に多い |
POSIX準拠 | 基本的に準拠 | 拡張機能も多数 |
互換性 | 一部制限 | 高い互換性 |
実際のコマンド比較例
# BusyBox版のls(制限あり)
ls --color=auto # サポートされない場合がある
# GNU coreutils版のls(豊富な機能)
ls --color=auto --time-style=long-iso -la
使い分けの指針
BusyBoxを使う場面:
- 組み込みシステム
- 軽量Dockerコンテナ
- リソース制約のある環境
GNU coreutilsを使う場面:
- 一般的なサーバー環境
- 開発環境
- 豊富な機能が必要な場合
実践的な活用例
システム管理での活用
# システム情報の収集スクリプト
#!/bin/bash
echo "=== システム情報収集 ==="
echo "現在の日時: $(date)"
echo "現在のユーザー: $(whoami)"
echo "現在のディレクトリ: $(pwd)"
echo "ディスク使用量:"
df -h
echo "メモリ使用量:"
free -h
ログ解析での活用
# アクセスログの分析
cat access.log | head -100 | tail -50 # 51-100行目を表示
cat access.log | sort | uniq -c | sort -nr | head -10 # 重複する行をカウント
ファイル操作の自動化
# バックアップスクリプト例
#!/bin/bash
BACKUP_DIR="/backup/$(date +%Y%m%d)"
mkdir -p "$BACKUP_DIR"
cp -r /important/files/* "$BACKUP_DIR/"
echo "バックアップ完了: $(date)" | tee -a /var/log/backup.log
よくある質問と答え
Q: インストール後にコマンドが見つからない場合は?
A: PATHの設定を確認し、必要に応じて/usr/bin
や/bin
をPATHに追加してください。
Q: 特定のコマンドだけインストールできますか?
A: ほとんどのディストリビューションではcoreutilsはパッケージ単位でのみ提供されています。個別インストールは通常できません。
まとめ:coreutilsでLinuxの基本コマンドを揃えて快適操作!
重要ポイントまとめ:
- coreutilsはLinuxの基本操作に必要なコマンド群
- 軽量環境では明示的なインストールが必要な場合がある
- BusyBoxとGNU coreutilsの違いを理解して使い分ける
- インストール後はPATHとバージョンの確認が重要
Linuxを使ううえで、「ls」「cp」「rm」などの基本コマンドは欠かせません。
これらのツールを一括で提供するのがcoreutilsパッケージです。
特に最小構成のコンテナ環境や軽量ディストリビューションを扱う場合は、自分で明示的に導入する必要があります。
今回の記事を参考に、ぜひあなたのLinux環境で安定した操作性を確保してください!
コメント