जब मैं SSH के आसपास .vimrc कैसे लाऊं?


34

मेरा काम विभिन्न मशीनों से जुड़ने के लिए SSH का उपयोग करना और फिर उन मशीनों पर फ़ाइलों को संपादित करने के लिए vim का उपयोग करना शामिल है। समस्या यह है कि मुझे अपने .vimrc फ़ाइल को लगातार कॉपी करना पड़ता है। यह विम खोलने के लिए बहुत कष्टप्रद है और इसकी कोई सेटिंग नहीं है। क्या यह संभव है कि मैं अपने साथ मशीन से लेकर मशीन तक हर जगह अपनी नकल न करूं।


@ duffbeer703: हाँ, जैसे, set background=darkया set background=light, कुछ ऐसा है जो कोई लिनक्स वितरण नहीं छूता है और उपयोगकर्ता के लिए पूरी तरह से विनीत है। </ कटाक्ष>
ह्यूबर्ट करियो

अभी तक उत्तरों को पढ़े बिना, मुझे लगता है कि यह सैद्धांतिक रूप से संभव है क्योंकि ssh-agent और x-term को स्थानांतरित किया जा सकता है, लेकिन दूसरी ओर जिन्हें विशेष रूप से ssh द्वारा नियंत्रित किया जाता है और मुझे लगता है कि क्रेज़ी एज के मामलों को संभालने के लिए कई वर्कअराउंड हैं। ।
प्रात:

जवाबों:


24

मै तुम्हारा दर्द समझ सकता हू। संस्करण नियंत्रण (तोड़फोड़) के तहत मेरे पास मेरी सभी ~ /.c rc फाइलें हैं, मैंने 1998 में सीवीएस का उपयोग करते हुए शानदार काम किया है। इसे करने का एक तरीका यह है कि जब आप अपनी होम डायरेक्टरी में खड़े हों तो अपनी सभी आरसी फाइलों को इस तरह देखें।

svn co svn+ssh://user@host/path/to/repo/trunk/home/user .
A    .signature
A    .vimrc
A    .bashrc
A    .screenrc
A    .psqlrc
[...]
Checked out revision 7645.

जब आप svn अपडेट चलाते हैं तो इस तरह से कॉन्फिग फाइलों को भी विभिन्न कंप्यूटरों में सिंक और अपडेट किया जाएगा।


3
मुझे लगता है कि यह जितना अच्छा है उतना अच्छा है। चाल यह है कि मुझे एक मशीन पर एक रिपॉजिटरी सेटअप करना होगा जो अन्य सभी मशीनों से सुलभ है। एक सुरक्षित नेटवर्क टोपोलॉजी के साथ, यह हमेशा आसान नहीं होता है।
अपराह्न

मैंने हाल ही में ऐसा करना शुरू किया, यह आश्चर्यजनक है। मैं नहीं जानता कि मैं इसके बिना कैसे बच गया।
रिचो

5
शायद गिट या कुछ अन्य वितरित संस्करण नियंत्रण प्रणाली का उपयोग करें। उस मामले में यह एक मशीन तक पहुंच के लिए पर्याप्त है जहां कॉन्फ़िगरेशन फ़ाइलों की जांच की जाती है।

44

प्रत्येक सर्वर पर .vimrc लाने के बजाय आपको अपने स्थानीय विम से दूरस्थ फ़ाइलों को संपादित करने की आवश्यकता क्यों है:

Vim / gvim में, रन करें:

:e scp://remoteuser@server.tld//path/to/document

या इस तरह शुरू करें:

vim scp://remoteuser@server.tld//path/to/document

यह फ़ाइल को मूल रूप से खोलता है (यह वास्तव में फ़ाइल को स्थानीय रूप से कॉपी करता है), और जब आप सहेजते हैं, तो यह संपादित फ़ाइल को आपके लिए सर्वर पर वापस भेज देता है।

यह एक ssh पासवर्ड मांगता है, लेकिन इसे ssh कीज़ के माध्यम से सुव्यवस्थित किया जा सकता है।

जैसा कि अन्य लोगों ने इस पद्धति का एकमात्र दोष बताया है कि आपको मशीन पर सीधे काम करते समय पथ / फ़ाइल की क्षमता नहीं मिलती है।

अधिक जानकारी के लिए, निम्न ट्यूटोरियल देखें


