【資格勉強】LinuC、LPICのコマンド一覧を作ってみた

当ページのリンクには広告が含まれています。
目次

Linuxのインストールと仮想マシン・コンテナの利用

ディストリビューション、カーネル、パッケージ管理

スクロールできます
用語意味
ディストリビューションLinuxを使いやすくまとめたパッケージセット
カーネルOSの中心(料理で言えば素材)
パッケージ管理ソフトの出し入れをラクにする仕組み(例:APT、YUMなど)

仮想マシンとコンテナの特徴について

systemctlコマンド

systemctlの語源は「system + control」からきています。システムをコントロールするコマンドという意味ですね。
Linuxえサービスやシステムの状態を制御・管理(起動・停止・状態確認など)するためのコマンドです

コマンド書式:systemctl サブコマンド [Unit名]

スクロールできます
サブコマンド用途
disableサービスの自動起動を無効にする
enableサービスの自動起動を有効にする
get-default次回起動時のターゲットを表示する
haltシステムを停止しhalt状態にする
is-activeサービスが稼働しているかを表示する
isolate他のUnitを停止して対象のUnitを起動する
list-unit-filesすべてのUnit定義ファイルを一覧表示する
rebootシステムを再起動する
reloadサービスの設定ファイルを再読み込みする
rescueレスキューモードに移行する(メンテナンスモード)
restartサービスを再起動する
set-default次回起動時のターゲットを設定する
startサービスを起動する
statusサービスの状態を表示する
stopサービスを停止する
poweroffシステムを停止し電源を切断する

shutdown コマンド

はたらき システムを終了させる
備考
・オプションを特に指定しない場合は -P オプションを指定したときと同じ
・システムを終了してすぐ電源を切る場合は「halt -p」あるいは「poweroff」コマンドでも行える
・システムを終了して再起動する場合は「reboot」コマンドでも行える
・基本的に root user しか使えない(設定によっては一般ユーザーでも実行できるようになっている)

ファイル・ディレクトリの操作と管理

ファイル管理の実行

ファイルやディレクトリをコピー、移動、削除とよく使う基本的なコマンドになるのでよく覚えておきましょう!

ファイルの配置と検索

Linuxのファイルの配置はについてはFHS(Filesystem Hierarchy Standard:ファイルシステム階層標準)によって大まかなレイアウト標準化されて決まっているんだよ!!

まずはディレクトリの最上位層にはルートファイルシステム(/)含めなきゃいけない。
5つのディレクトリが存在しているだよね

ディレクトリ名説明
/bin一般ユーザーでも操作可能な基本的なコマンドが格納されている。
/sbinrootユーザーがシステム管理に必須なコマンドを格納されている。
/etcシステムやアプリケーションの設定ファイル、スクリプトファイルが格納されている。
/devハードディスクやDVD-ROMなどのデバイスファイルが格納されている。
/lib共有ライブライりやカーネルモジュールが格納されている。
/bin、/sbinが必要としているライブラリここに格納されている。

lsコマンド(ファイル一覧表示)

lsコマンドの語源は「list」からきています。ディレクトリをしていするとファイル名を表示。ファイル名を表示すると属性を表示します。オプションを使わない時には、カレントディレクトリ内のファイル名とサブディレクトリを表示します。

コマンド書式:ls[オプション] [ファイル名あるいはディレクトリ名]

スクロールできます
オプション説明語源
-a隠しファイル(ドット「.」で始まるファイル)を含む全てのファイルとディレクトリを表示all(すべて)
🗂 意味:隠しファイル(. から始まるファイル)も全部表示する
🧠 語源:「all = すべて」
-A「-a」と同じ。ただし、カレントディレクトリ「.」と親ディレクトリ「..」は表示しないAlmost all(ほぼすべて)
🗂 意味:-a とほぼ同じだけど、「.(カレント)」と「..(親)」だけは除外
🧠 語源:「A = Almost all(ほとんど全部)」
-d指定したディレクトリの情報を表示directory(ディレクトリ)
🗂 意味:ディレクトリの中身じゃなくて、そのディレクトリ自身の情報を表示
🧠 語源:「d = directory(フォルダの意味)」
-F
名前の後ろにファイルタイプを表示
・通常のファイル:なし
・実行可能ファイル:*
・ディレクトリ:/
・シンボリックリンク:@
file type(ファイルの種類)
🗂 意味:ファイル名の末尾に、種類を示す記号をつける

