Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
envocabulary — प्रत्येक शेल पर्यावरण चर को उसकी सटीक फ़ाइल और पंक्ति उत्पत्ति तक ट्रेस करें। macOS, Linux और FreeBSD पर zsh और bash में डेड एंट्रीज़, डुप्लिकेट्स और ऑर्फ़न फ़ाइलों के लिए शेल कॉन्फ़िग्स का ऑडिट करें। | Kitploit
उपकरण/GitHubGitHub/sreckoskocilic/envocabulary
स्क्रिप्टिंग और स्वचालनकॉन्फ़िगरेशन ऑडिटिंगफोरेंसिकडिजिटल फोरेंसिकघटना प्रतिक्रियालॉग विश्लेषण
GitHubsreckoskocilic/envocabulary

envocabulary

प्रत्येक शेल पर्यावरण चर को उसकी सटीक फ़ाइल और पंक्ति उत्पत्ति तक ट्रेस करें। macOS, Linux और FreeBSD पर zsh और bash में डेड एंट्रीज़, डुप्लिकेट्स और ऑर्फ़न फ़ाइलों के लिए शेल कॉन्फ़िग्स का ऑडिट करें।

रिपॉजिटरी देखें
3121 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

envocabulary

CI codecov Go Report Card Release

आपके वर्तमान शेल में मौजूद हर वेरिएबल के लिए, वह फ़ाइल और पंक्ति खोजें जिसने उसे सेट किया है — या यह पता लगाएँ कि किस सबसिस्टम (direnv, launchd, टर्मिनल, SSH, system) ने उसे इंजेक्ट किया है। साथ ही कुछ स्टैटिक-फ़ाइल कमांड्स, उस समय के लिए जब आपका शेल कॉन्फ़िग N फ़ाइलों और बैकअप्स में फैल चुका हो और आप समझ नहीं पा रहे हों कि क्या हो रहा है।

मैंने इसे इसलिए बनाया क्योंकि मैं हर कुछ महीनों में वही एक घंटा खो देता था, यह पता लगाने की कोशिश में कि कोई JAVA_HOME या PATH उस जगह क्यों इंगित कर रहा है जहाँ मैंने उम्मीद नहीं की थी। which कमांड्स जानता है, direnv status direnv को जानता है, launchctl getenv launchd को जानता है — इनमें से कोई नहीं बताता कि असली लेखक ~/.zshrc:42 है।

zsh और bash के साथ macOS, Linux और FreeBSD पर काम करता है।

"अहा" वाला पल

grep -r JAVA_HOME ~ हर उस फ़ाइल को दिखाएगा जो वेरिएबल का उल्लेख करती है, लेकिन आउटपुट से यह स्पष्ट नहीं होता कि वर्तमान शेल में कौन सी असाइनमेंट सक्रिय है:

root@kitploit:~
$ envocabulary explain --chain JAVA_HOME
JAVA_HOME
  origin   shell-file
  primary  ~/helpers.sh:3
  chain    ~/.zshrc → ~/helpers.sh
  writers
    ~/.zshenv:8
    ~/helpers.sh:3  (winner)
  value    [hidden, use --values]

इंस्टॉल

एक-लाइनर (OS/arch का पता लगाता है, बाइनरी को आपके $PATH पर रखता है, macOS पर Gatekeeper को क्लियर करता है):

root@kitploit:~
curl -fsSL https://raw.githubusercontent.com/sreckoskocilic/envocabulary/main/install.sh | sh

या go install github.com/sreckoskocilic/envocabulary/cmd/envocabulary@latest. प्री-बिल्ट बाइनरी और Linux पैकेज (.deb / .rpm / .apk / .pkg.tar.zst) releases page पर उपलब्ध हैं।

कमांड्स

लाइव env (आपके चल रहे शेल का निरीक्षण करता है):

  • scan (डिफ़ॉल्ट) — वर्तमान env में सभी वेरिएबल्स को origin के आधार पर समूहित करके प्रिंट करता है
  • explain NAME — दिए गए वेरिएबल के लिए पूर्ण attribution प्रिंट करता है
  • path [VARNAME...] — कोलन-सेपरेटेड पाथ वेरिएबल्स के लिए प्रति-एंट्री attribution; --check मृत एंट्रीज़ खोजता है

