Linuxの基本1
ここでは、Linuxの基本となるシェル・コマンド・環境変数についての解説をします。
まずは、Linuxについての基本情報を知りましょう!!
シェル
OSの中核を担うカーネルは機械語しか理解できず、ユーザは人間の言葉しか理解できないので、OSを操作するには双方の橋渡し役が必要となります。そこでシェルがカーネルとユーザの間に入り、ユーザからの指示を翻訳してOSに伝達します。伝達に使用するシェルとユーザの共通言語をコマンドと呼びます。シェルには様々な種類があり、それぞれに特徴があります。代表的なシェルとしてbash(BourneAgainShell)が挙げられます。bashはLinuxに標準で搭載されているシェルです。
コマンドについて
OSを操作するために必要な、ユーザとシェルの共通言語のことをコマンドといいます。Linuxには非常に多くのコマンドが用意されています。 コマンドごとに用意されているオプションを指定することで、様々な機能を使うことができ、さらには引数を指定してコマンドに任意の値を渡すことができます。オプションや引数がなくても実行できるコマンドもあります。指定したコマンドやオプション、引数に応じた実行結果のことを戻り値と言います。
Linux(CUI)にログインするとプロンプトが表示されます。プロンプトはシェルがコマンドの入力を受け付けている状態を示します。ログインしているユーザ名やホスト名などが表示され、表示内容はカスタマイズできます。 コマンドは「コマンド[オプション][引数]」の形式で入力後、Enterキーを押下して実行します。例えば現在の日付を表示するdateコマンドは、オプションや引数を指定してUTCの時刻を表示したり、指定ファイルの更新日時を表示したりすることができます。
コマンド履歴(ヒストリー機能)
実際にLinuxを操作していると同じコマンドを何度も使うことがあります。その際に何度も同じコマンドを入力するのは手間になってしまいます。そこで便利なのが、過去に実行したコマンドをシェルから呼び出す機能です。いくつか方法はありますが、キーボードの矢印「↑」キーを押下すると直前の実行コマンドを押下した回数分、順に表示させることができます。 historyコマンドを実行することで過去に実行したコマンドの一覧を履歴番号とともに表示させることができます。また、「!」と履歴番号を組み合わせてコマンドを再実行することもできます。
シェル変数
ユーザがログインしているシェルで変数を設定すると、そのシェルで設定した変数が参照できるようになります。コマンド実行時、別のシェル(子シェル)が起動しますが、この別のシェルからは参照できません。 このように1つのシェルでのみ参照できる変数をシェル変数と呼びます。シェル変数を設定するには、ログインした状態で「変数名=値」を入力します。シェル変数の値を参照するときはechoコマンドで$記号を用いることで確認できます。主なシェル変数の用途はシェルスクリプトで計算するときや、比較するときなど、処理に使う値を格納するのに使用します。
環境変数
シェル変数は設定したシェルでのみ参照できる変数でしたが、環境変数として設定すれば、コマンド実行時に起動する別のシェル(子シェル)からも参照できるようになります。 環境変数を設定するにはexportコマンドを使用します。引数にシェル変数を指定することで環境変数に変更、またはexportの後に「変数名=値」を指定して設定することもできます。 環境変数には言語やコマンドパスなどシステムの環境をカスタマイズするための値が格納されているものが多くあります。
環境変数PATH
コマンドには実行ファイルが存在しており、本来コマンドを実行するには「/bin/(コマンド名)」といった形で実行ファイルが置かれているディレクトリも含めて指定して実行する必要がありますが、コマンド名のみで実行できるのは、環境変数PATHがあるためです。環境変数PATHに実行ファイルの置き場を格納することでユーザが入力したコマンド名から実行ファイルを検索および実行します。環境変数PATHにパスを格納してコマンド名だけで実行可能にすることを「パスを通す」と表現します。
環境変数LANG
Linuxで使用される言語の設定はカスタマイズすることができます。 環境変数LANGはシェルで使われるロケール(国・地域や言語に関する情報)が格納されている環境変数です。言語表記を英語から日本語表記に変えたい場合は、環境変数LANGに格納されているロケールを「en_US.UTF-8」から「ja_JP.UTF-8」に変えることで変更することができます。 ロケールの設定値は国・地域、言語別にあらかじめ定義されています。VirtualBoxのコンソール画面では日本語は文字化けするので注意が必要です。
シェルのメタキャラクタ
シェルのメタキャラクタとはシェル上で特別な意味を持つ文字のことです。 コマンドを実行する際にメタキャラクタを使うことで引数の指定などが便利になります。例えばコマンドラインで「~(チルダ)」を使用すると、実行ユーザ(user)のホームディレクトリ(/home/user)を意味するので、1文字だけでホームディレクトリを指定することができます。 様々な記号がメタキャラクタとして使用されますが、直前に「(バックスラッシュ)」を付けると普通の文字としても扱うことができます。例えば、前述の「~」は「~」とすることで、ホームディレクトリの/home/userを表す意味ではなく、単なる文字としての「~」として扱うことができます。
ワイルドカード
シェルのメタキャラクタの中でも、特定のパターンにマッチする文字列を表す特殊な文字をワイルドカードと呼びます。「*(アスタリスク)」や「?(クエスチョン)」など上記の表に記載のある記号がワイルドカードに該当します。例えば「file1.txt」と「file10.txt」の2ファイルを、「*」を用いて「file*.txt」とすることでひとつの表記で指定することができます。 コマンドを実行する際、これらのワイルドカードを引数で使うことにより、特定の文字列にマッチしたファイルを一括で削除したり、コピーしたり、移動させたりすることができます。例えば、「rm-r./*」だとカレントディレクトリのすべてのファイルを削除できます。「.」がカレントディレクトリ(現在の作業場所)で「/」はその下の、「*」がすべてのファイルを表します。
aliasコマンド
alias(エイリアス)とは、元は通称や別名という意味です。Linuxでは、頻繁に使うコマンドやオプションまたはパイプで連結したコマンドラインに対して、独自に名前を付けてエイリアスを設定し、1つのコマンドのように使うことができます。こうすることで入力する文字数が減り、効率的に作業ができます。このエイリアス機能はシェルの機能の一部です。 現在設定されているエイリアスの確認やエイリアスの新規設定にはaliasコマンドを使います。確認時は、aliasコマンドに引数をつけずに実行し、設定時はaliasコマンドの後に定義する別名=実行内容の形で記載します。
環境設定ファイル
環境変数やエイリアスを設定しても一度Linuxからログアウトすると設定がリセットされてしまうため、再ログインした際は設定をし直す必要があります。 恒常的に使用する環境変数などは、ここで紹介する環境設定ファイルに設定内容を保存しておくことで、ユーザログイン後やシェルの起動後に保存した内容が反映され、都度設定する手間を省くことができます。設定ファイルは適用するユーザ範囲(全ユーザ対象か個別ユーザ対象か)や実行タイミング(ログイン時か、シェル起動時か)等に応じて複数用意されており、決まった順番で読み込まれます。
まとめ
- カーネルとユーザの橋渡し役のプログラムを「シェル」といいます
- [user@localhost~]$ls[オプション][引数]といった書式で入力するものをコマンドと呼びます
- コマンド履歴を呼び出すキーは「↑」キー
- Linuxの2種類の変数は、シェル変数と、環境変数
- 言語設定をするための環境変数名は「LANG」
- シェル上での「~(チルダ)」の意味は、ホームディレクトリ
- 特定パターンに一致する文字列を表す特殊な文字の事をワイルドカードという
- コマンドに別名を付けられるコマンドはalias