प्रौद्योगिकी साझेदारी

प्रथमस्तरः : लिनक्सस्य मूलभूतज्ञानम्

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Linux मूलभूतनिर्देशिका

प्रस्तावना

अयं लेखः शङ्घाई कृत्रिमबुद्धिप्रयोगशालाद्वारा आयोजितस्य तृतीयस्य विद्वान् बृहत्-परिमाणस्य आदर्श-अभ्यास-शिबिरस्य टिप्पणीः अस्ति यत् केवलं व्यक्तिगत-शिक्षण-सहायक-सन्दर्भार्थम् अस्ति ।ट्यूटोरियल मूल लिंक
पञ्जीकरणार्थं कृपया WeChat इत्यत्र "The Third Scholar Model Practical Camp" इति अन्वेषणं कुर्वन्तु ।
इयं टिप्पणी मूलपाठ्यक्रमस्य आधारेण परिवर्तिता व्यक्तिगतरूपेण टिप्पणीकृता टिप्पणी अस्ति ।

Linux+InternStudio स्तरः

😀Hello大家好,欢迎来到विद्वान् बृहत् आदर्शव्यावहारिकशिबिरम्, अत्र प्रथमवारं व्यावहारिकशिबिरे भागं गृह्णन्तः छात्राणां कृते, तथा च विविध-उद्योगानाम् छात्राणां कृते येषां कृते लिनक्स-विषये मूलभूत-ज्ञानं नास्ति, अत्र वयं भवन्तं तस्य उपयोगं कथं कर्तव्यम् इति शिक्षयामः |InternStudio विकास यन्त्र, तथा केचन मूलभूतविषयेषु निपुणतालिनक्स ज्ञान , येन सर्वेषां कृते निम्नलिखितपाठ्यक्रमेषु कुतः आरम्भः करणीयः इति कल्पना न भविष्यति इति आशासे सर्वेषां कृते सहायकं भविष्यति। अत्र स्तरकार्येषु वयं भवद्भ्यः केचन स्तरकार्यं सज्जीकृतवन्तः यदा भवान् आवश्यकानि स्तरकार्यं सम्पन्नं करोति तथा च चेक इन करोति तदा भवान् वर्तमानस्तरस्य कम्प्यूटिंगशक्तिपुरस्कारं प्राप्स्यति।आरभामः !

1. InternStudio विकासयन्त्रस्य परिचयः

InternStudio 是大模型时代下的云端算力平台。基于 InternLM 组织下的诸多算法库支持,为开发者提供开箱即用的大语言模型微调环境、工具、数据集,并完美兼容 🤗 HugginFace 开源生态。

यदि भवान् InternStudio विषये अधिकं ज्ञातुम् इच्छति तर्हि निम्नलिखितदस्तावेजान् पश्यतु: InternStudio

https://studio.intern-ai.org.cn/ .

प्रथमं InternStudio इत्यत्र प्रवेशार्थं उपरिष्टात् लिङ्क् उद्घाटयन्तु, भवन्तः स्वयमेव console interface -इत्यत्र कूर्दन्ति, यथा अधोलिखिते चित्रे दर्शितम् अस्ति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

प्रत्येकस्य क्रमाङ्कस्य अनुरूपपृष्ठानां कार्याणि वदामि :

  1. अत्र भवन्तः सृजितुं शक्नुवन्तिविकास यन्त्र, तथा च विकासयन्त्रविन्यासं परिवर्त्य सम्बद्धानि लॉग्स् इत्यादीनि द्रष्टुं शक्नुवन्ति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

  1. अत्र ठीकम्दृश्यीकरणम् विकासयन्त्रे सञ्चिकाः, पुटकानि च पश्यन्तु यदि भवान् विकासयन्त्रद्वयं निर्माति तर्हि ते समानं मेघडिस्कं उपयुञ्जते । (यतो हि प्रत्येकं विकासयन्त्रं Docker-पात्रं भवति, एकं भण्डारण-मेघ-डिस्कं माउण्ट् भवति । व्यावसायिकपदानां व्याख्यानार्थं कृपया पश्यन्तु: व्यावसायिकपदानां व्याख्या) अत्र भवान् सञ्चिकाः अथवा फोल्डर् अपलोड् कर्तुं, सञ्चिकाः निर्मातुं, गुप्तसञ्चिकाः द्रष्टुं च शक्नोति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

  1. इदं विकासयन्त्रस्य नूतनं कार्यं यदि भवान् परियोजनां कर्तुम् इच्छति तर्हि सहायकात् संसाधनानाम् आवेदनं कर्तुं शक्नोति दलस्य कार्यं सर्वेषां सदस्यानां कृते अस्तिसाझागणनासंसाधनम्,避免造成资源浪费。(毕竟烧的可都是💴啊)
  2. एतत् विन्यासार्थं उपयुज्यतेSSH कुञ्जी, तस्य उपयोगः कथं करणीयः इति पश्चात् वदामः ।
  3. अन्तिमस्थानं भवतः व्यक्तिगतसूचनाः सम्पादयितुं भवतः...कम्प्यूटिंग संसाधनविशिष्टः प्रयोगः ।

उपर्युक्तं InternStudio मञ्चस्य संक्षिप्तपरिचयः अस्ति यत् वयं गृहपृष्ठं गत्वा " इति क्लिक् कुर्मः ।विकासयन्त्रं रचयन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अत्र वयं सृजितुं चिनोमःव्यक्तिगत विकास यन्त्र, नामपरीक्षाकुडासंस्करणं १२.२, ९.संसाधनविनियोगः10% चिनोतु पूर्वनिर्धारितकालः सुष्ठु अस्ति ।

सृष्टेः समाप्तेः अनन्तरं इविकास यन्त्रभवान् इदानीं एव निर्मितं विकासयन्त्रं अन्तरफलके द्रष्टुं शक्नोति विकासयन्त्रं प्रविष्टुं क्लिक् कुर्वन्तु ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

विकासयन्त्रे प्रवेशानन्तरं विकासयन्त्रस्य मुख्यपृष्ठं द्रष्टुं शक्नुवन्ति विकासयन्त्रे त्रयः मोडाः सन्ति ।JupyterLab, टर्मिनल् तथा VScode

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

इत्यस्मिन्‌:

  1. जुपिटरलैब: अन्तरक्रियाशीलं प्रोग्रामिंगं शिक्षणं च वातावरणं यत्र अन्तर्निर्मितं टर्मिनल् भवति यत् सञ्चिकाः सहजतया द्रष्टुं, कोडं निष्पादयितुं इत्यादीनि कर्तुं शक्नोति।
  2. terminal(टर्मिनल्, सर्वाधिकं हल्कं): मुख्यतया आदेशपङ्क्तिसञ्चालनार्थं, अथवा स्क्रिप्ट्-सरलप्रोग्राम-चालनार्थं उपयुज्यते
  3. VSCode इति: जालपुटे एकीकृतं VSCode इत्येतत् स्थानीय VSCode इत्यस्मिन् SSH संयोजनद्वारा अपि दूरस्थरूपेण विकसितुं शक्यते ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

  1. एषः संसाधनप्रयोगः, यस्य उपयोगः अनन्तरं पाठ्यक्रमेषु भविष्यति ।

2. SSH तथा पोर्ट् मैपिंग

उपरि वयं परिचयं कृतवन्तःInternStudio मंच, तथा च विकासयन्त्रं कथं निर्मातव्यम् इति अस्मिन् खण्डे वयं किम् इति अवगन्तुं इच्छामःSSHदूरस्थसंयोजनस्य उपयोगः किमर्थम्, SSH इत्यस्य उपयोगः कथं भवतिदूरस्थसंयोजनम्विकासयन्त्रं किम्पोर्ट मैपिंगकथं प्रवर्तेत इति चपोर्ट मैपिंग

२.१ SSH इति किम् ?

SSHपूर्णं नाम Secure Shell इति, यत् चीनीभाषायां secure shell इति अनुवादितम् अस्ति It is aसंजालसुरक्षाप्रोटोकॉल , एन्क्रिप्शन-प्रमाणीकरण-तन्त्राणां माध्यमेन सुरक्षित-प्रवेशं सञ्चिका-स्थानांतरणं च अन्य-सेवानां च साक्षात्कारं कुर्वन्ति । SSH प्रोटोकॉल असुरक्षितजालवातावरणे संजालदत्तांशस्य गोपनं प्रमाणीकरणं च कृत्वा सुरक्षितजालसेवाः प्रदाति ।

SSH इति (C/S architecture) द्वारासर्वरःतथाग्राहिकासुरक्षितं SSH चैनलं स्थापयितुं द्वयोः पक्षयोः प्रथमं TCP संयोजनं स्थापयितुं, ततः संस्करणसङ्ख्यां, प्रयुक्तानि विविधानि एल्गोरिदम् च वार्तालापं कृत्वा, समानं जनयितुं आवश्यकम्सत्रकुंजी तदनन्तरं सममितगुप्तीकरणार्थं प्रयुक्तम् । उपयोक्तृप्रमाणीकरणं सम्पन्नं कृत्वा पक्षद्वयं दत्तांशविनिमयार्थं सत्रं स्थापयितुं शक्नोति ।

ततः अनन्तरं अभ्यासे वयं करिष्यामःSSH कुञ्जीः विन्यस्यताम्, विन्यासकुंजी अस्ति यत् यदा वयं दूरस्थरूपेण विकासयन्त्रेण सह सम्बद्धाः भवेम तदा अस्माभिः कूटशब्दं पुनः पुनः प्रविष्टुं न प्रयोजनम्, तर्हिदूरस्थरूपेण किमर्थं संयोजयितुं ?

दूरस्थसंयोजनस्य लाभः अस्ति यत् यदि भवान् दूरस्थकार्यालयस्य उपयोगं करोति तर्हि SSH मार्गेण विकासयन्त्रेण सह दूरस्थरूपेण संयोजितुं शक्नोति, येन भवान् स्थानीयरूपेण विकासं कर्तुं शक्नोति । तथा च यदि भवान् किञ्चित् स्थानीयसङ्केतं चालयितुं प्रवृत्तः अस्ति तथा च वातावरणं नास्ति तर्हि दूरस्थसंयोजनम् अतीव आवश्यकम् अस्ति ।

2.2 विकासयन्त्रेण सह दूरस्थरूपेण संयोजयितुं SSH इत्यस्य उपयोगः कथं करणीयः?

2.2.1 SSH दूरस्थसंयोजनाय गुप्तशब्दस्य उपयोगं कुर्वन्तु

प्रथमं वयं SSH remote connection कृते password प्रविष्टुं विधिं उपयुञ्ज्महे पश्चात् वयं password-free login कथं विन्यस्तं कर्तव्यमिति वदामः ।

विकासयन्त्रस्य निर्माणं सम्पन्नं कृत्वा अस्माभिः अस्माकं सङ्गणकस्य powerShell टर्मिनल् उद्घाट्य उपयोगः करणीयःWin+R run box उद्घाटयितुं, powerShell प्रविष्टुं, powerShell टर्मिनल् उद्घाटयितुं च shortcut कीलस्य उपयोगं कुर्वन्तु । (यदि भवान् Linux अथवा Mac ऑपरेटिंग् सिस्टम् चालयति तर्हि निम्नलिखितपदार्थाः समानाः सन्ति)

वयं विकासयन्त्रमञ्चं प्रति आगत्य प्रविशामःविकास यन्त्रपृष्ठे अस्माभिः निर्मितं विकासयन्त्रं अन्विष्य क्लिक् कुर्वन्तुSSH संयोजनम्

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

