
फंक्शन ब्लॉक FS_SHELL एक या अधिक दूरस्थ कमांडों को इंटरैक्टिव शेल में निष्पादित करता है।
सावधान: सिस्टम कमांड दूरस्थ सिस्टम को खतरे में डाल सकते हैं या नुकसान पहुंचा सकते हैं। इसके अलावा, मौजूदा फाइलों को बिना किसी चेतावनी के ओवरराइट किया जा सकता है।
फाइल सिस्टम को पहले FS_INIT का उपयोग करके इनिशियलाइज़ करना चाहिए। सभी ऑपरेशन्स एसिंक्रोनस रूप से हर स्टोरेज मीडिया के लिए होते हैं जो बनाई गई है।
एक पॉजिटिव एज पर दिए गए कमांड को निष्पादित किया जाता है।
यह उस डिवाइस को Define करता है, जिससे फाइलों तक पहुंचा जा सकता है। डिवाइस को प्रोजेक्ट के लिए उपयोग किया जाता है और इसे प्रोजेक्ट एक्सटर्नल स्टोरेज के तहत कॉन्टेक्स्ट मेनू में मैनेज किया जा सकता है।
यह स्टोरेज मीडिया पर डायरेक्टरी तक की पथ को Define करता है। पथ एक यूनिक्स फाइल पथ के समान होता है, जो UTF-8 फॉर्मेट में होता है, अगर यह सपोर्ट किया जाता है। पथ को इस प्रकार दर्शाया जाता है:
Folder/Subfolder
पथ का उपयोग करना वैकल्पिक है। अगर इसे सेट किया गया है, तो इस डायरेक्टरी में स्विच करने में सफल होना चाहिए, अन्यथा निष्पादित होने वाली कमांड को निष्पादित नहीं किया जाएगा।
यह सभी कमांडों को Define करता है जो निष्पादित की जानी चाहिए। सभी कमांडों को एक लाइन एंड के साथ टर्मिनेट करना चाहिए। जैसे कि: "ls\n". अगर कोई लाइन एंड का उपयोग नहीं किया जाता है, तो कमांड शायद निष्पादित नहीं होगी। कमांडों को सर्वर से फीडबैक मिलने के बाद लाइन बाई लाइन निष्पादित किया जाएगा।
सभी कमांडों के निष्पादन के बाद, अंत में एक "exit\n" भेजा जाना चाहिए, ताकि कनेक्शन तुरंत समाप्त हो और मान वापस लौटाए जाएं। इसके बाद कोई और कमांड नहीं भेजना चाहिए, अन्यथा OUTPUT ERROR को TRUE सेट किया जाएगा।
नोट: अगर कनेक्शन अप्रत्याशित रूप से समाप्त हो जाता है और कोई कमांड भेजी नहीं जाती है, तो OUTPUT ERROR को TRUE सेट किया जाएगा।
यह कंसोल टाइप (Pseudo-Terminal) को Define करता है। कुछ डिवाइस के लिए यह पैरामीटर अनिवार्य हो सकता है। उदाहरण: "vanilla", "exec", "vt100", "vt102", "ansi", "xterm" आदि। अगर कोई मान Define नहीं किया जाता है, तो "vanilla" का उपयोग किया जाएगा।
मान "exec" SSH कमांड के माध्यम से ऑपरेटिंग सिस्टम द्वारा अनुरोध को निष्पादित करता है। इस प्रकार अधिक आधुनिक विधियाँ उपयोग की जाती हैं। हालांकि, यह विधि कुछ असरदार नहीं होती है। इनपुट ENV कनेक्शन से पहले सेट किया जाता है, इसलिए इसे शायद इग्नोर किया जाएगा। इनपुट SIZE इस विधि में इग्नोर किया जाएगा।
अगर अतिरिक्त SSH पैरामीटर पास किए जाने चाहिए, तो उन्हें "exec" के बाद एक नए लाइन में जोड़ा जा सकता है। पैरामीटर case-sensitive होते हैं और नीचे दिए गए उदाहरण के अनुसार दिए जाते हैं। यह उदाहरण पुराने डिवाइसों के लिए RSA एल्गोरिदम को सक्रिय करता है।
exec
HostKeyAlgorithms=+ssh-rsa
PubkeyAcceptedAlgorithms=+ssh-rsa
निम्नलिखित पैरामीटर उपलब्ध हैं:
| exec के लिए SSH पैरामीटर | उदाहरण मान |
|---|---|
| KexAlgorithms | +diffie-hellman-group1-sha1 |
| Ciphers | +aes128-cbc |
| HostKeyAlgorithms | +ssh-rsa |
| PubkeyAcceptedAlgorithms | +ssh-rsa |
| ConnectTimeout | 10 |
| ServerAliveInterval | 30 |
| ServerAliveCountMax | 3 |
नोट: अधिक विवरण के लिए बाहरी दस्तावेज़ देखें: https://linux.die.net/man/5/ssh_config (अंग्रेजी)
यह सक्रिय एन्वायरनमेंट वेरिएबल्स को Define करता है। कई वेरिएबल्स को Define करने के लिए, हर लाइन पर एक Define किया जा सकता है। उदाहरण:
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
यह टर्मिनल के साइज को Define करता है। डिफ़ॉल्ट रूप से, यह चरित्रों में दिया जाता है, लेकिन इसे पिक्सेल में भी Define किया जा सकता है। जैसे: "80x25" या "640x480px". अगर कोई मान Define नहीं किया जाता है, तो "80x25" का उपयोग किया जाएगा।
यह हर कमांड के लिए डेटा प्राप्त करने के लिए एक टाइमआउट को Define करता है, जो T# फॉर्मेट में होता है। अगर कोई टाइमआउट Define नहीं किया जाता है, तो T#150ms का उपयोग किया जाएगा। अगर यह मान पर्याप्त उच्च नहीं है, तो डेटा आउटपुट के दौरान कई कमांडों को निष्पादित किया जा सकता है।
यह सभी कमांडों के निष्पादन के लिए एक टाइमआउट सेट करता है, जो T# फॉर्मेट में होता है। इस टाइमआउट को प्राप्त करने के बाद कनेक्शन समाप्त हो जाएगा और मान वापस लौटाए जाएंगे। इस दौरान ERROR को TRUE सेट किया जाएगा। टाइमआउट को कनेक्शन स्थापित होने और ऑथेंटिकेशन के बाद मूल्यांकन किया जाता है। अगर इनपुट PTY को "exec" पर सेट किया गया है, तो निष्पादन समय पूरे अवधि पर मूल्यांकन किया जाएगा। अगर कोई टाइमआउट Define नहीं किया जाता है, तो T#300s का उपयोग किया जाएगा।
आउटपुट सफलता पर एक पल्स वापस लौटाता है, ताकि अगला ऑपरेशन निष्पादित हो सके। पल्स प्रक्रिया समाप्त होने पर होता है, भले ही कोई त्रुटि हुई हो या नहीं।
यह सफल निष्पादन पर कमांड के रिटर्न वैल्यू को वापस लौटाता है। मान को बाद में उपयोग करने के लिए स्टोर किया जाता है।
नोट: ध्यान दें कि कंसोल आउटपुट को फॉर्मेट करता है। इस प्रकार, यह कंट्रोल चरित्र या बाइनरी डेटा भी शामिल कर सकता है।
यह त्रुटिपूर्ण निष्पादन पर कमांड के रिटर्न वैल्यू को वापस लौटाता है। SSH में इसे STDERR भी कहा जाता है। मान को बाद में उपयोग करने के लिए स्टोर किया जाता है।
नोट: ध्यान दें कि कंसोल आउटपुट को फॉर्मेट करता है। इस प्रकार, यह कंट्रोल चरित्र या बाइनरी डेटा भी शामिल कर सकता है।
यह त्रुटि के मामले में एक टेक्स्ट के साथ एक एरर मेसेज वापस लौटाता है। यह FALSE होता है, अगर कोई त्रुटि नहीं हुई है। स्थिति को बाद में उपयोग करने के लिए स्टोर किया जाता है।
संभावित कारण: