Unixコマンドの作成に使用されている言語は何ですか?


回答:


26

通常はわかりやすいCです。コマンドlsとパッケージは、(ほとんどの)Linuxディストリビューション(および他のいくつかのシステム)pwdGNU Coreutilsパッケージから提供されます。あなたは彼らのホームページでコードを見つけることができます。

coreutils具体的には、通常の手順でそれらを構築:ソースを開梱した後、問題:

./configure --prefix=/some/path
                   # type ./configure --help to get the available options
make
make install       # could require root access depending on the path you used

ディストリビューションのコピーにそれらのような基本ユーティリティをインストールすることは悪い考えです。そのためにシステムに付属しているパッケージマネージャを使用します。ただし、別のプレフィックスにインストールすることもできます(実験したい場合は、ホームディレクトリのどこかにインストールすることをお勧めします)。

けれどもという注意がありcd、実行可能cdあなたはほとんどの状況で使用することがありますが、別の実行可能ではありません。シェルビルトインである必要があります(そうでない場合、シェルの現在のディレクトリを変更できませんでした。これはプロセス自体が行う必要があります)。したがって、シェルと同じ言語で記述されます(これも多くの場合ですC)。

その他の例:

  • OpenSolaris pwdソース。
  • FreeBSD ls

あなたはこれらの多くをオンラインで見つけることができます。


5

Matの回答にもう少し追加するだけですが、Unixはこれらをスタンドアロンプ​​ログラムとして実装しますが、多くのコマンドも内部に実装されていますbash(新しいプロセスを生成するために保存するため)詳細については、bashマニュアルページを参照するか、確認してくださいタグ。

bash Cでも書かれている

これらのコマンドがCで書かれている必要はないことは注目に値するかもしれません-実際、いくつかのミニLinuxディストリビューションluaはこれらと他の実装を使用しています。


2
よくバッシュ、または他の良いシェル。
RDS

1
のような一部のコマンドはcd、効果的に機能するために組み込みのシェルでなければならないことにも注意してください。
AProgrammer 2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.