• ベストアンサー

whereisコマンドについて教えてください。

whereisコマンドでソースやマニュアルファイルの場所がわかると思うのですが疑問がわきました。 [root@localhost ~]# whereis ls ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz まずソースがls:となっているのですが、これはどこの場所を指しているのでしょうか? またマニュアルはみんな.gzファイルで用意されているのでしょうか?

noname#24489
noname#24489

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

>/bin/lsはバイナリファイルのように思うのですがソースファイルはどこにあるのでしょうか? こんばんは。 最近のほとんどのLinuxは、ソースもパッケージから入手できます。 たとえば、FedoraCoreの場合ですけど、 (1) まず、rpmコマンドを使うと、/bin/lsコマンドが、coreutilsパッケージに含まれている   事がわかります。 # rpm -qif /bin/ls Name  : coreutils Relocations: (not relocatable) Version : 5.97 Vendor: Red Hat, Inc. Release : 1.1 Build Date: 2006年07月13日 19時09分48秒 (2) FedoraCoreのミラーサイトから、coreutilsソースパッケージをダウンロードする。 http://ftp.kddilabs.jp/Linux/packages/fedora/core/5/source/SRPMS/coreutils-5.93-7.2.src.rpm (3) coreutilsソースパッケージをインストールする # rpm -ivh coreutils-5.93-7.2.src.rpm (4) coreutilsソースの固まりが、bz2形式でインストールされます。 /usr/src/redhat/SOURCES/coreutils-5.93.tar.bz2 (5) ソースの固まりを、tarコマンドで解凍します。 # tar xvjf coreutils-5.93.tar.bz2 (6) coreutilsのディレクトリが作られて、その中に、lsコマンドのソースができました。 coreutils-5.93/src/ls.c coreutils-5.93/src/ls.h あなたが使っているLinuxに合わせて、試してみてください。

noname#24489
質問者

お礼

ありがとうございます。^^ なるほど。ソースファイルはインストールしないと ないのですね。ありがとうございました。

その他の回答 (3)

回答No.4

ご質問の表示例では実行ファイルが/bin/ls、 後方の2つがマニュアルでソースはありませんね。 ソースのみを探す場合は whereis -s

参考URL:
http://www.linux.or.jp/JM/html/util-linux/man1/whereis.1.html
  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.3

ソースはないか、あるいはwhereisコマンドが知っている置き場所候補ではない違う場所に置かれているかどちらかでしょう。 まず、そもそもそのlinuxにはソースは入っているのですか?たいていのディストリビューションではソースはインストールとは別作業で入れないかぎり、入らないと思いますが。

noname#24489
質問者

お礼

なるほど。ソースは別でインストールしないといけないのですね。ありがとうございました。^^

回答No.1

>これはどこの場所を指しているのでしょうか? /bin/ls

noname#24489
質問者

お礼

ありがとうございます。^^ [root@localhost logrotate.d]# whereis -s ls ls: [root@localhost logrotate.d]# whereis -b ls ls: /bin/ls /bin/lsはバイナリファイルのように思うのですがソースファイルはどこにあるのでしょうか?