Sc के लिए +1: // संकेत लेकिन मुझे लगता है कि यदि आप किसी फ़ाइल को संपादित करते समय पथ को कॉपी करना चाहते हैं तो यह समाधान थोड़ा बोझिल हो सकता है।
चमी जी

1
हाँ, यह बहुत बोझिल है। मुझे दूरस्थ मशीनों के आसपास बहुत सारी प्रोगिंग करनी होती है, जो मुझे चाहिए फाइलें खोजने के लिए, और अक्सर सुडो विशेषाधिकार के साथ संपादित करना पड़ता है।
अपराह्न

+1 यह मेरे लिए वास्तव में अच्छा काम करता है। धन्यवाद :)
दारोगा एन्योर

ऐसे मामले तुम वहाँ प्रवेश से एक स्थानीय सर्वर के लिए एक मुख्य सर्वर (login.example.com) तो में लॉग इन करने की जरूरत है (top.secret.example.com) कर रहे हैं
PUK

यदि आप अपने स्थानीय निर्देशिका में दूरस्थ फ़ाइल संरचना को माउंट करते हैं, तो यह अच्छी तरह से काम करता है, उदाहरण के लिए fusermount के साथ।
relet

18

आप हर बार लॉग इन करने पर इसे स्वचालित रूप से कॉपी करने के लिए एक बैश स्क्रिप्ट बना सकते हैं:

#!/usr/bin/env bash

scp ~/.vimrc $1:
ssh $1

आप इसे उदाहरण के लिए ssh_vim कह सकते हैं। यह एक आदर्श समाधान नहीं है, लेकिन आपकी समस्या का समाधान करेगा।

यदि पहले से ही वहाँ है तो आप इसे पहले चेक कर सकते हैं। यदि आप हमेशा एक ही मशीन से ssh नहीं चला रहे हैं, तो आप स्क्रिप्ट को दूसरी मशीन से scp से प्राप्त करने के लिए स्क्रिप्ट बदल सकते हैं।

EDIT1

संबंधित नोट पर, आप sshfs के साथ रिमोट मशीन के फाइल सिस्टम को भी माउंट कर सकते हैं। इस तरह से आप अपने पर्यावरण और उपकरणों (न केवल .vimrc) से लाभान्वित होते हैं और आपके पास शेल पूरा होता है (जिसका उपयोग आपने scp का उपयोग नहीं किया है। //)।

EDIT2

मुझे अभी पता चला है कि आप अपने .vimrc फ़ाइल को scp: //, जैसे प्रयोग कर सकते हैं:

:source scp://you@your_computer//yourpath/.vimrc

यह vim कमांड लाइन से काम करता है, लेकिन फिलहाल मुझे नहीं पता कि इसे कैसे स्वचालित करना है। यह '-u' स्विच के साथ न तो .vimrc में और न ही $ VIMINIT के साथ काम करता प्रतीत होता है।

EDIT3

मुझे यह मिला! आप अपने संदर्भ के होस्ट से लिया गया .vimrc के साथ विम शुरू करने के लिए ऐसा कर सकते हैं:

vim -c ':source scp://you@your_computer//yourpath/.vimrc'

विकल्प '-c' vim लॉन्च करने के ठीक बाद कमांड निष्पादित करता है।

टाइपिंग से बचने के लिए आप अपनी पसंद के शेल में एक उपनाम बना सकते हैं। बैश में यह इस तरह होगा:

alias vim="vim -c ':source scp://you@your_computer//yourpath/.vimrc'"

2
यह तभी काम करता है कंप्यूटर आप ssh'ing कर रहे हैं में वापस कंप्यूटर आप ssh'ing कर रहे हैं से कनेक्ट कर सकते से । यह हमेशा ऐसा नहीं होता है, उदाहरण के लिए यदि आपका कंप्यूटर NAT के पीछे है।
त्रिशूल

11

यदि आप सार्वजनिक कुंजी प्रमाणीकरण का उपयोग कर रहे हैं, तो आप इसे अपने में उपयोग कर सकते हैं ~/.ssh/config:

Host *
   PermitLocalCommand yes
   LocalCommand bash -c 'scp -P %p %d/.vimrc %u@%n: &>/dev/null &'

मुझे ऊपर बताई गई स्क्रिप्ट ट्रिक से बेहतर लगता है क्योंकि यह sshकमांड के इनवोकेशन (जब अतिरिक्त मापदंडों को निर्दिष्ट करने आदि) को गड़बड़ नहीं करता है ।


यह सबसे अच्छा है। मेरे लिए मैं बदलना पड़ा %u@%n:करने के लिए %r@%n:, क्योंकि अपने लैपटॉप के उपयोगकर्ता नाम से ssh उपयोगकर्ता नाम अलग
मोशे

4

समाधान के एक जोड़े:

1) अपने होम फोल्डर के लिए एक NFS शेयर बनाएं और इसे कई स्थानों पर मैप करें।