🧠 語源:「F = File type」
-iinode番号を付けて表示inode(アイノード)
🗂 意味:ファイルシステムの**ID番号(inode番号)**を表示
🧠 語源:「i = inode」
-l詳細情報(パーミッション、所有者、サイズ、更新日時など)の表示long format(長い形式)
🗂 意味:ファイルの詳細情報(パーミッション、所有者、サイズ、更新日時など)を表示
🧠 語源:「l = long(長い形式)」
-Rサブディレクトリの内容も再帰的に表示recursive(再帰的)
🗂 意味:サブディレクトリの中身もずーっと下まで全部表示
🧠 語源:「R = Recursive(再帰=深掘り表示)」

mvコマンド(ファイル・ディレクトリの移動)

moveコマンドは指定した場所にファイル・ディレクトリを移動させます。さらに、ファイル名の変更にも利用します。

コマンド書式:mv [オプション] 移動元ファイルかディレクトリ 移動先ファイルかディレクトリ

スクロールできます
オプション説明語源
-f移動先に同名のファイルやディレクトリがある場合、強制的に上書きするforce(フォース)
意味:強制する
force 上書き」の略で、「確認せずに、強制的に上書きして移動する」という動作を表してるよ。
🧠イメージ:「force(力づく)」で「問答無用で上書き」!
-i移動先に同名のファイルやディレクトリがある場合、上書きしてよいかどうか問い合わせるinteractive(インタラクティブ)
意味:対話的な操作
interactive mode(対話モード)」の略で、上書き前に「このファイル、上書きしていい?」とユーザーに聞いてくるようになる。
🧠イメージ:「interactive(対話)」=「ユーザーとやりとりしながら進める」

rmコマンド(削除)

rmコマンドの語源は「remove」からきています。ファイルやディレクトリを削除します。

コマンド書式:rm [オプション] ファイル名

スクロールできます
オプション説明
-f削除してよいかどうか問い合わせない
-i削除してよいかどうか問い合わせる
-r | -Rディレクトリ全体を再帰的に削除

tarコマンド(アーカイブ作成・展開)

tarコマンドの語源は「tape archive」からきています。ファイルやディレクトリを1つのアーカイブにまとめたり、展開したりします。

コマンド書式:tar [オプション] ファイル名またはディレクトリ名

スクロールできます
オプション説明
-c新しいアーカイブを作成
-xアーカイブからファイルを展開
-tアーカイブの内容を一覧表示
-fアーカイブファイル名を指定
-v処理の詳細情報の表示
-zgzipを通して圧縮/展開
-jbzip2を通して圧縮/展開
-Jxzを通して圧縮/展開

findコマンド(検索式・アクション)

findコマンドは検索が得意です。ファイル、ディレクトリを検索したりします。さらに、アクセル権、ファイルサイズ、更新日時を指定して検索することも可能です。検索の際には、メタキャラクタを使うことができます。

コマンド書式:find [検索ディレクトリ] [検索式]

スクロールできます
検索式説明
-name ファイル名ファイル名で検索
-atime 日数最終アクセス日で検索
-mtime 日数最終更新日で検索
-perm アクセス権アクセス権で検索
-size サイズファイルサイズで検索
-type ファイルの種類ファイルの種類で検索(f:ファイル, d:ディレクトリ, l:シンボリックリンク)
-user ユーザ名ファイルの所有者で検索
-maxdepth 階層数指定した階層まで検索
-mindepth 階層数指定した階層から検索
-print検索結果を改行で区切って表示(省略可能)
-print0検索結果をNULL文字(\0)で区切って表示
-exec コマンド {} \;検索結果のファイルに対してコマンドを実行

ファイルの圧縮、解凍

大きなサイズを圧縮して、ネットワーク経由で送信したいときに、事前に圧縮をしておくことにより効率があがります。

bzip2(圧縮)

ファイルを圧縮するときに使用する。gzipよりも圧縮率が高いが処理に時間がかかる。

