端末から実行できるように、ファイル(.shスクリプトなど)を実行可能にする方法

私はaを持っていますscript.sh このファイルのファイルとタイプはshellscriptファイルです。 このファイルをapplication/x-executableファイルとして作成したいと思います。 どうすれば作れますか?

ファイルを実行可能ファイルとしてマークできます:

chmod +x filename.sh

次に、次のように実行できます:

./filename.sh

別のコマンドを使用して起動する場合は、エイリアスを追加できます:

gedit ~/.bashrc

これをファイルの最後に追加します:

alias <new name>='/home/<full path to script>/filename.sh'

新しい端末セッションを開くか、次のように入力します source ~/.bashrc お使いの端末で適用します。次に、新しい名前を使用してスクリプトを開始します。

ファイルを実行可能にするには、次の2つの方法があります:

GUIメソッド:

ファイルを右クリックし、[プロパティ]を選択します。アクセス許可タブに移動し、ボックスにチェックを入れます Execute: [ ] Allow executing file as program またはノーチラスで Program: [ ] Allow this file to run as a program トゥナールで

端末/コマンド方法:

次のいずれかを使用できます:

cd /to/my/required/directory

次に実行します

chmod +x filename.extension

または単に実行します:

chmod +x /path/to/your/filename.extension

chmod また、いくつかのより高度なオプションを持ってい:

スペースは、それが分割されていることを示すことです: - rwx --- ---

の最初のセット --- ユーザーです。 第二はグループであり、最後は他の(他の誰か)です

rはRead、WはWrite、xはeXecuteを表します。

したがって、誰もがそれを読むことができますが、実行するのはグループだけで、ユーザーはそれを読み書きすることができます(何らかの理由で実行され:

-rw- rx- r-- しかし、これは次のようにコマンドに追加されます:

chmod +rw-rx-r-- /path/to/file.extension

chmod また、数字でこれを行うことができます。 それはバイナリに基づいています(私はそれが1,2と4であると思います)

だから、これらの数字があります:

ユーザーによる実行は 100.グループによる実行は 010.他のisによって実行されます 001.

ユーザーによる書き込みは 200.グループによる書き込みは 020.他の人による書き込みは 002.

ユーザーによる読み取りは 400.グループによる読み取りは、 040.他の人が読んでいるのは 004.

次に、これらを一緒に追加して、目的の組み合わせを取得します。

したがって、誰もがそれを読むことができますが、実行するグループとユーザーのみがそれを書くことができます(何らかの理由で実行されません)。:

400 + 040 + 004010200

それはに加算されます600 + 050 + 004 =654

その後、コマンドを実行できます。

chmod +654 /path/to/file.extension それを設定する。

すべての権限を設定するには、次のように入力します:

chmod +rwxrwxrwx /path/to/file.extension

または(これは書くのが少し簡単ですが、それぞれを覚えておくのは難しいです):

chmod +777 /path/to/file.extension

最後に、次のことができます:

chmod -777 /path/to/file.extension

すべての権限をすべての人から奪う。

と:

chmod +300 /path/to/file.extension

他の権限(実行権限など)に影響を与えずに、ユーザーの読み取りと書き込みを追加する。

このウェブサイト あなたが望むオプションをチェックすることができ、それはあなたにコマンドを与えることにより、非常に便利:

enter image description here

しかし、すべての可能な組み合わせが使用するのが賢明ではありません。:

755 - Owner すべてを持っており、 GroupOther 読み取りと実行が可能

700 - Owner すべてを持っています

644 - Owner 読み書きができ、 GroupOther 読むことができます

600 - Owner 読み書きができます

また、自明でないユーザーグループを使用している場合:

775 - Owner 読み書きができ、 GroupOther 読むことができます

770 - OwnerGroup すべてを持っている、と Other 読み取りと実行が可能

750 - Owner すべてを持っており、 Group 読み取りと実行が可能

664 - OwnerGroup 読み書きができ、 Other ただ読むことができます

660 - OwnerGroup 読み書きができます

640 - Owner 読み書きができ、 Group 読むことができます

777と666は、/tmpを除いてほとんど使用されません。

ありがとう! イルマリ-カロネン のために 指摘しているのは、 共通の使用法の物!

走れ。:

chmod +x /path/to/file.sh

実行可能でないようにするには、次を実行します:

chmod -x /path/to/file.sh

たとえば、私は作成しました .sh ファイル:

vi tester12.sh

Viエディタでコードを書いた後、viエディタを終了します:

:wq!chmod +x tester12.sh./tester12.sh

すべてのユーザーにスクリプトを実行させる

前述のように、ファイルの実行ビットを設定して実行可能にすることができます chmod +x. しかし、あなたはまた、使用することができます chmod a+x:

$ ll file_command.txt-rw-rw-r-- 1 rick rick 17 Sep 19 08:55 file_command.txt$ chmod a+x file_command.txt$ ll file_command.txt-rwxrwxr-x 1 rick rick 17 Sep 19 08:55 file_command.txt*

注意事項:

  • スクリプトは次のように終わる必要はありません .sh それはで終わることができます .txt ここに示すように、または一切の拡張子を持っていません。
  • ただの代わりに +x (あなただけがスクリプトを実行することができます)、使用します a+x そのため、すべてのユーザーがスクリプトを実行できます。
  • ファイル名には * それが実行可能であることを示すためにそれに追加されます。 また、ほとんどのシステムでは、ファイル名の色が緑色に変わります。

make script executable


実行可能にせずにスクリプトを実行する

実行可能にせずにbashスクリプトを実行することはできます。 例えば:

$ echo "echo Hello World" > file_command.txt$ cat file_command.txtecho Hello World$ bash file_command.txtHello World

注意事項:

  • まず、以下を含むスクリプトを作成します echo Hello World.
  • その後、私たちはと呼ばれるスクリプトを確認します file_command.txt 正しいです。
  • 最後に、以下を呼び出してスクリプトを実行します bash そしてそれにスクリプト名を渡します。 その bashコマンドは実際には次のように格納されます /bin/bash そして、それはすべてのUbuntuシステム上の実行可能ファイルです。
  • コマンドのファイルを作成すると、コマンドの追加が省かれます。 シェバン #!/bin/bash スクリプトの最初の行として。
  • コマンドのファイルを作成すると、次のように実行可能にすることができます chmod +x または chmod a+x.

関連する[ターミナルで.shファイルを実行するにはどうすればよいですか?](command line - How do I run .sh scripts? - Ask Ubuntu

Shファイルをどのように実行するのですか?](command line - How do I run .sh scripts? - Ask Ubuntu

私はそれをapplication/x-executableにすることについて具体的に尋ねたので、それは重複していません。 他の質問は、端末でshファイルを開くように要求するだけです。