ततः प्रतिलिपिं कुर्वन्तुलॉगिन् आदेशः, 37367 अत्र विकासयन्त्रेण प्रयुक्तः SSH पोर्ट् अस्ति सामान्यतया, पोर्ट् 22 उपयुज्यते, एतत् पोर्ट् सङ्ख्यां विना, भवान् SSH इत्यनेन सह सम्बद्धः कर्तुं न शक्नोति, तथा च सर्वेषां पोर्ट् भिन्नः अस्ति, अतः यदि भवान् विकासयन्त्रेण सह सम्बद्धः अस्ति , भवद्भिः पश्यितव्यं यत् पोर्ट् गलत् अस्ति वा इति ।

प्रतिलिपिकृतं आदेशं powershell मध्ये चिनोतु तथा Enter नुदन्तु अत्र वयं login आदेशस्य अधः गुप्तशब्दं प्रतिलिख्य टर्मिनल् मध्ये चिनोतु ।ध्यानं कुर्वन्तु यत् गुप्तशब्दस्य प्रतिलिपिं कृत्वा, तत् चिनोतुम् राइट्-क्लिक् कुर्वन्तु केषुचित् सङ्गणकेषु चिनोतुः शेल् शॉर्टकट् कीलम् अस्तिshift+ins, अत्र चिनोति गुप्तशब्दः न प्रदर्शितः भविष्यति, एतत् सामान्यम् अस्ति ।

अन्ते Enter नुदन्तु ततः सफलतां सूचयति निम्नलिखितसामग्री दृश्यते ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

विकासयन्त्रेण सह सम्बद्धस्य अनन्तरं वयं उपयोक्तुं शक्नुमःhostnameविकासयन्त्रनाम द्रष्टुं, उपयोगं कुर्वन्तुuname -aविकासयन्त्रस्य कर्नेल् सूचनां द्रष्टुं, उपयोगं कुर्वन्तुlsb_release -aविकासयन्त्रसंस्करणसूचनाः द्रष्टुं, उपयोगं कुर्वन्तुnvidia-smiGPU सूचनां पश्यन्तु यदि भवान् दूरस्थसंयोजनात् निर्गन्तुं इच्छति तर्हि द्विवारं प्रविशतु ।exitइति ।

2.2.2 SSH दूरस्थसंयोजनाय SSH कुञ्जी विन्यस्यताम्

परन्तु यदा वयं विकासं कुर्मः अध्ययनं च कुर्मः तदा प्रतिवारं दूरस्थरूपेण गुप्तशब्दं प्रविष्टुं कष्टकरं भवति वयं गुप्तशब्दं प्रविष्टुं पदं त्यक्तुं SSH कीलं सेट् कर्तुं शक्नुमःश्श-कीगेन्कुञ्जीम् उत्पन्नं कर्तुं आदेशः

SSH कुञ्जी एकः सुरक्षितः सुलभः च प्रवेशप्रमाणीकरणविधिः अस्ति, यस्य उपयोगः SSH प्रोटोकॉलमध्ये प्रमाणीकरणाय, एन्क्रिप्टेड् संचाराय च भवति ।

श्श-कीगेन्RSA तथा DSA प्रमाणीकरणकुंजीद्वयं समर्थयति ।

सामान्यतया प्रयुक्ताः मापदण्डाः सन्ति : १.

  • -t: कीलप्रकारं निर्दिशतु, यथा dsa, ecdsa, ed25519, rsa ।
  • -b: कीलदीर्घतां निर्दिशन्तु।
  • -ग: टिप्पणीं योजयन्तु।
  • -f: कीलं रक्षितुं सञ्चिकानाम निर्दिशन्तु ।
  • -i: अगुप्तकृतानि ssh-v2 संगतनिजी/सार्वजनिककुंजीसञ्चिकाः पठन्तु।

अत्र वयं कीलं जनयितुं RSA एल्गोरिदम् उपयुञ्ज्महे, आदेशः अस्ति :

ssh-keygen -t rsa
  • 1

आदेशं प्रविष्ट्वासर्वं मार्गं प्रविशतुतत् एव, अत्र कीलं पूर्वनिर्धारितरूपेण in उत्पद्यते~/.ssh/निर्देशिकायाः ​​अधः, .~गृहनिर्देशिका इत्यर्थः, यदि विण्डोस् अस्ति तर्हि अस्तिC:Users{your_username} .powerShell इत्यस्मिन् उपयोक्तुं शक्यतेGet-Contentउत्पन्नं कीलं द्रष्टुं आदेशः, यस्य उपयोगः कर्तुं शक्यते यदि एतत् Linux प्रचालनतन्त्रम् अस्तिcatआदेशः।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

ततः वयं development machine platform इत्यत्र आगत्य मुखपृष्ठे Configuration इति नुदामःSSH कीलम्, ततः क्लिक् कुर्वन्तुSSH सार्वजनिककुंजी योजयन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

भवता अधुना एव उत्पन्नं कुञ्जी प्रतिलिख्य सार्वजनिककुंजीपेटिकायां चिनोतु नाम स्वयमेव ज्ञास्यति अन्ते, इदानीं योजयतु इति नुदन्तु, ततः SSH कुञ्जीविन्यासः पूर्णः भवति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

SSH Key निर्माणं सम्पन्नं कृत्वा पुनः आरभतterminalदूरस्थरूपेण संयोजयन् गुप्तशब्दप्रवेशस्य सोपानं त्यक्तं भविष्यति ।

2.2.3 SSH दूरस्थसंयोजनाय VScode इत्यस्य उपयोगं कुर्वन्तु

अवश्यं, भवान् SSH दूरस्थसंयोजनसॉफ्टवेयरं अपि उपयोक्तुं शक्नोति, यथा:पवनकाल、Xterminal प्रतीक्षतु। अत्र वयं दूरस्थसंयोजनाय VScode इत्यस्य उपयोगं कुर्मः VScode इत्यस्य उपयोगस्य लाभः अस्ति यत् एतत् कोड एडिटर अस्ति, यत् कोड् परिवर्तनस्य अन्यस्य च कार्याणां कृते अतीव सुविधाजनकम् अस्ति ।

यदि वयं VScode मध्ये दूरस्थरूपेण संयोजयितुम् इच्छामः तर्हि अस्माकं प्लग-इन्-समूहः अपि संस्थापनीयः अस्ति यत् भवान् VScode कथं संस्थाप्यते इति ऑनलाइन अन्वेष्टुं शक्नोति । (विकासयन्त्रे vscode एतत् प्लग-इन् अन्वेष्टुं न शक्नोति, परन्तु स्थानीयः vscode कर्तुं शक्नोति)

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

यदि भवान् VScode संस्थापितवान् तर्हि वामतः विस्तारपृष्ठे क्लिक् कृत्वा अन्वेषणपेटिकायां "SSH" इति प्रविष्टुं शक्नोति प्रथमं प्लग-इन् वयं संस्थापयितुम् इच्छामः ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

प्लग-इन् संस्थापनानन्तरं, पार्श्वपट्टिकायां दूरस्थसंयोजनचिह्नं नुदन्तु, SSH मध्ये "+" बटनं नुदन्तु, विकासयन्त्रस्य SSH संयोजनाय प्रवेश आदेशं योजयन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

वयं login आदेशं प्रतिलिख्य, ततः आदेशं pop-up विण्डो मध्ये चिनोमः, अन्ते Enter नुदामः:

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

पूर्वनिर्धारितविन्याससञ्चिका सम्यक् अस्ति अवश्यं, भवान् तत् अनुकूलितुं अपि शक्नोति विन्याससञ्चिकायाः ​​विशिष्टा सामग्री निम्नलिखितम् अस्ति: (एतत् भवतः सर्वा दूरस्थसंयोजनसूचनाः समाविष्टाः सन्ति) ।

Host ssh.intern-ai.org.cn #主机ip也可以是域名
  HostName ssh.intern-ai.org.cn #主机名
  Port 37367 #主机的SSH端口
  User root #登录SSH使用的用户
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

यदि भवान् निम्नलिखितविन्यासविकल्पानां केचन स्वहस्तेन योजयितुम् इच्छति तर्हि उपर्युक्तस्वरूपानुसारं तत्सम्बद्धान् भागान् परिवर्तयितुं आवश्यकम् ।

यदि *StrictHostKeyChecking noतथाUserKnownHostsFile* /dev/nullअङ्गुलिचिह्नसत्यापनार्थं यत् पॉप-अप-विण्डो पॉप-अप भविष्यति तत् विलोपयन्तु:

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

StrictHostKeyChecking no कठोर होस्ट् कीलपरीक्षणं अक्षमम् इति सूचयति । अस्य अर्थः अस्ति यत् नूतन-SSH-सर्वर-सङ्गतिं कुर्वन् सर्वरस्य होस्ट्-कुंजी कठोररूपेण सत्यापितं न भविष्यति, यत् निश्चितं सुरक्षा-जोखिमं जनयितुं शक्नोति ।

UserKnownHostsFile /dev/nullएतत् उपयोक्त्रेण ज्ञातां होस्ट् कीलसञ्चिकां /dev/null इति सेट् करोति, यत् मूलतः ज्ञातानां होस्ट् कीलानां रिकार्डिङ्ग्, उपयोगं च अवहेलयति ।

परन्तु सामान्यसुरक्षाव्यवहारे कठोर होस्ट्-कुंजी-परीक्षणं मनमानारूपेण निष्क्रियं कर्तुं न अनुशंसितम् ।

ततः विकासयन्त्रेण सह दूरतः संयोजयितुं अधः दक्षिणकोणे दृश्यमाने प्रॉम्प्ट् विण्डो मध्ये "Connect" नुदन्तु ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

दूरस्थसंयोजनस्य समाप्तेः अनन्तरं भवान् उद्घाटयितुं पुटं चिन्वतु, यत् कार्यनिर्देशिका इति अपि वक्तुं शक्यते भवान् विकासयन्त्रे पुटं वा स्थानीयं वा चिन्वतु ।मेघचक्रम्

यदा भवान् अग्रिमे समये दूरस्थं संयोजनं करोति तदा प्रथमसंयोजनस्य विकासयन्त्रसूचनाः द्रष्टुं केवलं vscode इत्यस्य दूरस्थसंयोजनं उद्घाटयितुं न प्रयोजनम्, यथाrootयदा वयं प्रथमवारं विकासयन्त्रेण सह सम्बद्धाः भवेम तदा वयं उपयुञ्ज्महे इति तात्पर्यम्/rootकार्यसूची।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अधोलिखिते च चित्रे->विकासयन्त्रं प्रविष्टस्य अनन्तरं भवद्भिः कार्यनिर्देशिकायाः ​​पुनः चयनं करणीयम् इति सूचयति:

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अधोलिखिते च चित्रे->अन्तिमविकासयन्त्रेण चयनितकार्यनिर्देशिकायाः ​​प्रवेशं सूचयति:

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

प्रत्येकं समये चयनिता कार्यनिर्देशिका विकासयन्त्रसूचनायाः अधः प्रदर्शिता भविष्यति: (अत्र lagent कृते अतिरिक्तकार्यनिर्देशिका अस्ति)

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

तदनन्तरं वयं कदा इति परिचयं करिष्यामःपोर्ट मैपिंग

2.3.बन्दरगाहस्य मानचित्रणम्

२.३.१ पोर्ट् मैपिङ्ग् इति किम् ?

पोर्ट मैपिंग इयं जालप्रौद्योगिकी अस्ति या आन्तरिकजालस्य बाह्यजालस्य च मध्ये संचारं साकारयितुं बाह्यजालस्य कस्यापि पोर्टस्य आन्तरिकजालस्य तत्सम्बद्धे पोर्ट् प्रति नक्शाङ्कनं कर्तुं शक्नोति पोर्ट् मैपिङ्ग् इत्यस्य माध्यमेन इन्ट्रानेट् मध्ये सेवाः अथवा अनुप्रयोगाः बाह्यजालतः अभिगन्तुं शक्यन्ते येन सम्पूर्णे जालपुटे सुविधाजनकसञ्चारः प्राप्तुं शक्यते ।

