shを追加するとどうなりますか?


10

私はターミナルを使うのが初めてで、なぜそれがそこにあるのか、そしてそれが何をするのかを知らずに盲目的にガイドをフォローしてきました。

これは、ファイルを実行可能にしてファイルをクリックし、実行することで機能しました。ルートアクセスが必要だとだけ言ってください。

sudo sh vmwareplayer.txt (短い名前に変更)

どういうわけか私は何をするのか知ってsudoいますが、何をしshますか?それがないと「vmwareplayer.txt not found」になります。バンドルファイルの場合、なぜ.txtで終わるのですか?


これは言語通訳です
タキオン2013

@Tachyons質問への回答がわかっている場合は、より詳しく説明し、回答として投稿してください。:)
Alvar

また、関連を参照してください質問(などのshは、bashなど)通訳とshebangsなどについての偉大な深さで説明するの答えと

1
@Mikこれはその質問の複製ではありません。これはsh、スクリプトを呼び出すコマンドで何をするかを尋ねています。その質問は、どのようにについてです#!動作するスクリプトファイル内。全く違います。
Eliah Kagan 2013

@EliahKaganはい、私はおそらくそれを重複として引用するのが早すぎました:他の回答を参照するときは「関連しているが重複していない」と置くべきでした。あなたはいつも通りです。モデレーターに再開を依頼する場合は問題ありません。再開に投票しました。

回答:


15

shは "shell"の略で、shellは古いUnixのようなコマンドラインインタープリタです。インタプリタは、プログラミングまたはスクリプト言語で記述された特定の命令を実行するプログラムです。つまり、基本的には「そのファイルを実行してください」と言います。

Linuxは、ファイル(またはプログラム)が何であるかを判別するために、ファイル拡張子を実際に調べないことを理解する必要があります。そのため、そのファイルの内容がshインタープリターが理解できる方法で書かれている限り、動作します。しかし、単に読みやすくするために、そのようなファイルには通常.sh拡張子が付けられており、開発者がそのファイルに.txt拡張子を付けたときに何を考えていたかはわかりません。


5

Ubuntuでは、shまたは/bin/sh単にをポイントしdashます。Ubuntu用のshデフォルトのコマンドインタープリターを実行することになっていますdash1 dashはDebian Almquistシェルを指します。

シェルは、システムのコマンドラインインタープリターです。以下のようないくつかの他のシェルがありbashcshzshなどは、ここでのmanページから簡単なの抜粋ですdash

 The shell is a command that reads lines from either a file or the termi‐
 nal, interprets them, and generally executes other commands.  It is the
 program that is running when a user logs into the system (although a user
 can select a different shell with the chsh(1) command).  The shell imple‐
 ments a language that has flow control constructs, a macro facility that
 provides a variety of features in addition to data storage, along with
 built in history and line editing capabilities.  It incorporates many
 features to aid interactive use and has the advantage that the interpre‐
 tative language is common to both interactive and non-interactive use
 (shell scripts).  That is, commands can be typed directly to the running
 shell or can be put into a file and the file can be executed directly by
 the shell.

Linuxシェルに関するチュートリアルはたくさんあります。このWikipediaの記事から始めることができます。

あなたの質問に来ると、あなたが書く場合、あなたのためsh filedash実行さfileれます。


それはshが何であるかについての良い説明ですが、上記の特定の質問で何をするかではありません。
NilsB 2013

もう少し情報を追加しました。これで十分です
2013

1

一言コメント:

sudoroot特権でコマンドを実行します。sudo vmwareplayer.txt「ルートアクセスでコマンドvmwareplayer.txtを実行する」という明確な意味で呼び出す場合、そのようなプログラムがないため失敗します。

sudo sh commandsh commandルート権限で実行」を意味します

そして、sh commandBourneシェルの下でコマンドを実行します。

新しい質問が発生します。シェルとは何ですか?これは長い質問で、私が推測するwikiにいくつかの情報があります。

一方、覚えているのmanはあなたの親友です。


1

以前の回答者があなたが実際にG.に尋ねた質問に答えなかったと私は信じています。shあなたが述べたようにプログラムを実行するときにを割り込むと、非対話型サブシェルでプログラムが実行されます。非インタラクティブシェルの動作(初期化など)は、プログラムの実行時に使用していた標準のインタラクティブシェルとは異なります。

正直なところ、これが実際にどのような影響を与えるのかわかりません。お気づきのとおり、sh vmwareplayer.txt(通常)同じフォルダで何かを実行できますが、vmwareplayer.txt(通常)入力するだけでは実行できません。これはシェル環境を実行する必要があります。シェルやサブシェル自体に固有の品質ではありません。もちろん、現在のディレクトリでrootとしてプログラムを直接実行することもできますsudo ./vmwareplayer.txt。私の経験では、これは常に同じように機能しsudo sh vmwareplayer.txtます。私は誰かがやって来て、なぜサブシェルが時々望ましいのかを説明してくれることを望んでいました。


0

shユーティリティは、コマンド言語インタプリタ/実行コマンドがコマンドライン文字列は、標準入力、または指定したファイルから読み込むことのコマンドです。アプリケーションは、実行されるコマンドがシェルコマンド言語で説明されている言語で表現されていることを確認します。

例えば:

以下は、文字列からシェルコマンドを sh -c "cat myfile.txt" 実行します。cat myfile.txt

詳細な説明については、次のリンクを参照してください。http//pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.