端末で「ls」または「cd」と入力するたびに実行されるコードを確認したいのですが。それで私は既存のプログラムを修正して新しいものを書きたいと思います。それらのプログラムはどの言語で書かれていますか?
端末コマンドのコードはどこにありますか?
どこにあるかはコマンドによって異なります。いくつかの場所があります。
あなたが言及する2つについて:
ls
はGNU Coreutilsの一部です。すべてのGNUコアユーティリティのソースコードを取得できるため、ls
: wikipedia list of core Utilities )on www.gnu.org 。コマンドラインからgitを使用して(git
をインストールする必要があります):
git clone git://git.sv.gnu.org/coreutils
ls
のソースは git.savannah.gnu.org でもオンラインで確認できます。他のすべてのコマンドにもアクセスできます。
cd
はシェルに組み込まれているため、bash
の一部です。 bashのソースコードは ftp.gnu.org にあります。これは、すべてのビルトインのソースコードにもなります。
bashは、次の組み込みコマンドを定義します。:、。、[、エイリアス、bg、バインド、ブレーク、組み込み、ケース、cd、コマンド、compgen、完全、続行、宣言、dirs、disown、echo、enable、eval、exec 、exit、export、fc、fg、getopts、hash、help、history、if、jobs、kill、let、local、logout、popd、printf、pushd、pwd、read、readonly、return、set、shift、shopt、source 、サスペンド、テスト、時間、トラップ、タイプ、タイプセット、ulimit、umask、unalias、unset、until、wait、while。
それらのプログラムはどの言語で書かれていますか?
[〜#〜] c [〜#〜] または C++
それで私は既存のプログラムを修正して新しいものを書きたいと思います
既存のツールを使用して追加するほうがよいでしょう。ls2
というスクリプトを作成し、そのスクリプトに機能を追加してls
+追加を模倣します。あなたの追加は、機能をトリガーするパラメーターとして余分な文字である可能性があります。最大の利点:好みの言語で記述できます。これらのツールの新しい機能をコーディングするつもりであれば、通常のコマンドをいじらないので、より安全です。それぞれのメーリングリストに参加する必要があります。