2012-07-17 10 views
115

मैं वास्तविक कोड को पढ़ना चाहता हूं जो लिनक्स कमांड के साथ लिखे गए हैं। मैंने उनका उपयोग करके कुछ अनुभव प्राप्त किया है और अब मुझे लगता है कि यह मेरी मशीन के साथ गहरे स्तर पर बातचीत करने का समय है। मुझे यहां कुछ आदेश मिले हैं http://directory.fsf.org/wiki/GNUलिनक्स कोर कमांड के लिए मुझे स्रोत कोड कहां मिल सकता है?

दुर्भाग्य से मैं 'एलएस' जैसे बुनियादी आदेश नहीं ढूंढ पाया जो मुझे शुरू करने में काफी आसान लगता है।

क्या आपको कुछ वेब पेज, पुस्तक या कोई अन्य सामान शुरू करने के बारे में पता है?

मैं Ubuntu 12.04

+1

की [स्रोत कोड के संभावित दो प्रतियों में वास्तविक स्रोत कोड के साथ Gnulib का निर्माण किया जाता है: ज्यादातर मामलों में यह वास्तविक कार्यों कि डेटा पुनः प्राप्त, यहां पाया जा सकता है जिसके लिए सामने के छोर प्रदान करता है खोल आदेश] (http://stackoverflow.com/questions/8417373/source-code-of-shell-commands) – Kevin

+0

हाय, मुझे एक उपयोगिता भी मिलती है, यह उपयोग-लिनक्स है। आप इसे [यहां] ढूंढ सकते हैं (https://github.com/karelzak/util-linux) – acgtyrant

+0

'ls' लिनक्स का हिस्सा नहीं है, यह जीएनयू का हिस्सा है। जीएनयू लिनक्स और अन्य कर्नेल पर चलता है। –

उत्तर

129

ये सभी बुनियादी आदेश coreutils पैकेज का हिस्सा हैं।

आप सभी जानकारी प्राप्त कर सकते तुम यहाँ की जरूरत है:

http://www.gnu.org/software/coreutils/

आप नवीनतम स्रोत डाउनलोड करना चाहते हैं, तो आप Git का उपयोग करना चाहिए:

git clone git://git.sv.gnu.org/coreutils

पर Git स्थापित करने के लिए अपने उबंटू मशीन, आपको एपीटी-गेट का उपयोग करना चाहिए (गिट मानक उबंटू इंस्टॉलेशन में शामिल नहीं है):

sudo apt-get install git

सत्य, कहा जा करने के लिए यहाँ आप ls आदेश के लिए विशिष्ट स्रोत पा सकते हैं: एक कमांड ls 'के रूप में आसान पर्याप्त' के लिए

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c

केवल 4984 कोड लाइनों ... आप अभी भी कर रहे हैं इसे पढ़ने में रुचि रखते हैं ?? सौभाग्य! : डी

+2

ओएमजी! मैंने सोचा कि यह थोड़ा आसान था ... ठीक है पथ अपेक्षा से अधिक लंबा और कठिन है :-) –

+13

[बिल्ली 'स्रोत के लिए स्रोत] का प्रयास करें (http://git.savannah.gnu.org/cgit/coreutils.git /tree/src/cat.c)। यह केवल 767 लाइनें है। –

+2

'केवल 4 9 84 कोड लाइनें ... '- ऐसा लगता है कि 4 साल और 3 महीने' एलएस' 57 और अधिक जटिल बन गए हैं। – sherrellbc

6

ls पर चल रहा हूँ coreutils का हिस्सा है। उस Git के साथ इसे प्राप्त कर सकते हैं:

git clone git://git.sv.gnu.org/coreutils 

आप अन्य संकुल के साथ सूचीबद्ध coreutils मिल जाएगा this page पर (नीचे स्क्रॉल करें)। उदाहरण के लिए

+0

या रेपो ऑनलाइन ब्राउज़ करें ... उदाहरण के लिए। http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c – Useless

1

जाएँ:

http://ftp.gnu.org/pub/gnu/coreutils/

आप ऑनलाइन कोड ब्राउज़ कर सकते हैं। अभिलेखागार में से एक खोलें और src फ़ोल्डर की जांच करें।

-1
cd ~ && apt-get source coreutils && ls -d coreutils*  

आप एक पैकेज के लिए स्रोत इकट्ठा करने के लिए ubuntu पर इस तरह एक आदेश का उपयोग करने के लिए सक्षम होना चाहिए, आप sudo एक स्थान आप स्वामी आपके डाउनलोड संभालने छोड़ सकते हैं।

86

डायरेक्ट लिंक कुछ लोकप्रिय कार्यक्रमों के लिए स्रोत के लिए coreutils में:

  • cat (767 लाइनों)
  • chmod (570 लाइनों)
  • cp (2912 लाइनों)
  • cut (831 लाइनों)
  • date (570 लाइनें)
  • df (1718 लाइनों)
  • du (1112 लाइनों)
  • echo (272 लाइनों)
  • head (1070 लाइनों)
  • hostname (116 लाइनों)
  • kill (312 लाइनों)
  • ln (651 लाइनें)
  • ls (4 9 54 लाइनें)
  • md5sum (878 लाइनों)
  • mkdir (306 लाइनों)
  • mv (512 लाइनों)
  • nice (220 लाइनों)
  • pwd (394 लाइनों)
  • rm (356 लाइनों)
  • rmdir (252 लाइनें)
  • shred (1325 लाइनें)
  • tail (2301 लाइनों)
  • tee (220 लाइनों)
  • touch (437 लाइनों)
  • wc (801 लाइनों)
  • whoami (91 लाइनें)

Full list here.

+0

लाइनों की संख्या के साथ लिस्टिंग के लिए धन्यवाद। :) –

+0

क्या आपके पास 'su' है? – Arin

3

असल में अधिक सेन स्रोत http://suckless.org द्वारा प्रदान किए जाते हैं, उनकेपर देखेंभंडार:

git clone git://git.suckless.org/sbase

वे स्पष्ट होशियार, सरल और suckless हैं, जैसे ls.c सिर्फ 369 एलओसी

के बाद कि यह और अधिक जटिल जीएनयू कोड को समझने के लिए आसान हो जाएगा है।

1

coreutils अन्य पदों में निर्दिष्ट कार्यक्षमता जो मैं आप की तलाश लगता है के अधिकांश के वास्तविक कार्यान्वयन नहीं दिखाती है।

यह lib-subdirectory

संबंधित मुद्दे