MacOS `open -a` जैसे विशिष्ट एप्लिकेशन को कैसे खोलें?


14

डिफ़ॉल्ट टर्मिनल चलाने में macOS पर bash, मैं टाइप कर सकता हूं:

open -a Firefox http://www.wikipedia.org

फ़ायरफ़ॉक्स, या किसी अन्य ब्राउज़र के साथ एक URL खोलने के लिए। यह एक प्रोग्राम लॉन्च करने के लिए भी काम करता है, जैसे open -a maps, और डिफ़ॉल्ट प्रोग्राम में एक फ़ाइल खोलने के लिए, उदा open file.pdf

मैं डिफ़ॉल्ट गनोम टर्मिनल में भी Ubuntu पर कैसे चल सकता हूं bash? मुझे पता है कि मैं एक फ़ाइल या URL xdg-open /path/to/fileखोल सकता हूं, और मैं डिफ़ॉल्ट ब्राउज़र को खोल सकता हूं sensible-browser। क्या उबंटू के पास विशिष्ट अनुप्रयोगों में फाइलें, एप्लिकेशन या फाइलें खोलने के लिए एक सामान्य कमांड है?

मैं bashदोनों मशीनों 3.2.57(1)-releaseपर , macOS 4.4.19(1)-releaseपर और उबंटू पर चल रहा हूं ।


मैंने कभी मैक का उपयोग नहीं किया है, तो क्या आप मुझे बता सकते हैं कि आप क्यों उपयोग करेंगे open -a Firefox http://www.wikipedia.org? क्या तुम नहीं कर सकते firefox http://www.wikipedia.org? यह एक बेकार सुविधा की तरह लगता है open, जब प्रोग्राम खोलना बहुत ही महत्वपूर्ण बिंदु है bash
जोएल

1
मैकओएस पर बैश अलग तरीके से काम करता है, जैसे कि आपकी कमांड त्रुटि देती है bash: firefox: command not foundFirefoxकार्यक्रम के नाम के साथ एक ही त्रुटि ।
मिगुएलमोरिन

3
bashठीक उसी तरह काम करता है; यह फ़ायरफ़ॉक्स है जो उबंटू पर अलग से स्थापित है। उदाहरण के लिए, macOS पर, आप /Applications/Firefox.app/Contents/MacOS/firefox-binकमांड लाइन से भाग सकते हैं । Firefox.appकि बस निष्पादन योग्य नहीं वाले फ़ोल्डर की एक विशेष प्रकार का है, लेकिन जो फ़ाइलें लिनक्स में विभिन्न में के बारे में बिखरे हुए किया जा सकता है /usr/bin/, /usr/lib, /etc, आदि निर्देशिका। खोजकर्ता जानता है कि वास्तविक एप्लिकेशन को कैसे चलाना है जब आप, उदाहरण के लिए, डबल-क्लिक करें Firefox.appopenकमांड लाइन से विशेष फ़ोल्डर को "रन" करने का एक तरीका है।
चेप्टर

4
ऐसा नहीं है कि bashअलग तरीके से काम करता है: फ़ायरफ़ॉक्स को ओएस एक्स एप्लिकेशन ( Firefox.app) के रूप में स्थापित किया गया है और यह नियमित पथ पर नहीं है। उपयोग करने का एक और कारण open -aयह है कि यह ठीक से शुरू होने वाले इंतजार के बजाय इसे लॉन्च किए गए एप्लिकेशन को ठीक से पृष्ठभूमि देता है।
एलेक्सिस

जवाबों:


10

आप विशेष रूप से अपने वांछित कार्यक्रम के नाम का उपयोग कर सकते हैं (यदि यह कमांड लाइन टूल के रूप में उपयोग करने में सक्षम है)।

उदाहरण के लिए, urls:

firefox duckduckgo.com
chromium-browser askubuntu.com

पीडीएफ:

evince foo.pdf
okular bar.pdf

इमेजिस:

gpicview foo.png
feh bar.jpeg

ग्रंथों:

gedit foo.txt
mousepad /etc/config
leafpad bar.xml

वीडियो / संगीत:

mpv  foo.mp3
vlc  bar.mp4

यदि आप चाहते हैं कि प्रोग्राम को टर्मिनल से अलग किया जाए तो यह वह तरीका है जो मैं इसे करना पसंद करता हूं:

nohup program args &

उदाहरण के लिए:

nohup firefox askubuntu.com &

याद रखें कि आप हमेशा की तरह आउटपुट को रीडायरेक्ट कर सकते हैं, जैसे:

nohup firefox duckduckgo.com &> /dev/null &

2
eog picture.jpgछवियों के लिए भी अगर आपके पास gnome-desktop स्थापित है :)
Videonauth

1
@Videonauth हाँ, या किसी अन्य प्रकार के उपकरण;)
रेवेक्सिना

2
@ BaptisteCandellier मुझे openदूसरे प्रोग्राम को कॉल करने के लिए कॉल करने की बात नहीं आती है । सीधे दूसरे कार्यक्रम को ही क्यों न कहें? क्या उपयोगिता openजोड़ता है? यह उत्तर विशिष्ट अनुप्रयोगों को खोलने के लिए प्राकृतिक चीज़ को दर्शाता है।
जोएल

1
@BaptisteCandellier मैं सहमत हूं, और macOS openपर डिफ़ॉल्ट एप्लिकेशन और विशिष्ट अनुप्रयोगों में फ़ाइलों और फ़ोल्डरों को खोलने के लिए काम करता है। ऐसा लगता है कि मूल फाइलों के लिए bashएक अलग रास्ते पर चला गया xdg-openऔर बाकी के लिए आवेदन नाम।
मिगुएलमोरिन

2
एक अन्य बात जो openमैकओएस में अलग है, वह यह है कि यह कंसोल से अलग किए गए एप्लिकेशन को लॉन्च करता है, जो कि कंसोल से चलता है, यदि कंसोल बंद हो जाता है, तो ऐप चालू रहेगा। उबंटू में एक nohupही व्यवहार प्राप्त करने के लिए कमांड का उपयोग करने की आवश्यकता होती है। (चूंकि आपके द्वारा चलाए जा रहे प्रत्येक कमांड के लिए nohup और रीडायरेक्ट आउटपुट के साथ प्रत्येक कमांड को प्रीफ़र करते समय, यह एक कस्टम शॉर्टकट को परिभाषित करने के लिए अधिक समझदारी हो सकता है)
मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.