コマンド書式:bzip2 [オプション] [ファイル名]

スクロールできます
オプション説明
-d圧縮ファイルを展開
-c元ファイルを残して標準出力に出力

xz(ファイル圧縮、展開)

コマンド書式:xz[オプション] 処理対象ファイル名

スクロールできます
オプション説明
-d, --decompress圧縮ファイルの展開
-k, --keep圧縮・展開処理後に元のファイルを削除しない
-l, --list圧縮ファイルの情報を表示する

GNUとUnixのコマンド

テキスト処理フィルタ

Linuxには様々なテキスト処理をするコマンドがあります。これを使いこなすことができたら便利になります。

catコマンド

ファイルの中身を表示したり、つなげたりするコマンド!
名前は「concatenate(つなげる)」の略で、「キャット」と読むよ(🐱とは関係ないけど覚えやすいよね)

コマンド書式:cat [オプション] ファイル名

コマンド例説明
cat file.txtファイルの中身をそのまま表示
cat file1.txt file2.txt複数ファイルをまとめて表示(内容がつながって出てくる)
cat > new.txt標準入力(自分の入力)をファイルに保存(終了は Ctrl + D
cat file1.txt >> file2.txtfile1の中身をfile2の末尾に追記
cat -n file.txt行番号つきで表示(オプション-n

headコマンド

headコマンドはテキストファイルの先頭部分を表示します。

コマンド書式:head [オプション] [ファイル名]

スクロールできます
オプション説明語源
-c バイト数指定したバイト数をファイルの先頭から表示
-n 行数指定した行数をファイルの先頭から表示n は「number(数)」
-行数ファイルの先頭から表示

pasteコマンド

複数のファイルの内容を横に並べて合体(=貼り付け)するコマンドだよ!
英単語の “paste(ペースト)”=貼り付ける という意味から来ているんだ!のりで貼り付ける、つなげる、組み合わせる

コマンド書式:paste [-d 区切り文字] [ファイル名…]

wcコマンド

wcコマンドはファイル内の文字数や行数を調べることができるコマンドです。

コマンド書式:wc [オプション] [ファイル名]

スクロールできます
オプション説明
-l行数を表示
-w単語数を表示
-c文字(バイト)数を表示

正規表現

検索するための方法になります。

grepコマンド

grepコマンドの語源は「global regular ezpressior print」らしいです。古いエディタで使われていたコマンドに由来するそうですよ‼️
ファイルやテキスト内の中から正規表現であらわされる検索文字があるかを調べるコマンドです。

スクロールできます
オプション語源
-cマッチした行の行数のみ表示
-E拡張正規表現を使用(egrepコマンドと同様)
-f検索パターンをファイルから読み込む
-F検索パターンを正規表現ではなく、固定文字列とする(fgrepコマンドと同様)
-i大文字と小文字を区別しない
-n先頭に行番号をつけて、マッチした行を表示
-vマッチしなかった行を表示

sedコマンド

sed(Stream EDitor)はLinux系でよく使われます。ファイルや標準入力から読み込んだテキストに対してテキストの置換・削除・抽出などをして結果を出力するコマンドです。

リポジトリとパッケージ管理

パッケージとは、実行プログラム、設定ファイル、ドキュメントなどを1つのファイルにまとめたものです。そのパッケージを管理することをパッケージ管理といいます。
例えば、ゲームでいうとゲームをするためのソフトがパッケージ、沢山のソフトを分かり整理整頓することがパッケージ管理ですね。
それでは、このパッケージ管理は何をしているか?

パッケージをインストール、アンインストール、アップデート作業をする時に、どこにパッケージがインストールされているかを見ています。さらにパッケージごとの依存関係や競合関係を管理しています。

そのパッケージ管理方法には大きく2種類あります。
・GNU/Linux、Ubuntuで採用されているDebian形式
・Red Hat Enterprise Linux、CentOSで採用されているRPM形式

Debian形式とRPM形式のコマンドまとめ

パッケージ管理の形式と対応コマンド

スクロールできます
分類形式低レベルコマンド高レベルコマンドキャッシュ検索系ファイル検索
Debian系 (.deb)dpkgdpkgapt-get, aptapt-cacheapt-file
RPM系 (.rpm)rpmrpmyum, dnfyum search, dnf searchrepoquery(またはdnf/yum)

Debian系コマンドの使い分け

スクロールできます
コマンド役割説明
dpkg低レベルdpkg -i file.deb.debファイルの直接インストールや削除など。依存関係の解決はしない
apt-get高レベルapt-get install nginx依存関係も含めてパッケージのインストール/削除
apt-cache情報取得apt-cache search apacheパッケージの説明や依存関係などを検索・確認
apt-fileファイル検索apt-file search bin/htpasswdどのパッケージにそのファイルがあるか調べる

RPM系コマンドの使い分け

スクロールできます
コマンド役割説明
rpm低レベルrpm -ivh file.rpm.rpmファイルを直接操作。依存解決なし
yum高レベルyum install nginx自動で依存関係を解決してインストール
dnf後継dnf install nginxyumの後継。ほぼ同じ使い方でより高速・堅牢
yum search / dnf searchパッケージ名検索yum search nginxパッケージ名や説明で検索
repoqueryファイル検索repoquery -l httpdパッケージに含まれるファイルを調べる(yum-utils)

Debian形式、RPM形式コマンドまとめ

スクロールできます
コマンドレイヤー依存関係の解決検索ファイル検索
dpkg, rpm低レベル❌ しない
apt-get, yum, dnf高レベル✅ 自動でやる△(パッケージ名で)
apt-cache, yum search情報表示
apt-file, repoqueryファイル検索✅(ファイル名で)

Debian形式のコマンド一覧

dpkgコマンド

dpkgはDebian形式のパッケージインストール・アンインストールなどの基本的なパッケージ管理を行うコマンドです。

コマンド書式:dpkg [オプション] アクション

スクロールできます
オプション説明
-E同バージョンが既にインストールされていればインストールを行わない
-G新バージョンが既にインストールされていればインストールを行わない
-Rディレクトリを再帰的に処理
スクロールできます
アクション説明
-i(--install) パッケージファイル名パッケージのインストール
-r(--remove) パッケージ名設定ファイルを残してパッケージをアンインストール
-P(--purge) パッケージ名設定ファイルも含めて完全にパッケージをアンインストール
-l(--list) [検索パターン]インストール済みパッケージを検索して表示
-L(--listfiles) パッケージ名指定したパッケージからインストールされたファイルを一覧表示
-s(--status) パッケージ名インストール済みパッケージの詳細情報の表示
-S(--search) 検索パターン指定したファイルがどのパッケージからインストールされたかを表示
-C(--audit)インストールが完了していない(不完全)パッケージの表示

apt-getコマンド

apt-getはDebian形式のインターネット上ないしはメディア上のパッケージ情報のデータを使い、依存関係を調整しながらパッケージのインストール、アンインストール、アップグレードを行うコマンドです。

コマンド書式:apt-get [オプション] サブコマンド パッケージ名

スクロールできます
オプション説明
-s, --dry-runシステムを変更せずに動作をシュミレートする
-y, --yes処理中の問い合わせに自動的にYesと答える
スクロールできます
サブコマンド説明
install パッケージ名指定パッケージのインストール または アップグレード
remove パッケージ名指定パッケージのアンインストール
upgrade全パッケージのうち、既存パッケージの削除や新規パッケージの追加をせずに更新できるものをアップグレード
dist-upgradeシステム全体(全パッケージとカーネル)のアップグレード
updateパッケージのデータベースを最新版に更新
clean過去に取得したパッケージファイルを削除

apt-cacheコマンド

apt-cacheはDebian形式のパッケージ情報の検索・参照などを行うコマンドです。

コマンド書式:

スクロールできます
サブコマンド説明
search キーワードキーワードを含むパッケージを検索
show パッケージ名指定したパッケージ情報の表示
showpkg パッケージ名指定したパッケージの被依存関係を含めた情報の表示
depends パッケージ名指定したパッケージが依存しているパッケージの一覧表示

RPM形式のコマンド一覧

yumコマンド

yumはRPM形式で使うAPTツールに相当するツールになります。依存関係を調整しながらパッケージのインストール、アンインストール、アップグレードを行うコマンドです。
YUMの設定は/etc/yum.conf/etc/yum.repos.d ディレクトリ以下のファイルで行います。

コマンド書式:yum [-y] サブコマンド

スクロールできます
サブコマンド説明
install パッケージ名パッケージのインストール
update [パッケージ名]パッケージのアップデート
remove [パッケージ名]パッケージのアンインストール
info パッケージ名パッケージの詳細情報の表示
list [パッケージ名]パッケージの一覧表示(バージョンとインストール済かどうか)
search キーワード指定したキーワードでパッケージの検索
check-update [パッケージ名]アップデート可能なパッケージの表示
grouplist利用可能なグループの一覧表示
groupinstall グループ名指定グループのインストール
localinstall パスローカル(PC)にあるパッケージファイルのインストール
deplist パッケージ名指定したパッケージが依存しているパッケージの一覧表示

ハードウェア、ディスク、パーティション、ファイルシステム

論理ボリュームを作成する手順

pvcreateコマンド 物理ボリューム(PV)の作成
vgcreateコマンド ボリュームグループ(VG)の作成
lvcreateコマンド 論理ボリューム(LV)の作成

fdiskコマンド

MBR形式のハードディスクを操作するコマンドです。パーティションの作成、削除、変更、情報表示をすることができます。
コマンド書式:fdisk [サブコマンド] デバイス名

GPT(GUID Partition Table)とMBR(Master Boot Record)

・基本パーティション数:4
MBRでは基本パーティション数が4つしか作成できないため、それ以上のパーティションを作成する場合は、いずれか1つの基本パーティションを拡張パーティションとし、その中に論理パーティションを複数作成するしかありませんでした。
それに対して、GPTでは基本パーティションを最大128個作成することができるようになっています。

・ハードディスク容量:2.2TB(2TiB)
HDDへのアクセス最小単位はセクタとよび、1セクタのサイズは512バイトです。
MBRで指定可能なセクタ数は32ビット分です。32ビットで表現可能な正数は4,294,967,296(232)ですので、アクセス可能な最大容量は512 x 232 = 2,199,023,255,552 ≒ 約2.2TB(2TiB: テビバイト)となります。対してGPTは指定可能なセクタ数が64ビットとなりました。64ビットで表現可能な正数は18,446,744,073,709,551,616(264)ですので、同様に計算してアクセス可能な最大容量は約9.4ZB(8ZiB: ゼビバイト)となります。
パーティションテーブルをGPTにすることで、2.2TB以上の大容量ディスクを管理することが可能となりました。
※ZB(ゼタバイト)とは、1GB(ギガバイト)x 1000(テラ:T) x 1000(ペタ:P)x 1000(エクサ:E)x 1000(ゼタ:Z)のサイズのことです。

・起動用システムファームウェア:BIOS
システムファームウェアがBIOSの場合、上記のような2.2TBを超える大容量ディスクを正しく認識できません。そのためGPT形式のHDDからOSを起動する場合はシステムファームウェアがUEFI(Unified Extensible Firmware Interface)である必要があります。なお、仕様上はUEFI必須となっていますが、GRUB2ブートローダはGPTをサポートしているため、BIOSからGRUB2ブートローダをロードできればGPT形式の大容量ハードディスクでも起動することは可能です。

gdiskコマンド

gdiskコマンドはGPTに対応したパーティション操作を行うことができる。
コマンド書式:gdisk [サブコマンド] デバイス名

mke2fsコマンド

ext2/ext3/ext4ファイルシステムを作成できます。

デバイスドライバ操作
デバイスを利用するために制御するためのプログラムをデバイスドライバといいます。
Linuxでは、デバイスドライバをカーネルの一部(カーネルモジュール)として提供されており、デバイスドライバを管理するコマンドが用意されている。

コマンド説明
lsmodロードされているカーネルモジュールを確認する
modprobe手動でロードするコマンド
insmodカーネルモジュールをロードする
rmmodカーネルモジュールをアンロードする
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

中学校の教員をしていました。
いまはIT、プログラミングの勉強をしています。
学習したこと、便利なツール、勉強方法をを発信していければと思います。

目次