関連するQ&A

  • Linuxコマンドのパス取得方法

    すいません、どなたかお分かりの方おられましたらアドバイスいただけましたら助かります。 PHPからLinuxコマンドのwgetとlhaコマンドを実行しています。 しかし、実行するサーバーによってコマンドパスが違うので whereisでパスを取得してからPHPで実行するようにしています。 しかし、CRONで実行したときにだけ、そのパスが取得できない状態です。 こういった場合、どのようにしたらパスが取得できるでしょうか。。 環境:さくらインターネットビジネスプロ FreeBSD 7.1-RELEASE-p15 whereis wgetを コンソールで実行した場合 ⇒ wget: /usr/local/bin/wget /usr/local/man/man1/wget.1.gz CRONで実行した場合 ⇒ wget: /usr/local/man/man1/wget.1.gz whereis lhaを コンソールで実行した場合 ⇒ lha: /usr/local/bin/lha CRONで実行した場合 ⇒ lha: よろしくお願いしますm(_ _)m

  • serviceコマンドのmanがない

    man serviceでserviceコマンドのマニュアルを参照しようと思ったのですが、マニュアルがありませんでした。 serviceコマンドのオプションなど仕様を知りたいのですがどうしたらよいでしょうか? [root@localhost ~]# man service service のマニュアルはありません。

  • ターミナルのコマンド"man"

    Developer Toolsをインストールし、最初の頃は $ man 3 printf などと入力すればprintfの説明が表示されていたのですが、今は以下のようなエラーでマニュアルが表示されません。 sh: line 1: lv: command not found man: No such file or directory Failed to open the message catalog man on the path NLSPATH=<none> Error executing formatting or display command. System command (cd /usr/share/man && /usr/bin/tbl /usr/share/man/man3/printf.3 | /usr/bin/groff -Wall -mtty-char -Tascii -mandoc -c | lv) exited with status 32512. No entry for printf in section 3 of the manual 実際に/usr/share/man/man3/printf.3というファイルや、その他の関数に関するファイルは存在しています。 再度Developer Toolsをインストールしても改善されませんでした。 $ man manなどもエラーになります。 元のようにマニュアルを参照できるようにするにはどうしたらよいのでしょうか。

    • ベストアンサー
    • Mac
  • gcc@MinGW:外部コマンドの起動

    MSYS2/MinGW64 on Windows10 の環境で gcc 開発をしています。 下記の簡単なソースを用意します。 #include <stdio.h> #include <stdlib.h> void main() { system("/usr/bin/ls"); exit(0); } なお、/usr/bin/ls の存在は、   $ which ls ↓   /usr/bin/ls にて確認しています。 これを /mingw64/bin/gcc でコンパイルして実行すると、 '/usr/bin/ls' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示され、明らかに存在するはずの ls コマンドが起動されません(上記エラーメッセージ中のマルチバイト文字はなぜか cp932 で表示されています)。 ところが、同じソースを /usr/bin/gcc でコンパイルすると、問題なく実行されるのです。 MSYS2 と MinGW の関係がよく理解できていないこともあり、どうしてこのようなことが起こるのか理解に苦しんでいます。 どなたかお心当りのあるかた、お教え下されば幸いです。

  • makeコマンドができない

    基本的なことだと思いますがお願いします。 fedore core で色んなことをやってみようと思い sl を インストール していたのですがmakeができないのです。インストール通りにできないの はなんでですか? makeコマンドは /usr/bin にありました。 的はずれなこと言っていたらすみません。 [root@localhost sl]# ls -lrt 合計 36 -rw-r--r-- 1 3605 lock 4101 1月 19 1994 sl.h -rw-r--r-- 1 3605 lock 980 1月 19 1994 sl.txt -rw-r--r-- 1 3605 lock 689 1月 19 1994 sl.1 -rw-r--r-- 1 3605 36 417 7月 22 1998 README -rw-r--r-- 1 3605 36 331 7月 22 1998 Makefile -rw-r--r-- 1 root root 76 10月 31 2005 install.txt -rw-r--r-- 1 3605 36 7131 10月 31 2005 sl.c [root@localhost sl]# more install.txt 1. # tar xvf sl.tar 2. # cd sl 3. # make 4. # cp sl /usr/local/bin/ 5. # sl [root@localhost sl]# make cc -O -o sl sl.c -lcurses -ltermcap make: cc: コマンドが見つかりませんでした make: *** [sl] エラー 127

  • wgetの後

    只今、linuxを勉強中です。わからないところがあるのでおしえてください。 postgreSQLのインストールを実施するため [root@localhost root]#wget ftp://ftp.jp.postgresql.org/source/v8.2.1/ を実行ダウンロードしたのはいいのですが保存先のディレクトリが わかりません(つまりpostgresql-8.2.1.tar.gz ) 上記作業後 [root@localhost root]# ls Desktop ifcfg-eth0 index.html.1 install.log passwd anaconda-ks.cfg index.html install.log.syslog smbpasswd ls すると index.html となっているようですが 本来ならソースファイル、postgresql-8.2.1.tar.gz ではないのですか?? 次の作業 #cp postgresql-8.2.1.tar.gz /usr/local/pgsql に移れないのです。 いまいちよく理解できてないので教えてください。

  • コマンドでフアィルを見つけるとき・・・?

    kouzou@localhost ~]$ su パスワード: [root@localhost kouzou]# cd mysql bash: cd: mysql: そのようなファイルやディレクトリはありません [root@localhost kouzou]# find mysql find: ‘mysql’: そのようなファイルやディレクトリはありません [root@localhost kouzou]# cd / [root@localhost /]# find mysql find: ‘mysql’: そのようなファイルやディレクトリはありません [root@localhost /]# tree -mysql / > allfiles bash: tree: コマンドが見つかりませんでした... [root@localhost /]# find /mysql find: ‘/mysql’: そのようなファイルやディレクトリはありません [root@localhost /]# tree mysql bash: tree: コマンドが見つかりませんでした... 場所から「/」から検索すると200程、出てきました。 どうやったら、コマンドで見つけられますか? ご多忙中、大変恐れ入ります。 ご回答の程、宜しくお願い申し上げます。

  • PEARコマンドが使えない・・・

    PEARコマンドが使えなくて困ってます・・・助けて下さい! pear list / pear install *** などのコマンドを打つと -bash: pear: command not found となってしまい、コマンドがないと言われてしまいます。 パスが通ってないのかと思い。 以下のようにパスを通したのですが、変わりませんでした。 echo PATH=$PATH:/usr/bin/PEAR >> .bashrc ; source .bashrc witch pear を実行すると、 /usr/bin/which: no pear in (***/***/sbin:/root/bin:/usr/bin/PEAR) となります。 phpinfoでは、 Configure Command '--without-pear' include_path .:/usr/bin/PEAR となっていますが、このConfigureのwithoutが関係しているのでしょうか? どなたか宜しくお願いします! ------- CentOS 5.1 PHP 5.1.6

    • ベストアンサー
    • PHP
  • manがつかえなくなってしまいました。(MacOSX10.2)

    crontabのmanを調べようと思って,「man 5 crontab」とうとうとしたところ,間違えて,「man crontab 5」と打ってしまったところ,次にman crontab あるいは, man cronとしても, "zcat: /usr/share/man/cat8/cron.8.gz: not in gzip format" "zcat: /usr/share/man/cat1/crontab.1.gz: not in gzip format" というエラーがでて,マニュアルを参照できなくなってしまいました。どうすれば回復するでしょう?

  • vine linux に vncserver をインストールし、windowsからリモートコントロールしたいのですが

    VNCについての質問です。 realVNC(vnc-4_1_2-x86_linux) をvinelinux 4.1にインストールし、windows vistaからリモートコントロールしようとしています。 ================下記のコマンドで、インストールしました。=================== [root@localhost vnc-4_1_2-x86_linux]# ./vncinstall /usr/local/bin Can't install manual pages to /usr/local/man/man1 Copying Xvnc to /usr/local/bin Copying vncviewer to /usr/local/bin Copying vncpasswd to /usr/local/bin Copying vncconfig to /usr/local/bin Copying vncserver to /usr/local/bin Copying x0vncserver to /usr/local/bin ================起動を行います。=========================================== [root@localhost vnc-4_1_2-x86_linux]# vncserver You will require a password to access your desktops. ================パスワードを設定=========================================== Password: Verify: New ' (root)' desktop is localhost.localdomain:1 Creating default startup script /root/.vnc/xstartup Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/localhost.localdomain:1.log このようになり、正常に起動したと思っているのですが、いざwindowsからVNC Viewer 4 で起動しようとすると、 下記のエラーになってしまいます。 ucable to connect to host: Connection timed out (10060) サーバのポートも開いていて、hosts.allowにもクライアントのIPアドレスを記入しましたが、 同様です。 ブラウザからのアクセスもできませんでした。 初心者なので、情報不足などあるかもしれませんが、どなたか原因や解決方法などご教授いただけませんでしょうか?