LPICレベル1 の概要
LPICレベル 1(LPIC-1)は、Linux Professional Institute(LPI)が実施するLinux技術者向け認定資格「LPIC」の最初のレベルです。
Linuxの基本操作をはじめ、ファイルやディレクトリの管理、パッケージ管理、シェル、ネットワーク、セキュリティなど、Linuxシステムを操作・管理するための基礎的な知識が問われます。
LPIC-1の認定を取得するには「101試験」と「102試験」の2つに合格する必要があります。どちらの試験でもLinuxを操作するためのさまざまなコマンドが出題範囲に含まれているため、LPIC-1対策ではLinuxコマンドの理解と実際の操作に慣れておくことが重要です。
LPIC レベル 1で出題されるLinuxコマンド
LPIC Level 1(LPIC-1)では、Linuxの基本操作やシステム管理に必要となるさまざまなコマンドが出題されます。
ファイルやディレクトリの操作だけでなく、テキスト処理、プロセス管理、ファイルシステム、ユーザー管理、パッケージ管理、ネットワークなど、出題されるコマンドは幅広いことが特徴です。
LPIC-1の学習では、コマンド名だけを暗記するのではなく、**「何をするためのコマンドなのか」「どのようなオプションを指定できるのか」**まで理解することが重要です。
この記事では、LPIC Level 1で学習するLinuxコマンドを用途別に分け、それぞれの基本的な使い方を紹介します。
実際にLinuxが操作できる環境を用意する
LPICの学習では、Linuxコマンドの名前やオプションを覚えるだけでなく、実際にLinuxを操作しながらコマンドの動作を確認することが重要です。
例えば、cdやcp、chmodなどのコマンドを実際に実行することで、コマンドを使用する場面や実行結果を確認しながら学習できます。
Linuxを操作するために、普段使用しているパソコンのOSをLinuxへ変更する必要はありません。仮想マシンやクラウド、WindowsのWSLなどを利用して、Linuxを操作できる学習環境を用意できます。
LPIC対策としてLinuxを操作できる環境を構築する方法については、以下の記事で詳しく解説しています。
ファイル・ディレクトリを操作するコマンド
Linuxでは、ファイルやディレクトリの作成、コピー、移動、削除などの操作をコマンドで行うことができます。
LPICレベル1ではLinuxの基本操作として、ファイルやディレクトリを扱うコマンドと、その主要なオプションについて理解しておく必要があります。
ls
lsは、ディレクトリ内にあるファイルやディレクトリの一覧を表示するコマンドです。
ls
-lオプションを指定すると、ファイルのアクセス権、所有者、ファイルサイズ、更新日時などの詳細情報を表示できます。
ls -l
また、-aを指定すると、通常は表示されない.から始まる隠しファイルも表示できます。
ls -a
cd
cdは、現在作業しているディレクトリから別のディレクトリへ移動するコマンドです。
cd /var/log
..を指定すると1つ上のディレクトリへ移動できます。
cd ..
引数を指定せずに実行した場合は、ユーザーのホームディレクトリへ移動します。
cd
pwd
pwdは、現在作業しているディレクトリの場所を表示するコマンドです。
pwd
例えば、現在/home/userで作業している場合は、次のように表示されます。
/home/user
Linuxでは現在作業しているディレクトリを「カレントディレクトリ」と呼びます。
cp
cpは、ファイルやディレクトリをコピーするコマンドです。
基本的には、コピー元とコピー先を指定します。
cp file1.txt file2.txt
ディレクトリを中身ごとコピーする場合は、-rオプションを使用します。
cp -r directory1 directory2
mv
mvは、ファイルやディレクトリを移動するコマンドです。
mv file.txt /home/user/documents/
同じディレクトリ内で異なる名前を指定することで、ファイル名の変更にも使用できます。
mv old.txt new.txt
rm
rmは、ファイルを削除するコマンドです。
rm file.txt
ディレクトリとその中にあるファイルを削除する場合は、-rオプションを使用します。
rm -r directory
削除したファイルは通常簡単には元に戻せないため、実行する対象を確認してから使用することが重要です。
mkdir
mkdirは、新しいディレクトリを作成するコマンドです。
mkdir documents
-pオプションを使用すると、途中のディレクトリが存在しない場合でもまとめて作成できます。
mkdir -p project/src/main
rmdir
rmdirは、空のディレクトリを削除するコマンドです。
rmdir documents
基本的にディレクトリ内にファイルや別のディレクトリが存在する場合は削除できません。
中身のあるディレクトリを削除する場合には、rm -rなどを使用します。
touch
touchは、ファイルのタイムスタンプを変更するコマンドです。
touch file.txt
指定したファイルが存在しない場合は空のファイルが作成されるため、新しいファイルを作成するときにもよく使用されます。
touch example.txt
find
findは、指定したディレクトリ以下から条件に一致するファイルやディレクトリを検索するコマンドです。
例えば、/home以下からexample.txtという名前のファイルを検索する場合は、次のように実行します。
find /home -name "example.txt"
ファイルの種類、更新日時、サイズなど、さまざまな条件を指定して検索することもできます。
例えば、通常のファイルだけを対象として検索する場合は-type fを使用します。
find /home -type f -name "*.txt"
findはLPICレベル1でも重要なコマンドの一つであるため、基本的な検索条件と組み合わせ方を理解しておきましょう。
ファイルの内容を表示・処理するコマンド
Linuxでは、テキストファイルの内容を表示したり、必要な部分だけを取り出したり、並べ替えたりするためのコマンドが用意されています。
LPIC レベル1では、ファイルの内容を確認するだけでなく、複数のコマンドを組み合わせてテキストを処理する方法についても理解しておく必要があります。
cat
catは、ファイルの内容を表示するコマンドです。
cat file.txt
複数のファイルを指定すると、それぞれの内容を連続して表示できます。
cat file1.txt file2.txt
catはファイルの内容を確認するほか、複数のファイルを連結するときにも使用されます。
less
lessは、ファイルの内容を1画面ずつ表示するコマンドです。
less file.txt
ファイルの内容が長く、catでは画面に収まらない場合などに使用します。
lessの画面では上下に移動して内容を確認でき、qキーを押すと終了できます。また、/を入力して文字列を指定することで、表示している内容を検索できます。
head
headは、ファイルの先頭部分を表示するコマンドです。
head file.txt
デフォルトでは先頭から10行が表示されます。
表示する行数を指定する場合は、-nオプションを使用します。
head -n 5 file.txt
この例では、ファイルの先頭から5行を表示します。
tail
tailは、ファイルの末尾部分を表示するコマンドです。
tail file.txt
デフォルトでは末尾の10行が表示されます。
-nオプションを使用すると、表示する行数を指定できます。
tail -n 20 file.txt
また、-fオプションを使用するとファイルに追加された内容を継続して表示できます。
tail -f /var/log/messages
ログファイルをリアルタイムで確認するときなどに使用されます。
wc
wcは、ファイルに含まれる行数、単語数、バイト数などを数えるコマンドです。
wc file.txt
例えば、-lオプションを使用すると行数だけを表示できます。
wc -l file.txt
代表的なオプションには、単語数を表示する-wや、バイト数を表示する-cなどがあります。
sort
sortは、テキストを行単位で並べ替えるコマンドです。
sort file.txt
通常は文字列として並べ替えられます。
数値として並べ替える場合は-n、逆順に並べ替える場合は-rを使用します。
sort -n numbers.txt
sort -r file.txt
uniq
uniqは、連続している重複行をまとめるためのコマンドです。
uniq file.txt
uniqが処理するのは隣り合った重複行であるため、ファイル全体から重複した行を取り除きたい場合はsortと組み合わせて使用する方法が一般的です。
sort file.txt | uniq
-cオプションを指定すると、それぞれの行が連続して出現した回数も表示できます。
sort file.txt | uniq -c
cut
cutは、テキストの各行から指定した部分を取り出すコマンドです。
例えば、区切り文字を指定して特定のフィールドを取り出す場合は、-dと-fを使用します。
cut -d ":" -f 1 /etc/passwd
この例では、:を区切り文字として、各行の1番目のフィールドを表示します。
文字位置を指定して取り出す場合には-cオプションを使用できます。
cut -c 1-5 file.txt
tr
trは、標準入力から受け取った文字を置換したり削除したりするコマンドです。
例えば、小文字を大文字へ変換する場合は次のように使用します。
echo "linux" | tr 'a-z' 'A-Z'
実行すると、次のように出力されます。
LINUX
-dオプションを使用すると、指定した文字を削除することもできます。
echo "Linux 123" | tr -d '0-9'
trはファイル名を直接指定して処理するコマンドではなく、パイプやリダイレクトを利用して標準入力からデータを渡して使用する点も覚えておきましょう。
テキストを検索・加工するコマンド
Linuxでは、ファイルやコマンドの出力から特定の文字列を検索したり、テキストを置換・加工したりするためのコマンドが用意されています。
LPIC レベル1では、grepやsedの基本的な使い方に加えて、文字列のパターンを表現する正規表現についても理解しておく必要があります。
grep
grepは、ファイルや標準入力から指定したパターンに一致する行を検索するコマンドです。
例えば、file.txtから「Linux」という文字列を含む行を検索する場合は、次のように実行します。
grep "Linux" file.txt
複数のファイルを対象として検索することもできます。
grep "Linux" *.txt
-iオプションを指定すると、アルファベットの大文字と小文字を区別せずに検索できます。
grep -i "linux" file.txt
-vオプションを使用すると、指定したパターンに一致しない行を表示できます。
grep -v "Linux" file.txt
また、-nを指定すると、一致した行の行番号も表示されます。
grep -n "Linux" file.txt
grepでは正規表現を利用した検索もできます。-Eオプションを指定すると、拡張正規表現を使用できます。
grep -E "Linux|Unix" file.txt
この例では、「Linux」または「Unix」を含む行を検索します。
sed
sedは、入力されたテキストを行単位で処理するストリームエディタです。文字列の置換や行の削除、特定の行の表示などに使用できます。
代表的な使い方が、sコマンドによる文字列の置換です。
sed 's/Linux/Ubuntu/' file.txt
この例では、各行で最初に出現する「Linux」を「Ubuntu」に置き換えた結果を表示します。
行内に存在するすべての対象文字列を置換する場合は、gフラグを指定します。
sed 's/Linux/Ubuntu/g' file.txt
特定の行を削除した結果を表示する場合は、dコマンドを使用できます。
sed '3d' file.txt
この例では、3行目を除いた内容が表示されます。
通常のsedでは処理結果が標準出力に表示され、元のファイル自体は変更されません。-iオプションを使用すると、ファイルを直接編集できます。
sed -i 's/Linux/Ubuntu/g' file.txt
ファイルを直接変更するため、-iを使用する場合は対象のファイルや置換内容を確認してから実行することが重要です。
正規表現関連
正規表現は、文字列のパターンを一定のルールで表現する方法です。
grepやsedなどのコマンドと組み合わせることで、「特定の文字で始まる行」や「特定の文字列で終わる行」など、単純な文字列検索よりも柔軟な条件を指定できます。
例えば、^は行の先頭を表します。
grep "^Linux" file.txt
この例では、「Linux」で始まる行を検索します。
$は行の末尾を表します。
grep "Linux$" file.txt
この場合は、「Linux」で終わる行が検索されます。
.は任意の1文字、*は直前の要素が0回以上繰り返されることを表します。
grep "Li.*x" file.txt
正規表現には、大きく分けて「基本正規表現(BRE)」と「拡張正規表現(ERE)」があります。
grepは通常、基本正規表現を使用します。拡張正規表現を使用する場合は、grep -Eを使用します。
grep -E "Linux|Unix" file.txt
拡張正規表現では、|による選択や+による1回以上の繰り返し、?による0回または1回の繰り返しなどを、バックスラッシュでエスケープせずに使用できます。
LPIC レベル1では、正規表現そのものだけでなく、grepやsedなどのコマンドと組み合わせた場合に、どのような文字列が検索・処理されるのかを理解しておくことが重要です。
ファイルの圧縮・アーカイブに使用するコマンド
Linuxでは、複数のファイルを1つにまとめたり、ファイルサイズを小さくしたりするためのコマンドが用意されています。
LPIC レベル1では、アーカイブを作成するtarと、ファイルを圧縮・展開するgzip、bzip2、xzなどの基本的な使い方や主要なオプションを理解しておく必要があります。
tar
tarは、複数のファイルやディレクトリを1つのアーカイブファイルにまとめたり、アーカイブからファイルを取り出したりするコマンドです。
アーカイブを作成する場合は、-cオプションを使用します。
tar -cvf archive.tar directory/
この例では、directoryディレクトリをarchive.tarというアーカイブファイルにまとめています。
代表的なオプションには、アーカイブを作成する-c、内容を展開する-x、処理対象を表示する-v、アーカイブファイルを指定する-fなどがあります。
アーカイブを展開する場合は、次のように実行します。
tar -xvf archive.tar
tarはgzipなどの圧縮方式と組み合わせることもできます。gzipで圧縮する場合は-z、bzip2では-j、xzでは-Jを使用します。
tar -czvf archive.tar.gz directory/
gzip / gunzip
gzipは、ファイルをgzip形式で圧縮するコマンドです。
gzip file.txt
実行すると、通常は元のfile.txtが圧縮され、file.txt.gzが作成されます。
gzip形式のファイルを展開する場合は、gunzipを使用します。
gunzip file.txt.gz
gzip -dを使用して展開することもできます。
gzip -d file.txt.gz
gzipは基本的に1つのファイルを圧縮するコマンドです。複数のファイルやディレクトリをまとめて圧縮したい場合は、tarと組み合わせて使用します。
bzip2 / bunzip2
bzip2は、ファイルをbzip2形式で圧縮するコマンドです。
bzip2 file.txt
圧縮されたファイルには通常.bz2という拡張子が付けられます。
展開する場合はbunzip2を使用します。
bunzip2 file.txt.bz2
bzip2 -dでも展開できます。
bzip2 -d file.txt.bz2
元のファイルを残したまま圧縮する場合は、-kオプションを使用できます。
bzip2 -k file.txt
xz / unxz
xzは、ファイルをxz形式で圧縮するコマンドです。
xz file.txt
圧縮されたファイルには通常.xzという拡張子が付けられます。
xz形式のファイルを展開する場合は、unxzを使用します。
unxz file.txt.xz
xz -dでも展開できます。
xz -d file.txt.xz
gzipやbzip2と同様に、ディレクトリなどをまとめて圧縮する場合にはtarと組み合わせて使用します。
ファイルの所有者・アクセス権を管理するコマンド
Linuxでは、ファイルやディレクトリごとに所有者やグループ、アクセス権を設定できます。
LPIC レベル1では、アクセス権を変更するchmod、所有者を変更するchown、グループを変更するchgrpなどの使い方に加えて、アクセス権を数値で指定する方法についても理解しておくことが重要です。
chmod
chmodは、ファイルやディレクトリのアクセス権を変更するコマンドです。
Linuxの基本的なアクセス権には、読み取りを表すr、書き込みを表すw、実行を表すxがあります。
例えば、数値を使用してアクセス権を設定できます。
chmod 755 script.sh
数値による指定では、読み取りrを4、書き込みwを2、実行xを1として、それぞれを合計します。
755の場合、所有者にはrwx、グループとその他のユーザーにはr-xが設定されます。
記号を使用してアクセス権を変更することもできます。
chmod u+x script.sh
この例では、所有者(u)に実行権限(x)を追加しています。
chown
chownは、ファイルやディレクトリの所有者を変更するコマンドです。
chown user1 file.txt
この例では、file.txtの所有者をuser1へ変更します。
所有者とグループを同時に変更することもできます。
chown user1:group1 file.txt
ディレクトリ以下を再帰的に変更する場合は、-Rオプションを使用します。
chown -R user1:group1 directory/
chgrp
chgrpは、ファイルやディレクトリが所属するグループを変更するコマンドです。
chgrp developers file.txt
この例では、file.txtのグループをdevelopersへ変更します。
ディレクトリ以下のファイルやディレクトリをまとめて変更する場合は、-Rオプションを使用できます。
chgrp -R developers directory/
umask
umaskは、新しく作成するファイルやディレクトリに設定されるアクセス権を制限するための値を確認・設定するコマンドです。
現在のumaskを確認する場合は、引数を指定せずに実行します。
umask
例えば、次のようにumaskを設定できます。
umask 022
一般的な考え方では、ファイルは666、ディレクトリは777を基準として、umaskで指定された権限が制限されます。
umaskが022の場合、一般的なファイルは644、ディレクトリは755となります。
LPIC レベル1では、umaskの値から新しく作成されるファイルやディレクトリのアクセス権を判断できるようにしておくことが重要です。
プロセスを管理するコマンド
Linuxでは、実行中のプログラムをプロセスとして管理しています。
LPIC レベル1では、実行中のプロセスを確認するだけでなく、プロセスの終了、ジョブの切り替え、優先度の変更などに使用するコマンドについても理解しておく必要があります。
ps
psは、実行中のプロセスを確認するコマンドです。
ps
引数を指定せずに実行した場合は、現在の端末に関連するプロセスなどが表示されます。
システム上で動作しているプロセスをより広く確認する場合には、次のような形式がよく使用されます。
ps aux
また、UNIX形式のオプションでは次のように指定できます。
ps -ef
psではPID(プロセスID)、実行ユーザー、CPUやメモリの使用状況、実行しているコマンドなどを確認できます。
top
topは、実行中のプロセスやシステムの状態をリアルタイムで確認するコマンドです。
top
CPUやメモリの使用状況とともに、実行中のプロセスが継続的に更新されて表示されます。
topの画面はqキーを押すことで終了できます。
CPUやメモリを多く使用しているプロセスを調べる場合などに利用されます。
jobs
jobsは、現在のシェルで実行しているジョブの一覧を表示するコマンドです。
jobs
コマンドをバックグラウンドで実行すると、その処理はシェルによってジョブとして管理されます。
例えば、コマンドの末尾に&を付けるとバックグラウンドで実行できます。
sleep 300 &
jobsを実行すると、ジョブ番号や実行状態などを確認できます。
bg
bgは、停止しているジョブをバックグラウンドで実行するコマンドです。
例えば、ジョブ番号1をバックグラウンドで再開する場合は次のように実行します。
bg %1
実行中のコマンドをCtrl+Zで一時停止し、その後bgを使用してバックグラウンドで再開するといった操作ができます。
fg
fgは、バックグラウンドで実行しているジョブなどをフォアグラウンドへ移動するコマンドです。
fg %1
この例では、ジョブ番号1をフォアグラウンドへ移動します。
jobsでジョブ番号を確認し、bgやfgを使って実行状態を切り替える方法を理解しておきましょう。
kill
killは、プロセスにシグナルを送信するコマンドです。
プロセスを終了させる場合は、対象となるPIDを指定します。
kill 1234
デフォルトではSIGTERMが送信され、プロセスに終了を要求します。
送信するシグナルを明示的に指定することもできます。
kill -9 1234
-9はSIGKILLを表し、プロセスを強制的に終了させます。
シグナルの一覧は次のように確認できます。
kill -l
killall
killallは、プロセス名を指定してシグナルを送信するコマンドです。
killall process_name
killではPIDを指定するのに対し、killallではプロセス名を指定できる点が特徴です。
送信するシグナルを指定することもできます。
killall -TERM process_name
同じ名前の複数のプロセスが存在する場合は、それらが対象となる可能性があるため注意が必要です。
nice
niceは、プロセスを指定したnice値で起動するためのコマンドです。
nice -n 10 command
Linuxではプロセスごとに実行優先度を調整でき、nice値は一般に-20から19の範囲で指定します。
nice値が小さいほど優先度が高く、大きいほど優先度が低くなります。
一般ユーザーが優先度を高くする方向へnice値を変更する場合には制限があります。
renice
reniceは、すでに実行しているプロセスのnice値を変更するコマンドです。
例えば、PIDが1234のプロセスのnice値を10へ変更する場合は、次のように実行します。
renice 10 -p 1234
niceが新しく起動するプロセスの優先度を指定するのに対し、reniceはすでに動作しているプロセスの優先度を変更するときに使用します。
LPIC レベル1では、nice値とプロセスの優先度の関係についても理解しておきましょう。
ディスク・ファイルシステムを管理するコマンド
Linuxでは、ディスクの使用状況を確認したり、ストレージデバイスをマウントしたり、パーティションやファイルシステムを管理したりするためのコマンドが用意されています。
LPIC レベル1では、ディスク容量を確認するdfやduのほか、mount、fdisk、mkfs、fsckなど、ファイルシステムを管理する基本的なコマンドについて理解しておく必要があります。
df
dfは、マウントされているファイルシステムのディスク使用状況を確認するコマンドです。
df
-hオプションを使用すると、容量をKBやMB、GBなどの読みやすい単位で表示できます。
df -h
ファイルシステムの種類も確認する場合は、-Tオプションを使用できます。
df -T
ディスク全体の空き容量や、どのファイルシステムの使用率が高くなっているかを確認するときに使用します。
du
duは、ファイルやディレクトリが使用しているディスク容量を確認するコマンドです。
du directory/
-hオプションを使用すると、容量を読みやすい単位で表示できます。
du -h directory/
指定したディレクトリ全体の合計容量を確認する場合は、-sを組み合わせます。
du -sh directory/
dfがファイルシステム全体の使用状況を確認するのに対し、duは特定のファイルやディレクトリが使用している容量を調べる場合に使用します。
mount
mountは、ファイルシステムをLinuxのディレクトリツリーへ接続するコマンドです。
例えば、学習用のデバイス/dev/sdb1を/mnt/testへマウントする場合は、次のように実行します。
mount /dev/sdb1 /mnt/test
引数を指定せずに実行すると、現在マウントされているファイルシステムを確認できます。
mount
ファイルシステムの種類を指定する場合は、-tオプションを使用できます。
mount -t ext4 /dev/sdb1 /mnt/test
実際に操作する場合は、デバイス名やマウント先を確認してから実行することが重要です。
umount
umountは、マウントされているファイルシステムをアンマウントするコマンドです。
umount /mnt/test
デバイス名を指定してアンマウントすることもできます。
umount /dev/sdb1
ファイルシステムをアンマウントする場合は、そのファイルシステムを使用しているプロセスやシェルがないことを確認する必要があります。
ファイルシステムの検査やディスク構成の変更などを行う場合にも、対象となるファイルシステムを事前にアンマウントする必要があることがあります。
lsblk
lsblkは、システムに接続されているブロックデバイスの情報を一覧表示するコマンドです。
lsblk
ディスクやパーティションの構成、容量、マウント先などを確認できます。
ファイルシステムに関する情報も表示する場合は、-fオプションを使用できます。
lsblk -f
fdiskやmkfsなどでディスクを操作する前に、対象となるデバイスを確認する用途にも使用できます。
fdisk
fdiskは、ディスクのパーティションを作成・削除・確認するためのコマンドです。
パーティション情報を一覧表示する場合は、-lオプションを使用します。
fdisk -l
例えば、学習用として用意した/dev/sdbのパーティションを操作する場合は、次のように指定します。
fdisk /dev/sdb
fdiskを起動すると対話形式でパーティションの作成や削除などを行えます。
パーティション構成を変更すると既存データへ影響する可能性があります。実際に操作を練習する場合は、既存データが保存されているディスクではなく、仮想マシンなどに追加した学習用ディスクを使用しましょう。
mkfs
mkfsは、パーティションなどにファイルシステムを作成するためのコマンドです。
例えば、学習用の/dev/sdb1にext4ファイルシステムを作成する場合は、次のように実行します。
mkfs -t ext4 /dev/sdb1
ファイルシステムごとのコマンドを直接使用することもできます。
mkfs.ext4 /dev/sdb1
ファイルシステムを新しく作成すると、対象デバイスに保存されている既存データへ重大な影響があります。
実際に試す場合は対象デバイスを十分に確認し、マウント中のファイルシステムには実行せず、データを保存していない学習用のディスクやパーティションを使用してください。
fsck
fsckは、ファイルシステムの整合性を検査し、必要に応じて修復するためのコマンドです。
例えば、学習用の/dev/sdb1を検査する場合は、次のように実行します。
fsck /dev/sdb1
ファイルシステムの種類に応じた検査プログラムを指定することもできます。
fsck -t ext4 /dev/sdb1
fsckによる検査や修復は、原則として対象のファイルシステムをアンマウントした状態で行います。
マウント中のファイルシステムに対して不用意に実行するとデータへ影響する可能性があるため、実際に操作する場合は対象の状態を確認することが重要です。
ユーザー・グループを管理するコマンド
Linuxでは、ユーザーごとにアカウントを作成し、グループを利用して複数のユーザーをまとめて管理できます。
LPIC レベル1では、ユーザーやグループの作成・変更・削除、パスワードの設定、ユーザー情報の確認などに使用する基本的なコマンドについて理解しておく必要があります。
useradd
useraddは、新しいユーザーアカウントを作成するコマンドです。
useradd user1
ホームディレクトリを作成する場合は、-mオプションを使用できます。
useradd -m user1
ログインシェルを指定する場合は、-sオプションを使用します。
useradd -m -s /bin/bash user1
ユーザーを作成した後は、必要に応じてpasswdを使用してパスワードを設定します。
usermod
usermodは、既存のユーザーアカウントの設定を変更するコマンドです。
例えば、ユーザーのログインシェルを変更する場合は次のように実行します。
usermod -s /bin/bash user1
ユーザーを追加のグループへ所属させる場合は、-aGを使用できます。
usermod -aG developers user1
-Gだけを使用すると既存の補助グループ設定が置き換わるため、グループを追加する場合は-aGの組み合わせを覚えておきましょう。
userdel
userdelは、ユーザーアカウントを削除するコマンドです。
userdel user1
-rオプションを使用すると、ユーザーのホームディレクトリなどもあわせて削除できます。
userdel -r user1
-rを使用するとユーザーのファイルも削除されるため、実行する場合は必要なデータが残っていないか確認することが重要です。
groupadd
groupaddは、新しいグループを作成するコマンドです。
groupadd developers
グループID(GID)を指定して作成する場合は、-gオプションを使用できます。
groupadd -g 2000 developers
作成したグループには、usermodなどを使用してユーザーを所属させることができます。
groupmod
groupmodは、既存のグループ設定を変更するコマンドです。
グループ名を変更する場合は、-nオプションを使用します。
groupmod -n engineers developers
GIDを変更する場合は、-gオプションを使用できます。
groupmod -g 2001 engineers
groupdel
groupdelは、既存のグループを削除するコマンドです。
groupdel developers
グループを削除する場合は、そのグループがユーザーのプライマリグループとして使用されていないかなどを確認する必要があります。
passwd
passwdは、ユーザーのパスワードを設定・変更するコマンドです。
自分のパスワードを変更する場合は、引数を指定せずに実行します。
passwd
管理者が特定のユーザーのパスワードを設定する場合は、ユーザー名を指定します。
passwd user1
管理者はpasswdのオプションを使用して、アカウントのパスワードをロックするなどの管理も行えます。
id
idは、ユーザーのUIDやGID、所属しているグループなどを確認するコマンドです。
id
ユーザー名を指定すると、そのユーザーの情報を確認できます。
id user1
ユーザーがどのグループに所属しているのか確認するときにも使用できます。
su
suは、別のユーザーへ切り替えるためのコマンドです。
例えば、user1へ切り替える場合は次のように実行します。
su user1
-を指定すると、切り替え先ユーザーのログイン環境を読み込んでシェルを起動します。
su - user1
ユーザー名を省略した場合は、通常rootユーザーへの切り替えを試みます。
su -
LPIC レベル1では、単にユーザーを切り替える場合と、ログインシェルとして環境を切り替える場合の違いも理解しておきましょう。
パッケージを管理するコマンド
Linuxでは、ソフトウェアをパッケージとしてインストール、更新、削除できます。
Linuxディストリビューションによって使用するパッケージ形式や管理コマンドが異なり、Debian系ではDEBパッケージ、Red Hat系ではRPMパッケージが使用されています。
LPIC レベル1では、それぞれのパッケージ管理方式と、代表的なコマンドの役割を理解しておく必要があります。
dpkg
dpkgは、Debian系LinuxでDEBパッケージを管理するためのコマンドです。
ローカルに保存されているDEBパッケージをインストールする場合は、-iオプションを使用します。
dpkg -i package.deb
インストールされているパッケージの一覧は、-lで確認できます。
dpkg -l
特定のパッケージの状態を確認する場合は、-sを使用できます。
dpkg -s package-name
パッケージを削除する場合は、-rを使用します。
dpkg -r package-name
dpkgは個々のDEBパッケージを直接操作するためのコマンドであり、依存関係を含めたパッケージ管理にはaptなどが利用されます。
apt
aptは、Debian系Linuxでパッケージを管理するためのコマンドです。
パッケージ情報を更新する場合は、次のように実行します。
apt update
パッケージをインストールする場合は、installを使用します。
apt install package-name
インストールされているパッケージを更新する場合は、次のように実行します。
apt upgrade
パッケージを削除する場合は、removeを使用します。
apt remove package-name
aptはリポジトリから必要なパッケージを取得し、依存関係を考慮しながらインストールや更新を行える点が特徴です。
rpm
rpmは、RPM形式のパッケージを管理するためのコマンドです。
RPMパッケージをインストールする場合は、-iを使用します。
rpm -i package.rpm
インストール済みのパッケージを確認する場合は、-qを使用します。
rpm -q package-name
すべてのインストール済みパッケージを一覧表示する場合は、-aを組み合わせます。
rpm -qa
パッケージを削除する場合は、-eを使用します。
rpm -e package-name
rpmはRPMパッケージそのものを直接操作するコマンドであり、リポジトリや依存関係を含めた管理にはyumやdnfなどが利用されます。
yum / dnf
yumとdnfは、RPM系Linuxでリポジトリを利用してパッケージを管理するためのコマンドです。
パッケージをインストールする場合は、次のように実行します。
dnf install package-name
yumでも同様の形式で指定できます。
yum install package-name
パッケージを削除する場合は、removeを使用します。
dnf remove package-name
利用可能な更新を適用する場合は、次のように実行します。
dnf upgrade
yumやdnfは、リポジトリから必要なパッケージを取得し、依存関係を解決しながらインストールや更新を行います。
RPM系Linuxではディストリビューションやバージョンによって利用されるパッケージ管理ツールが異なります。LPIC レベル1では、rpmによるRPMパッケージの直接管理と、yumやdnfによるリポジトリを利用したパッケージ管理の違いを理解しておきましょう。
ネットワークを確認・操作するコマンド
Linuxでは、ネットワークインターフェースの状態やIPアドレスの確認、通信確認、DNSによる名前解決、リモートサーバーへの接続などをコマンドから行うことができます。
LPIC レベル1では、ネットワークの基本的な状態を確認するコマンドに加えて、DNSやSSHなど、Linuxをネットワーク上で利用するための基本的なコマンドについて理解しておく必要があります。
ip
ipは、ネットワークインターフェースやIPアドレス、ルーティングなどの情報を確認・設定するためのコマンドです。
ネットワークインターフェースに設定されているIPアドレスを確認する場合は、次のように実行します。
ip address
addressはaddrやaと省略することもできます。
ip a
ルーティングテーブルを確認する場合は、次のように実行します。
ip route
ネットワークインターフェースの状態を確認する場合は、linkを使用します。
ip link
ipはLinuxのネットワーク設定やトラブルシューティングで広く使用されるため、それぞれのサブコマンドの役割を理解しておきましょう。
ping
pingは、ネットワーク上のホストと通信できるかを確認するためのコマンドです。
ping example.com
IPアドレスを直接指定することもできます。
ping 192.0.2.10
送信する回数を指定する場合は、-cオプションを使用します。
ping -c 4 example.com
pingでは、通信できるかどうかだけでなく、応答にかかった時間やパケットロスの状況なども確認できます。
hostname
hostnameは、Linuxシステムに設定されているホスト名を確認するコマンドです。
hostname
-fオプションを使用すると、環境によってはFQDN(完全修飾ドメイン名)を確認できます。
hostname -f
IPアドレスを確認するために、次のようなオプションが利用される場合もあります。
hostname -I
ホスト名はネットワーク上でコンピューターを識別するために使用されます。
ss
ssは、ネットワークソケットの状態を確認するためのコマンドです。
ss
TCPのソケットを表示する場合は、-tを使用します。
ss -t
待ち受け状態のソケットを確認する場合は、-lを使用できます。
ss -l
TCPの待ち受けポートを数値で表示する場合は、次のようにオプションを組み合わせることができます。
ss -ltn
-nは、ポート番号やIPアドレスを名前へ変換せず、数値のまま表示するためのオプションです。
dig
digは、DNSサーバーへ問い合わせを行い、名前解決に関する情報を確認するコマンドです。
dig example.com
特定のDNSレコードを指定して問い合わせることもできます。
dig example.com MX
この例では、example.comのMXレコードを問い合わせています。
DNSサーバーを指定して問い合わせる場合は、@の後ろにDNSサーバーを指定します。
dig @8.8.8.8 example.com
DNSの設定確認や名前解決のトラブルシューティングなどに使用されます。
host
hostは、DNSを利用してホスト名やIPアドレスなどを調べるコマンドです。
host example.com
IPアドレスを指定して、対応するホスト名を調べることもできます。
host 192.0.2.10
特定のDNSレコードを問い合わせる場合は、-tオプションを使用します。
host -t MX example.com
digと同様にDNSの情報を確認できますが、比較的簡潔な形式で結果を確認できることが特徴です。
ssh
sshは、ネットワーク上にある別のコンピューターへ安全にリモート接続するためのコマンドです。
ssh user@example.com
IPアドレスを指定して接続することもできます。
ssh user@192.0.2.10
接続先のSSHサーバーが標準とは異なるポートを使用している場合は、-pオプションでポート番号を指定できます。
ssh -p 2222 user@example.com
公開鍵認証で使用する秘密鍵を指定する場合は、-iオプションを使用します。
ssh -i ~/.ssh/id_ed25519 user@example.com
SSHはリモートのLinuxサーバーを管理する際に広く利用されるため、基本的な接続方法を理解しておきましょう。
システム・ハードウェア情報を確認するコマンド
Linuxでは、OSやカーネル、メモリ、CPU、PCIデバイス、USBデバイスなど、システムに関するさまざまな情報をコマンドから確認できます。
LPIC レベル1では、システムの状態を確認する方法だけでなく、ハードウェアを認識するために使用される基本的なコマンドについても理解しておく必要があります。
uname
unameは、Linuxカーネルやシステムに関する情報を表示するコマンドです。
uname
カーネルのリリース情報を確認する場合は、-rオプションを使用します。
uname -r
システムに関する情報をまとめて表示する場合は、-aを使用します。
uname -a
CPUアーキテクチャなどを確認する場合にも利用できます。
free
freeは、システムのメモリ使用状況を確認するコマンドです。
free
物理メモリやSwapの使用量、空き容量などを確認できます。
容量を読みやすい単位で表示する場合は、-hオプションを使用します。
free -h
Linuxサーバーでメモリがどの程度使用されているかを確認する際によく利用されます。
uptime
uptimeは、システムが起動してからの経過時間やロードアベレージなどを確認するコマンドです。
uptime
実行すると、現在時刻、システムの稼働時間、ログインユーザー数、ロードアベレージなどが表示されます。
ロードアベレージは、一般的に直近1分、5分、15分の値が表示されます。
dmesg
dmesgは、カーネルのメッセージを確認するためのコマンドです。
dmesg
Linuxの起動時に認識されたハードウェアやデバイス、ドライバーなどに関するメッセージを確認できます。
表示内容が多い場合は、lessなどと組み合わせることもできます。
dmesg | less
特定の文字列を含むメッセージを確認する場合は、grepと組み合わせることもできます。
dmesg | grep -i usb
lspci
lspciは、PCIバスに接続されているデバイスを一覧表示するコマンドです。
lspci
ネットワークインターフェースやグラフィック関連のデバイスなど、PCI接続されたハードウェアを確認できます。
より詳しい情報を表示する場合は、-vオプションを使用します。
lspci -v
ハードウェアがLinuxから認識されているか確認する場合などに使用されます。
lsusb
lsusbは、USBバスに接続されているデバイスを一覧表示するコマンドです。
lsusb
USB接続されているキーボードやマウス、ストレージなどのデバイス情報を確認できます。
より詳しい情報を確認する場合は、-vオプションを使用できます。
lsusb -v
lspciがPCIデバイスを確認するコマンドであるのに対し、lsusbはUSBデバイスを確認するために使用します。
シェルで使用するコマンド
Linuxのシェルでは、コマンドの実行だけでなく、環境変数の設定、コマンド履歴の確認、別名の設定など、さまざまな操作を行うことができます。
LPIC レベル1では、Bashなどのシェルを利用するための基本的なコマンドや、シェル変数と環境変数の扱いについて理解しておく必要があります。
echo
echoは、指定した文字列や変数の内容を標準出力へ表示するコマンドです。
echo "Linux"
変数の内容を確認する場合にも使用できます。
echo $HOME
環境変数やシェル変数の値を確認するときによく利用されます。
history
historyは、これまでシェルで実行したコマンドの履歴を表示するコマンドです。
history
履歴には番号が付けられており、過去に実行したコマンドを確認できます。
直前に実行したコマンドを再実行する場合は、次のような履歴展開も利用できます。
!!
履歴番号を指定して再実行することもできます。
!100
alias
aliasは、コマンドに別名を設定するためのコマンドです。
現在設定されているエイリアスを確認する場合は、引数を指定せずに実行します。
alias
例えば、ls -laをllとして実行できるようにする場合は、次のように設定します。
alias ll='ls -la'
設定したエイリアスを削除する場合は、unaliasを使用します。
unalias ll
export
exportは、シェル変数を環境変数としてエクスポートするために使用します。
例えば、変数を設定してからexportする場合は次のように実行します。
MYVAR="Linux"
export MYVAR
1行で設定することもできます。
export MYVAR="Linux"
環境変数としてエクスポートすると、そのシェルから起動された子プロセスでも値を利用できるようになります。
env
envは、現在の環境変数を表示するコマンドです。
env
特定の環境変数を一時的に設定してコマンドを実行することもできます。
env MYVAR="Linux" command
環境変数の状態を確認する場合や、特定の環境を指定してコマンドを実行する場合に使用します。
set
setは、現在のシェルに設定されているシェル変数やシェル関数などを表示したり、シェルの動作を設定したりするために使用します。
引数を指定せずに実行すると、現在のシェルで定義されている情報が表示されます。
set
シェルのオプションを変更する場合にも使用できます。
例えば、コマンドの実行内容を表示しながら処理する-xを有効にする場合は、次のように実行します。
set -x
無効にする場合は、次のように指定します。
set +x
unset
unsetは、設定されているシェル変数や環境変数などを削除するためのコマンドです。
例えば、MYVARという変数を削除する場合は次のように実行します。
unset MYVAR
実行後に変数を参照しても、設定されていた値は利用できなくなります。
echo $MYVAR
which
whichは、指定したコマンドを実行した場合に使用される実行ファイルのパスを調べるコマンドです。
which ls
例えば、環境によって次のようなパスが表示されます。
/usr/bin/ls
PATH環境変数に登録されているディレクトリから、実行されるコマンドを調べる場合に利用できます。
type
typeは、指定したコマンド名がシェルによってどのように解釈されるかを確認するためのコマンドです。
type ls
typeを使用すると、対象が外部コマンドなのか、シェルの組み込みコマンドなのか、エイリアスなのかなどを確認できます。
例えば、cdについて確認すると、シェルの組み込みコマンドであることを確認できます。
type cd
LPIC レベル1では、単にコマンドを実行できるだけでなく、外部コマンド、シェルの組み込みコマンド、エイリアスなどの違いについても理解しておきましょう。
LPIC レベル1のコマンドを覚える方法
LPIC レベル1では、多くのLinuxコマンドとそのオプションについて学習する必要があります。コマンド名だけを暗記するのではなく、用途や実行結果と関連付けて覚えることが重要です。
また、実際のLinux環境でコマンドを操作し、分からない部分はマニュアルで確認することで、Linuxの基本操作そのものへの理解も深めることができます。
コマンド名だけではなくオプションまで確認する
Linuxコマンドは、指定するオプションによって動作や表示される情報が変化します。そのため、「何をするコマンドなのか」だけではなく、主要なオプションとその役割まで確認しておきましょう。
例えば、lsでは詳細情報を表示する-l、grepでは大文字と小文字を区別せず検索する-iなどを使用できます。
ls -l
grep -i "linux" file.txt
すべてのオプションを一度に覚える必要はありません。まずはLPIC レベル1の学習で使用する主要なオプションを、実際の用途と組み合わせて覚えていくと整理しやすくなります。
実際のLinux環境でコマンドを実行する
Linuxコマンドを覚えるには、教材でコマンドの意味を確認するだけでなく、実際のLinux環境で実行して動作を確認する方法が有効です。
例えば、学習用のディレクトリを作成し、その中でファイルの作成やコピー、移動などを行うことで、基本的なコマンドを一連の操作として確認できます。
mkdir lpic-practice
cd lpic-practice
touch sample.txt
cp sample.txt sample-copy.txt
ls -l
パソコンにLinuxを直接インストールしなくても、仮想マシンやWSL、クラウドなどを利用して学習環境を用意できます。Linuxを操作できる環境を準備したうえで、この記事で紹介したコマンドを実際に試してみましょう。
manコマンドでマニュアルを確認する
Linuxでは、manコマンドを使用して各コマンドのマニュアルを確認できます。
例えば、lsの使い方や利用できるオプションを確認する場合は、次のように実行します。
man ls
マニュアルにはコマンドの概要、書式、オプションなどが記載されています。学習中に分からないオプションや使い方が出てきた場合は、manを使って自分で確認する習慣をつけておくとよいでしょう。
LPIC レベル1ではLinuxの基本的な操作方法について幅広く学習するため、コマンドそのものだけでなく、必要な情報をLinux上で調べる方法を身につけることも重要です。
LPIC レベル1で出題されるLinuxコマンドのまとめ
この記事では、LPIC レベル1で学習するLinuxコマンドを、ファイル・ディレクトリ操作、テキスト処理、圧縮・アーカイブ、アクセス権、プロセス、ファイルシステム、ユーザー・グループ、パッケージ、ネットワーク、システム情報、シェルなどの用途に分けて紹介しました。
Linuxでは多くの操作をコマンドから行うため、LPIC レベル1でも幅広いコマンドについて理解する必要があります。試験対策では、コマンド名だけではなく、用途、基本的な書式、主要なオプション、実行した場合の結果まで関連付けて確認しておきましょう。
また、Linuxコマンドは実際に操作することで理解しやすくなります。学習用のLinux環境を用意し、この記事で紹介したコマンドを繰り返し実行しながら、LPIC レベル1の試験対策とLinuxの基本操作の習得を進めていきましょう。