अतः विकासयन्त्रस्य उपयोगं कुर्वन् अस्माभिः पोर्ट् मैपिङ्ग् किमर्थं कर्तव्यम् ?

यतः अनन्तरपाठ्यक्रमेषु वयं आदर्शान् आचरणं करिष्यामःजाल_प्रदर्शनम् परिनियोजनाभ्यासे अस्मिन् प्रक्रियायां भवन्तः जाल ui इत्यस्य अपूर्णभारस्य समस्यां सम्मुखीकुर्वन्ति इति संभावना वर्तते ।यतो हि विकासयन्त्रे Web IDE मध्ये web_demo चालयति समये विकासयन्त्रे http/https सेवां प्रत्यक्षतया अभिगन्तुं प्रॉक्सी समस्याः भवितुम् अर्हन्ति ।ui संसाधनम्न पूर्णतया भारितम्।

अतः एतस्याः समस्यायाः समाधानार्थं अस्माभिः web_demo चालितं संयोजनं पोर्ट् मैप् करणीयम्, तथा चबाह्यजाललिङ्काः अस्माकं स्थानीयहोस्ट् प्रति मैप् भवन्ति , एतस्य प्रॉक्सीसमस्यायाः समाधानार्थं वयं स्थानीयसंयोजनप्रवेशस्य उपयोगं कुर्मः । अधुना अभ्यासं कुर्मः।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

प्रथमं आरेखस्य आधारेण विकासयन्त्र-पोर्ट-मानचित्रणं कथं कार्यं करोति इति अवगच्छामः :

अधः व्यावहारिकपदार्थाः सन्ति प्रथमं पोर्ट् मैपिंगं कथं कर्तव्यम् इति अवगच्छन्तु ।

ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
  • 1

उपरिष्टाद् पोर्ट् मैपिंग आदेशः अस्ति पोर्ट् मैपिङ्ग् कर्तुं एतत् आदेशं चालयन्तु ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

व्यक्तिगत PC दूरतः विकासयन्त्रस्य एकमात्रं उजागरित-पोर्ट् 37367 -सङ्गणकं करिष्यति (एतत् SSH-काले उल्लिखितम् अस्ति, तथा च प्रत्येकस्य विकासयन्त्रस्य उजागरित-पोर्ट् भिन्नम् अस्ति), सुरङ्ग-विकल्पान् च सेट् करिष्यति उजागरिताः बन्दरगाहाः यातायातस्य अग्रे प्रेषणार्थं स्थानान्तरणस्थानकरूपेण कार्यं कुर्वन्ति ।

  • -C: स्थानान्तरितदत्तांशस्य परिमाणं न्यूनीकर्तुं संपीडनं सक्षमं कुर्वन्तु।
  • -N: दूरस्थान् आदेशान् न निष्पादयति, केवलं सुरङ्गं स्थापयति ।
  • -g: दूरस्थ-होस्ट्-स्थानानि स्थानीयतया अग्रे प्रेषित-पोर्ट्-सङ्गतिं कर्तुं अनुमतिं ददातु ।

यदा एषः SSH आदेशः व्यक्तिगत-PC मध्ये निष्पादितः भवति तदा SSH क्लायन्ट् स्थानीययन्त्रस्य पोर्ट् 7860 इत्यत्र श्रोष्यति ।

स्थानीय-पोर्ट् 7860 प्रति प्रेषितं यत्किमपि यातायातं SSH सुरङ्गेन दूरस्थसर्वरस्य 127.0.0.1-पतेः पोर्ट् 7860 प्रति अग्रे प्रेषितं भविष्यति ।

अस्य अर्थः अस्ति यत् विकासयन्त्रस्य एतत् पोर्ट् प्रत्यक्षतया बाह्यजालस्य सम्मुखं न भवति चेदपि वयम् अस्याः सुरङ्गस्य माध्यमेन दूरस्थसर्वरस्य सेवासु सुरक्षितरूपेण प्रवेशं कर्तुं शक्नुमः .

२.३.२ पोर्ट् मैपिङ्ग् कथं कर्तव्यम् ?
2.3.2.1 पोर्ट् मैपिङ्ग् कृते ssh आदेशस्य उपयोगं कुर्वन्तु

वयम् अद्यापि विकासयन्त्रस्य अन्तरफलकं गत्वा अस्माकं विकासयन्त्रं अन्विष्य क्लिक् कुर्मःकस्टम सेवाएँ, प्रथमादेशं प्रतिलिख्य, .
अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

ssh -p 37367 [email protected] -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no
  • 1

तस्मै आदेशस्य प्रत्येकभागस्य अर्थं परिचययामः ।

  • -p 37367: 37367 कृते SSH संयोजनाय पोर्ट् निर्दिशति, यत् पूर्वं उक्तम् आसीत् ।
  • [email protected]: प्रयोगं सूचयति root उपयोक्तृपरिचयः सम्बद्धः भवतिssh.intern-ai.org.cn अयं गणः ।
  • -CNg
    • -C सामान्यतया संपीडनं सक्षमीकरणाय उपयुज्यते ।
    • -N दूरस्थ आदेशाः निष्पादिताः न भवन्ति, परन्तु पोर्ट् अग्रे प्रेषणार्थम् इत्यादिषु केवलं संयोजनानि स्थापितानि इति सूचयति ।
    • -g दूरस्थ-होस्ट्-स्थानीयरूपेण अग्रे प्रेषित-पोर्ट्-सङ्गतिं कर्तुं अनुमतिं ददातु ।
  • -L {本地机器_PORT}:127.0.0.1:{开发机_PORT}: इदं स्थानीययन्त्रस्य निर्दिष्टं पोर्ट् अग्रे प्रेषयितुं स्थानीय-पोर्ट् अग्रेषणं स्थापयितुं भवति (by {本地机器_PORT} प्रतिनिधित्वं करोति) दूरस्थं होस्ट् प्रति (अत्र अर्थात्) अग्रे प्रेषितम् ।ssh.intern-ai.org.cn)इत्यस्य 127.0.0.1 (अर्थात् स्थानीयं लूपबैक् पता) तथा निर्दिष्टं विकासयन्त्रपोर्टं (द्वारा परिभाषितम्{开发机_PORT} व्यक्त)।
  • -o StrictHostKeyChecking=no: प्रथमवारं संयोजयन् अज्ञात-होस्ट्-कुंजी-कारणात् प्रॉम्प्ट् अथवा त्रुटयः परिहरितुं सख्त-होस्ट्-कुंजी-परीक्षणं निष्क्रियं कुर्वन्तु ।

यदा भवान् जालप्रदर्शनं चालयति तदा भवान् एतत् आदेशं पोर्ट्-मैपिङ्ग् कर्तुं उपयोक्तुं शक्नोति, यथा-

वयं hello_world.py सञ्चिकां निर्मामः (सञ्चिकां निर्मातुं विकासयन्त्र-अन्तरफलके राइट्-क्लिक् कृत्वा नाम hello_world.py इति परिवर्तयामः) सञ्चिकायां निम्नलिखितसामग्रीम् पूरयामः ।

import socket
import re
import gradio as gr
 
# 获取主机名
def get_hostname():
    hostname = socket.gethostname()
    match = re.search(r'-(d+)$', hostname)
    name = match.group(1)
    
    return name
 
# 创建 Gradio 界面
with gr.Blocks(gr.themes.Soft()) as demo:
    html_code = f"""
            <p align="center">
            <a href="https://intern-ai.org.cn/home">
                <img src="https://intern-ai.org.cn/assets/headerLogo-4ea34f23.svg" alt="Logo" width="20%" style="border-radius: 5px;">
            </a>
            </p>
            <h1 style="text-align: center;">☁️ Welcome {get_hostname()} user, welcome to the ShuSheng LLM Practical Camp Course!</h1>
            <h2 style="text-align: center;">😀 Let’s go on a journey through ShuSheng Island together.</h2>
            <p align="center">
                <a href="https://github.com/InternLM/Tutorial/blob/camp3">
                    <img src="https://oss.lingkongstudy.com.cn/blog/202406301604074.jpg" alt="Logo" width="20%" style="border-radius: 5px;">
                </a>
            </p>

            """
    gr.Markdown(html_code)

demo.launch()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

सम्पादनानन्तरं स्मर्यताम्ctrl+sरक्ष्

कोडं चालयितुं पूर्वं भवद्भिः उपयोक्तव्यम्pip install gradio==4.29.0निम्नलिखितनिर्भरतासङ्कुलं संस्थापयितुं आदेशः (आदेशं प्रतिलिपिं कृत्वा टर्मिनल् मध्ये चिनोतु), ततः Web IDE इत्यस्य टर्मिनल् मध्ये एकं चालयन्तुpython hello_world.pyआदेशः

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

यदि पोर्ट् मैपिंग न क्रियते तर्हि स्थानीय IP इत्यस्य उपयोगेन तत् प्राप्तुं न शक्यते ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अहं निम्नलिखित आदेशस्य उपयोगेन एतत् powerShell मध्ये प्रविष्टुं शक्नोमि ।

ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
  • 1

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

एतेन सफलतायाः प्रतिनिधित्वं भवति । (सूचना: एषः आदेशः किमपि सामग्रीं न प्रत्यागच्छति, यस्य अर्थः अस्ति यत् पोर्ट् मैपिंग चाल्यते, ततः भवन्तः जालपुटे संयोजनं उद्घाट्य web ui अन्तरफलकं द्रष्टुं शक्नुवन्ति)

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

२.३.२.२ पोर्ट् मैपिङ्ग् कृते vscode इत्यस्य उपयोगं कुर्वन्तु

अवश्यं, यदि वयं भिन्नानि web UIs चालयामः तर्हि अस्माभिः पुनः पुनः आदेशाः प्रविष्टव्याः, यत् अतीव कष्टप्रदम् अस्ति, अस्माकं VScode इत्यस्य उपयोगः अपि आवश्यकः ।वयं SSH मार्गेण विकासयन्त्रं दूरतः संयोजितवन्तः VScode स्वचालितरूपेण पोर्ट् मैपिंगं प्रदाति अस्माकं "Ctrl+Shift+~" शॉर्टकट् कीलस्य उपयोगं कर्तुं शक्यते ।टर्मिनल् जागृतु, पोर्ट् विकल्पाः टर्मिनल् इत्यस्य दक्षिणभागे द्रष्टुं शक्यन्ते:

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अत्र भवान् पोर्ट् मैपिंग सूचनां द्रष्टुं शक्नोति यदि भवान् पोर्ट् परिवर्तयितुं शक्नोति तर्हि पोर्ट् स्तम्भे पोर्ट् सङ्ख्यां परिवर्तयितुं शक्नोति ।

3. मूलभूताः Linux आदेशाः

अस्मिन् भागे अहं भवन्तं Linux इत्यस्य केचन पक्षाः अवगन्तुं नेष्यामि ।मूलभूतक्रियाः , तथा केचन साधनानि उपयुज्यताम्। येन सर्वे समस्यायाः सम्मुखीभवन्ति चेत् स्वयमेव तस्य समाधानं कर्तुं शक्नुवन्ति यदि भवन्तः किमपि समस्यां प्राप्नुवन्ति तर्हि भवन्तः अपि अत्र टिप्पणीं कर्तुं शक्नुवन्ति अहं च समये एव उत्तरं दास्यामि।

