2013-06-10 49 views
20

私はここまできわめて基本的な問題があります。それは今まで私が無視してきたことに間違いがありました。しかし、私はエラーを取得する$起動時にターミナルから.shまたは.batファイルを実行するにはどうすればよいですか?

ターミナル

を私は、Tomcat Webサーバーをダウンロードし、「MurachのJavaサーブレットとJSP」の本は、Tomcat/binディレクトリに移動して私に言っているし、サーバに私の入力を開始し

-bash: startup: command not found 

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

私の質問は.batとshファイルとは何ですか。これらのファイルはどのように実行するのですか?私は、さまざまな言語とソフトウェアプログラムのチュートリアルをいくつか読んだことがあります。チュートリアルでは、コマンドラインでたくさんのファイルを実行すると、「コマンドが見つかりません」というエラーが表示されることがあります。ときどき動作しますが、時には動作しないことがあります。これは私には困惑しています。だから、こういった "コマンドが見つかりません"という端末の問題を解決するための共通の解決策は何でしょうか? Windows上で

答えて

36

.sh * nixシステムのためのものであり、.batはのためにする必要がありますWindows。あなたの例はbashエラーを示しているので、Terminalと言いますが、私はあなたが使用しているOS Xであると仮定しています。フォルダやタイプに行くべきこの場合

./startup.sh 

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

+0

説明をありがとうpilsetnieks。私はあなたが言ったことをタイプし、それは働いた!次のインストールの問題に直面します。 – almel

+0

権限が拒否されている場合は、 'sudo。/ startup.sh'を実行する必要があります。 –

+0

sudo ./scriptname.shを実行すると何らかの理由で"コマンドが見つかりません "というエラーが発生します。 – yrg

2

(あなたがTomcatの/ binディレクトリに配置されていると仮定)./startup.sh

UNIXタイプのいずれかstartupまたはstartup.bat

を入力

8

これは、スクリプトが$ PATHにないためです。また、あなたの$ PATHにフォルダのいずれかにこれをコピーするか、またはあなたは常にだけでスクリプト名を使用できるように$ PATH変数を変更することができ

./scriptname 

を使用してください。しかし、現在のフォルダが$ PATHにない理由があります。セキュリティリスクの可能性があります。

スクリプトを実行しても問題が解決しない場合は、そのアクセス許可を確認する必要があります。実行するには実行権限が必要です。使用

chmod u+x scriptname 

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

6

Linux端末のタイプbash script_name.shまたは./script_name./script_nameを使用する前に、sudo chmod 700 script_nameで実行可能なスクリプトを作成し、ウィンドウにscript_name.batと入力してください。私のように怠惰なMacユーザーのための

3

ドラッグ・アンド・ドロップ

最も簡単な方法:ターミナルウィンドウReturnキーを押しますにFinderからstartup.shファイルをドラッグ・アンド・ドロップします。

Tomcatを終了するには、shutdown.shと同じ操作を行います。

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

ファイルのアクセス権

私は新鮮なTomcatのためにダウンロードが起動時にエラーを投げるのファイル権限の制限の私のMac上で実行されないことを見つけます。私はBatChmodアプリを使用して、等価なUnixコマンドの回りにGUIをラップし、ファイルのパーミッションをリセットします。

ポート転送

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

-1

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

-2

私の提案は端末から来ていません。しかし、これははるかに簡単な方法です。

.batファイルの場合は、Wine経由で実行できます。このビデオを使用してインストールしてください:https://www.youtube.com/watch?v=DkS8i_blVCA。このビデオでは、Wineのインストール、セットアップ、および使用方法について説明します。これはWine自体の.batファイルを開くのと同じくらい簡単で、Windows上と同じように動作します。

これにより、.exeファイルと.shファイルも実行できます。

これは、すべての種類の端末コードを解決するよりもはるかに簡単です。言い換えれば

chmod 755 scriptname.sh 

0

タイプ、自分でファイルを実行する許可を与えます。私はそれにr/wの許可を持っていることを推測しています。

+0

これは必ずしも問題を解決するとは限りません。 @almelによって報告されたエラーは、シェルが$ PATH環境変数で指定されたフォルダのリストを検索し、 "スタートアップ"ファイルを見つけることができなかったことを意味します。置くことによって "。/ startup "を実行すると、その検索をバイパスし、シェルに"実行しようとしているスクリプトをこのフォルダで探す " – redsoxfantom

関連する問題