LPIC-1対策にもなる、よく使う基本コマンドまとめ
Linuxを触り始めると、必ずと言っていいほど登場するのが「黒い画面」――コマンドラインです。
マウス操作に慣れていると最初はとっつきにくく感じますが、コマンドに慣れてしまえば、GUIよりも素早く・柔軟に作業できるようになります。
この記事では、LPIC-1(特に101試験)の出題範囲にも含まれる
- コマンドラインでの基本操作コマンド
- テキスト加工用コマンド
- ファイル操作・圧縮・検索系コマンド
- viエディタの超基本
- パイプ・リダイレクト・tee / xargs まわり
を一気に整理します。
「実務でよく使うポイント」と「試験で押さえておきたいキーワード」を両方おさえる構成にしています。
目次
1. コマンドラインでよく使う基本コマンド
1-1. 位置や環境を確認する系
| コマンド | ざっくり役割 |
|---|---|
| pwd | 今いるディレクトリ(カレントディレクトリ)をフルパスで表示 |
| uname | OS やカーネルなど、システムの情報を表示 |
| env / printenv | 設定されている環境変数の一覧を表示 |
| which | 指定したコマンドがどこにあるか(パス)を表示 |
| type | コマンドの種類(組み込みか外部か、エイリアスか等)を表示 |
例:現在位置を確認
$ pwd
/home/taro
例:システム情報の確認
$ uname
Linux
$ uname -a
Linux localhost 3.10.0-1160.el7.x86_64 #1 SMP ... x86_64 GNU/Linux
1-2. ヘルプ・履歴・メッセージ表示系
| コマンド | 役割 |
|---|---|
man | コマンドのマニュアル表示 |
history | 実行したコマンド履歴を一覧表示 |
echo | 文字列や変数の中身を表示 |
man の使い方
$ man pwd
- 上下キー:スクロール
q:終了h:ヘルプ
historyと“!番号”で再実行
$ history
1 pwd
2 uname
3 uname -a
4 man pwd
$ !1 # 1番のコマンドを再実行
pwd
/home/taro
1-3. 環境変数とシェル変数
- シェル変数:そのシェルの中だけで有効な変数
- 環境変数:新しく起動したシェルやコマンドにも引き継がれる変数
| コマンド | 役割 |
|---|---|
export | 環境変数を新しく設定したり、シェル変数を環境変数に昇格させる |
set | シェル変数やシェルの設定を一覧で表示 |
unset | 変数を削除 |
シェル変数 → 環境変数
$ VAR2='fuga' # シェル変数
$ export VAR2 # 環境変数に昇格
変数の削除
$ unset VAR2
1-4. PATH(パスを通す)とは?
PATH環境変数には「コマンドを探しに行くディレクトリ」がコロン区切りで並んでいます。- コマンド名だけで実行できるのは、この中から見つけてきてくれているため。
$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:...
ディレクトリを追加したいときは:
export PATH=$PATH:/my/custom/bin
これを「PATHを通す」と表現します。
2. テキストを表示・加工するコマンド
ログや設定ファイルを読む・切り出す・集計するための定番コマンドです。
LPIC 的にも実務的にも、ここは絶対に押さえておきたいところ。
2-1. 表示・先頭/末尾・行番号
| コマンド | 役割 |
|---|---|
| cat | ファイル内容をそのまま出力(連結も可) |
| zcat / bzcat / xzcat | 圧縮ファイルを解凍せず中身だけ表示 |
| nl | 行番号付きで表示 |
| head | 最初の数行を表示(デフォルト10行) |
| tail | 最後の数行、またはリアルタイム追従表示 |
先頭5行だけ見たい
$ head -n 5 /etc/default/grub
ログを追いかける(リアルタイム)
# tail -f /var/log/messages
Ctrl + C で終了します。
2-2. バイナリ内容や指定部分を抜き出す
| コマンド | 役割 |
|---|---|
| od | ファイルを 8進数 / 16進数 などでダンプ |
| cut | 行の一部(文字位置 or フィールド)だけ切り出し |
| paste | 複数ファイルを横にくっつける |
| sort | 行を並び替える(昇順・降順) |
| split | ファイルを分割する(行数やサイズ基準) |
フィールド切り出し例
$ cut -d ':' -f 3 sample.txt
- -d … 区切り文字(デリミタ)
- -f … 何番目のフィールドか
2-3. 文字の置換・削除、重複排除、集計
| コマンド | 役割 |
|---|---|
| tr | 文字の置換・削除(標準入力向け) |
| uniq | 連続する重複行をまとめる |
| wc | 行数・単語数・文字数をカウント |
文字置換の例
$ cat sample.txt | tr 'abc' 'XYZ'
重複除去の鉄板パターン
$ sort sample.txt | uniq
2-4. ハッシュ値を計算する
- データが壊れていないか・改ざんされていないかを確認する用途によく使われます。
| コマンド | アルゴリズム |
|---|---|
| md5sum | MD5 |
| sha1sum | SHA-1 |
| sha256sum | SHA-256 |
| sha512sum | SHA-512 |
3. ファイル操作・圧縮・検索の基本コマンド
3-1. ファイルとディレクトリの基本操作
| コマンド | 役割 |
|---|---|
| ls | 中身を一覧表示(-l, -a などオプション多数) |
| cp | コピー |
| mv | 移動・リネーム |
| mkdir | ディレクトリ作成 |
| rm | ファイル / ディレクトリ削除 |
| rmdir | 空ディレクトリだけ削除 |
| touch | 時刻情報変更 or 空ファイル作成 |
| file | ファイルが何者か(テキスト?バイナリ?)を判定 |
よく使うオプションだけ押さえておくと便利です。
cp -r… ディレクトリごとコピーcp -i/mv -i… 上書き前に確認rm -r… ディレクトリごと削除mkdir -p… 親ディレクトリもまとめて作成
3-2. 圧縮・解凍
| コマンド | 拡張子 | 特徴 |
|---|---|---|
| gzip / gunzip | .gz | 速度そこそこ、よく使われる |
| bzip2 / bunzip2 | .bz2 | 圧縮率高め、時間は余計にかかる |
| xz / unxz | .xz | さらに高圧縮、その分重い |
gzipの例
$ gzip file.txt # file.txt.gz に圧縮
$ gunzip file.txt.gz # 解凍
3-3. アーカイブとバックアップ
- 圧縮ファイル:サイズを小さくするための加工
- アーカイブファイル:複数のファイルを一つにまとめたもの(tar など)
tar
# アーカイブ + gzip圧縮
$ tar -czvf backup.tar.gz target_dir
# 展開
$ tar -xzvf backup.tar.gz
主なオプション
-c:アーカイブ作成-x:展開-z:gzip-j:bzip2-J:xz-v:詳しく表示-f:アーカイブファイル名指定
cpio
モードごとに動きが変わるタイプです。
cpio -o… アーカイブ作成(out)cpio -i… アーカイブから展開(in)cpio -p… アーカイブにせずディレクトリ間コピー(pass)
# カレント以下を backup.cpio というアーカイブに
$ ls | cpio -o > backup.cpio
dd
「生のデータをそのままコピーする」コマンド。ディスク丸ごとのコピーなどに使われます。
# /dev/sda の内容を /dev/sdb に丸ごとコピー
# (実行注意!)
# dd if=/dev/sda of=/dev/sdb
3-4. ファイルを探す:find とメタキャラクタ
$ find . -name '*.log'
-nameで名前パターン-type fでファイルだけ-type dでディレクトリだけ
メタキャラクタのイメージ
*:0文字以上の何か?:任意の1文字[abc]:a, b, c のどれか1文字{1,2,3}:文字列の組み合わせを一気に展開
$ touch sample{1,2,3}.txt
# sample1.txt / sample2.txt / sample3.txt が作成される
4. viエディタの超基本
ほとんどのディストリビューションに入っている標準的なテキストエディタが vi / Vim です。
モード切り替えが独特ですが、設定ファイル編集などで頻繁に使います。
4-1. 起動とモード
$ vi filename
vi には大きく分けて2つのモードがあります。
- コマンドモード:移動・削除・保存など
- 入力モード:文字入力
起動直後はコマンドモードです。
文字を打ち込みたいときは「入力モード」に切り替え、入力が終わったら Esc でコマンドモードへ戻ります。
4-2. カーソル移動(コマンドモード)
| キー | 動き |
|---|---|
h | 左 |
j | 下 |
k | 上 |
l | 右 |
0 | 行頭へ |
$ | 行末へ |
G | 最終行へ |
nG | n 行目にジャンプ |
4-3. 編集系コマンド(コマンドモード)
| コマンド | 内容 |
|---|---|
x | カーソル位置の1文字削除 |
dd | 行ごと削除 |
yy | 行をコピー |
p | コピーした行を下に貼り付け |
4-4. 検索と保存・終了
検索
| コマンド | 内容 |
|---|---|
/文字列 | カーソルより下に向かって検索 |
?文字列 | カーソルより上に向かって検索 |
保存・終了
| コマンド | 内容 |
|---|---|
:w | 保存 |
:q | 終了(未保存があると警告) |
:q! | 保存せず終了 |
:wq | 保存して終了 |
4-5. 入力モードに入る
| コマンド | 動き |
|---|---|
i | カーソル位置から入力 |
I | 行頭から入力 |
a | カーソルの次の位置から入力 |
A | 行末から入力 |
o | 下に新しい行を作って入力 |
O | 上に新しい行を作って入力 |
Esc キーでコマンドモードに戻ります。
4-6. EDITOR 環境変数
デフォルトのエディタを指定する変数です。
export EDITOR=vim
crontab など一部コマンドが、この EDITOR を参照してエディタを起動します。
5. パイプ・リダイレクト・tee・xargs
5-1. リダイレクト(出力先・入力元を差し替え)
| 記法 | 意味 |
|---|---|
コマンド > ファイル | 出力をファイルに上書き保存 |
コマンド >> ファイル | 出力をファイルに追記 |
コマンド < ファイル | ファイル内容をそのコマンドの入力にする |
5-2. パイプ(コマンド同士をつなぐ)
コマンド1 | コマンド2
- コマンド1の出力を、そのままコマンド2の入力として渡す。
例:重複行をまとめる
$ sort sample.txt | uniq
5-3. tee:画面にもファイルにも出したいとき
tee は
- 標準入力で受け取った内容を「画面」と「ファイル」の両方に流す
コマンドです。
$ echo $PATH | tee path.txt
/usr/local/bin:...
-a… 追記モード(>>相当)
$ some_command | tee -a log.txt
5-4. xargs:文字列をまとめて引数に渡す
xargs は、
- 標準入力で受け取った文字列を、指定したコマンドの「引数」に変換する
コマンドです。
例:.txt をまとめて削除
$ find . -name '*.txt' | xargs rm
- find で列挙したファイル名を、rm の引数として一気に渡しています。
6. まとめ:LPIC的な押さえどころ
最後に、この記事で登場した中で LPIC 的に特に意識したいポイントを整理します。
- 環境変数と PATH
env/printenv/export/unset/PATHの意味
- 内部コマンド・外部コマンド
typeで確認する、という流れを覚える
- リダイレクトとパイプ
>/>>/<と|の違い
- テキスト処理定番コマンド
cat,head,tail,cut,sort,uniq,wc
- 圧縮・アーカイブ
gzip/bzip2/xztarの-c,-x,-z,-j,-J,-f
- ファイル検索・大量処理
find+ メタキャラクタ +xargs
- vi の基本操作
- モード切り替え(
i/Esc)、保存・終了(:wq,:q!)
- モード切り替え(
ここまでを何度か手で打ちながら練習しておくと、LPIC の問題文を見たときに「これ、いつも使ってるやつだ」と直感的に判断できるようになります。
次のステップとしては「正規表現」「プロセス管理系コマンド」あたりをセットで押さえていくと、101試験のコマンド領域がかなり安心ゾーンになっていきます。