2) एक पहचान / कुंजी फ़ाइल के साथ अपने सर्वर से अपने .vimrc को जोड़ने के लिए एक छोटी स्क्रिप्ट बनाएं। यह कुछ इस तरह दिख सकता है (स्यूडोकोड):

connectString = arg0  #username@ipaddress

scp -i ~/.ssh/indentity connectString:~/ ~/.vimrc
ssh -i ~/.ssh/indentity connectString

1
ssh कीज़, वें प्लेटेक्स्ट पासवर्ड समस्या का समाधान करेगी।
लीरनूना

NFS शेयर बनाने के लिए आप किस टूल का उपयोग करेंगे?
वाडीह एम।

@ लिरनूना - लगता है आपने मुझे अपने 'दोहे' के क्षण से पहले ही पकड़ लिया और मेरी पोस्ट को संपादित कर दिया। @Wadih - NFSD आमतौर पर डिफ़ॉल्ट रूप से 'nix सिस्टम' पर स्थापित होता है। आप डिफ़ॉल्ट रूप से (आमतौर पर) एनएफएस शेयरों को भी माउंट कर सकते हैं।
मौसिन

1
एनएफएस साझाकरण एक अच्छा विचार है, लेकिन इस तरह की चीजों को तैनात करने की सीमित क्षमता में चलेगा, विशेष रूप से फ़ायरवॉल वातावरण या उन स्थानों पर जहां आप उत्पादन सर्वर (विशेषकर एनएफएस के साथ) को संशोधित नहीं करना चाहते हैं
ericslaw

आप सही एरिकस्लो हैं। मैंने यह धारणा बनाई कि ये एकल नेटवर्क के भीतर कई मशीनें थीं।
मोशिन

4

सनी256 के समान ही उत्तर है, लेकिन सबवर्सन के बजाय गिट का उपयोग करें।

फ़ाइलों के साथ एक मुख्य शाखा रखें जो सभी कंप्यूटरों के लिए सामान्य है, और प्रत्येक नए कंप्यूटर के लिए एक शाखा है।

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


+1 एक छोटा सवाल: मुझे आश्चर्य है कि क्या तोड़फोड़ में आम फाइलों के लिए बाहरी परिभाषाओं का उपयोग करना बेहतर है? इस तरह से आप उन्हें एक स्थान पर रख सकते हैं और किसी भी शाखा में ले जा सकते हैं
यूजीन यर्मश

3

मुझे पता है कि यह एक पुराना धागा है, लेकिन एक तरीका यह है कि मैं sshfs का उपयोग कर रहा हूं, जो फ़ाइल सिस्टम को फ्यूज पर माउंट करता है। स्थानीय विम संपादन के सभी करता है, इसलिए नकल करने का कोई कारण नहीं है।

थीस में नकारात्मक पक्ष यह है कि किसी अन्य कमांड को किसी भी कमांड के लिए खोलना होगा, जिसे रिमोट सर्वर पर चलाने की जरूरत है, लेकिन संपादन के लिए मुझे यह सबसे अच्छा लगता है।

इसमें सिस्टम क्लिपबोर्ड का उपयोग करने में सक्षम होने का जोड़ा बेनीफिट भी है।


2

मैं अपने डॉटफ़ाइल्स का प्रबंधन करने के लिए https://github.com/andsens/homeshick का उपयोग कर रहा हूं , और उन्हें गितुब पर संग्रहीत कर रहा हूं ।

होमशिक 100% बैश में लिखी गई है, और आपको "महल" का प्रबंधन करने में मदद करती है, जो सिर्फ एक git repos है जिसमें / home / निर्देशिका शामिल है। इसमें मौजूदा डॉट फाइलों को रेपो में ले जाने और उन्हें सिम्बलिंक्स से बदलने की आज्ञा है। और एक नई मशीन पर अपने घर निर्देशिका में रेपो में सभी फ़ाइलों को समेटने के लिए।

