web-dev-qa-db-ja.com

.shスクリプトを実行するにはどうすればよいですか?

.shファイルを開くたびに、ターミナルではなくgeditで開きます。 右クリック開くその他のアプリケーション...ターミナルに類似したオプションが見つかりません。

ターミナルでこのファイルを開くにはどうすればよいですか?

338
Alex

スクリプトに実行許可を与えます。

chmod +x /path/to/yourscript.sh

スクリプトを実行するには:

/path/to/yourscript.sh

.は現在のディレクトリを参照するため、yourscript.shが現在のディレクトリにある場合、これを次のように簡略化できます。

./yourscript.sh
516
karthick87

ファイルマネージャーから実行するには、シェルスクリプトを実行可能としてマークする必要があります。

  1. .shファイルを右クリックして、プロパティを選択します。

    enter image description here

  2. Permissionsタブで、プログラムとしての実行ファイルの許可をチェックします。

    enter image description here

  3. Propertiesウィンドウを閉じて、ファイルをダブルクリックします。ダイアログがポップアップ表示され、ターミナルでスクリプトを実行するオプションが表示されます。

    enter image description here

87
Isaiah

ターミナルを開き、.shファイルがあるフォルダーに移動します。次に入力します:

sh <name of file>.sh
33
italianfoot

前提条件

.shファイルを実行する前に、実行可能にする必要があります。

  1. ファイルを右クリック
  2. SelectProperties
  3. SelectPermissions
  4. 選択ファイルをプログラムとして実行することを許可

警告

ファイルを取得したソースを信頼していることを確認してください。 ウイルスの可能性があります。

非常に簡単な方法

  1. ファイルをダブルクリックします
  2. ターミナルで実行をクリックします

これには問題があります。ターミナルはすぐに閉じられ、出力を見ることができなくなります。

簡単な方法

  1. アプリケーションを開く->アクセサリ->ターミナル
  2. .shファイルをターミナルにドラッグアンドドロップし、Enterキーを押します

専門家のやり方

  1. アプリケーションを開く->アクセサリ->ターミナル
  2. .shファイルの場所を見つける

    • lsおよびcdコマンドを使用します
    • lsは、現在のフォルダー内のファイルとフォルダーをリストします。試してみてください:「ls」と入力してEnterキーを押します。
    • 目的のフォルダーが表示されたら、cdを実行し、スペース、フォルダー名の順に入力します
    • 不要なフォルダーに移動した場合は、cd ..を実行して1レベル上に移動しますp
  3. .shファイルを実行する

    • たとえば、script1.shlsを確認できたら、次を実行します。

      ./script.sh
      

なぜ複雑な方法ですか?

ターミナルには、コマンドを入力することでアクセスできる強力なツールの豊富なセットがあります。専門家は、lsおよびcdと入力して.shファイルを見つけます。正しいcurrent folderになったら、次のようにスクリプトを実行できます。

./script1.sh

または、実行してファイルに出力をリダイレクトできます。

./script1.sh > out.txt

または、キーワード(「リンゴ」など)の出力をフィルタリングして、ファイルにリダイレクトできます。

./script1.sh | grep apples > ./only-apples

いくつかのコマンドを入力するだけで、そのファイルにできることは何千もあります。

もう1つは、1つの簡単なコマンドでインターネットからファイルをダウンロードできます。

wget www.google.com/images/logos/ps_logo2.png

そして、次のようにファイルを開きます。

shotwell ps_logo2.png
24

Ubuntu 13.04では、Nautilusで開かれた実行可能ファイルは、ユーザーに実行を促すのではなく、デフォルトでgeditで開かれるようになりました。従来の動作を有効にするには、設定を調整する必要があります。

Nautilus→[編集]メニュー→[設定]→[動作]タブ→[毎回確認]の近くのラジオボタンをクリックします。

19
imjustmatthew

cdを使用して、.shファイルがあるディレクトリに移動します。この例では、shファイルを~/Desktop/Shell_practice/test.shとして保存しました

最初にpwdを実行して現在地を特定し、それが/home/username(ここでusernameは実際のユーザー名です)を返す場合、実行できます

cd Desktop/Shell/practice

別の場所にいるようであれば、絶対パスを使用できます

cd ~/Desktop/Shell/practice

または

cd $HOME/Desktop/Shell/practice

あるいは

cd /home/$USER/Desktop/Shell/practice

これらはすべて同じ場所を記述する方法です。スクリプトの場所に到達したら、次のように入力します

ls

出力にshファイルがある場合は、chmodを使用して実行可能にすることができます。私の場合、ファイル名はtest.shなので、実行します。

chmod u+x test.sh

