質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

Q&A

解決済

3回答

3626閲覧

シェルコマンド(例えばcdとか)の中身(のコード)ってどこに書いてあるの?

kuraudo

総合スコア137

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

0グッド

0クリップ

投稿2018/03/03 11:29

編集2018/03/03 12:03

背景

なんか他人の書いたコードとか見るときにツリー構造をシェルコマンドとかで一行入力しただけで見れたら良いのになぁ〜っと思っていたのであった。←

自分の脳内...
$ tree hogehogeFolder ↓実行結果

hogehogeFolder |- hoge.rb - hogemaru.rb

そこで、そんなモノを作ってみようかなっと思ったのだが。。。
あっ、そういえば普段使ってる cd とか ls ってどう言うコードが書かれて処理が実行されてるんだろう?
っと疑問に思ったのだった。。

ぐぐっても目星い記事が見つからない。゚(゚うェ´゚)゚。

いつもお世話になっているteratailのパイセン方に聞こう

今に至る

知りたい事

  • cd などのシェルコマンドってどこに記述されていて、どのような言語で書かれているのですか?

※備考
既に似たような質問があればお手数ですがそちらのURLを教えて頂けると幸いです。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

cdやlsの「中身」を勉強するより、「パイプ」とか「リダイレクト」とかの概念を理解し、sedとかawkとかperlとかの概要を学んだほうがいいでしょう。

そして、「こういうのないのかな」はたいてい先人の誰かが思いついているので、ググればその種の情報は見つけられる可能性が高いですね。たとえばtree表示なら、
https://qiita.com/yone098@github/items/bba8a42de6b06e40983b

投稿2018/03/03 11:53

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuraudo

2018/03/03 12:02 編集

>> cdやlsの「中身」を勉強するより、「パイプ」とか「リダイレクト」とかの概念を理解し、sedとかawkとかperlとかの概要を学んだほうがいいでしょう。 そうですね! なんか質問掲示板なのに勉強の仕方を教わる事が出来て、大変助かります笑 一回、全体を見通して(どう言う概念のもと、どの部分にcdやlsが位置しているのか理解して)みてから中身のコードを見たりしようと思います! (その方がちゃんとした力が身につきそうw) ご回答ありがとうございました!
guest

0

ベストアンサー

※Linuxでのお話です。

cdはシェルの内部コマンドとなっているので、利用されているシェルのソースコードを読むとよいかと思います。例えばbashであればいかにソースツリーがあります、

index : bash.git
http://git.savannah.gnu.org/cgit/bash.git/tree/

cd内部コマンドのソース
http://git.savannah.gnu.org/cgit/bash.git/tree/builtins/cd.def

lsはGNU Core utilitiesという、基本的な外部コマンド集の一部のプログラムです。
(これらの外部コマンドは、/bin や /usr/bin に格納されてます)

coreutils.git
http://git.savannah.gnu.org/cgit/coreutils.git/tree/

lsコマンドのソース
http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c

リンク先を見てもらえればわかりますが、これらのプログラムはだいたいC言語で書かれています。

投稿2018/03/03 11:49

yukkeorg

総合スコア985

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuraudo

2018/03/03 11:55

おおおお!笑 ホントこんな感じのを探してました!笑 ありがとうございます! C言語なのですな(´・ω・`)重ぃ。。笑 でもスッキリできて良かったです! ご回答ありがとうございました
guest

0

お手元にLinuxの実行環境があるなら、

$ type cd

及び、

$ which cd

とタイプしてみてください。
そのコマンドがどう実行されるか、どこにあるのか、がわかります

投稿2018/03/03 11:40

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KojiDoi

2018/03/03 11:45

そいつらがどういうコードで書かれているのが知りたいということなので、どこにあるのかがわかったところであまり意味がないのでは…
kuraudo

2018/03/03 11:52

場所がわかれば cat とかで確認できるので whichコマンドを使う手を忘れてい自分にとっては知る手段が1つ増えたと言う事で大変お役に立ってます!笑 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問