以前にWindowsなどのオペレーティングシステムを操作したことがある場合は、次のコンテキストが完全に理にかなっているはずです。このようなオペレーティングシステム環境は、2種類のファイルをサポートしています。最初のタイプは実行可能タイプであり、2番目のタイプは実行不可能なタイプです。実行可能ファイルは、「。exe」などの署名ファイル拡張子に関連付けられています。
Linuxでファイルを実行可能にする
一方、Linuxエコシステムに移行する場合、実行不可能で実行可能なファイルのルールは適用されません。すべてのファイルに実行可能特権を与えることができます。この概念がどのように機能するかを理解するには、参照するサンプルファイルが必要です。
ターミナル/コマンドラインアプローチ
このようなファイルを作成するには、組み込みのechoコマンドを使用できます。 Linux端末に適用できます。このコマンドは、コマンド文字列を作成してファイルにリダイレクトする場合に役立ちます。
Linuxターミナルを開き、次のコマンドシーケンスを実行します。
$ echo 'echo hello FossLinux user, welcome to this tutorial session' >> greetings $ cat greetings
上記のコマンドシーケンスから、echoコマンドを使用して、リテラル文字列「echo hello Fosslinux user、welcome tothistutorialsession」を作成しました。その後、このリテラル文字列を「greetings」という名前のファイルに保存しました。お気づきかもしれませんが、Linuxでは、.exeや.txtなどのファイル拡張子を付けずにファイルを作成できます。ファイルを作成するこのアプローチは、他のオペレーティングシステム環境では不可能です。
Linuxに拡張子のないファイルが存在すると、必要に応じていつでも実行権限を付与できます。 「catgreetings」コマンドが実行された後、端末は上記のコマンドシーケンスから「greetings」ファイル内に保存したリテラル文字列を出力します。
echo hello FossLinux user, welcome to this tutorial session
Linux環境でリテラル文字列を正しく解釈するには、echoコマンドで文字列を開始する必要があります。そうしないと、後でファイルを実行可能にするときに「コマンドが見つかりません」などのエラーが発生する可能性があります。 catコマンドを参照せずにこの「挨拶」ファイルを実行可能にすると、Linuxオペレーティングシステム環境の柔軟性が実現可能になります。
ファイルを実行可能にするには、以下に示すように「chmod」コマンドを使用します。
$ chmod +x greetings
その後、この「挨拶」ファイルを次の方法で呼び出すだけで、そのコンテンツにアクセスできます。
$ ./greetings
期待される出力は次のようになります。
hello FossLinux user, welcome to this tutorial session
お気づきのとおり、上記の出力は「echo」で始まりません。端末環境は、エコーを出力としてではなく、結果の端末出力を表示するために必要なコマンドとして解釈します。
このファイル実行プロセスの内部
Linux環境でファイルの実行が行われる前に、最初のステップは、その実行可能ファイルのパスをLinuxターミナル環境にリンクすることです。次のステップは、ファイルに必要な権限のタイプを判別することです。たとえば、デモンストレーションしたケースでは、作成された「挨拶」ファイルのコンテンツにアクセスする必要がありました。
このシナリオでは、このファイルのコンテンツにアクセスして出力するために、「読み取り」権限を使用する必要がありました。必要に応じて「chmod+x」コマンドを使用します。ファイルの実行権限を割り当てたり削除したりしても、そのファイルが永続的に実行可能になったり、永続的に実行不能になったりすることはありません。ファイルに実行権限を付与しているだけですが、これも削除できます。
「greetings」ファイルの前に「./」を使用すると、実行がスケジュールされているファイルの場所が端末プログラムに通知されます。 「./greetings」の前に「sudo」を使用して、実行プロセスに必要な権限を付与することもできます。上記の例では、echoを使用して、リテラル文字列「hello FossLinux user、このチュートリアルセッションへようこそ」の実行を処理しました。この実行には、Pythonのprintなどの別のプログラムを使用できます。
最初に、実行するファイルのヘッダーとしてプログラムのロケーションバイナリを設定する必要があります。この場合、Pythonのprint関数を使用すると、「greetings」ファイルの内容は次のようになります。
#!/usr/bin/python print "hello FossLinux user, welcome to this tutorial session"
「./greetings」コマンドを使用してこのファイルを実行すると、echoコマンドを使用した場合と同じ結果が得られます。
GUIアプローチ
ファイルを実行可能にする方法への技術的なルートが必要ない場合は、Linuxのグラフィカルユーザーインターフェイスから始めるのが常に適切です。まず、その場所を参照して、実行可能にしたいファイルを見つけます。コンピュータのマウスを使用してこのファイルを右クリックし、「プロパティメニュー」を選択します。
次の画面には、3つのメニューオプションがあります。 「権限」メニューオプションを選択します。
このウィンドウで、[ファイルをプログラムとして実行することを許可する]チェックボックスをオンにします。
これらの簡単なGUI手順で、ターゲットファイルを実行可能にします。
Chmodの柔軟性
Chmodは「変更モード」の短縮形です。 Linuxオペレーティングシステム上のファイルとディレクトリの両方に対するアクセス許可の制御を扱います。たとえば、ファイルを実行可能にする方法についてはすでに説明しているので、これらの実行権限をすべての人から奪う方法も知りたいと思うかもしれません。
この場合、chmodコマンドに関連するいくつかの絶対モードに慣れることができます。数字はこれらのモードを表し、その使用法は次の構文規則に従います。
chmod absolute_mode name_of_file.file_extension
ファイル実行でのもう1つのchmodの使用法
- chmod 775 your_file_name.file_extension:このモードでは、誰でも作成または既存のファイルを実行できます。ただし、そのファイルにデータを書き込んだり追加したりできるのはファイル所有者だけです。
- chmod 777 your_file_name.file_extension:このモードでは、すべてのLinuxシステムユーザーが既存または作成されたファイルを実行するための同等の権限を持っています。
- chmod 0010 your_file_name.file_extension:提示されたファイルを実行するのはLinuxシステムの定義済みグループメンバーのみです。
- chmod 0100 your_file_name.file_extension:ファイルを排他的に実行するのは、ファイルの所有者またはLinuxシステムでファイルを作成した個人のみです。
- chmod -777 your_file_name.file_extension:このコマンドは、そのLinuxオペレーティングシステムのすべてのユーザーからファイル実行権限を奪います。
chmodコマンドに関するこの追加情報を使用すると、Linuxオペレーティングシステム環境でファイルを実行可能にする際の使用法に自信を持つ必要があります。
最後のメモ
Linuxでファイルを実行可能にする簡単なルールには、次の手順が含まれます。
- Linux端末にアクセスできる
- Linuxターミナルを使用して、対象のファイルの場所を参照します。
- 対象のファイルを見つけたら、その名前と関連するファイル拡張子(ある場合)をメモします。ファイル拡張子は「.bin」または「.run」にすることができます。
- その後、次のコマンド構文を使用して、そのファイルを実行可能にします。
sudo chmod +x name_of_file.file_extension
たとえば、sudo chmod + x new_file.bin
このファイルを実行可能にした後、それが「bin」ファイルの場合はインストールするか、「run」ファイルの場合は実行することをお勧めします。いずれの場合も、次のコマンドアプローチで作業を完了できます。
.binファイルの場合は、必ず./my_file_name.bin
を使用してください。.runファイルの場合は、必ず./my_file_name.run
を使用してください。上記のコマンドアプローチで作成された実行可能ファイルをインストールまたは実行しようとしてエラーが発生した場合は、これらのコマンドの実行の前に「sudo」を付けてください。 Linuxシステムの現在のユーザーに必要な実行権限を与えます。