इसलिए सामान्य विचार आपके डॉटफ़ाइल्स को एक संस्करण नियंत्रण प्रणाली में रखता है, और वास्तविक पथ से उन्हें सहानुभूति देता है। इस तरह से आपके रेपो को आपके होम डायर से शुरू करने की जरूरत नहीं है और इसमें एक टन फाइलें हैं जिन्हें आप कभी जोड़ना नहीं चाहते हैं।


क्या आप लिंक से कुछ जानकारी जोड़ सकते हैं? अगर लिंक टूट जाता है तो जवाब में सुधार होगा और जानकारी प्रदान करेगा।
डेव एम

1
मैंने ऑपरेशन और तर्क के बारे में कुछ समझाया। मुझे दस्तावेज़ की प्रतिलिपि बनाने में कोई मूल्य नहीं दिखाई दिया।
हारून मैकमिलिन

1

यदि आप मेरे जैसे हैं और कई विकास मशीनों (वर्चुअल मशीनों के साथ-साथ) विभिन्न कारणों से आप ssh कुंजियाँ, एक स्मार्ट bash_profile, और अपनी पसंद के एक RCS जोड़ सकते हैं।

मैं nfs / samaba / sshfs का उपयोग करके दूसरा होगा। एक ड्रा बैक यह है कि यदि आपके पास हर समय नेटवर्क एक्सेस नहीं है, तो आप उस चीज को एक्सेस नहीं कर सकते हैं, जिसकी आपको आवश्यकता है (उड़ान, कोई वाईफाई, फायरवॉल, रूटिंग इश्यू आदि)। मैं जिन मशीनों को सिंक में रख रहा हूं, वे सभी एक ही समय में उपलब्ध नहीं हैं, लेकिन मैं उनके बीच जानकारी साझा करना चाहता हूं।

निम्नलिखित है कि मैंने इसके बारे में इंटरनेट से कई विचारों को उधार लिया।

.bash_profile कुछ इस तरह हो सकता है

$HOME/bin/shell_ssh_agent

मुझे यह कुछ स्थानों से मिला है, लेकिन अब इसका लिंक नहीं मिल सकता है। Shell_ssh_agent फ़ाइल:

#!/bin/bash

SSH_ENV=$HOME/.ssh/environment

#echo "starting"

function start_agent {
    #echo "reaping agents"
    killall ssh-agent
    #echo "Initialising new SSH agent..."
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
    #echo succeeded
    chmod 600 ${SSH_ENV}
    . ${SSH_ENV}
    /usr/bin/ssh-add;
}

# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
    . ${SSH_ENV}
    #echo "sourced ssh env"
    ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent > /dev/null || { start_agent; }
else
    start_agent;
fi

अब पहले लॉगिन पर आप अपनी कीज़ सेट करें। लॉग आउट करें और इसमें जीवन आसान हो गया।

अपनी सभी लिपियों को एक आरसीएस में रखें, इससे विकास मशीनों को सिंक में रखना आसान हो जाता है। मैं गिट का उपयोग करता हूं। Git के साथ प्रमाणीकरण ssh के माध्यम से है इसलिए ssh कीज़ यहाँ भी मदद करती हैं। इस बिंदु पर ध्यान दें कि आप nfs जैसी किसी चीज़ का उपयोग कर सकते हैं। मैं अभी भी एक आरसीएस का एक प्रशंसक हो सकता हूं, जिसका कारण मैं नीचे बता रहा हूं।

उपयोग मामला है

  1. लॉगिन पहली बार, चाबियाँ सेटअप मिलता है
  2. यदि आरसीएस आपकी व्यक्तिगत स्क्रिप्ट की जाँच नहीं करता है (और ज़रूरत पड़ने पर अपडेट / मर्ज करता है, तो यह आपके .bash_profile का भी हिस्सा हो सकता है यदि आप इसे चाहते थे)
  3. संपादित करें, विशेष स्क्रिप्ट, आदि और उन्हें प्रतिबद्ध
  4. जब अन्य मशीनों में लॉग इन किया जाता है तो एक अद्यतन / मर्ज / चेकआउट करें। यह सब कुछ सिंक में रखता है; यानी कोई और अधिक नकल करने वाली फाइलें जो कभी-कभी आपके पेट भर जाती हैं और आप नहीं चाहते थे।
  5. एक साइड बेनिफिट के रूप में आपको RCS की शक्ति मिलती है। मैं कभी-कभी लिपियों या विन्यासों के प्रतिकूल परिवर्तन करता हूं और वापस और इसी तरह रोल करने की आवश्यकता होती है।