स्टैटिक फ़ाइलें:

  • inventory — सभी शेल कॉन्फ़िग फ़ाइलों की सूची बनाता है और प्रकार के अनुसार परिभाषाओं की गिनती करता है
  • catalog — सभी कॉन्फ़िग फ़ाइलों को मर्ज करके पूरा शेल कॉन्फ़िगरेशन प्रिंट करता है
  • dedup — exports, assigns, aliases, functions के लिए क्रॉस-फ़ाइल डुप्लिकेट रिपोर्ट
  • dangling — कॉन्फ़िग फ़ाइल एंट्रीज़ को सूचीबद्ध करता है जो अब किसी मान्य लक्ष्य को संदर्भित नहीं करतीं
  • lost — orphan/backup कॉन्फ़िग फ़ाइलों के लिए अद्वितीय परिभाषाओं को सूचीबद्ध करता है
  • report — संयुक्त ऑडिट: safe-to-delete, review (value-changed dups), dangling, orphaned फ़ाइलें; --html वर्तमान निर्देशिका में टाइमस्टैम्प के साथ एक .html फ़ाइल लिखता है
  • clean [--full] FILE — हटाई जाने वाली पंक्तियों को सूचीबद्ध करता है; --full के साथ, पूरी साफ़ की गई सामग्री प्रिंट करता है

अन्य:

  • -V, --version — संस्करण, commit और build date प्रिंट करता है

फ़्लैग्स के लिए envocabulary <cmd> -h।

नीचे दिए गए नमूना आउटपुट में संक्षिप्तता के लिए ~/ का उपयोग किया गया है; टूल हर जगह पूर्ण (absolute) पाथ प्रिंट करता है, सिवाय report के।

एक और उदाहरण: टूटे हुए संदर्भ खोजना

dangling कॉन्फ़िग फ़ाइल एंट्रीज़ को सूचीबद्ध करता है जो अब किसी मान्य लक्ष्य को संदर्भित नहीं करतीं — जैसे JAVA_HOME=/opt/jdk-i-uninstalled और source ~/dotfiles/work-old.zsh जैसे अवशेष:

root@kitploit:~
$ envocabulary dangling
## ~/.zshrc
  ~/.zshrc:14  source   → ~/dotfiles/work-old.zsh  (source target missing)
  ~/.zshrc:42  export JAVA_HOME  → /opt/jdk-11  (path does not exist)

एक और उदाहरण: PATH एंट्रीज़ का पता लगाना

path दिखाता है कि PATH (या MANPATH, FPATH, आदि) में प्रत्येक एंट्री कहाँ से आई:

root@kitploit:~
$ envocabulary path PATH
## PATH
  /opt/homebrew/bin       ~/.zprofile:21
  /usr/local/bin          ~/.zprofile:1
  /usr/bin                /etc/zprofile:1
  /bin                    /etc/zprofile:1
  /usr/sbin               /etc/zprofile:1
  /sbin                   /etc/zprofile:1
  ~/.cargo/bin            ~/.zshrc:22

जिन एंट्रीज़ का मिलान किसी शेल स्टार्टअप असाइनमेंट से नहीं होता, उन्हें inherited के रूप में दिखाया जाता है।

--check उन एंट्रीज़ को फ़िल्टर करता है जिनकी निर्देशिका अब मौजूद नहीं है और उन्हें वापस संपादित करने के लिए कॉन्फ़िग फ़ाइल तक ट्रेस करता है:

root@kitploit:~
$ envocabulary path --check PATH
## PATH
  /opt/homebrew/Cellar/go/1.25.1/libexec/bin  ~/.zshrc:17  (does not exist)
  /opt/pkg/env/active/bin                      /etc/paths.d/10-pmk-global:1  (does not exist)
  /Applications/VMware                         /etc/paths.d/com.vmware.fusion.public:1  (does not exist)

मृत एंट्रीज़ मिलने पर 1 कोड के साथ बाहर निकलता है (स्क्रिप्ट्स में उपयोगी)।

सीमाएँ

  • प्रति पंक्ति एक असाइनमेंट (export EDITOR=vim VISUAL=vim केवल EDITOR रिकॉर्ड करता है)।
  • dangling PATH-जैसी असाइनमेंट या एक्सपेंशन को हल नहीं करेगा (export GOPATH=$HOME/go)।
  • path attribution xtrace diffs पर आधारित है — पहली असाइनमेंट जो किसी एंट्री को शामिल करती है, उसे अपना लेती है, भले ही वह स्पष्ट रूप से जोड़ने के बजाय $PATH एक्सपेंशन के माध्यम से आगे बढ़ी हो।
  • असमर्थित शेल: fish, nu, csh/tcsh, PowerShell।

डिज़ाइन द्वारा केवल-पठनीय

envocabulary कभी भी आपके शेल कॉन्फ़िग को unset, rm या संपादित नहीं करेगा। एक आपातकालीन टूल को वह चीज़ नहीं बनना चाहिए जो आपातकाल को और बदतर बनाए। यदि आप चीज़ें साफ़ करना चाहते हैं, तो file:line पॉइंटर्स कॉपी करें और संपादन स्वयं करें। clean आउटपुट stdout पर देता है; रीडायरेक्ट आप करते हैं।

टूल डाउनलोड करें