スクリプトと同じディレクトリにいるので、その場所に./(現在のディレクトリの後にパス区切り文字を付けて、ファイルと区別するためにファイルを実行することをシェルに指定する必要がありますファイル名)。ファイルを実行するには、次のように入力します。

./test.sh

スクリプトが正しく記述されていれば、エラーなしで実行されます...

以下にライブの例を示します。 Here is live example

7
TheExorcist

2つの主要なステップ。

  1. ターミナルで、geditを使用して、「。sh」拡張子のスクリプトをデスクトップに書き込んで保存します。 (ただし、任意のテキストエディターを使用できます)

  2. nautilusを開き、script.shファイルを右クリックします。

    • プロパティの下で、「実行ファイルを許可する」チェックボックスをオンにします。

    • nautilusメニューで、[ファイル]をクリックし、次に[設定]をクリックし、次に動作

    • 「実行時に実行可能なテキストファイルを開く」を確認してください。

これで、デスクトップ上のファイルをダブルクリックすると、実行されるはずです。 ../は不要

4
rob

これを行うにはいくつかの方法があります。

オプション1

  1. ターミナルで、cd(ディレクトリの変更)を使用して、Bashファイルがあるディレクトリにアクセスします。

    cd Downloads

  2. bash <filename>.shを実行します

    これは.runファイルでも機能します。この使用法の例があります Rhythmboxの更新に関するこのWebページで

オプション2

  1. ターミナルで、bashファイルがあるディレクトリに移動します。

  2. chmod +x <filename>.shを実行します

  3. Nautilusでファイルを開きます。

3
Kenny Stier

Ubuntu 18.04の場合、ポップアップダイアログが表示されないため、少し変更があります。

だからあなたがする必要があるのは:

ファイルを右クリックし、設定を選択>動作タブを選択>実行可能テキストファイルの下にある「何をするかを確認」オプションを選択します。

これで、任意の.shファイルをダブルクリックすると、ポップアップが表示されます。そこで、「ターミナルで実行」オプションを選択して.shファイルを実行できます。

enter image description here

3
  1. .shファイルを右クリックして、実行可能にします。

  2. ターミナルを開きます(Ctrl+Alt+T)。

  3. .shファイルをターミナルウィンドウにドラッグし、a敬の念を抱いてください。

3
1p_bunny

Ubuntu 16.04では、ターミナルで開く方法は次のとおりです。

File Manager > Edit > Preferences > BehaviorExecutable Text Filesに移動し、Ask each timeを選択します。

問題は、デフォルトでView Executable Files when they are openedに設定されていることです。

2

作成したシェルスクリプトまたはその他の実行可能ファイルを/ usr/local/binに配置すると、コマンドラインでフォルダーパスを指定したり、名前に./を追加したりすることなく、検出および実行されます。たとえば、次の簡単な3行のbashスクリプトを作成して、ディスクUUIDを表示します。

#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
Sudo blkid

ファイルuuidを呼び出し、/ usr/local/binに配置しました。コマンドラインで入力する必要があるのは次のとおりです。

uuid
1
fragos

まあ、私も同じ問題に直面しました。 .shファイルを実行したかったので、CentOS 7でGeditを使用して開きました。

  1. 実行したい.shファイルのパスに移動しました。
  2. ターミナルを開きました。
  3. そして、ターミナルウィンドウにドラッグアンドドロップするだけで、そのファイルがパスとともに入力として自動的に取得されます。
  4. Enterキーを押すと、準備完了です!
0
Jen Bates

いくつかのディストリビューションで見つかった問題は、Nautilusの設定オプションが非表示になっていることですが、Gnome3を使用してUbuntuやその他のディストリビューションで修正することは同じです将来的にどのように)。

  1. インストールdconf-editor

    Sudo apt-get install dconf-editor
    
  2. これが必要なユーザーアカウントを使用してdconf-editorを実行します。つまり、rootではありません

    dconf-editor
    
  3. 次のスキーマに移動します。

    org.gnome.nautilus.preferences

  4. デフォルトで開かないようにデフォルトオプションを変更します。

    executable-text-activationを探し、Word displayをクリックして、askに変更します。

これにより、今後ファイルを編集、表示、または実行するオプションが提供されます

0
Snider

私はLinuxの初心者であり、同じ問題を抱えていました。他のすべてが失敗した場合:

  1. ターミナルを開く
  2. .shファイルを含むフォルダーを開きます
  3. ファイルをターミナルウィンドウにドラッグアンドドロップします
  4. ファイルのパスがターミナルに表示されます。押す Enter
  5. 出来上がり、.shファイルが実行されます。
0
Linux_noob