सबसे बड़े Shell प्रोग्राम
(github.com/oils-for-unix)-
दुनिया के सबसे बड़े shell प्रोग्राम
-
akinomyoga/ble.sh: कुल 61K LoC (46K SLoC)। यह Bash Line Editor है, यानी pure bash में लिखा गया fish-जैसा interactive line editor। मुख्य फ़ाइल out/ble.sh में 30K LoC (23K SLoC) हैं, और पूरे प्रोजेक्ट में 60K+ LoC हैं। इसमें जापानी में बहुत सारी टिप्पणियाँ शामिल हैं। ble.sh कैसे काम करता है, इसका एक अवलोकन भी है, जो बहुत परिष्कृत data structures के उपयोग को दिखाता है.
-
kalua: OpenWRT addon, जो लगभग 56K SLoC/lines के POSIX shell से बना है.
-
bashdb: bash debugger, जो लगभग 14K lines के bash से बना है। debugger implementation का एक दिलचस्प इतिहास है.
-
drwetter/testssl.sh: एक single file में 21K lines का bash। लगता है कि यह hand-written है.
-
Simplenetes: 17K lines के Shell से बना Kubernetes। हैरान करने वाला, लेकिन फिलहाल inactive है.
-
rkhunter: आधिकारिक साइट के अनुसार 21K lines का Bourne shell, जिसे 2003-2018 के बीच लिखा गया.
-
romkatv/powerlevel10k: directory
internal/में 12K lines के zsh scripts हैं। इसके अलावा 8K lines के configuration और helper scripts भी हैं. -
dylanaraps/neofetch: 10K lines का bash 3.2, जो system information दिखाता है.
-
xwmx/nb: nb में खुद 26K LoC (22K SLoC) का bash है। अगर bats tests को भी bash में गिना जाए, तो यह 91K LoC (61K SLoC) तक पहुँचता है.
-
distrobox: 7K+ bash scripts से बना है। terminal के अंदर किसी भी Linux distribution का उपयोग किया जा सकता है.
-
acme.sh: 7K lines की shell script, जो certificates issue और renew करती है.
-
inxi 2.3.56 [obsolete]: 16K lines का bash। 2008 में infobash के fork के रूप में शुरू हुआ.
-
bashforth: लगभग 3800 lines का, लेकिन यह एक वास्तविक programming language implement करता है.
-
yoda: bashforth के आधे आकार का, लेकिन पूरा interpreter और compiler implement करता है.
-
vegardit/bash-funk: कुल 27K LoC (24K SLoC) की Bash library.
-
Relax-and-Recover: 35K LoC (24K SLoC)। backup और recovery tool.
-
abcde / A Better CD Encoder: CD ripping के लिए इस्तेमाल होता है, और लगभग 5.5k LoC का है.
-
thc-segfault: 3.3K LoC। मुख्य रूप से Bash से बना pubnix server.
-
ffmpeg/configure: 8.4K LoC। FFmpeg की configuration script, जो hand-written है.
-
ffhevc: 4k LoC। FFmpeg और libx265 का उपयोग करके HEVC video में encode करने के लिए पूरी तरह hand-written Bash wrapper script.
-
ffx264: 3.9k LoC। FFmpeg और libx264 का उपयोग करके H.264/AVC video में encode करने के लिए पूरी तरह hand-written Bash wrapper script.
-
h264enc: 9.2k LoC। MEncoder का उपयोग करके H.264/AVC video में encode करने के लिए पूरी तरह hand-written Bash wrapper script.
-
bashtop: 5.3k LoC। resource monitor.
-
halcyon: 6.6k LoC। Haskell app installation system.
-
winetricks: 22K lines की shell script। Wine पर विभिन्न Windows programs install करती है.
-
wordshell: लगभग 7k lines का code। command line से कई WordPress sites manage करता है.
-
BaCon: लगभग 10k lines का code। BASIC में लिखे programs को C में convert करता है.
-
-
shell-जैसी भाषाएँ / DSL
-
modernish: shell में लिखा गया portable shell dialect.
-
bats: tests लिखने के लिए DSL। यह bash code generate करता है.
-
bashible: bash में Ansible-जैसा DSL.
-
clash: modern POSIX shell के साथ compatible object-oriented framework.
-
bash Infinity: bash के लिए standard library और boilerplate framework.
-
-
छोटे प्रोग्राम
-
Alpine, Aboriginal, Debian scripts: blog post देखें.
-
Completion scripts: बड़े होते हैं, लेकिन अक्सर repetitive होते हैं.
-
_git Zsh completion: 8.3k lines का code.
-
git-completion.bash: Docker completion.
-
dyne/Tomb: लगभग 3500 lines की zsh script.
-
Basalt: pure Bash में लिखा गया full-featured package manager (लगभग 2021)। यह केवल कुछ हज़ार lines का है, लेकिन इसका ecosystem पहले से ही काफ़ी समृद्ध है (15+ apps/libraries).
-
1 टिप्पणियां
Hacker News राय
Sony में 25 साल पहले, एक बहुत धीमे और बार-बार क्रैश होने वाले ऑर्डर मैनेजमेंट सिस्टम को सुधारने वाले प्रोजेक्ट पर नियुक्त किया गया था।
Enrust CA और directory installer लिखा था, और वह विकसित होकर सभी Unix पर चलने लगा।
scripting language Lil के लिए bash में interpreter लिखने की कोशिश की गई, लेकिन floating-point arithmetic की कठिनाइयों और सीमित array support के कारण AWK चुना गया।
Bash script जटिल प्रोग्राम लिखने के लिए उपयुक्त नहीं है।
rkhunter script का code अच्छा है और उसमें बहुत जानकारी है।
अब तक इस्तेमाल किया गया सबसे बड़ा shell program abcde था, जो लगभग 5500 लाइनों के code से बना था.
FreeBSD Update client लगभग 3600 लाइनों के sh code से बना है।
shell शायद एकमात्र ऐसा tool हो सकता है जिसकी availability सुनिश्चित हो, लेकिन बड़े shell app लिखते समय दोबारा सोचना चाहिए.
acme.sh script 7.1K लाइनों का है, और Lets Encrypt से certificate जारी करने और renew करने में उपयोग होता है.
mod_pagespeed में shell script का उपयोग करके system test किए गए थे, लेकिन Python पर switch करना बेहतर होता।