जो कुछ मैं आगे की कोशिश करना चाहता हूं वह प्रारंभिक लॉगिन / सेटअप को एक मेकफाइल में लपेटना है जिसे मैं नई मशीन पर कॉपी करता हूं। फिर मेकफाइल आपकी चाबियों, आरसीएस, आदि को स्थापित करने का काम कर सकता है। जाहिर है कि यहां कुछ ओवरहेड है, लेकिन यदि आप अंत में बहुत सारी मशीनों की स्थापना करते हैं:

  1. एक समय बचानेवाला
  2. सिंक में विकास मशीनों के कॉन्फ़िगरेशन और व्यक्तिगत स्क्रिप्ट को रखना आसान है
  3. स्क्रिप्ट और कॉन्फ़िगरेशन में परिवर्तन का प्रबंधन।

1

मैं एक मेकफाइल का उपयोग करता हूं, जिसमें मेरे द्वारा लॉग ऑन किए जाने वाले सभी सर्वरों की एक सूची होती है और जब मैं अपनी स्थानीय मशीन में बदलाव करता हूं, तो मेकफाइल का उपयोग करके 'मेक' स्वचालित रूप से चलाया जाता है जो सभी सर्वरों को किसी भी परिवर्तन या किसी भी प्लगइन्स के साथ अपडेट करता है


स्क्रिप्ट करने का एक फैंसी तरीका अधिक लगता है। बनाओ महान है जब एक फ़ाइल को दूसरे से बना रहे हैं, लेकिन मैं इसे ऐसी स्थिति में उपयोग नहीं करना चाहूंगा जहां हर नियम एक " .PHONY." है
एंथनी

1