यतः वयं उपयुञ्ज्महेविकास यन्त्रदुर्लभतया प्रयुक्तम्प्राधिकरण प्रबन्धन , अतः वयं तस्य परिचयं न करिष्यामः । (निम्नलिखितानि क्रियाणि सर्वाणि VScode टर्मिनल् मध्ये क्रियन्ते)

३.१ सञ्चिकाप्रबन्धनम्

Linux मध्ये सामान्यसञ्चिकाप्रबन्धनक्रियासु अन्तर्भवन्ति : १.

  • सञ्चिकां रचयन्तु:उपयोगं कर्तुं शक्नोति touch आदेशः रिक्तसञ्चिकां निर्माति ।
  • निर्देशिकां रचयन्तु:उपयुञ्जताम्‌ mkdir आदेशः।
  • निर्देशिका परिवर्तनम्:उपयुञ्जताम्‌cdआदेशः।
  • निर्देशिकां दर्शयतु:उपयुञ्जताम्‌pwdआदेशः।
  • सञ्चिकासामग्रीः पश्यन्तु: यदि प्रयुक्तम् cat सञ्चिकायाः ​​सम्पूर्णं सामग्रीं प्रत्यक्षतया प्रदर्शयन्तु,more तथाless पृष्ठेषु द्रष्टुं शक्यते।
  • सञ्चिकां सम्पादयन्तु:इव vi वाvim सम्पादकस्य प्रतीक्षां कुरुत।
  • सञ्चिकाः प्रतिलिख्यताम्:उपयुञ्जताम्‌ cp आदेशः।
  • सञ्चिकालिङ्कं रचयन्तु:उपयुञ्जताम्‌lnआदेशः।
  • सञ्चिकाः स्थानान्तरयन्तु:उत्तीर्णः mv आदेशः।
  • सञ्चिकाः विलोपयन्तु:उपयुञ्जताम्‌ rm आदेशः।
  • निर्देशिकां विलोपयन्तुrmdir(केवलं रिक्तनिर्देशिकाः विलोपयितुं शक्यन्ते) अथवा rm -r(अशून्यनिर्देशिकाः विलोपयितुं शक्यन्ते)।
  • सञ्चिकाः अन्वेष्टुम्:उपयोगं कर्तुं शक्नोति find आदेशः।
  • सञ्चिकायाः ​​अथवा निर्देशिकायाः ​​विवरणं पश्यन्तु:उपयुञ्जताम्‌lsआदेशः, यथा प्रयोगः ls -lनिर्देशिकायां सञ्चिकानां विषये विस्तृतां सूचनां पश्यन्तु ।
  • सञ्चिकाः प्रक्रियां कुर्वन्तु: जटिलसञ्चिकासञ्चालनानां कृते, भवान् उपयोक्तुं शक्नोतिsedआदेशः।

अत्र वयं पाठ्यक्रमे उपयुञ्ज्महे अनेके आदेशाः सन्ति ।

3.1.1 स्पर्श

शीघ्रं सञ्चिकाः निर्मातुं वयं touch इत्यस्य उपयोगं कर्तुं शक्नुमः, अतः तानि निर्मातुं अस्माभिः हस्तचलितरूपेण क्लिक् कर्तुं न प्रयोजनम् ।यथा - वयं कdemo.pyप्रलेख:

3.1.2 मक्दिर्

तथैव यदि भवान् नामकं सञ्चिकां निर्मातुम् इच्छतिtestनिर्देशिका : १.

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

3.1.3 cd

एषः आदेशः सर्वाधिकं प्रयुक्तः आदेशः भविष्यति तस्य उपयोगात् पूर्वं भवद्भिः छात्राणां कृते निर्देशिकासंरचना व्याख्यातव्या येषां सङ्गणककौशलं नास्ति तथा च सर्वेषां अवगमनाय चित्रं आकर्षयितुं आवश्यकम् ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

अधुना वयं यत् उपयुञ्ज्महे तत् अस्तिrootनिर्देशिका, या मूलप्रयोक्तुः गृहनिर्देशिका अपि अस्ति ।~, linux प्रचालनतन्त्रे/मूलनिर्देशिकायाः ​​प्रतिनिधित्वं करोति मूलनिर्देशिकायां प्रणालीद्वारा आवश्यकाः बहवः निर्देशिकाः सन्तिrootनिर्देशिका, येषु.वर्तमाननिर्देशिकां प्रतिनिधियति, ... प्रतिनिधित्वं कृतवती मातापितृनिर्देशिका ।यदि अहम् इदानीं प्रविष्टः भवेयम्testनिर्देशिकां कृत्वा ततः प्रति गच्छन्तुrootनिर्देशिका, वयम् एतत् कर्तुं शक्नुमः:

3.1.4 pwd

वयं उपयोक्तुं शक्नुमःpwdवर्तमाननिर्देशिकां द्रष्टुं आदेशः : एतेन अस्माकं कृते सम्प्रति कस्मिन् निर्देशिकायां स्मः इति निर्धारयितुं सुकरं भवति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

3.1.5 मार्जारः

catआदेशः सञ्चिकायाः ​​विषयवस्तुं द्रष्टुं शक्नोति, अधिकानि आदेशानि च उपयोक्तुं शक्यन्ते--helpद्रष्टुं आदेशः : १.

  • -a, --show-all इति -vET इत्यस्य तुल्यम्
  • -b, –number-non रिक्तं अरिक्तनिर्गमरेखानां संख्या, -n अधिलिखति
  • -ई, तुल्यम् -vE
  • -E, --show -end प्रत्येकपङ्क्तौ अन्ते $ प्रदर्शयति
  • -n, --सङ्ख्या सर्वाणि निर्गमरेखाः संख्या
  • -s, --crick-blank पुनः पुनः रिक्तनिर्गमरेखाः दमनं करोति
  • -त् -वT इत्यस्य तुल्यम्
  • -t, --show-tabs ट्याब् वर्णं ^I इति प्रदर्शयति
  • -v, --show गैर-मुद्रणं ^ तथा M-संकेतनस्य उपयोगं करोति, LFD तथा TAB इत्येतत् विहाय
3.1.6 वि वा विम्

यदा सञ्चिकाः सम्पादयितुं आवश्यकाः सन्ति तदा वयं तस्य उपयोगं कर्तुं शक्नुमःviवाvimआदेशः, यदा भवान् सञ्चिकासम्पादनं प्रविशति तदा त्रयः मोडाः सन्ति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

उपयोगाय सम्पादनविधिं प्रविशन्तुi, vim इत्यस्य सुविधा अस्ति यत् भवान् टर्मिनल् मध्ये सरलसञ्चिकासंशोधनं कर्तुं शक्नोति ।

3.1.7 cp and ln (जोरम्) २.

**cp**आदेशस्य उपयोगः निम्नलिखितपाठ्यक्रमेषु बहुधा भविष्यति ।

  • सञ्चिकाः प्रतिलिख्यताम् : १.cp 源文件 目标文件
  • निर्देशिकां प्रतिलिख्यताम् : १.cp -r 源目录 目标目录

परन्तु यदि वयं मॉडल् उपयोक्तुं इच्छामः तर्हि एतत् ऑपरेशनं बहु डिस्कस्थानं गृह्णीयात्, अतः वयं सामान्यतया उपयुञ्ज्महेln आदेशः, एतत् windows shortcut इत्यस्य समानम् अस्ति । लिनक्स इत्यस्मिन् लिङ्क् द्वौ प्रकारौ स्तः ।हार्ड लिंक(हार्ड लिंक)सहsoft link (symbolic link), हार्ड लिङ्क् इत्यस्य अर्थः अस्ति यत् सञ्चिकायाः ​​बहुनामानि भवितुम् अर्हन्ति, यदा तु मृदुलिङ्क् विशेषसञ्चिकां जनयति यस्याः सामग्री अन्यसञ्चिकायाः ​​स्थानं सूचयति । एकस्मिन् सञ्चिकातन्त्रे हार्डलिङ्क् विद्यते, परन्तु मृदुलिङ्क् भिन्नसञ्चिकातन्त्रेषु व्याप्तुं शक्नोति ।

अतः वयं सामान्यतया मृदुसंयोजनानां उपयोगं कुर्मः तस्य सामान्यप्रयोगविधयः निम्नलिखितरूपेण सन्ति ।

ln [参数][源文件或目录][目标文件或目录]
  • 1

मापदण्डाः निम्नलिखितरूपेण सन्ति ।

  • -s: मृदुलिङ्कानां (प्रतीकात्मकलिङ्कानां) निर्माणम् अपि सर्वाधिकं प्रयुक्तम् अस्ति;
  • -f: निष्पादनं बलात्, विद्यमानलक्ष्यसञ्चिकानां अधिलेखनं कुर्वन्तु;
  • -i: अन्तरक्रियाशीलविधिः, यदि सञ्चिका अस्ति तर्हि उपयोक्तारः प्रार्थितः भविष्यति यत् तस्याः अधिलेखनं कर्तव्यम् वा;
  • -n: प्रतीकात्मकलिङ्कानि सामान्यनिर्देशिकारूपेण व्यवहरन्ति;
  • -v: विस्तृतं संसाधनं प्रदर्शयन्तु।
3.1.8 म्व रम् च

mvआज्ञा चrmआदेशाः अपि तथैव प्रयुक्ताः, किन्तुmvसञ्चिकानां निर्देशिकानां वा स्थानान्तरणाय अस्य उपयोगः भवति, तस्य नाम परिवर्तनमपि कर्तुं शक्यते ।rmआदेशः सञ्चिकाः अथवा निर्देशिकाः विलोपयितुं उपयुज्यते ।

सामान्यतया प्रयुक्ताः पद्धतयः निम्नलिखितरूपेण सन्ति ।

  • mv आदेशः

सामान्यतया प्रयुक्ताः मापदण्डाः : १.

  • -i: अन्तरक्रियाशीलः मोडः, अधिलेखनात् पूर्वं पृच्छन्तु ।
  • -f: बलव्याप्तिः।
  • -u: केवलं तदा एव चालयन्तु यदा स्रोतसञ्चिका लक्ष्यसञ्चिकायाः ​​अपेक्षया नूतना भवति ।

उपयोगस्य उदाहरणम् : १.

  • mv file1.txt dir1/: सञ्चिकां चालयन्तु file1.txt निर्देशिकां प्रति गच्छन्तुdir1 मध्यं।

  • mv file1.txt file2.txt: सञ्चिकां चालयन्तु file1.txt नामान्तरं कुर्वन्तुfile2.txt

  • rm आदेशः

सामान्यतया प्रयुक्ताः मापदण्डाः : १.

  • -i: अन्तरक्रियाशीलः मोडः, विलोपनात् पूर्वं पृच्छन्तु।
  • -f: बलात् विलोपनं, अस्तित्वहीनसञ्चिकानां अवहेलना, पुष्टिकरणं विना।
  • -r:एकं निर्देशिकां तस्याः सामग्रीं च पुनरावर्तनीयरूपेण विलोपयन्तु।

उपयोगस्य उदाहरणम् : १.

  • rm file.txt:सञ्चिकाः विलोपयन्तु file.txt
  • rm -r dir1/: पुनरावर्तनीयरूपेण निर्देशिकाः विलोपयन्तु dir1 तस्य सर्वाणि च सामग्रीनि।

निर्देशिकां विलोपयितुं आदेशः अपि उपयोक्तुं शक्यतेrmdir

3.1.9 अन्वेषय

findआदेशः Linux प्रणाल्यां एकं शक्तिशालीं सञ्चिका-अन्वेषण-उपकरणं अस्ति यत् निर्दिष्ट-निर्देशिकायां तस्य उपनिर्देशिकासु च शर्ताः पूरयन्तः सञ्चिकाः अथवा निर्देशिकाः अन्वेष्टुं तत्सम्बद्धानि कार्याणि कर्तुं च शक्नोति ।

