আমি কি এসএসএইচকে কেবলমাত্র প্রবেশ বা ট্যাব টিপে তথ্য প্রেরণ করতে বলতে পারি, এবং প্রতিটি স্বতন্ত্র কী বা চাপের পরে না?
আমি কি এসএসএইচকে কেবলমাত্র প্রবেশ বা ট্যাব টিপে তথ্য প্রেরণ করতে বলতে পারি, এবং প্রতিটি স্বতন্ত্র কী বা চাপের পরে না?
উত্তর:
না, কারণ এসএসএইচ-এর জানার কোনও উপায় নেই যে আপনি কী টাইপ করছেন তা কার্যের জন্য প্রবেশ বা ট্যাব দরকার হবে - উদাহরণস্বরূপ, যদি আপনি আপনার কমান্ডের ইতিহাসটি দিয়ে যাচ্ছেন, তবে ^R
বা তীরগুলি তীর দ্বারা প্রেরণ করা হত না তাদের, এবং এটি হবে ... অপ্রীতিকর।
স্ক্রিনে প্রদর্শিত হওয়ার জন্য আপনাকে প্রতিটি চরিত্রের মধ্যে অপেক্ষা করতে হবে না; আপনি যদি টাইপ করতে হয় তা যদি জানেন তবে আপনার পছন্দমতো তাড়াতাড়ি তাড়াতাড়ি টানুন এবং টার্মিনালটি আপনি টাইপিং বন্ধ করার সময় থেকে প্রায় এক রাউন্ড-ট্রিপ টাইমে ধরা পড়বে, যা আপনার থেকে বেরিয়ে আসার মতোই ভাল যাইহোক যাইহোক একটি লাইন-বাফার সেটআপ (প্যাকেটের ক্ষতি হ'ল আলাদা, তবে এটির নিজস্ব আকর্ষণীয় বাজির পরিচয় দেয়)।
পুটিটি দুটি বৈশিষ্ট্য সরবরাহ করে যা ব্যবহারযোগ্য হতে পারে: "লোকাল প্রতিধ্বনি" এবং "স্থানীয় লাইন সম্পাদনা" " স্থানীয় লাইন সম্পাদনা সবকিছুকে বাফার করে এবং কেবল একটি লাইন ফেরতের পরে এটি সার্ভারে প্রেরণ করে। এটি কমান্ড লাইনটিকে মোকাবেলা করতে আরও সহজ করে তুলতে পারে তবে এটি কোনও পাঠ্য সম্পাদককে নরক ব্যবহার করেও করতে পারে।
পুটির কাছে কিছু জিনিস সক্ষম করার / অক্ষম করার জন্য অন্যান্য কিছু বিকল্প রয়েছে (নাগলের অ্যালগরিদম) যা সংযোগের বিলম্বকে অনুভব করতে পারে। আমি এটি দেখতে পাচ্ছি, ওপেনএসএইচ ক্লায়েন্ট পটিটি এই বিষয়ে সমস্ত বৈশিষ্ট্য সরবরাহ করে না এবং আমি তুলনা করি এমন একটি লিনাক্স বিকল্প সম্পর্কে জানি না।
অন্যথায়, womble এর অধিকার আছে।
মোশকে এই সঠিক সমস্যাটির সমাধান করার জন্য নকশা করা হয়েছিল। এটি উচ্চ-বিলম্ব এবং অবিশ্বাস্য সংযোগের উপরে ব্যবহারের জন্য ডিজাইন করা হয়েছে এবং এটি স্থানীয় প্রতিধ্বনি এবং লাইন সম্পাদনা সরবরাহ করে।
ssh host.example.org bash
(অথবা আপনি যে কোনও শেল ব্যবহার করতে চান) দিয়ে এসএসএস সেশনটি খুলুন ।
আপনি রিমোট শেলটিতে লাইন-বাফার মোড পাবেন, যার অর্থ আপনি প্রম্পট এবং লাইন-সম্পাদনা পাবেন না তবে আপনি স্থানীয় প্রতিধ্বনি এবং "একবারে একটি লাইন" মোড পাবেন। খুব খারাপ সংযোগের সাথে কাজ করার সময় এটি কখনও কখনও দরকারী। সমস্ত প্রোগ্রাম সঠিকভাবে চলবে না কারণ আপনার ছদ্ম-টিটি হবে না তবে বেশিরভাগ ইউনিক্স ইউটিলিটিগুলি ঠিক কাজ করে।
হালনাগাদ:
উপরের কৌশলটি ব্যবহার করার সময় আপনি স্থানীয় প্রান্তে আরএলএফএ নামক একটি সুবিধাজনক মোড়কের প্রোগ্রাম ব্যবহার করে সাধারণ লাইন সম্পাদনা ( রিডলাইন ) পেতে পারেন । শুধু চালান ।rlfe ssh host.example.org bash
একই সমস্যা রয়েছে ( কিছু স্থানে ভয়াবহ মোবাইল ডেটা মানের কারণে উচ্চ বিলম্ব এবং প্যাকেট ক্ষতি ), এবং মোশ আমার জন্য এটি কাটছে না (এটি সমস্ত দূরবর্তী হোস্টগুলিতে বিশেষ প্রোগ্রামের প্রয়োজন, ইউটিএফ 8 স্থানীয়ভাবে এবং দূরবর্তীভাবে সমস্ত সার্ভারে স্থির করে তাদের ব্রেক না করে) , সমস্ত ফায়ারওয়ালগুলি সংশোধন করে - এবং এটি কোনওভাবেই স্থানীয় লাইন সম্পাদনা সরবরাহ করে না) আমি এসএসএসের জন্য স্থানীয় লাইন সম্পাদনা মোড সরবরাহ করার জন্য একটি ছোট মোড়ক লেখার সিদ্ধান্ত নিয়েছি ।
ডিফল্টরূপে, এটি কেবলমাত্র ডিফল্ট চর-বাই-চর মোডে সমস্ত কিছু প্রেরণ করে, তবে আপনি যে কোনও সময় পঠন-চালিত স্থানীয় লাইন সম্পাদনা মোডে প্রবেশ করতে হটকি টিপতে পারেন। সুতরাং আপনি স্থানীয়ভাবে সম্পূর্ণ সম্পাদন (সম্পাদনা, কমান্ড প্রত্যাহার ইত্যাদি) সহ প্রবেশ করতে পারেন এবং তারপরে আপনি যখন এন্টার টিপেন তখন এটি একটি টিসিপি প্যাকেট হিসাবে দূরবর্তী দিকে প্রেরণ করা হবে।
সুবিধা হ'ল লেগ-ফ্রি কমান্ড লাইন সম্পাদনা (পুরানো টেলনেট রান্না করা / ক্যানোনিকাল "লাইন বাই লাইন বাফার মোড" এর মতো, তবে জিএনইউ রিডলাইন দ্বারা সরবরাহিত উচ্চতর সম্পাদনা কমান্ড সহ )। এছাড়াও, সার্ভার বা ফায়ারওয়ালে কোনও পরিবর্তন করার দরকার নেই। এবং সম্পাদক এবং অন্যান্য অভিশাপ-ভিত্তিক প্রোগ্রামগুলি সাধারণ এসএসএস সংযোগের মতো ডিফল্ট চর-বাই-চর মোডে স্বাভাবিকভাবে (লেগ থাকা সত্ত্বেও) কাজ চালিয়ে যায়।
অসুবিধাটি হ'ল হয় আপনি প্রতিবার চাইলে স্থানীয় লাইন সম্পাদনা মোডে প্রবেশের জন্য হটকি টিপতে হবে, অথবা স্বয়ংক্রিয়করণের অনুমতি দেওয়ার জন্য আপনাকে দূরবর্তী হোস্টের প্রম্পটটি পরিবর্তন করতে হবে। এছাড়াও, রিমোট ট্যাব ফাইলের নাম সমাপ্তি বর্তমানে আপনাকে কেবল চার-বাই-চর মোডে ফেলে রেখে কাজ করে (বা আপনার পছন্দগুলির উপর নির্ভর করে রিমোটের পরিবর্তে স্থানীয় ফাইল সিস্টেম ব্যবহার করে)। এটি অগ্রগতিতে কাজ করছে, তবে উন্নতির জন্য অনুরোধগুলি গ্রহণযোগ্য বা কার্যকর ধারণা স্বাগত!
সুবিধাটি হ'ল কেবল আপনার শেল (এবং এর লাইন সম্পাদনা) স্থানীয় এবং ল্যাগ-মুক্ত নয়, তবে আপনি দূরবর্তী ফাইল সিস্টেমে নেভিগেট করতে পারেন এবং দূরবর্তী ফাইলগুলির জন্য শেল ফাইলের নাম সম্পূর্ণ ( ট্যাব কী ) ব্যবহার করতে পারেন। এছাড়াও, (সেরা বৈশিষ্ট্য আইএমএইচও) আপনি রিমোট ফাইলগুলির পিছনে বিনামূল্যে সম্পাদনার জন্য নিজের স্থানীয় স্থানীয় সম্পাদক ব্যবহার করতে পারেন।
অসুবিধাগুলি হ'ল (বিশেষত যদি আপনি লিঙ্কটিও নিম্ন-ব্যান্ডউইথ, এবং কেবলমাত্র উচ্চ-ল্যাটেন্সিই নয়) যে কোনও ফাইল সম্পাদনা করার জন্য, এটি সম্পূর্ণরূপে লোকালহোস্টে স্থানান্তরিত করা দরকার, এবং তারপরে সম্পাদনার পরে, পুরোপুরি রিমোটে স্থানান্তরিত হওয়া দরকার। এসএসএইচএফএস কিছু সমস্যা কমাতে কিছু ক্যাশিংয়ের জন্য (sshfs (1) বিকল্প ক্যাশে , ক্যাশে_টাইমআউট , ক্যাশে_এক্স_টাইমআউট দেখুন ) সরবরাহ করে। এছাড়াও, আপনি যদি রিমোটে কিছু চালাতে চান তবে আপনাকে অন্য স্ক্রিন ব্যবহার করতে হবে বা " ssh রিমোটহোস্ট " (উদাহরণস্বরূপ ssh remotehost sudo service apache restart
) দিয়ে সমস্ত কমান্ডের উপসর্গের প্রয়োজন । দ্রুত প্রয়োগ করতে (এবং পাসওয়ার্ড প্রম্পট না করে ) দ্রুত করার জন্য ssh_config (5) এ কন্ট্রোলমাস্টার বিকল্পটি দেখুন ।
আপনি যদি এমনটি করে কমান্ডগুলি চালাচ্ছেন তবে আপনি সেই আচরণটি অনুকরণ করতে পারেন,
ssh ব্যবহারকারী @ টার্গেটম্যাচাইন 'আমার কমান্ডগুলি একটি স্ট্রিং'
কিন্তু,
ssh-agent
বা টাইপ করতে হবেআপনার টাইপিংয়ের সাবলীল প্রতিধ্বনি অর্জন করতে আপনি tmux ব্যবহার করতে পারেন। স্থানীয়ভাবে tmux চালান। আপনার যদি একটি ফলকে ssh শেল থাকে এবং এর নীচে একটি ফলকে একটি স্থানীয় শেল থাকে, তবে স্থানীয় ফলকটি থেকে আপনি দূরবর্তী ফলকে কীগুলি পাঠাতে পারেন।
tmux send-keys -t top 'ls' C-m
ইন্টারেক্টিভ কমান্ড এবং ছোট কমান্ড আমি ল্যাগিং এসএস শেলের মধ্যে সরাসরি টাইপ করি। ল্যাগটি আমার টাইপিংয়ের পথে বাধা আসতে শুরু করার সাথে সাথে আমি স্থানীয় ফলকে স্যুইচ করে সেন্ড-কীগুলি ব্যবহার করি। এটি একটি কমান্ড টাইপ করার মাঝখানেও কাজ করে।
এটির শর্টকাট করতে আমি এটি আমার .bashrc এ যুক্ত করেছি
function ts {
args=$@
tmux send-keys -t right "$args" C-m
}
প্রেরণ-কীগুলি ব্যাখ্যা করার জন্য খ্রিস্টান পেলকজারস্কিকে ধন্যবাদ: https://minimul.com/increised-developer-productivity-with-tmux-part-5.html
উদাহরণস্বরূপ, উদ্ধৃতিগুলি ব্যবহার করার সময় আপনাকে পালাতে হবে
ts git config --global alias.lola \'log --graph --decorate --pretty=oneline --abbrev-commit --all\'
এটি আপনি যা চান তা করে। যদিও আপনাকে ক্লায়েন্ট এবং সার্ভার উভয়ই ইনস্টল করতে হবে এবং ওপেনএসএসএইচ আপস্ট্রিম কখনই পরিবর্তনগুলি গ্রহণ করে নি। https://github.com/hyc/OpenSSH-LINEMODE