38

私はここで非常に基本的な問題を抱えています。それは偶然に起こったので、今まで無視してきました。Tomcat Web サーバーをダウンロードしたところ、「Murach の Java Servlets and JSP」という本に、Tomcat/bin ディレクトリに移動し、ターミナルに入力してサーバーを起動するように指示されています。

$スタートアップ

ただし、エラーが発生します

-bash: startup: command not found

このディレクトリ内の関連ファイルは、startup.sh および startup.bat です。これらの両方を入力すると、同じエラー メッセージが返されます

私の質問は、.bat および sh ファイルとは何ですか? また、これらのファイルを実行するにはどうすればよいですか? さまざまな言語やソフトウェア プログラムのチュートリアルをいくつか読みましたが、チュートリアルでコマンド ラインで多数のファイルを実行するように指示されていると、「コマンドが見つかりません」というエラーが表示されることがあります。うまくいくこともあれば、うまくいかないこともあります。これは私にとって困惑しているので、これらの種類の「コマンドが見つからない」ターミナルの問題を解決するための一般的な解決策は何ですか?

4

11 に答える 11

67

これ.shは *nix システム.bat用であり、Windows 用である必要があります。あなたの例はbashエラーを示しており、ターミナルに言及しているので、使用しているOS Xであると想定しています。

この場合、フォルダーに移動して次のように入力する必要があります。

./startup.sh

./ただ、現在のディレクトリにあるスクリプトを呼び出す必要があることを意味します。(または、 のフル パスを入力するだけですstartup.sh)。機能しない場合startup.shは、実行権限があるかどうかを確認してください。

于 2013-06-10T00:19:12.320 に答える
15

これは、スクリプトが $PATH にないためです。使用する

./scriptname

これを $PATH 内のいずれかのフォルダーにコピーするか、$PATH 変数を変更して、常にスクリプト名のみを使用できるようにすることもできます。ただし、現在のフォルダーが $PATH にないのには理由があることに注意してください。セキュリティ上のリスクになる可能性があります。

それでもスクリプトの実行に問題がある場合は、その権限を確認することをお勧めします。スクリプトを実行するには、実行権限が必要です。使用する

chmod u+x scriptname

ファイルは.shUnix シェル スクリプトです。.batファイルは Windows バッチ ファイルです。

于 2013-06-10T00:21:24.287 に答える
5

ドラッグアンドドロップ

私のような怠惰な Mac ユーザーにとって最も簡単な方法:startup.shファイルを Finder からターミナル ウィンドウにドラッグ アンド ドロップし、Return キーを押します。

Tomcat をシャットダウンするには、 で同じことを行いshutdown.shます。

.batすべてのファイルは Windows PC 専用であり、Mac では使用されず、他の Unix コンピュータには使用されないため、すべて削除できます。そのフォルダーのリストを読みやすくするため、それらを削除します。

ファイルのアクセス許可

起動時にエラーをスローするファイル許可制限のために、Tomcat の新規ダウンロードが私の Mac で実行されないことがわかりました。BatChmodファイルのアクセス許可をリセットするために、同等の Unix コマンドを GUI でラップするアプリを使用します。

ポートフォワーディング

Unix システムは、1024 未満のポート番号へのアクセスを保護します。そのため、Tomcat でポート 80 を使用する場合は、Tomcat がデフォルトでリッスンするポート 8080 に着信要求を転送する「ポート転送」の方法を学ぶ必要があります。ポート転送を行うには、Mac OS X (およびBSD )に組み込まれているパケット フィルタリング (ファイアウォール) アプリにコマンドを発行します。昔は を使っていipfwました。Mac OS X 10.7 (Lion) 以降では、Apple は新しいツールpf.

于 2014-09-27T07:30:19.363 に答える
2

Windows では、次のいずれstartupかを入力しますstartup.bat

UNIX タイプの場合./startup.sh

(Tomcat/bin ディレクトリにいると仮定します)

于 2013-06-10T00:15:49.577 に答える
1

バッチ ファイルは Linux で実行できます。この記事では、その方法について説明します ( http://www.linux.org/threads/running-windows-batch-files-on-linux.7610/ )。

于 2015-03-02T13:02:24.957 に答える
-2

Yosemite の *.sh ファイルでこの問題が発生し、デスクトップ上のフォルダーの正しいパスがわかりませんでした...少し歯ぎしりした後、ファイル自体をターミナル ウィンドウにドラッグしました。ちょっとプレスト!!

于 2015-08-16T18:52:09.010 に答える