निम्नलिखितम् अस्तिfindआदेशस्य केचन सामान्याः प्रयोगाः : १.

  1. सञ्चिकानाम्ना अन्वेष्टुम्:उपयुञ्जताम्‌-name सञ्चिकानाम्ना सञ्चिकाः अन्वेष्टुं विकल्पः । उदाहरणतया,find /path/to/directory -name "file.txt"निर्दिष्टं निर्देशिकां तस्य उपनिर्देशिकां च नामकं अन्वेषयिष्यतिfile.txtप्रलेख।
  2. सञ्चिकाप्रकारेण अन्वेष्टुम्:उपयुञ्जताम्‌-type सञ्चिकाप्रकारेण सञ्चिकाः अन्वेष्टुं विकल्पः । उदाहरणतया,find /path/to/directory -type fनिर्दिष्टनिर्देशिकायां तस्य उपनिर्देशिकासु च सर्वाणि साधारणसञ्चिकाः प्राप्यन्ते ।
  3. सञ्चिकायाः ​​आकारेण अन्वेष्टुम्:उपयुञ्जताम्‌-size सञ्चिकायाः ​​आकारेण सञ्चिकाः अन्वेष्टुं विकल्पः । उदाहरणतया,find /path/to/directory -size +100Mनिर्दिष्टनिर्देशिकायां तस्य उपनिर्देशिकासु च 100MB इत्यस्मात् बृहत्तराणि सञ्चिकाः प्राप्स्यति ।
  4. परिवर्तनसमयेन अन्वेषणं कुर्वन्तु:उपयुञ्जताम्‌-mtime-atimeवा-ctime विकल्पाः सञ्चिकाः तेषां परिवर्तनसमयस्य, अभिगमनसमयस्य, अथवा स्थितिपरिवर्तनसमयस्य आधारेण अन्वेषयन्ति । उदाहरणतया,find /path/to/directory -mtime -7निर्दिष्टनिर्देशिकायां तस्य उपनिर्देशिकासु च सञ्चिकाः अन्वेषयिष्यति ये 7 दिवसेषु परिवर्तिताः सन्ति ।
  5. सञ्चिकायाः ​​अनुमतिभिः अन्वेष्टुम्:उपयुञ्जताम्‌-perm सञ्चिकानुमतीनां आधारेण सञ्चिकाः अन्वेष्टुं विकल्पः । उदाहरणतया,find /path/to/directory -perm 755निर्दिष्टनिर्देशिकायां तस्य उपनिर्देशिकासु च अनुमतियुक्तानि सञ्चिकाः 755 अन्वेषयिष्यति ।
  6. उपयोक्तृद्वारा वा समूहेन वा अन्वेष्टुम्:उपयुञ्जताम्‌-userवा-group विकल्पाः स्वस्वामिना वा समूहेन वा सञ्चिकाः अन्वेषयन्ति । उदाहरणतया,find /path/to/directory -user usernameनिर्दिष्टं निर्देशिकां तस्य उपनिर्देशिकां च उपयोक्तुः अन्तर्गतं अन्वेषयिष्यतिusernameप्रलेख।
  7. क्रियाः कुर्वन्ति:उपयुञ्जताम्‌-exec विकल्पाः प्राप्तसञ्चिकासु तत्सम्बद्धानि कार्याणि कर्तुं शक्नुवन्ति । उदाहरणतया,find /path/to/directory -name "*.txt" -exec rm {} ;इत्यनेन समाप्ताः सर्वाणि प्राप्तानि विलोपयिष्यति.txtअन्ते सञ्चिका ।
3.1.10 ls

lsआदेशस्य उपयोगेन निर्देशिकायाः ​​सामग्रीं सूचीबद्धं कर्तुं शक्यते तथा चवर्णन

सामान्यतया प्रयुक्ताः मापदण्डाः उपयोगविधयः च निम्नलिखितरूपेण सन्ति ।

  • -a: सर्वाणि सञ्चिकानि निर्देशिकाश्च प्रदर्शयन्तु, यत्र गुप्तसञ्चिकाः (परतः.सञ्चिका अथवा निर्देशिका या .) इत्यनेन आरभ्यते।
  • -l: दीर्घस्वरूपेण विस्तृतसूचनाः प्रदर्शयति, यत्र सञ्चिकायाः ​​अनुमतिः, स्वामिः, आकारः, परिवर्तनसमयः इत्यादयः सन्ति ।
  • -h:तथा-lसञ्चिकायाः ​​आकारं मानवपठनीयरीत्या प्रदर्शयितुं संयोजनेन उपयुज्यते (उदा.KMGप्रतीक्षतु)।
  • -R: उपनिर्देशिकानां सामग्रीं पुनरावर्तनीयरूपेण सूचीबद्धं कुर्वन्तु।
  • -t : सञ्चिकासंशोधनसमयस्य क्रमेण प्रदर्शयन्तु। , ९.

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

3.1.11 सेद्

sedआदेशः एकः धारा सम्पादकः अस्ति, यः मुख्यतया पाठसंसाधनार्थं प्रयुक्तः भवति यदा जटिलसञ्चिकासञ्चालनानां संसाधनं भवति तदा तस्य उपयोगः भवति ।sedसामान्यतया प्रयुक्ताः मापदण्डाः, आदेशानां उपयोगस्य उदाहरणानि च निम्नलिखितरूपेण सन्ति ।

  • पैरामीटर् विवरणम् : १.
    • -e<script> वा--expression=<script>: पाठसंसाधनार्थं आदेशपङ्क्तौ प्रत्यक्षतया स्क्रिप्ट् निर्दिशन्तु ।
    • -f<script文件> वा--file=<script文件>: पाठसंसाधनार्थं निर्दिष्टलिपिसञ्चिकातः स्क्रिप्ट् पठन्तु ।
    • -n वा--quiet वा--silent: केवलं स्क्रिप्ट् द्वारा संसाधितानि आउटपुट् परिणामानि मुद्रयन्तु, अतुलनीयपङ्क्तयः न मुद्रयन्तु ।
  • क्रियावर्णनम् : १.
    • a: निर्दिष्टं पाठस्ट्रिंग् वर्तमानपङ्क्तौ अग्रिमपङ्क्तौ योजयन्तु ।
    • c: निर्दिष्टा रेखापरिधिं निर्दिष्टपाठस्ट्रिंग् इत्यनेन प्रतिस्थापयति ।
    • d: निर्दिष्टं पङ्क्तिं विलोपयन्तु।
    • i: निर्दिष्टं पाठस्ट्रिंग् वर्तमानपङ्क्तौ पूर्वपङ्क्तौ योजयन्तु ।
    • p : चयनितपङ्क्तयः मुद्रयन्तु।प्रायः सह-n पैरामीटर्-सहितं उपयुज्य केवलं मेल-रेखाः एव मुद्रिताः भवन्ति ।
    • s : पाठप्रतिस्थापनार्थं नियमितव्यञ्जनानां उपयोगं कुर्वन्तु। उदाहरणतया,s/old/new/g सर्वाणि "InternLM" "InternLM yyds" इत्यनेन प्रतिस्थापयन्तु ।
  • उदाहरण:

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

उदाहरणे प्रयुक्तम्echoआदेशः, एतत् पायथन् इत्यत्र इव अस्तिprintसमानं, सामग्रीं मुद्रयितुं प्रयुक्तम्, अत्र पाइप् वर्णस्य उपयोगं कुर्वन्तु>सञ्चिकासञ्चिकायां InternLM मुद्रयन्तु सामान्यतया प्रयुक्ताः पाइप् वर्णाः सन्ति<तथा|, यथा वयं उपयोक्तुं शक्नुमःgrepसंस्थापितं द्रष्टुं आदेशः python मध्ये अन्तर्भवतिosक्षेत्रसङ्कुलम् : १.

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

grep एकं शक्तिशालीं पाठसन्धानसाधनम् अस्ति। सामान्यतया प्रयुक्ताः मापदण्डाः निम्नलिखितरूपेण सन्ति ।

  • -i: प्रकरणं न कृत्वा अन्वेषणं कुर्वन्तु।
  • -v: मेलनं विपर्ययति अर्थात् असङ्गतपङ्क्तयः प्रदर्शयति ।
  • -n: रेखासङ्ख्यां प्रदर्शयन्तु।
  • -c: मेलपङ्क्तयः संख्यां गणयन्तु।

३.२ प्रक्रियाप्रबन्धनम्

प्रक्रिया प्रबन्धनआदेशाः प्रणालीनिरीक्षणस्य प्रक्रियाप्रबन्धनस्य च महत्त्वपूर्णसाधनाः सन्ति सामान्यतया प्रयुक्ताः प्रक्रियाप्रबन्धननिर्देशाः निम्नलिखितम् अन्तर्भवन्ति ।

  • ps: चालितप्रक्रियाः पश्यन्तु
  • उपरितन:चालितप्रक्रियाणां गतिशीलप्रदर्शनम्
  • pstree: वृक्षदृश्ये चालितप्रक्रियाः पश्यन्तु
  • pgrep: प्रक्रियाः अन्वेष्टुं प्रयुक्तः
  • शोभनम्‌:प्रक्रियायाः प्राथमिकता परिवर्तयतु
  • कार्याणि: प्रक्रियासम्बद्धानि सूचनानि प्रदर्शयन्तु
  • बग् च fg च: प्रक्रियां पृष्ठभूमिं प्रति चालयन्तु
  • हन्: मारप्रक्रिया

विकासयन्त्रे विशेषादेशः अपि अस्तिnvidia-smi , यत् NVIDIA System Management Interface इत्यस्य आदेशपङ्क्तिसाधनम् अस्ति, यत् NVIDIA GPU उपकरणानां निरीक्षणाय प्रबन्धनाय च उपयुज्यते । एतत् GPU-स्थितिः, उपयोगः, तापमानं, स्मृति-उपयोगः, शक्ति-उपयोगः, GPU-इत्यत्र चालितानां प्रक्रियाणां च सूचनां द्रष्टुं द्रुतमार्गं प्रदाति ।

प्रत्येकस्य आदेशस्य उपयोगस्य उदाहरणानि निम्नलिखितरूपेण सन्ति ।

  • ps : वर्तमानप्रणाल्यां प्रक्रियाणां सूचीं कुर्वन्तु। भिन्नविकल्पानां उपयोगेन भिन्नाः प्रक्रियासूचनाः प्रदर्शयितुं शक्यन्ते, यथा-
    • ps aux  # 显示系统所有进程的详细信息
      
      • 1
  • top : प्रणाल्यां प्रक्रियाणां स्थितिं गतिशीलरूपेण प्रदर्शयन्तु। एतत् प्रक्रियासूचीं वास्तविकसमये अद्यतनं करोति, उच्चतम CPU तथा स्मृतिप्रयोगयुक्तानि प्रक्रियाणि दर्शयति ।
    • top  # 启动top命令,动态显示进程信息
      
      • 1
  • pstree: वर्तमानकाले प्रचलितानि प्रक्रियाणि तेषां मातापितृ-सन्ततिसम्बन्धं च वृक्षचित्ररूपेण प्रदर्शयति ।
    • pstree  # 显示进程树
      
      • 1
  • pgrep : मापदण्डेन सह मेलनं कुर्वन्ति प्रक्रियाः अन्वेष्टुम्। प्रक्रियानाम, उपयोक्ता इत्यादीनां शर्तानाम् आधारेण प्रक्रियाः अन्वेष्टुं शक्नुवन्ति ।
    • pgrep -u username  # 查找特定用户的所有进程
      
      • 1
  • nice: कस्यापि प्रक्रियायाः प्राथमिकता परिवर्तयन्तु।nice मूल्यं यथा न्यूनं भवति तथा प्रक्रियाप्राथमिकता अधिका भवति ।
    • nice -n 10 long-running-command  # 以较低优先级运行一个长时间运行的命令
      
      • 1
  • jobs: वर्तमान टर्मिनलसत्रे कार्याणां सूचीं प्रदर्शयति, यत्र पृष्ठभूमितः चालिताः प्रक्रियाः अपि सन्ति ।
    • jobs  # 列出当前会话的后台作业
      
      • 1
  • bg तथाfgbg निलम्बिता प्रक्रियां पृष्ठभूमितः चालयितुं स्थापयन्तु,fg पृष्ठभूमिप्रक्रियाम् पुनः अग्रभूमिं प्रति आनयन्तु।
    • bg  # 将最近一个挂起的作业放到后台运行
      fg  # 将后台作业调到前台运行
      
      • 1
      • 2
  • kill: निर्दिष्टप्रक्रियायाः कृते संकेतं प्रेषयन्तु, प्रायः प्रक्रियां मारयितुं प्रयुक्तम् ।
    • kill PID  # 杀死指定的进程ID
      
      • 1
    • सूचना,kill आदेशः पूर्वनिर्धारितरूपेण प्रेषितः भवतिSIGTERM संकेतः, यस्य उपयोगः कर्तुं शक्यते यदि प्रक्रिया प्रतिक्रियां न ददाति-9उपयुञ्जताम्‌SIGKILL संकेतः बलात् प्रक्रियां मारयति : १.

    • kill -9 PID  # 强制杀死进程    
      
      • 1

