お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2007-12-08 12:55:44

tonpa
新しいメンバ
登録日: 2007-11-30

cdが使える訳は?

コンソールで
あるディレクトリの中身を表示したい時に、
#ls
と、実行しますよね? 
このlsというのはコマンドで、/bin/lsにあるバイナリファイルを実行しているということだと思いますが。

cd は一体どうなっているのかと言う質問です!
もちろん、
#cd ~/Desktop
とすれば、デスクトップに移動します。しかし、/binの下にも、/sbinの下にもcdは存在しないのです。

ソース・バイナリファイルの場所を表示するコマンド
#whereis cd
を実行しても、表示されません。

質問をまとめると
1:コマンドcdのバイナリファイルは、本当にコンピュータ上に存在していないのか?
2:存在しないとした場合、なぜバイナリがないのに #cd として実行できるのか?

の2点です。どうか、よろしくおねがいします。

最後の編集者: tonpa (2007-12-08 12:56:18)

オフライン

 

#2 2007-12-08 14:55:04

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: cdが使える訳は?

ビルトインコマンドと言うものが有ります。
Ubuntuは、bashというコマンドラインインタープリターが使われています。
DOSでいえば、command.com(exe)見たいなものです。
このコマンドラインインタープリターに、色んな、コマンドが内蔵されています。

オフライン

 

#3 2007-12-10 16:07:44

tonpa
新しいメンバ
登録日: 2007-11-30

Re: cdが使える訳は?

なるほど、cdなどはビルトインコマンドでshellの中で宣言されているものと・・・。

そのcdがbashのソースのどこのファイルで定義されているか分かりますか?

オフライン

 

#4 2007-12-10 16:16:10

hito
管理者
登録日: 2007-03-18

Re: cdが使える訳は?

see  bash-3.2/builtins/cd.def

# 宿題とかならできるだけ自分でやりましょうね(知的好奇心なら余計に)。

オフライン

 

Board footer

Powered by FluxBB