ディレクトリを指定せずにプログラムを実行できますか?

ディレクトリを指定せずにプログラムを実行できますか?

/etc/init.d/apache2 (args)Apacheを実行するにはなぜ入るのですか?

方法はありませんかapache2 args? ?

答え1

通常、Apacheを実行するためにコマンドを入力する必要はありません。 Apacheはシステムが起動すると起動します。/etc/init.dシステムが正しく設定されていると、起動時に起動サービスのスクリプトが自動的に実行されます。ほとんどのディストリビューションでは、サービスはデフォルトで有効になっており、無効にするための措置を講じない限り開始されます。

Apacheを停止して再起動したい場合は、/etc/init.d/apache2 startこれが一般的な方法であるか、またはベストプラクティスですservice apache2 start。短いコマンドの使用は、一般的なシステム使用の一部ではないため、ほとんど使用されません。通常のコマンドは、フルパスを指定せずに実行できます。このコマンドは、PATHWindowsがエミュレートする環境変数にリストされているディレクトリにあります。

答え2

service始めるには、このコマンドを使用する必要があります。

service apache2 start

そして、Apacheパラメータは構造/etc/apache2内になければなりません。

答え3

これは $PATH に /etc/init.d/ が設定されていないためです。

これは本質的に:で区切られたディレクトリのリストです。コマンドを実行すると、シェルは実行可能ファイルがあるディレクトリが見つかるまでこれらのディレクトリを一度に1つずつ検索します。 (http://www.cs.purdue.edu/homes/cs348/unix_path.html)

答え4

にはありませんが、呼び出すことができる多くのメソッドがありますPATH

これらの方法について知っておくとよいでしょう。しかし、コマンドを実行するためにエキゾチックなスタントをすべて実行すると、これはシステム設計が理想的ではないという信号です。

これがというスクリプトで、sあなたがそれを入れたとしましょう(確かにあなたのものではない/homeのでアクセスできないようにするため):/homePATH

echo "The first argument is: $1"
echo "The second argument is: $2"

絶対パスを提供せずに到達できる3つの方法は次のとおりです。

ニックネーム:alias salias='/home/s'

機能:sfunc () { /home/s $@ }

リンク:ln -s /home/s slink

.bashrc最初の2つを再利用するには、シェル初期化ファイル(bash、.zshrczshなどの場合)に入れる必要があります。リンクを使用するには(3番目の場合)、含むディレクトリにリンクを配置する必要がありますPATH。あるいは、絶対パスを使用して明示的に呼び出すこともできます(たとえば、同じディレクトリにある場合など./slink one two)。

関連情報