SIGTERM (Signal Termination) संकेतः एकः मानकसंकेतः अस्ति यस्य उपयोगः Unix तथा Unix-सदृशेषु प्रचालनप्रणालीषु प्रक्रियासमाप्तेः अनुरोधाय भवति । प्रायः एषः संकेतः तदा प्रेष्यते यदा प्रणाली वा उपयोक्ता वा प्रक्रियां ललिततया निरुद्धं कर्तुम् इच्छति ।तथाSIGKILLसंकेताः भिन्नाः सन्ति, .SIGTERM संकेताः प्रक्रियाद्वारा गृहीतुं सम्भालितुं च शक्यन्ते, येन निर्गमनपूर्वं प्रक्रिया स्वच्छा भवति । (अन्तर्जालतः) २.

निम्नलिखितम् अस्ति nvidia-smi आदेशानां केचन मूलभूताः आदेशप्रयोगाः : १.

  • GPU स्थितिविषये सारांशसूचना प्रदर्शयन्तु:
    • nvidia-smi
      
      • 1
  • विस्तृतं GPU स्थितिसूचना प्रदर्शयन्तु:
    • nvidia-smi -l 1
      
      • 1
    • एषः आदेशः प्रत्येकं १ सेकेण्ड् मध्ये स्थितिसूचनाम् अद्यतनं करिष्यति ।

  • GPU उपयोग-इतिहासं प्रदर्शयन्तु:
    • nvidia-smi -h
      
      • 1
  • सर्वाणि GPUs सूचीकृत्य तेषां PIDs तथा प्रक्रियानामानि प्रदर्शयन्तु:
    • nvidia-smi pmon
      
      • 1
  • निर्दिष्टं GPU प्रक्रियां बलात् समाप्तं कुर्वन्तु:
    • nvidia-smi --id=0 --ex_pid=12345
      
      • 1
    • एतेन GPU ID 0 इत्यत्र PID 12345 इत्यनेन सह प्रक्रिया बलात् समाप्तं भविष्यति ।

  • GPU प्रदर्शनविधिं सेट् कुर्वन्तु:
    • nvidia-smi -pm 1
      nvidia-smi -i 0 -pm 1
      
      • 1
      • 2
    • प्रथमः आदेशः सर्वान् GPUs प्रदर्शनविधाने सेट् करिष्यति, द्वितीयः आदेशः केवलं ID 0 इत्यनेन सह GPU लक्ष्यं करोति ।

  • GPU पुनः आरभत:
    • nvidia-smi --id=0 -r
      
      • 1
    • एतेन ID 0 इत्यनेन सह GPU पुनः आरभ्यते ।

  • सहायतासूचना दर्शयतु : १.
    • nvidia-smi -h
      
      • 1

चित्रस्य माध्यमेन GPU सूचनायाः परिचयः निम्नलिखितम् अस्ति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

3.3 साधनस्य उपयोगः

अत्र एकं साधनम् अस्तिTMUXTMUX एकः टर्मिनल् मल्टिप्लेक्सरः अस्ति । एतेन बहुविध-टर्मिनल्-मध्ये स्विच्-करणं, तान् विच्छेदनं (एतेन टर्मिनल्-इत्येतत् न मार्यते, ते पृष्ठभूमितः एव चालयन्ति) अन्येषु टर्मिनल्-मध्ये पुनः संयोजयितुं च सुलभं भवति किमर्थम् अस्य साधनस्य परिचयः करणीयः ?यतः पश्चात् क्रियतेXtunerमॉडलस्य सूक्ष्म-समायोजनं कुर्वन् बहुकालं यावत् उपयुज्यतेTmuxयत्र कार्यक्रमः मारितः भवति, बाधितः च भवति तस्य स्थितिः समाधानं कर्तुं शक्नोति अत्र कथं संस्थापनं, उपयोगः च भवति ।

यतः विकासयन्त्रं ubuntu प्रचालनतन्त्रस्य उपयोगं करोति, भवान् उपयोक्तुं शक्नोतिlsb_release -a ubuntu प्रणालीसूचनाः द्रष्टुं आदेशः:

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

ततः प्रयोगःapt install tmuxtmux संस्थापनार्थं आदेशः संस्थापनस्य समाप्तेः अनन्तरं भवान् तस्य उपयोगं कर्तुं शक्नोति ।tmuxआदेशेन सह tmux उपयोक्तुं शक्नुथ यदि भवान् tmux निर्गन्तुं इच्छति तर्हि " " इति उपयोक्तुं शक्नोषि ।Ctrl+d"शॉर्टकट कुञ्जी।"

विकासयन्त्रे केवलं /root मार्गस्य अधः सञ्चिकाः निरन्तरं संगृह्यन्ते अन्यमार्गेषु संस्थापिताः सॉफ्टवेयरः पुनः आरम्भस्य अनन्तरं पुनः सेट् भविष्यति ।

विशिष्टानि उपयोगविधयः अत्र द्रष्टुं शक्यन्ते :

https://www.ruanyifeng.com/blog/2019/10/tmux.html इति ग्रन्थः

4. कोण्डा तथा शेल् इत्येतयोः परिचयः (अतिरिक्तः) .

कोण्डा इति मुक्तस्रोतसङ्कुलप्रबन्धनं वातावरणप्रबन्धनप्रणाली च यत् विण्डोज, macOS, Linux च इत्यत्र चाल्यते । एतत् शीघ्रमेव सॉफ्टवेयर-सङ्कुलानाम्, तेषां आश्रयाणां च संस्थापनं, चालनं, अद्यतनीकरणं च करोति । Conda इत्यस्य उपयोगेन भवान् स्वस्थानीययन्त्रे भिन्नानि वातावरणानि सहजतया निर्मातुम्, रक्षितुं, लोड् कर्तुं, स्विच् कर्तुं च शक्नोति ।

विकासयन्त्रे पूर्वमेव स्थापितःconda, वयं प्रत्यक्षतया तस्य उपयोगं कर्तुं शक्नुमः, विकासयन्त्रे अपि अन्तर्निर्मितः अस्तिcondaआदेशःstudio-conda, वयं अधः परिचयं करिष्यामःcondaमूलप्रयोगः, चstudio-condaकथं प्रयोगः परिचयः चstudio-condaकथं सिध्यति ?

वयं निम्नलिखितभागेषु तस्य परिचयं करिष्यामः ।

  1. conda सेटिंग्स्
  2. conda पर्यावरण प्रबन्धन
  3. कोण्डा पिप च
  4. Studio-conda इत्यस्य उपयोगः Shell (extension) इत्यनेन सह भवति ।

४.१ कोण्डा सेटिंग्स्

वयं उपयोक्तुं शक्नुमःconda --versionवर्तमानविकासयन्त्रं द्रष्टुंcondaसंस्करणसूचना: १.

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

यदा वयं उपयोगं कर्तुम् इच्छामःcondaसंकुलस्य संस्थापनसमये अतीव मन्दं भविष्यति वयं संस्थापनवेगं सुधारयितुम् domestic mirroring सेट् कर्तुं शक्नुमः ।

#设置清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

परन्तु वयं प्रायः उपयुञ्ज्महेpipसंकुलं संस्थाप्य वयं पश्चात् तस्य परिचयं करिष्यामःpipतथाcondaअंतरण।

यदि वयं conda इत्यस्य विन्याससूचनाम् द्रष्टुम् इच्छामः तर्हि वयं उपयोक्तुं शक्नुमःconda config --showआदेशः, यदि विकासयन्त्रस्य पूर्वनिर्धारितं सेटिङ्ग् अस्ति, तर्हि एतत् प्रत्यागमिष्यति: (सूचनायाः भागः)

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

एते विन्यासाः मध्ये सन्तिCondaपर्यावरणविन्यासः सॉफ्टवेयरसङ्कुलस्थापनस्य, अद्यतनीकरणस्य, पर्यावरणप्रबन्धनस्य अन्येषां च कार्याणां पद्धतीनां परिणामानां च प्रभावं करिष्यति ।

४.२ कोण्डा पर्यावरणप्रबन्धनम्

अयं भागः अस्तिconda中非常重要的一部分,掌握了这一部分大家就可以将开发环境玩转到飞起了😀。

४.२.१ आभासी वातावरणं रचयन्तु

वयं उपयोक्तुं शक्नुमःconda create -n name python``=3.10 वर्चुअल् वातावरणं रचयन्तु, यस्य अर्थः अस्ति यत् Python संस्करणं 3.10 इत्यनेन सह वर्चुअल् वातावरणं निर्मितं भवति तथा च नाम निर्मितम् अस्ति ।सृष्टेः अनन्तरं भवन्तः शक्नुवन्ति.condaनिर्देशिकायाः ​​अधःenvsनिर्देशिकायां प्राप्तम् ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

यदा python संस्करणं निर्दिष्टं न भवति तदा नवीनतमं python संस्करणम् आधारितं आभासी वातावरणं स्वयमेव निर्मितं भविष्यति । तस्मिन् एव काले वयं वर्चुअल् वातावरणं निर्माय आवश्यकानि संकुलं संस्थापयितुं शक्नुमः :conda create -n name numpy matplotlib python=3.10(किन्तु अहं भवन्तं न अनुशंसयामि यत् एतादृशं प्रयोगं कुर्वन्तु)

आभासीवातावरणस्य निर्माणार्थं सामान्यमापदण्डाः निम्नलिखितरूपेण सन्ति ।

  • -n अथवा --name: निर्मातव्यस्य वातावरणस्य नाम निर्दिशन्तु ।
  • -c अथवा --channel: अतिरिक्तसङ्कुलचैनेल् निर्दिशन्तु ।
  • –clone: ​​नूतनं वातावरणं निर्मातुं विद्यमानवातावरणात् क्लोन करणीयम्।
  • -p अथवा --prefix: वातावरणस्य संस्थापनमार्गं निर्दिशन्तु (अपूर्वनिर्धारितस्थानं) ।
४.२.२ के के आभासीवातावरणाः सन्ति इति पश्यन्तु

यदि वयं द्रष्टुम् इच्छामः यत् अस्माकं के के वर्चुअल् वातावरणाः सन्ति तर्हि वयं निम्नलिखितम् आदेशं उपयोक्तुं शक्नुमः ।

