/etc/init.d/apache2 (args)
Apacheを実行するにはなぜ入るのですか?
方法はありませんかapache2 args
? ?
答え1
通常、Apacheを実行するためにコマンドを入力する必要はありません。 Apacheはシステムが起動すると起動します。/etc/init.d
システムが正しく設定されていると、起動時に起動サービスのスクリプトが自動的に実行されます。ほとんどのディストリビューションでは、サービスはデフォルトで有効になっており、無効にするための措置を講じない限り開始されます。
Apacheを停止して再起動したい場合は、/etc/init.d/apache2 start
これが一般的な方法であるか、またはベストプラクティスですservice apache2 start
。短いコマンドの使用は、一般的なシステム使用の一部ではないため、ほとんど使用されません。通常のコマンドは、フルパスを指定せずに実行できます。このコマンドは、PATH
Windowsがエミュレートする環境変数にリストされているディレクトリにあります。
答え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
のでアクセスできないようにするため):/home
PATH
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、.zshrc
zshなどの場合)に入れる必要があります。リンクを使用するには(3番目の場合)、含むディレクトリにリンクを配置する必要がありますPATH
。あるいは、絶対パスを使用して明示的に呼び出すこともできます(たとえば、同じディレクトリにある場合など./slink one two
)。