fc2ブログ




仕事じゃLinux、Solaris、Ciscoなど。 趣味じゃProToolsLEなど。 愛車はkawasaki 250TRナリよ。


ビルトインコマンドと外部コマンド
コマンドには内部コマンドと外部コマンドがある。
内部コマンドのことを、ビルトインコマンドとも言うようだけどれも、微妙に意味や使いどころの違う言葉なのかもしれないが知らない。
外部コマンドとはコマンドがファイルとして存在しているコマンドであり,内部コマンドとはシェル自身が反応するコマンドである。
ビルトインコマンドとはシェル自身が持っているコマンドである。

例えば、
$ which cd
としても、なにも表示されない。
それはなぜか。
「cd」がビルトインコマンドだから。
ビルトインコマンドなのか外部コマンドなのかは、「type コマンド」とすればわかる。

$ type cd
cd is a shell builtin

$ type df
df is /bin/df

$ type ls
ls is aliased to `ls --color=auto'

外部コマンドである場合、その実体がバイナリコマンドなのか、シェルスクリプトなのかは、「file コマンドのパス」でわかる。

$ file /bin/df
/bin/df: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

$ file /bin/lessfile
/bin/lessfile: symbolic link to `lesspipe'

$ file /bin/lesspipe
/bin/lesspipe: POSIX shell script text executable

あと、
$ ls -F /bin
でもある程度わかる。

あとわからんかったのは、Ubuntuではwheelとかないみたいやし、デフォルトユーザーはsudoersにないのにsudoできるのがなんでかな、と。
よく「/etc/sudoers」をみると、
%admin ALL=(ALL) ALL
という行があり、「/etc/group」をみると、デフォルトユーザーがしっかりメンバーやった。
ああ、これか。

いろんな文化があるよね。
しかしUbuntu は触ってて楽しい。
勝手に設定してくれるので、楽といえば楽、わからんといえばわからんけど、やっぱ楽なのがいい。
楽ゆえに、わからんながらも挫折はしない。
それが楽しさの源かな。
やはりいろんなソフトについて、他のディストリでは構築で挫折するけど、Ubuntu だととりあえずは動かすところまでたどり着ける。
この意義は大きい。
標準の設定も、よく練られているから、結局そのままでよかったりするしね。

こんな便利なものが無料なのがすごいし、知らない人は可哀想。
それでも地球は廻るけどね。
スポンサーサイト





この記事に対するコメント

この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック