12-LPIC「level1」

LPIC|level 1【内部コマンドと外部コマンド】

目標

  • 内部コマンドと外部コマンドついて理解する

内部コマンドと外部コマンド

コマンドは大きく二種類に分けることができます。それが、「内部コマンド」と「外部コマンド」です。この ふたつは、次の違いがあります。

内部コマンド

内部コマンドは、シェルに組み込まれているコマンドです。これらは、シェル自体(例えば、BashやZsh)の一部として動作し、シェルのプロセス内で直接実行されます。内部コマンドは、シェルが直接管理しており、外部プログラムとしてファイルを実行するわけではありません。

例:cd(ディレクトリの移動)、echo(文字列の表示)、exit(シェルの終了)

外部コマンド

外部コマンドは、独立したプログラムとして存在しており、シェルがそれを実行するためには外部のプログラムを呼び出す必要があります。これらのコマンドはシェル内には存在せず、通常はファイルシステムのどこかに格納されています。

例:ls(ディレクトリの内容を表示)、grep(文字列検索)、cat(ファイルの内容を表示)

外部コマンドの実行に必要な「PATH」環境変数

外部コマンドを実行するための場所は、シェルに教える必要があります。これに使われるのが、PATH 環境変数です。PATH は、シェルで外部コマンドを実行する際に、どのディレクトリを検索すべきかを指定するためのディレクトリリストです。

シェルは外部コマンドを実行する際、PATH に指定されたディレクトリを順番に検索し、コマンドが見つかった場合に実行します。

例えば、ls コマンドを実行する際、シェルは PATH に指定されたディレクトリを検索し、ls コマンドが格納されている場所を探します。

テキスト処理のコマンド

次のコマンドは「テキスト処理」を行うコマンドです。これらは、外部プログラムとしてシステム上にインストールされ、ファイルシステム内の特定の場所に格納されているプログラムです。

コマンド名説明使用例
catファイルの内容を表示します。全内容を標準出力に表示し、テキストファイルの内容確認に使用されます。cat file.txt
cutファイルの各行から指定した部分を抜き出します。特定の列や文字数を切り出す際に使用します。cut -d ‘,’ -f 1,3 file.csv

カンマ区切りで1列目と3列目を抽出
expandタブ文字を指定した数のスペースに変換します。例えば、タブを 4 スペースに変換することができます。expand -t 4 file.txt

タブを4つのスペースに変換
fmtテキストを整形します。指定した幅でテキストを折り返して整形することができます。fmt -w 80 file.txt

幅80でテキストを折り返して整形
headファイルの先頭部分を表示します。デフォルトで最初の10行が表示されますが、行数を指定することも可能です。head -n 5 file.txt

ファイルの先頭5行を表示
join二つのファイルを結合します。通常、2つのファイルの共通のフィールドを基にして行を結合します。join file1.txt file2.txt

2つのファイルを共通の列で結合
lessファイルの内容を1画面ずつ表示します。長いファイルをスクロールして確認する際に便利です。ページ単位で内容を表示できます。less file.txt
nl行番号を付けてファイルを出力します。ファイルの内容に行番号を付けて表示し、行番号付きでテキストの内容を確認できます。nl file.txt
odファイルの内容をバイナリ形式や他のフォーマットで表示します。通常、16進数や8進数で内容を表示できます。od -x file.bin

バイナリファイルの内容を16進数で表示
paste二つのファイルを縦に連結します。行単位で対応するファイルの内容を横に並べて表示します。paste file1.txt file2.txt
prファイルをページ単位で整形し、印刷向けにフォーマットします。ページ番号やヘッダーを追加することができます。pr file.txt
sed文字列を置換します。正規表現を使って、ファイル内の文字列を検索し、置き換えることができます。テキストの編集に便利です。sed ‘s/old/new/g’ file.txt

ファイル内の”old”を”new”に置き換え
sort行単位で並び替えます。ファイル内の行をアルファベット順や数値順に並べ替えることができます。sort file.txt
splitファイルを分割して複数のファイルを生成します。指定した行数やバイト数ごとにファイルを分割することができます。split -l 100 file.txt

100行ごとにファイルを分割
tailファイルの末尾部分を表示します。デフォルトでは最後の10行を表示しますが、表示行数を変更することも可能です。tail -n 20 file.txt (ファイルの最後20行を表示)
tr文字を一括変換します。指定した文字セットに従って、入力された文字を変換するコマンドで、文字の削除や置換などができます。echo “hello” | tr ‘a-z’ ‘A-Z’
uniq並び替え済みのファイルから重複した行を削除します。通常、並び替えたファイルで重複行を削除するために使用します。sort file.txt | uniq

