আমি কীভাবে শেল কমান্ডগুলির উত্স কোডটি পড়তে পারি?


158

আমি প্রকৃত উত্স কোডটি পড়তে চাই যা লিনাক্স কমান্ড দ্বারা লিখিত আছে। এগুলি ব্যবহার করে আমি কিছু অভিজ্ঞতা অর্জন করেছি এবং এখন আমি মনে করি এটি আরও গভীর স্তরে আমার মেশিনের সাথে যোগাযোগের সময় এসেছে।

আমি এখানে কিছু কমান্ড পেয়েছি http://directory.fsf.org/wiki/GNU । দুর্ভাগ্যক্রমে আমি 'ls' এর মতো বুনিয়াদি কমান্ডগুলি সন্ধান করতে সক্ষম হই নি যা আমার কাছে যথেষ্ট সহজ মনে হয়েছিল।

আমি ঠিক কীভাবে 'এলএস' এর মতো সহজ শেল কমান্ডগুলির উত্স কোডটি পড়তে পারি? আমি উবুন্টু 12.04 এ চলছে


1
উদাহরণস্বরূপ দেখুন: ftp.gnu.org/pub/gnu/coreutils আপনি কোডটি অনলাইনে ব্রাউজ করতে পারেন। সংরক্ষণাগারগুলির একটি খুলুন এবং এসসিআর ফোল্ডারটি পরীক্ষা করুন।
হাইল

হাই, আমি একটি ইউটিলিটিগুলিও খুঁজে পেয়েছি এটি ইউটি-লিনাক্স। আপনি এটি এখানে
আকর্ষক

1
lsলিনাক্সের অংশ নয়, এটি গনুর অংশ। Gnu লিনাক্স এবং অন্যান্য কার্নেলগুলিতে চালিত হয়।
ctrl-alt-delor

3
কোড পড়ার জন্য আমি গিথুব
জাইক্স

উত্তর:


168

এই সমস্ত বুনিয়াদি কমান্ডগুলি coreutilsপ্যাকেজের অংশ ।

আপনার প্রয়োজনীয় সমস্ত তথ্য আপনি এখানে পেতে পারেন:

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

আপনি যদি সর্বশেষতম উত্সটি ডাউনলোড করতে চান তবে আপনার গিটটি ব্যবহার করা উচিত:

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

আপনার উবুন্টু মেশিনে গিট ইনস্টল করতে আপনার আপ্ট-গিট ব্যবহার করা উচিত (গাবটি স্ট্যান্ডার্ড উবুন্টু ইনস্টলেশনটিতে অন্তর্ভুক্ত নয়):

sudo apt-get install git

সত্য বলে যেতে হবে, আপনি এখানে আদেশটির নির্দিষ্ট উত্সটি পেতে পারেন ls:

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

'সহজ যথেষ্ট' কমান্ডের জন্য কেবল 4984 কোড লাইনগুলি ls... আপনি কি এখনও এটি পড়তে আগ্রহী ?? শুভকামনা! : ডি


2
ঈশ্বর! আমি ভেবেছিলাম এটি কিছুটা সহজ ... আচ্ছা পথটি প্রত্যাশার চেয়ে দীর্ঘ এবং শক্ত :-)
লুইজি তিবুরজি

21
জন্য উত্সcat চেষ্টা করুন । এটি কেবল 767 লাইন।
ড্রয় নোকস

3
Only 4984 code lines ...- এটি 4 বছর 3 মাসের মধ্যে মনে হয় lsআরও 57 লাইন জটিল হয়ে উঠেছে।
sherrellbc

3
আমার মনে আছে একবার আমি কেন wcসমতুল্য জাভা প্রোগ্রামের চেয়ে এত দ্রুত তা বুঝতে চেষ্টা করেছিলাম । সুতরাং আমি
কোডটির

@ yǝsʞǝlA আমি সি তে দক্ষ নই; আপনি কীভাবে বলবেন যে এটির জন্য অনুকূল কী? তুমি কি আমাকে একটা উদাহরণ দিতে পারবে?
আব্দুল

127

কয়েকটি জনপ্রিয় প্রোগ্রামগুলির জন্য উত্সের সরাসরি লিঙ্কসমূহ coreutils:

  • cat (767 লাইন)
  • chmod (570 লাইন)
  • cp (2912 লাইন)
  • cut (831 লাইন)
  • date (570 লাইন)
  • df (1718 লাইন)
  • du (১১১২ লাইন)
  • echo (২2২ লাইন)
  • head (1070 লাইন)
  • hostname (১১6 লাইন)
  • kill (৩১২ লাইন)
  • ln (651 লাইন)
  • ls (4954 লাইন)
  • 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 লাইন)

এখানে সম্পূর্ণ তালিকা।


4
লাইনের সংখ্যা সহ তালিকা করার জন্য ধন্যবাদ। :)
গৌতম গোপালকৃষ্ণন

তোমার কি আছে su?
হারুন এষৌ

@ ড্রু, শেল স্ক্রিপ্টে আসলে শেল কমান্ড লেখা আছে কি আপনার কোনও ধারণা আছে?
রাফায়েল

6

lsকোর্টিলস এর অংশ। আপনি এটি গিট দিয়ে পেতে পারেন:

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

আপনি এই পৃষ্ঠায় অন্যান্য প্যাকেজগুলির সাথে তালিকার নীচে কোর্টিলগুলি পাবেন (নীচে স্ক্রোল করুন) ।


অথবা রেপো অনলাইনে ব্রাউজ করুন ... যেমন। git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c
বেহুদা

5

প্রকৃতপক্ষে আরও বুদ্ধিমান উত্সগুলি http://suckless.org দ্বারা সরবরাহ করা হয়েছে তাদের sbaseসংগ্রহস্থলটি দেখুন:

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

এগুলি স্পষ্টতর, স্মার্ট, সহজ এবং suckless, যেমন ls.cমাত্র 369 এলওসি রয়েছে

এর পরে আরও জটিল জিএনইউ কোড বোঝা সহজ হবে easier


1

অন্যান্য পোস্টগুলিতে উল্লিখিত কোর ইউটিলগুলি বেশিরভাগ কার্যকারিতার বাস্তব বাস্তবায়ন প্রদর্শন করে না যা আমি মনে করি আপনি খুঁজছেন। বেশিরভাগ ক্ষেত্রে এটি তথ্য পুনরুদ্ধার করে এমন প্রকৃত ফাংশনগুলির জন্য প্রথম প্রান্ত সরবরাহ করে, যা এখানে পাওয়া যাবে:

এটি জিনুলিবের উপরে লিবিব -উপ-ডিরেক্টরিতে আসল উত্স কোড সহ নির্মিত


1

কমান্ডটি ব্যবহার করে আপনি এটি গিথুবটিতে রাখতে পারেন

git clone https://github.com/coreutils/coreutils.git

আপনি এসআরসি ফোল্ডারে সমস্ত উত্স কোড খুঁজে পেতে পারেন।

আপনার গিট ইনস্টল করা দরকার ।

বিষয়গুলি 2012 থেকে পরিবর্তিত হয়েছে, lsউত্স কোডটিতে এখন 5309 লাইন রয়েছে


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

প্যাকেজের উত্স সংগ্রহ করতে আপনি উবুন্টুতে এই জাতীয় একটি কমান্ড ব্যবহার করতে সক্ষম হবেন, sudoআপনি নিজের মালিকানাধীন কোনও জায়গায় আপনার ডাউনলোডটি ধরে রেখেই বাদ দিতে পারেন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.