conda env list
conda info -e
conda info --envs
  • 1
  • 2
  • 3

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

तस्मिन् एव काले वयं यत्र वातावरणं स्थितम् अस्ति तत् निर्देशिकाम् अपि द्रष्टुं शक्नुमः ।

४.२.३ आभासीवातावरणस्य सक्रियीकरणं निर्गमनं च

वर्चुअल् वातावरणं निर्माय वयं उपयोक्तुं शक्नुमःconda activate name आभासी वातावरणं सक्रियं कर्तुं आदेशः, स्विचः सफलः अस्ति वा इति कथं परीक्षितुं शक्यते?सुलभम् अस्ति, केवलं पश्यन्तु(base)निर्मितस्य आभासीवातावरणस्य नाम भवति वा।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

यदि भवान् आभासीवातावरणात् निर्गन्तुं इच्छति तर्हि भवान् निम्नलिखितम् उपयोक्तुं शक्नोति:

conda activate
conda deactivate
  • 1
  • 2

उभयम् आदेशः पुनः आगमिष्यतिbaseपर्यावरणं यतःbaseकोण्डायाः मूलभूतं वातावरणम् अस्ति यदि भवान् सम्यक् अवलोकयति तर्हि ।baseअन्येभ्यः आभासीपर्यावरणनिर्देशिकाभ्यः अपेक्षया पर्यावरणनिर्देशिका उच्चस्तरीयः अस्ति ।

४.२.४ आभासी वातावरणं विलोपनं निर्यातनं च

यदि भवान् आभासीवातावरणं विलोपयितुम् इच्छति तर्हि उपयोक्तुं शक्नोतिconda remove --name name --all, यदि भवान् आभासीवातावरणे केवलं एकं वा केचन संकुलं विलोपयति तर्हि भवान् उपयोक्तुं शक्नोतिconda remove --name name package_name

आभासी वातावरणस्य निर्यातनं विशिष्टवातावरणस्य कृते अतीव आवश्यकं भवति, यतः केषाञ्चन सॉफ्टवेयरसङ्कुलानाम् आश्रयाः अतीव जटिलाः सन्ति, तथा च स्वयमेव पुनः सृजितुं विन्यस्तुं च कष्टप्रदं भविष्यति यदि वयं विन्यस्तं वातावरणं निर्यातयामः तर्हि अग्रिमे समये पुनः स्थापयितुं शक्नुमः तथा च अन्यैः सह अपि विन्यासं साझां कर्तुं शक्नुवन्ति ।

#获得环境中的所有配置
conda env export --name myenv > myenv.yml
#重新还原环境
conda env create -f  myenv.yml
  • 1
  • 2
  • 3
  • 4

यथा वयं करिष्यामःxtuner0.1.17आभासी वातावरणं निर्यातितं भवति तथा च विन्याससूचना निम्नलिखितरूपेण भवति ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

एतेषु अन्तर्भवतिपरिवेशनामआभासीपर्यावरणसङ्कुलानाम् कृते ऑनलाइन-भण्डारस्य स्थानंतथाआभासी वातावरणनिर्भरता . पश्चात् वयं आभासीवातावरणं शीघ्रं पुनःस्थापयितुं उन्नतप्रयोगविधिनाम् उपयोगं करिष्यामः ।

४.३ कोण्डा पिप च

अस्मिन् भागे वयं केषाञ्चन परिचयं कुर्मःcondaतथाpipकेचन भेदाः : १.

  1. conda अ-पायथन्-सङ्कुलं प्रबन्धयितुं शक्नोति, यदा तु pip केवलं पायथन्-सङ्कुलं प्रबन्धयितुं शक्नोति ।
  2. conda इत्यस्य उपयोगेन वर्चुअल् वातावरणं निर्मातुं शक्यते, परन्तु pip इत्येतत् virtualenv इत्यादिषु संकुलेषु अवलम्बितुं न शक्नोति, आवश्यकं च ।
  3. conda द्वारा संस्थापितं संकुलं संकलितं भवतिद्विचक्रीय सञ्चिका, संकुलसञ्चिकानां संस्थापनस्य समये आश्रिताः संकुलाः स्वयमेव संस्थापिताः भविष्यन्ति;चक्रं वा स्रोतसङ्केतः वा, पायथन् भाषायाः अतिरिक्ताः अन्याः आश्रयाः संस्थापनप्रक्रियायाः समये समर्थिताः न भविष्यन्ति ।
  4. conda द्वारा संस्थापितानि संकुलाः वर्तमान-वर्चुअल्-वातावरण-सङ्गत-निर्देशिकायां डाउनलोड्-कृतानि भविष्यन्ति, एकवारं डाउनलोड् कृत्वा बहुवारं संस्थापितानि कर्तुं शक्यन्ते । pip इत्येतत् प्रत्यक्षतया तत्सम्बद्धे वातावरणे डाउनलोड् भवति ।

चक्र इदं पायथन् संस्थापनसङ्कुलस्य प्रारूपम् अस्ति ।

इदं पूर्वसंकलितं द्विचक्रीयवितरणस्वरूपम् अस्ति, यत् कोण्डायां संकलितद्विचक्रीयानां सदृशम् अस्ति ।

Wheel प्रारूपस्य मुख्यलाभाः सन्ति- १.

  1. द्रुतस्थापनम् : यतः पूर्वसंकलनं कृतम् अस्ति, संस्थापनकाले स्रोतसङ्केतस्थापनवत् संकलनप्रक्रियायाः माध्यमेन गन्तुं आवश्यकता नास्ति, समयस्य रक्षणं भवति
  2. संगतिः : संस्थापनपरिणामानां भिन्नप्रणालीषु वातावरणेषु च सुसंगताः इति सुनिश्चितं करोति ।

यथा, यदि भवान् विशालं पायथन् पुस्तकालयं संस्थापयितुम् इच्छति तर्हि Wheel प्रारूपस्य उपयोगेन भिन्नयन्त्रेषु संकलनवातावरणेषु भेदेन संस्थापनसमस्याः परिहर्तुं शक्यन्ते अपि च, येषां प्रणालीनां कृते संकलनवातावरणं नास्ति अथवा दुर्बलसंकलनक्षमता अस्ति, तेषां कृते Wheel प्रारूपं संस्थापनप्रक्रियाम् सुचारुतरं कर्तुं शक्नोति

४.४ स्टूडियो-कोण्डा-उपयोगः तथा च शेल् (विस्तारः) ४.

अयं भागः विस्तारितः भागः अस्ति, यतः अहं मन्ये अयं भागः अतीव रोचकः अतीव व्यावहारिकः च अस्ति, अतः यदि भवान् रुचिं लभते तर्हि भवान् तत् ज्ञातुं शक्नोति ।

प्रथमं परिचयं कुर्मःstudio-conda , यत् विकासयन्त्रस्य अन्तःनिर्मितः आदेशः अस्ति तथा च Shell स्क्रिप्ट् मार्गेण कार्यान्वितः भवति । शेल् स्क्रिप्ट् इति किम् ?

शेल् लिपि Unix/Linux अथवा तत्सदृशे ऑपरेटिंग् सिस्टम् वातावरणे कार्याणि स्वचालितं कर्तुं विशिष्टक्रमेण व्यवस्थापितानां आदेशानां श्रृङ्खलां समाविष्टा पाठसञ्चिका ।

Shell स्क्रिप्ट् प्रायः Shell भाषायां लिख्यन्ते Common Shell भाषाः यथा Bash, Sh इत्यादयः मूलभूताः Linux आदेशाः सन्ति ये वयं पूर्वं प्रवर्तयामः, ये Shell भाषायाः सन्ति ।

अस्य निम्नलिखित महत्त्वपूर्णविशेषताः सन्ति ।

  1. स्वचालनम् : पुनरावर्तनीयानां, जटिलानां क्रियाणां श्रृङ्खलां स्क्रिप्ट्रूपेण लिखितुं शक्यते ततः केवलं एतानि क्रियाणि स्वचालितं कर्तुं स्क्रिप्ट् चालयितुं शक्यते, येन समयस्य रक्षणं भवति तथा च त्रुटिः न्यूनीभवति यथा, प्रतिदिनं महत्त्वपूर्णसञ्चिकानां बैकअपं नियमितरूपेण गृह्णाति इति स्क्रिप्ट् ।
  2. प्रणाली प्रबन्धन : प्रणालीविन्यासः, उपयोक्तृअनुमतिः, प्रक्रियानियन्त्रणम् इत्यादीनां प्रबन्धनार्थं उपयुज्यते । यथा, नूतनं उपयोक्तारं निर्माय तेषां अनुमतिः सेट् करोति इति स्क्रिप्ट् ।
  3. बैच प्रोसेसिंग : एकत्रैव अनेकसञ्चिकाः अथवा दत्तांशः संसाधितुं क्षमता। यथा, एकस्मात् प्रारूपात् अन्यस्मिन् प्रारूपे चित्रसञ्चिकानां समूहं परिवर्तयति इति स्क्रिप्ट् ।
  4. प्रक्रिया नियन्त्रणम्: यथा सशर्तनिर्णयः (if-else), लूप् (for, while) इत्यादयः, स्क्रिप्ट्-संस्थाः भिन्न-भिन्न-स्थित्यानुसारं भिन्न-भिन्न-क्रियाः कर्तुं समर्थाः भवन्ति ।

तत्‌studio-condaअस्माकं विकासयन्त्रे मूलप्रयोक्तुः bash वातावरणस्य विन्याससञ्चिका अस्ति.bashrc, परन्तु वस्तुतः मुख्यविन्याससञ्चिका अस्ति/share/.aide/config/bashrc, अस्मिन् सञ्चिकायां केचन आदेशाः लिखिताः सन्ति ये अस्मान् केचन कार्याणि शीघ्रतरं कर्तुं शक्नुवन्ति, यथा:

export no_proxy='localhost,127.0.0.1,0.0.0.0,172.18.47.140'
export PATH=/root/.local/bin:$PATH
export HF_ENDPOINT='https://hf-mirror.com'
alias studio-conda="/share/install_conda_env.sh"
alias studio-smi="/share/studio-smi"
  • 1
  • 2
  • 3
  • 4
  • 5

exportवातावरणचरं सेट् कर्तुं उपयुज्यते ।aliasइति sh सञ्चिकां चरमध्ये प्रतिलिख्य एतत् टर्मिनल् मध्ये Our इति आदेशरूपेण निष्पादयितुं शक्यतेstudio-condaइति ।

अत्रstudio-smiयदा वयं उद्घाटयामः तदा वर्चुअल् मेमोरी इत्यस्य उपयोगं परीक्षितुं तस्य उपयोगः भवति/share/studio-smiसञ्चिका द्रष्टुं शक्यते : १.

#!/bin/bash

if command -v vgpu-smi &> /dev/null
then
    echo "Running studio-smi by vgpu-smi"
    vgpu-smi
else
    echo "Running studio-smi by nvidia-smi"
    nvidia-smi
fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

एषा लिपिः अस्ति वा इति परीक्षितुं प्रयुज्यते vgpu-smi आदेशः, यदि वर्तते तर्हि चालितः भविष्यतिvgpu-smi आभासी GPU (vGPU) कृते स्थितिसूचना प्रदर्शयितुं यदि नास्ति तर्हि तत् चालयिष्यतिnvidia-smi NVIDIA GPU स्थितिसूचना प्रदर्शयितुं । यथा अधः दर्शितम् : १.

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

nvidia-smi भौतिक NVIDIA GPU उपकरणानां निरीक्षणाय प्रबन्धनाय च एकं साधनम् अस्ति, तथा च...vgpu-smi NVIDIA vGPU प्रौद्योगिक्याः माध्यमेन वर्चुअलाइज्ड् GPU संसाधनानाम् निरीक्षणाय प्रबन्धनाय च डिजाइनं कृतम् ।