例えば次の「file.txt」内をアルファベット順にソートできます。

apple
banana
apple
orange
banana
unexpandスペースをタブに変換します。連続したスペースをタブ文字に変換することができます。unexpand -t 4 file.txt

4つのスペースをタブに変換
wcファイルの大きさを調べます。ファイル内の行数、単語数、バイト数をカウントし、統計情報を表示します。wc file.txt

cat: 標準出力にファイルの全内容を表示しますが、ファイルの内容が非常に大きいときは、less や more の方が便利です。cat は一度に表示してしまうため、大きなファイルだとスクロールできない点に注意です。

cut: ファイルの指定した部分(列や区切り文字など)を抜き出すのに便利です。-d オプションで区切り文字を指定し、-f オプションで抜き出すフィールド番号を指定できます。

sort: 行を並べ替えるコマンドですが、-n オプションで数値順に並べ替えることができる点に注意です。

ファイル操作のコマンド

次のコマンドは「ファイル操作」を行うコマンドです。これらも、外部プログラムとしてシステム上にインストールされ、ファイルシステム内の特定の場所に格納されているプログラムです。

コマンド説明入力例
bzip2ファイルを圧縮します(.bz2形式)。gzipより高い圧縮率を提供します。bzip2 file.txt

file.txt.bz2 という圧縮ファイルが作成されます
cpファイルやディレクトリをコピーします。元のファイルやディレクトリはそのまま残ります。cp source.txt destination.txt

※コマンド入力は一行です。
cpioバックアップ用のファイルアーカイブツール。ファイルのアーカイブや復元を行います。find . -type f | cpio -ov > archive.cpio`

※コマンド入力は一行です。
ddファイルの変換やコピーを行います。低レベルなデータ操作(ディスクコピーなど)に使用されます。dd if=/dev/sda of=/dev/sdb bs=64K

※コマンド入力は一行です。
fileファイルの種類を判別します。ファイルの内容に基づいて、バイナリファイル、テキストファイル、画像ファイルなどを識別します。file example.txt

ファイルの種類を表示
findファイルやディレクトリを検索します。指定した条件に基づいて検索を行うことができます。find /home -name “*.txt”
gzipファイルを圧縮します(.gz形式)。テキストファイルやログファイルの圧縮によく使用されます。gzip file.txt

file.txt.gz という圧縮ファイルが作成されます
gunzipgzipで圧縮されたファイルを解凍します。gunzip file.txt.gz
lsディレクトリ内のファイルやディレクトリの一覧を表示します。ls -l

長形式でファイル情報を表示
mkdir新しいディレクトリを作成します。指定された名前で新しいフォルダを作成します。mkdir new_directory
mvファイルやディレクトリを移動または名前変更します。ファイルの移動だけでなく、リネームにも使用されます。mv oldname.txt newname.txt
※コマンド入力は一行です。
rmファイルやディレクトリを削除します。-rオプションを使用することでディレクトリも削除可能です。rm -r directory_name
rmdir空のディレクトリを削除します。ディレクトリ内にファイルがある場合は削除できません。rmdir empty_directory
tarファイルをアーカイブして圧縮・解凍します。複数のファイルやディレクトリをひとつにまとめるのに使用されます。tar -cvf archive.tar file1.txt file2.txt

※コマンド入力は一行です。
touch新しい空のファイルを作成したり、既存のファイルのタイムスタンプを変更します。touch newfile.txt
bzip2/bunzip2.bz2圧縮ファイルを作成・解凍します。gzipよりも高圧縮率を提供します。bzip2 file.txt(圧縮) / bunzip2 file.txt.bz2(解凍)

bzip2 と bunzip2: bzip2は高圧縮率を提供する圧縮ツールで、.bz2形式で圧縮されたファイルを作成します。bunzip2はその解凍ツールです。特に、大きなファイルの圧縮に役立ちます。

cpio: ファイルのバックアップや復元を行うツールです。findコマンドと組み合わせて使用することが多いです。アーカイブを作成する際やファイルを別の場所にコピーする際に使われます。

dd: ディスクのコピーやバックアップを行うコマンドで、低レベルのデータ操作をします。例えば、ディスク全体をコピーしてクローンを作成することができます。

gzip/gunzip: gzipはファイルを.gz形式で圧縮し、gunzipはその圧縮されたファイルを解凍します。ログファイルなど、比較的軽量なテキストファイルに適しています。

tar: tarは複数のファイルやディレクトリをひとつのアーカイブにまとめるために使用されます。-zオプションを加えることでgzip圧縮と組み合わせることもできます(例:tar -czvf)。

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST