लॉगिन के बाद PuTTY में रिमोट कमांड कैसे चलाएं और शेल को चालू रखें?


35

मैं क्या करने की कोशिश कर रहा हूं: कमांड लाइन से एक पुट्टी सत्र शुरू करें, दूरस्थ मशीन में प्रवेश करें और cdप्रदान की गई निर्देशिका में।

putty.exe -agent -ssh some.host

यह एक सत्र खोलेगा और मेरे डिफ़ॉल्ट लॉगिन नाम और निजी कुंजी के साथ लॉगिन करेगा।

echo cd /some/remote/path/ > c:/stuff/cmd.txt
putty.exe -agent -ssh some.host -m 'c:/stuff/cmd.txt'

यह एक सत्र खोलेगा, लॉगिन करेगा, एक कमांड निष्पादित करेगा ( cdइस मामले में) और बाहर निकलें

मैं सत्र कैसे खोलूं, लॉगिन cdकरूं और सत्र खुला रखूं?

पृष्ठभूमि: मैं खिड़कियों के नीचे emacs का उपयोग करता हूं और अक्सर ट्रम्प और पलक का उपयोग करके दूरस्थ यूनिक्स मशीनों पर फ़ाइलों को संपादित करता हूं। मैं एक हॉटकी बनाना चाहता हूं जो उस फ़ाइल की निर्देशिका के लिए उस रिमोट मशीन और chdirs के लिए एक PuTTY सत्र खोलता है। Emacs की तरफ कोई बड़ी बात नहीं है, लेकिन मैं PuTTY के साथ फंस गया हूं।

जवाबों:


33

क्या -mहै, कि यह PuTTY SSH सर्वर को एक शेल के उस कमांड (ओं) को शुरू करने का निर्देश देता है। तो एक बार जब आपका कमांड पूरा हो जाता है, तो सत्र शुरू होता है।

यदि आप cdकमांड के बाद शेल चलाना चाहते हैं , तो आपको इसे स्पष्ट रूप से अपने साथ जोड़ना होगा cmd.txt, जैसे:

cd /my/path ; /bin/bash

इसके अलावा -m"नॉटी" / गैर-इंटरैक्टिव मोड का अर्थ है। एक इंटरैक्टिव शेल का उपयोग करने के लिए आपको -tस्विच का उपयोग करके ओवरराइड करने की आवश्यकता होती है ।

putty.exe -ssh example.com -m "c:\path\cmd.txt" -t

वैकल्पिक रूप से इसके स्विच के साथ KiTTY का उपयोग -cmdकरें, जो आपको चाहिए (और एक अस्थायी फ़ाइल की आवश्यकता नहीं है)।


मैंने कोशिश की कि (cmd.txt को जोड़कर / बिन / बैश) और वह काम न करे। जहां तक ​​मैं समझता हूं, गैर-संवादात्मक मोड में बैश शुरू होता है और निष्पादित करने के लिए कोई कोड नहीं है, बाहर निकलता है। क्या इस तरह से एक इंटरैक्टिव शेल शुरू करने का एक तरीका है?
अर्योम वी। किरीव

इस बीच, मैंने एमसी शुरू करने की कोशिश की। :-) यह नहीं था, और कुछ उत्पादन प्रदान:Cannot get terminal settings: Invalid argument (22) TERM environment variable needs set.
Artyom वी। Kireev

यहाँ दिशानिर्देश के लिए धन्यवाद, लेकिन मुझे लगता है कि पोटीन -m "myfile.sh" -tका उपयोग करने की कोशिश कर रहे एक मुद्दे को एक टिनिक्लोरिनक्स वीएम (/ बिन / राख) से जोड़ने की कोशिश कर रहा है । मुझे निम्न त्रुटि मिलेगी : i.imgur.com/QN5oRXC.png (मेरी स्क्रिप्ट echo ".."इसके साथ शुरू होती है जो हमेशा मेरी स्क्रिप्ट में अवैध अक्षरों के बाद पहला अक्षर दिखाएगी
विंसेंट डी स्मेट

अगर मैं पोटीन प्रोफाइल में रिमोट कमांड को कॉन्फ़िगर करता हूं, तो यह काम करता है
विंसेंट डी स्मेट

-1

ट्रम्प सत्र जिसे आप ईमैक में शुरू कर रहे हैं और शेल सत्र जिसे आप पोटीन के माध्यम से चलाते हैं, पूरी तरह से अलग प्रक्रियाएं हैं।

ट्रम्प के लिए कॉन्फ़िगरेशन विकल्पों की जाँच करना शायद आप बेहतर हैं, यह देखने के लिए कि क्या आपके इमैक कॉन्फ़िगरेशन में होस्ट के अनुसार डिफ़ॉल्ट निर्देशिका सेट करने का कोई तरीका है। शायद यहाँ दस्तावेज केtramp-remote-path रूप में विन्यास विकल्प के साथ शुरू करें

यदि आपको कनेक्शन स्थापित करने के लिए पोटीन का उपयोग करने की आवश्यकता है, तो आप संभवतः एक ssh सुरंग स्थापित करना चाहते हैं और उस के माध्यम से emacs / tramp कनेक्ट कर सकते हैं।


Emacs और Tramp यहाँ अप्रासंगिक हैं, मैंने कहा कि बस पृष्ठभूमि के लिए। यह emacs में फ़ाइल को संपादित करने के बारे में नहीं है, यह उस फ़ाइल के साथ कुछ और करने के लिए एक खोल खोलने के बारे में है (उदाहरण के लिए एक स्क्रिप्ट चलाएँ)। मैं थका हुआ हूँ "पोटीन शुरू करो, तुम मेजबान का चयन करो, फिर जिस रास्ते की ज़रूरत है उसे सीडी करो", और उसे स्वचालित करना चाहते हैं।
आर्टीम वी। किरीव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.