मैं उन दोनों कार्यक्रमों की सूची कैसे दूंगा जो मेरे वितरण के साथ आए थे और जिन्हें मैंने स्वयं स्थापित किया था?
मैं उन दोनों कार्यक्रमों की सूची कैसे दूंगा जो मेरे वितरण के साथ आए थे और जिन्हें मैंने स्वयं स्थापित किया था?
जवाबों:
जो आपके वितरण पर निर्भर करता है।
dpkg -l
rpm -qa
pkg_info
equery list
याeix -I
pacman -Q
cygcheck --check-setup --dump-only *
slapt-get --installed
ये सभी हालांकि , कार्यक्रमों के बजाय संकुल को सूचीबद्ध करेंगे । यदि आप वास्तव में कार्यक्रमों को सूचीबद्ध करना चाहते हैं, तो आप संभवतः अपने निष्पादन में उन चीजों को सूचीबद्ध करना चाहते हैं , जो इस तरह किया जा सकता है जैसे बैश का उपयोग करना :$PATH
compgen
compgen -c
या, यदि आपके पास नहीं है compgen
:
#!/bin/bash
IFS=: read -ra dirs_in_path <<< "$PATH"
for dir in "${dirs_in_path[@]}"; do
for file in "$dir"/*; do
[[ -x $file && -f $file ]] && printf '%s\n' "${file##*/}"
done
done
rpm -qa
dkpg -l | grep ^ii
।
प्रश्न के दूसरे भाग का उत्तर देना ( पहले भाग के लिए क्रिस के उत्तर में कुछ भी नहीं जोड़ा जाना चाहिए ) :
आमतौर पर मैन्युअल रूप से स्थापित कार्यक्रमों और उनके घटकों को सूचीबद्ध करने का कोई तरीका नहीं है । यदि आपने पैकेज मैनेजर का उपयोग नहीं किया है तो यह कहीं भी रिकॉर्ड नहीं किया गया है। आप बस इतना कर सकते हैं कि आप मानक स्थानों (जैसे क्रिस द्वारा सुझाए गए) में बायनेरिज़ ढूंढ सकते हैं और इसी तरह, अनुमान लगा सकते हैं कि कुछ पुस्तकालय या कुछ मैनुअल पेज आदि कहां से आए हैं। इसीलिए, जब भी संभव हो, आपको हमेशा अपने पैकेज मैनेजर का उपयोग करके प्रोग्राम इंस्टॉल करना चाहिए ।
कार्यक्रमों को पथ के माध्यम से प्राप्य होना चाहिए, इसलिए मार्ग में सब कुछ सूचीबद्ध करें:
ls ${PATH//:/ }
लगभग 3k-4k प्रोग्राम के परिणाम की अपेक्षा करें।
झूठी सकारात्मकता के संभावित अल्पसंख्यक को बाहर करने के लिए, आप दृष्टिकोण को परिष्कृत कर सकते हैं:
for d in ${PATH//:/ } ; do
for f in $d/* ; do
test -x $f && test -f $f && echo $f
done
done
यह मेरे लिए कोई फर्क नहीं पड़ा।
$PATH
, आदि में निर्देशिकाओं के उपनिर्देशिका ) को भी सूचीबद्ध करेगा ।
अन्य सभी उत्तर (अब तक) पैकेज और बायनेरिज़ से निपटते हैं। यदि आपका मतलब "डेस्कटॉप एप्लिकेशन" है, जो आपके स्टार्ट मेनू में दिखाई देते हैं, तो आप कोशिश कर सकते हैं:
ls /usr/share/applications | awk -F '.desktop' ' { print $1}' -
एक अन्य प्रश्न में अधिक समाधान ।