वयं पश्यामः/share/install_conda_env.shसञ्चिकायाः ​​विषयवस्तु यथा भवति ।

#!/bin/bash
# clone internlm-base conda env to user's conda env
# created by xj on 01.07.2024
# modifed by xj on 01.19.2024 to fix bug of conda env clone
# modified by ljy on 01.26.2024 to extend

XTUNER_UPDATE_DATE=`cat /share/repos/UPDATE | grep xtuner |awk -F= '{print $2}'`
HOME_DIR=/root
CONDA_HOME=$HOME_DIR/.conda
SHARE_CONDA_HOME=/share/conda_envs
SHARE_HOME=/share

list() {
    cat <<-EOF
  预设环境          描述

  internlm-base    pytorch:2.0.1, pytorch-cuda:11.7
  xtuner           Xtuner(源码安装: main $(echo -e "033[4mhttps://github.com/InternLM/xtuner/tree/main033[0m"), 更新日期:$XTUNER_UPDATE_DATE)
  pytorch-2.1.2    pytorch:2.1.2, pytorch-cuda:11.8
EOF
}

help() {
    cat <<-EOF
  说明: 用于快速clone预设的conda环境

  使用: 
  
    1. studio-conda env -l/list 打印预设的conda环境列表
  
    2. studio-conda <target-conda-name> 快速clone: 默认拷贝internlm-base conda环境
    
    3. studio-conda -t <target-conda-name> -o <origin-conda-name> 将预设的conda环境拷贝到指定的conda环境
        
EOF
}

clone() {
    source=$1
    target=$2

    if [[ -z "$source" || -z "$target" ]]; then
        echo -e "033[31m 输入不符合规范 033[0m"
        help
        exit 1
    fi

    if [ ! -d "${SHARE_CONDA_HOME}/$source" ]; then
        echo -e "033[34m 指定的预设环境: $source不存在033[0m"
        list
        exit 1
    fi

    if [ -d "${CONDA_HOME}/envs/$target" ]; then
        echo -e "033[34m 指定conda环境的目录: ${CONDA_HOME}/envs/$target已存在, 将清空原目录安装 033[0m"
        wait_echo&
        wait_pid=$!
        rm -rf "${CONDA_HOME}/envs/$target"
        kill $wait_pid
    fi

    echo -e "033[34m [1/2] 开始安装conda环境: <$target>. 033[0m"
    sleep 3
    tar --skip-old-files -xzvf /share/pkgs.tar.gz -C ${CONDA_HOME}
    wait_echo&
    wait_pid=$!
    conda create -n $target --clone ${SHARE_CONDA_HOME}/${source}
    if [ $? -ne 0 ]; then
        echo -e "033[31m 初始化conda环境: ${target}失败 033[0m"
        exit 10
    fi

    kill $wait_pid

    # for xtuner, re-install dependencies
    case "$source" in
    xtuner)
        source_install_xtuner $target
        ;;
    esac

    echo -e "033[34m [2/2] 同步当前conda环境至jupyterlab kernel 033[0m"
    lab add $target
    source $CONDA_HOME/bin/activate $target
    cd $HOME_DIR

    echo -e "033[32m conda环境: $target安装成功! 033[0m"

    echo """
    ============================================
                    ALL DONE!
    ============================================
    """
}

······
dispatch $@
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97

तेषु एकः*list*()तिष्ठतु, सर्वंstudio-condafunction, यत् कतिपयानि ऑपरेशन्स् कार्यान्वितुं शक्नोति, उदाहरणार्थं, वयं उपयोक्तुं शक्नुमःstudio-conda env listपूर्वनिर्धारितं वातावरणं द्रष्टुं :

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

इत्यस्मिन्‌*clone*()कार्यस्य मुख्यं कार्यं वातावरणस्य प्रतिलिपिः भवति, परन्तु केवलं पूर्वनिर्धारितवातावरणात् प्रतिलिपिं कर्तुं शक्यते मुख्यसङ्केतः वस्तुतः :

tar --skip-old-files -xzvf /share/pkgs.tar.gz -C ${CONDA_HOME}

conda create -n $target --clone ${SHARE_CONDA_HOME}/${source}
  • 1
  • 2
  • 3

पूर्वनिर्धारितपर्यावरणस्य संपीडितं संकुलं अनजिप् कुर्वन्तु, ततः क्लोनद्वारा आभासीवातावरणं रचयन्तु तथापि, किञ्चित् तर्कः अपि शेल् स्क्रिप्ट् मध्ये सेट् भवति, परन्तु केवलं किञ्चित् निर्णयः अस्ति यदि भवान् कस्यापि प्रोग्रामिंगभाषायाः परिचितः अस्ति to understand it.यदि भवन्तः तत् अवगन्तुं न शक्नुवन्ति तर्हि इदमपि महती समस्या नास्ति।

अतः वयं स्वस्य निर्मितं वातावरणं कथं योजयामःstudio-condaमध्यं किम् ?

प्रथमं सोपानं /share/conda_envs इत्यस्य अन्तर्गतं नूतनं कोण्डा वातावरणं निर्मातुं भवति

conda create -p /share/conda_envs/xxx पायथन = 3.1x

द्वितीयं सोपानं स्थानीययन्त्रे /root/.conda/pkgs इत्यस्य अधः सञ्चिकानां प्रतिलिपिं /share/pkgs इत्यत्र कृत्वा पुनः संपीड्य प्रतिस्थापयितुं (एतत् सोपानं कोण्डा निर्माणप्रक्रियायाः समये बृहत् सार्वजनिकसङ्कुलानाम् संग्रहणं भवति यत् पुनः पुनः डाउनलोड् न भवति)

cp -r -n /मूल/.कोंडा/पीकेजीएस/* /शेयर/पीकेजीएस/

cd /शेयर && टार -zcvf pkgs.tar.gz pkgs

तृतीयः सोपानः install_conda_env.sh इत्यस्मिन् सूचीकार्यं अद्यतनं कृत्वा नूतनं कोण्डा वातावरणविवरणं योजयितुं भवति ।

उपरिष्टाद् विकासयन्त्रेण पूर्वनिर्धारितरूपेण प्रदत्तः विधिः अस्ति वस्तुतः अन्यः विधिः अस्ति, यस्याः वयं पूर्वं उपयोगं कृतवन्तःcondaनिर्यातितम्xtuner0.1.17वर्चुअल् वातावरणानां कृते विन्याससञ्चिकाः, वयं उपयोक्तुं शक्नुमःconda env create -f xtuner0.1.17.yml आभासीवातावरणं पुनःस्थापयितुं आदेशः ।एतत् ऑपरेशनं कार्यान्वितुं सरलं Shell स्क्रिप्ट् लिखामः: वयं रचयामःtest.shसञ्चिकायां, निम्नलिखितसामग्री लिखन्तु:

#!/bin/bash

# 定义导出环境的函数
export_env() {
    local env_name=$1
    echo "正在导出环境: $env_name"
    # 导出环境到当前目录下的env_name.yml文件
    conda env export -n "$env_name" > "$env_name.yml"
    echo "环境导出完成。"
}

# 定义还原环境的函数
restore_env() {
    local env_name=$1
    echo "正在还原环境: $env_name"
    # 从当前目录下的env_name.yml文件还原环境
    conda env create -n "$env_name" -f "$env_name.yml"
    echo "环境还原完成。"
}

# 检查是否有足够的参数
if [ $# -ne 2 ]; then
    echo "使用方法: $0 <操作> <环境名>"
    echo "操作可以是 'export' 或 'restore'"
    exit 1
fi

# 根据参数执行操作
case "$1" in
    export)
        export_env "$2"
        ;;
    restore)
        restore_env "$2"
        ;;
    *)
        echo "未知操作: $1"
        exit 1
        ;;
esac
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

Shell स्क्रिप्ट् इत्यस्य निर्माणं सम्पन्नं कृत्वा स्क्रिप्ट् इत्यस्य अनुमतिः दातव्या अस्ति ।chmod +x test.sh , ततः प्रविशतु./test.sh restore xtuner0.1.17तथा च वर्चुअल् वातावरणं पुनःस्थापयितुं Enter नुदन्तु ।

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

परन्तु प्रत्यक्षप्रयोगात् एतत् बहु भिन्नं नास्ति यदि एतस्य क्रियायाः तुलना विकासयन्त्रे क्रियायाः सह क्रियते ।studio-conda आदेशानां संयोजनम् अतीव सुलभं भविष्यति, परन्तु वातावरणस्य प्रतिलिपिकरणस्य पद्धतयः भिन्नाः सन्ति ।अतः यदि भवान् तत् कार्यान्वितुं इच्छति तर्हि भवता करणीयम्/share/install_conda_env.shसञ्चिकायाः ​​तर्कः परिवर्तितः भवति ।

ठीकम्, उपरिष्टाद् अस्माकं स्तरस्य सर्वा सामग्री अस्ति इति आशासे यदि भवान् Linux विषये अधिकं ज्ञातुम् इच्छति तर्हि अहं न पठामि Linux ज्ञात्वा अस्माकं कृते शिक्षणं सहायकं भविष्यति बृहत् मॉडल् इत्यस्य बहु प्रभावः नास्ति, परन्तु यदि भवान् Linux सम्यक् शिक्षते तर्हि बृहत् मॉडल् इत्यस्य शिक्षणं अतीव सुचारुरूपेण करिष्यति। अन्ते वयं पूर्वं निर्धारितं स्तरं पूर्णं कर्तुं मा विस्मरन्तु!

ब्लोग् लिङ्क् : १.linux इति

सामान्यसमस्या

1. InternStudio विकासयन्त्रवातावरणं भग्नम् अस्ति विकासयन्त्रवातावरणं कथं आरभणीयम्?

सावधानीपूर्वक निष्पादित करें ! ! ! !सर्वे दत्तांशाः नष्टाः भविष्यन्ति।एतत् केवलं InternStudio मञ्चे एव उपलभ्यते।

  • प्रथमं सोपानं स्थानीयं टर्मिनलं ssh मार्गेण विकासयन्त्रेण सह संयोजयितुं भवति (सञ्चालनार्थं ssh मार्गेण संयोजितं भवितुमर्हति, न तु जालपुटे!!!)
  • द्वितीयं चरणं निष्पादनम् rm -rf /root, प्रतीक्षां कर्तुं प्रायः १० निमेषाः यावत् समयः स्यात्
  • तृतीयं सोपानं विकासयन्त्रं पुनः आरभ्यत इति प्रणाली /root मार्गे विन्याससञ्चिकां पुनः सेट् करिष्यति ।
  • चतुर्थं पदम् ln -s /share /root/share

स्तरीय मिशन

स्तरस्य मिशनं उत्तीर्णं कर्तुं भवद्भिः प्रमुखपदेषु स्क्रीनशॉट् ग्रहीतुं आवश्यकम् अस्ति:

मिशनस्य विवरणम्पूर्णतायै समयः आवश्यकः
नियोगSSH संयोजनं पोर्ट् मैपिंगं च सम्पूर्णं कृत्वा चालयन्तुhello_world.py१०मि
वैकल्पिकं कार्यम् 1विकासयन्त्रे मूलभूतं Linux आदेशं सम्पूर्णं कुर्वन्तु१०मि
वैकल्पिकं कार्यम् २विकासयन्त्रेण सह दूरतः सम्बद्धं कर्तुं तथा च कोण्डा वातावरणं निर्मातुं VSCODE इत्यस्य उपयोगं कुर्वन्तु१०मि
वैकल्पिकं कार्यम् 3रचयित्वा चालयन्तुtest.shप्रलेख१०मि