sshrc इस समस्या को हल करता है। आपने अपना .vimrc ~ / .sshrc.d / में डाल दिया और फिर export VIMINIT="let \$MYVIMRC='$SSHHOME/.sshrc.d/.vimrc' | source \$MYVIMRC"`/। Sshrc में जोड़ें ।


1

मैंने इसके लिए एक सरल उपकरण लिखा है , जो आपको जब भी आपके एसएसएचडी फ़ाइल को ट्रांसपोर्ट करने के लिए , गैर-मानक तरीके से एसएसएचडी बिल्ट-इन कॉन्फिगर विकल्प का उपयोग करके आपको मूल रूप से ट्रांसपोर्ट करने की अनुमति देगा ।

कोई अतिरिक्त svn, scp, copy/paste, आदि की आवश्यकता है।

यह सरल, हल्का है, और मैंने अब तक परीक्षण किए गए सभी सर्वर कॉन्फ़िगरेशन पर डिफ़ॉल्ट रूप से काम करता है।

https://github.com/gWOLF3/viSSHous


0

परिवर्तनशील VIMINIT का उपयोग करना:

export VIMINIT='set number'

और इसे दूरस्थ सर्वर को अग्रेषित करना:

ssh remoteuser@remoteserver -o SendEnv=LC_VIMINIT -t 'export VIMINIT=$LC_VIMINIT && bash'

.bash_profiles या .bashrc का उपयोग करना आसान है

export VIMINIT='
set number
'

export LC_VIMINIT=$VIMINIT

sshh (){
ssh -o SendEnv=LC_VIMINIT $1 -t 'export VIMINIT=$LC_VIMINIT && bash'

अब कनेक्शन के लिए sshh का उपयोग करके दूरस्थ सर्वर पर vim चलाने का प्रयास करें:

sshh remoteuser@remoteserver

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

export LC_VIMINIT="
set number
set nocompatible
filetype off
set rtp+=~/.[USER]_vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'


set shell=/bin/bash
call vundle#end()
filetype plugin indent on
"

export VIMINIT=$LC_VIMINIT

sshh (){
        if [[ $1 ]]; then
                ssh-copy-id $1 &>/dev/null &&
                rsync -lzr --partial --del ~/.[USER]_vim ${1}: &&
                ssh -o SendEnv=LC_VIMINIT $1 -t 'export VIMINIT=$LC_VIMINIT && bash';
        else
                echo "Provide remote user@host";
        fi
}

0

मेरी भी यही स्थिति है, लेकिन यह सिर्फ " .vimrc" नहीं है। मेरे पास भी चीजें हैं

  • बैश कॉन्फ़िगरेशन, प्रॉम्प्टिंग और फ़ंक्शंस,
  • ssh कॉन्फ़िगरेशन और प्राधिकरण फ़ाइलें,
  • शेल स्क्रिप्ट मुझे पसंद है।
  • बेशक मेरे vimrc, लेकिन यह भी कुछ विम कार्यों और वाक्यविन्यास हाइलाइटिंग फ़ाइलें।

मेरा समाधान (मूल रूप से "डिस्ट" के साथ 30 साल पहले शुरू हुआ!) एक नाइटली क्रोन स्थापित करना है जो मैं काम करने वाली सभी मशीनों के लिए एक न्यूनतम होम कॉन्फ़िगरेशन rsync करता हूं, ताकि यह रात को अपडेट हो।

इस तरह मेरे साथ काम करने वाली अन्य सभी मशीनों को आज तक संभाल कर रखा गया है! मैं सिर्फ 'खातों' की सूची में एक नई मशीन जोड़ सकता हूं और इसे शुरू करने के लिए एक मशीन का वितरण कर सकता हूं।

अधिक होने की आवश्यकता नहीं है, और आप छोटे से शुरू कर सकते हैं और इसे और अधिक जटिल बना सकते हैं जैसे आप जाते हैं। जैसा कि आप सोच सकते हैं कि 30 वर्षों के बाद मेरा वितरण अब जटिल है, इसलिए मैं इसे यहां नहीं रखूंगा। यह कहने की आवश्यकता नहीं है कि यह कुछ नेटवर्क के लिए दूसरों के लिए कुछ कॉन्फ़िगरेशन स्वैप करने जैसी चीजें भी करता है, घर की सफाई (ईजी: कचरा, कैश फाइलें), सुनिश्चित करें कि घर की अनुमति सभी सही हैं, और इसी तरह।

ध्यान दें, मैं केवल एक 'होम' मशीन से सभी शेष के लिए पासवर्ड-कम ssh लॉगिन की अनुमति देता हूं, फिर कभी वापस नहीं! कोई भी क्रॉस ssh पासवर्ड प्रोटेक्टेड है।


-1

आप एक निश्चित स्क्रिप्ट पर विचार कर सकते हैं जो आपको एक निश्चित कीस्ट्रोक को दबाने पर अपना पथ और वातावरण (जैसे EXRC चर) सेट करने की अनुमति देता है। किसी को एक जैसी स्क्रिप्ट पोस्ट करने से पहले बहुत लंबा नहीं होना चाहिए।

जब आपका सर्वर कुछ दर्जन से अधिक की संख्या को बढ़ाता है (हजारों लगता है) तो कुछ आसानी से एक 'कुंवारी' बॉक्स पर अपने वातावरण को सेटअप करना एक वास्तविक जीवनरक्षक है

अक्सर जब मैं एक बॉक्स में प्रवेश करता हूं, तो यह पहली बार मेरा होमडियर बनाता है!


उम्मीद कुछ भी करने का एक बहुत ही नाजुक तरीका है। एक अलग ओएस, आर्किटेक्चर, या यहां तक ​​कि एक उन्नयन, और यह टूट सकता है। कुछ छोटे के लिए ठीक है, लेकिन समय के अनुसार विस्तार योग्य नहीं है।
एंथनी

-1

इसे निम्नलिखित बैश ऑन्लाइनर के साथ महसूस किया गया था। क्योंकि यह प्रक्रिया प्रतिस्थापन के साथ किया जाता है, अस्थायी फ़ाइलें नहीं बनाई जाती हैं।

ssh -t user@host '
bash --rcfile <(
    echo -e ' $(cat <(echo "function lvim() { vim -u <(echo "$(cat ~/.vimrc|base64)"|base64 -d) \$@ ; }") \
                    ~/dotfiles/{.bashrc,sh_function,sh_alias,bash_prompt} \
                    <(echo -e alias vim=lvim) | \
                    base64 
               ) ' \
    |base64 -d)'

https://gist.github.com/blacknon/a47083f3bbbd0374998bdf7e3b3396cc

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.