GNU/Linux >> Linux の 問題 >  >> Linux

.sh ファイルとは何ですか?

拡張子が .sh のファイルとは?

Bourne シェルスクリプトです。これらは、UNIX ライクなオペレーティング システムのさまざまなバリエーションで使用されます。それらには「言語」がなく、シェル (端末コマンドのインタープリター) によって解釈されるか、最初の行が次の形式の場合

#!/path/to/interpreter

彼らはその特定のインタープリターを使用します。ファイルの最初の行:

#!/bin/bash

これは、bash と呼ばれる Bourne Again Shell を使用することを意味します。これは、すべての実用的な目的で、古き良き sh の代わりとなります。

インタープリターによって、ファイルが書かれている言語が異なります。

UNIX の世界では、ファイルが何であるかを決定するのはファイルの拡張子ではないことに注意してください (シェル スクリプトの実行方法を参照してください)。

DOS/Windows の経験がある方は、拡張子が .bat または .cmd のファイル (バッチ ファイル) に慣れているでしょう。内容は似ていませんが、デザインは似ています。

シェル スクリプトの実行方法

一部のばかげたオペレーティング システムとは異なり、*nix は拡張子のみに依存してファイルの処理方法を決定するわけではありません。権限も使用されます。これは、ダウンロード後にシェル スクリプトを実行しようとすると、テキスト ファイルを「実行」しようとするのと同じになることを意味します。 「.sh」拡張子は、そのファイルを簡単に認識できるようにするためのものです。

ファイルを実行可能にする必要があります。ファイルを file.sh としてダウンロードしたと仮定しましょう 、ターミナルで実行できます:

chmod +x file.sh

chmod +x は、ファイルのパーミッションを変更するためのコマンドです。 実行権限を設定し (この場合は全員)、最後にファイル名を取得します。

GUIでもできます。ほとんどの場合、ファイルを右クリックしてプロパティを選択できます。XUbuntu では、権限オプションは次のようになります。

権限を変更したくない場合。シェルにコマンドを強制的に実行させることもできます。ターミナルで次を実行できます:

bash file.sh

シェルは、スクリプトの最初の行と同じである必要があります。

どれくらい安全ですか?

ファイルを実行するために手動で別のタスクを実行しなければならないのは奇妙に感じるかもしれません。しかし、これは部分的には、セキュリティに対する強い必要性によるものです.

基本的に、bash スクリプトをダウンロードして実行することは、誰かが「これらすべてのコマンドをコンピューターで順番に実行してください。結果が良好で安全であることを約束します」と言っているのと同じことです。このファイルを提供した当事者を信頼しているかどうかを自問し、自分が思っていたのと同じ場所からファイルをダウンロードしたことが確実かどうかを自問してください。 *nix コマンドと bash プログラミングについてある程度知っている必要があります)。

残念ながら、上記の警告を除けば、コンピューターで悪事が起こるのを防ぐために何をすべきかを順を追って説明することはできません。そのため、誰かから実行可能ファイルを取得して実行するときはいつでも、実際には「もちろん、私のコンピューターを使用して何かを行うことができます」と言っていることに注意してください.


ブラウザで 2 番目のリンクを開くと、ソース コードが表示されます:

#!/bin/bash
# Script to download individual .nc files from the ORNL
# Daymet server at: http://daymet.ornl.gov

[...]

# For ranges use {start..end}
# for individul vaules, use: 1 2 3 4 
for year in {2002..2003}
do
   for tile in {1159..1160}
        do wget --limit-rate=3m http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc -O ${tile}_${year}_vp.nc
        # An example using curl instead of wget
    #do curl --limit-rate 3M -o ${tile}_${year}_vp.nc http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc
     done
done

だから、それはbashスクリプトです。 Linux を手に入れましたか?

いずれにせよ、スクリプトは一連の HTTP 検索に他なりません。ほとんどのオペレーティング システムで wget と curl の両方を使用でき、ほとんどすべての言語に HTTP ライブラリがあるため、他のテクノロジで書き直すのは簡単です。また、bash 自体の Windows ポートもいくつかあります (git には 1 つ含まれています)。最後になりましたが、Windows 10 は Linux バイナリをネイティブでサポートするようになりました。


sh ファイルは unix (linux) シェル実行可能ファイルであり、 bat と同等 (ただし、はるかに強力) です。 Windows 上のファイル。

そのため、Linux コンソールから実行する必要があり、Windows のバット ファイルと同じように名前を入力するだけです。


Linux
  1. シェルドットファイルでできること

  2. Linuxのiノード番号とは何ですか?

  3. ファイル記述子とシェルスクリプト?

  1. ファイル転送プロトコル(FTP)とは

  2. シェルスクリプトでの使用法()とは何ですか?

  3. .sh ファイルがマルウェアになる可能性はありますか?

  1. シェルでファイルを実行するとどうなりますか?

  2. ファイルの変更または変更として何がカウントされますか?

  3. Exec 3とは何ですか?