web-dev-qa-db-ja.com

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

Script.shファイルがあり、このファイルの種類はshellscriptファイルです。このファイルをapplication/x-executableファイルとして作成します。どうすればできますか?

238

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

chmod +x filename.sh

その後、次のように実行できます。

./filename.sh

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

gedit ~/.bashrc

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

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

新しいターミナルセッションを開くか、ターミナルにsource ~/.bashrcと入力して適用します。次に、新しい名前を使用してスクリプトを開始します。

317
rɑːdʒɑ

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

GUIメソッド:

[アクセス許可]タブに移動し、[実行:[]プログラムとしてファイルの実行を許可する]ボックスをオンにします。

enter image description here

端末/コマンド方式:

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

cd /to/my/required/directory

次に実行する

chmod +x filename.extension

または単に実行します:

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

chmodには、さらに高度なオプションもあります。

スペースは、分割されていることを示すためのものです:- rwx --- ---

---の最初のセットはユーザーです。 2番目はグループで、最後はその他(他の誰でも)です

rは読み取り、wは書き込み、xはeXecuteを表します。

だから、誰もがそれを読むことができるが、グループだけが実行し、ユーザーがそれを読み書きできるようにする(しかし、何らかの理由で実行しない)ようになります:

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

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

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

したがって、これらの数値があります。

ユーザーによる実行は100です。グループごとの実行は010です。他による実行は001です

ユーザーによる書き込みは200です。グループごとの書き込みは020です。他による書き込みは002です。

ユーザーによる読み取りは400です。グループによる読み取りは040です。他の人による読み取りは004です。

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

だから、誰もがそれを読むことを許可するが、実行するグ​​ループとそれを書き込むユーザーのみ(ただし、何らかの理由で実行しない)は次のようになります。

400 + 040 + 004および010および200

合計すると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

他のアクセス許可(実行アクセス許可など)に影響を与えずに、ユーザーに読み取りと書き込みを追加するため。

このWebサイト には、非常に便利な小さなグリッドチェックボックスがあります。これにより、必要なオプションにチェックを入れると、コマンドが表示されます。

enter image description here

ただし、使用可能なすべての組み合わせが賢明なわけではありません。使用される主なものは次のとおりです。

755-Ownerにはすべてがあり、GroupおよびOtherは読み取りと実行が可能

700-Ownerにはすべてがあります

644-Ownerは読み取りと書き込みが可能で、GroupOtherは読み取りが可能です

600-Ownerは読み取りと書き込みが可能

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

775-Ownerは読み取りと書き込みが可能で、GroupOtherは読み取りが可能です

770-OwnerGroupにはすべてがあり、Otherは読み取りと実行が可能

750-Ownerにはすべてがあり、Groupには読み取りと実行が可能

664-OwnerおよびGroupは読み取りと書き込みが可能で、Otherは読み取りのみ可能

660-OwnerおよびGroupは読み取りと書き込みが可能

640-Ownerは読み取りと書き込みが可能で、Groupは読み取りが可能です

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

ありがとう Ilmari Karonen for pointing out 一般的に使用されているもの!

36
Tim

実行:

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
8
Jim