なぜLinuxコマンドの理解が重要なのか
LinuxはGUI(グラフィカルユーザーインターフェース)よりもCLI(コマンドラインインターフェース)を重視しています。CLIを使いこなすことで、
- システムの細かい設定や管理が可能になる
- 作業を自動化して効率化できる
- トラブルシューティング時に役立つ
といった利点があります。
主要なLinuxコマンドの一覧と役割
ファイル・ディレクトリ操作
ls
ディレクトリの内容を一覧表示
ls [オプション] [ディレクトリ名]
例:
ls -l /home
-l
: 詳細な情報を表示(所有者、権限、サイズなど)
cd
ディレクトリの移動
cd [ディレクトリ名]
例:
cd /var/log
cp
ファイルやディレクトリのコピー
cp [オプション] コピー元 コピー先
例
cp file1.txt /backup
-r
: ディレクトリを再帰的にコピー
mv
ファイルやディレクトリの移動または名前変更
mv [オプション] 移動元 移動先
例:
mv file1.txt file2.txt
rm
ファイルやディレクトリの削除
rm [オプション] ファイル名
例:
rm file1.txt
-r
: ディレクトリを再帰的に削除
mkdir
新しいディレクトリを作成
mkdir [オプション] ディレクトリ名
例:
mkdir new_directory
rmdir
空のディレクトリを削除
rmdir ディレクトリ名
例:
rmdir empty_directory
touch
空のファイルを作成またはファイルのタイムスタンプを更新
touch ファイル名
例:
touch new_file.txt
file
ファイルの種類を確認
file ファイル名
例:
file document.pdf
ファイル閲覧
cat
ファイル内容を表示
cat ファイル名
例:
cat file1.txt
less
ページ単位でファイル内容を閲覧。
上下両方向にスクロール可能で、柔軟にファイルを閲覧可能。
less ファイル名
例:
less file1.txt
more
ページ単位でファイル内容を閲覧。
順番は先頭から。
スクロールは一方向(下方向)のみで、逆方向には戻れない。
more ファイル名
例:
more file1.txt
head
ファイルの先頭部分を表示
head [オプション] ファイル名
例:
head -n 10 file1.txt
-n
: 表示する行数を指定
tail
ファイルの末尾部分を表示
tail [オプション] ファイル名
例:
tail -n 10 file1.txt
-f
: ファイルの更新をリアルタイムで追跡
ファイル操作補助
nl
ファイルの各行に行番号を付与して表示
nl ファイル名
例:
nl file1.txt
od
ファイルの内容をバイナリや16進数で表示
od [オプション] ファイル名
例:
od -x file1.txt
cut
ファイルの特定の部分を抽出
cut [オプション] ファイル名
例:
cut -f1 -d',' file1.csv
paste
複数のファイルを結合して表示
paste ファイル1 ファイル2
例:
paste file1.txt file2.txt
tr
文字列の置換や削除
tr [置換元] [置換先]
例:
echo "hello" | tr 'a-z' 'A-Z'
sort
ファイルの行を並び替え
sort [オプション] ファイル名
例:
sort file1.txt
split
ファイルを分割
split [オプション] ファイル名
例:
split -b 10k file1.txt
uniq
重複した行を削除
uniq [オプション] ファイル名
例:
sort file1.txt | uniq
wc
ファイルの行数、単語数、バイト数をカウント
wc [オプション] ファイル名
例:
wc -l file1.txt
xargs
標準入力を引数としてコマンドに渡す
xargs [コマンド]
例:
echo file1.txt | xargs cat
ファイル検索
find
条件に合致するファイルやディレクトリを検索
find [検索パス] [条件]
例:
find /home -name "*.txt"
locate
インデックスを利用して高速にファイルを検索
locate ファイル名
例:
locate file1.txt
grep
ファイル内の特定の文字列を検索
grep [オプション] '検索文字列' [ファイル名]
例:
grep 'error' /var/log/syslog
updatedb
locateコマンド用のデータベースを更新
updatedb
which
コマンドの実行パスを確認
which コマンド名
whereis
コマンドの実行パスや関連ファイルを表示
whereis コマンド名
type
コマンドの種類を表示(エイリアスや関数など)
type コマンド名
権限・所有権操作
chmod
ファイルやディレクトリのアクセス権を変更
chmod [権限] ファイル名
例:
chmod 755 script.sh
権限の数字と対応する意味
chmod
では、権限を 数字 (8進数) で表す。
数字 | 権限 | シンボル表記 | 説明 |
---|---|---|---|
0 | — | (なし) | 読み取り、書き込み、実行がすべて不可 |
1 | –x | 実行 | 実行のみ可能 |
2 | -w- | 書き込み | 書き込みのみ可能 |
3 | -wx | 書き込み+実行 | 書き込みと実行が可能 |
4 | r– | 読み取り | 読み取りのみ可能 |
5 | r-x | 読み取り+実行 | 読み取りと実行が可能 |
6 | rw- | 読み取り+書き込み | 読み取りと書き込みが可能 |
7 | rwx | フル権限 | 読み取り、書き込み、実行がすべて可能 |
権限の構成
権限は、以下の順番で3桁の数字として設定する。
- 1桁目: 所有者 (user,
u
) の権限 - 2桁目: グループ (group,
g
) の権限 - 3桁目: その他 (others,
o
) の権限
chmod 754 file.txt
chown
ファイルやディレクトリの所有者を変更
chown [新しい所有者] ファイル名
例:
chown user1 file1.txt
chgrp
ファイルやディレクトリのグループを変更
chgrp [新しいグループ] ファイル名
例:
chgrp group1 file1.txt
プロセス管理
ps
現在実行中のプロセスを一覧表示
ps [オプション]
例:
ps -ef
top
リアルタイムでプロセスとリソース使用状況を表示
top
kill
プロセスを終了
kill [PID]
例:
kill 1234
jobs
バックグラウンドジョブの状態を表示
jobs
ユーザー管理
adduser
新しいユーザーを作成
adduser [ユーザー名]
例:
adduser user1
passwd
ユーザーのパスワードを変更
passwd [ユーザー名]
例:
passwd user1
who
現在ログイン中のユーザーを表示
who
id
ユーザーIDとグループIDを表示
id [ユーザー名]
例:
id user1
アーカイブ・圧縮
tar
ファイルやディレクトリをアーカイブ
tar [オプション] アーカイブ名 ファイル名
例:
tar -cvf backup.tar /home/user
基本的な操作オプション
オプション | 説明 |
---|---|
-c | アーカイブを作成 |
-x | アーカイブを展開(解凍) |
-t | アーカイブ内の内容を一覧表示 |
-f | 使用するアーカイブファイルを指定(必須) |
-v | 詳細な情報を表示(処理内容を確認) |
-z | gzipで圧縮または解凍 |
-j | bzip2で圧縮または解凍 |
-J | xzで圧縮または解凍 |
-r | 既存のアーカイブにファイルを追加 |
-u | アーカイブ内のファイルを更新(新しいもののみ追加) |
--exclude | アーカイブ作成時に指定したパターンを除外 |
gzip
ファイルを圧縮
gzip ファイル名
例:
gzip file1.txt
gunzip
圧縮されたファイルを解凍
gunzip ファイル名.gz
例:
gunzip file1.txt.gz
cpio
ファイルをコピーまたはアーカイブ
find . | cpio -o > archive.cpio
dd
データのコピーや変換
dd if=/dev/sda of=/backup.img
システム情報の確認
uname
システム情報を表示
uname [オプション]
例:
uname -a
df
ディスクの空き容量を表示
df [オプション]
例:
df -h
du
ディレクトリごとの容量を表示
du [オプション] [ディレクトリ名]
例:
du -sh /home
free
メモリ使用状況を表示
free [オプション]
例:
free -m
権限管理
sudo
管理者権限でコマンドを実行
sudo コマンド
例:
sudo apt update
ネットワーク操作
ping
他のホストへの接続確認
ping [ホスト名またはIPアドレス]
例:
ping google.com
ifconfig
ネットワーク設定を表示または設定
ifconfig
netstat
ネットワーク接続状況を表示
netstat [オプション]
例:
netstat -an
traceroute
ネットワーク経路を表示
traceroute ホスト名
tracepath
ネットワーク経路を簡易表示
tracepath ホスト名
hostname
現在のホスト名を表示または設定
hostname
netstat
ネットワーク接続状況を表示
netstat -an
nc
ネットワーク接続やデバッグを行う
nc -zv ホスト名 ポート番号
route
ルーティングテーブルを表示または操作
route -n
scp
ファイルをリモートホスト間で転送
scp [オプション] ファイル名 ユーザー名@ホスト名:パス
例:
scp file1.txt user@remote:/home/user
まとめ
本記事では、Linuxコマンドについて解説しました。以下のようなポイントを理解しておくと、実務で役立つだけでなく、トラブルシューティングにも応用可能です:
- ファイル操作や検索のコマンドをマスターする
- 権限管理やプロセス管理をスムーズに行う
- ネットワーク関連の基本操作を習得する
次に学ぶべきトピックとして、スクリプト作成やシステムの初期化プロセス(initやsystemd)について学ぶことをおすすめします。
コメント