এসএসএইচ টাইপিং বিলম্ব এড়ানোর কোনও উপায় আছে কি?


43

আমি কি এসএসএইচকে কেবলমাত্র প্রবেশ বা ট্যাব টিপে তথ্য প্রেরণ করতে বলতে পারি, এবং প্রতিটি স্বতন্ত্র কী বা চাপের পরে না?


আমি খুব আগ্রহী যেখানে আপনার টাইপিং বিলম্ব রয়েছে যেখানে আপনি এটির সাথে কাজ করতে পারবেন না। আমি মডেম যুগে ssh ব্যবহার করেছি এবং এই সমস্যার মুখোমুখি হয়েছি না।
মেলকিউ

4
আমি বেলজিয়াম থেকে স্লাইসহোস্ট ভিপিএস (ইউএসএ) অ্যাক্সেস করছি। বিলম্ব আমাকে বিভ্রান্ত করার পক্ষে যথেষ্ট লক্ষণীয়। তবে, আমি লক্ষ্য করেছি যে অন্যান্য লোকেরাও আমার চেয়ে কম বিরক্ত বলে মনে হচ্ছে ..
স্ট্যাকডক্রুকড


@mailq আপনি কি 2019 সালে 3 জি ব্যবহার করেন না? গ্রামের দেশের বাড়ি বা ভূগর্ভ থেকে ছিটানো আরও ডায়ালআপ দিয়ে করার মতো
পোমাত্তু

উত্তর:


32

না, কারণ এসএসএইচ-এর জানার কোনও উপায় নেই যে আপনি কী টাইপ করছেন তা কার্যের জন্য প্রবেশ বা ট্যাব দরকার হবে - উদাহরণস্বরূপ, যদি আপনি আপনার কমান্ডের ইতিহাসটি দিয়ে যাচ্ছেন, তবে ^Rবা তীরগুলি তীর দ্বারা প্রেরণ করা হত না তাদের, এবং এটি হবে ... অপ্রীতিকর।

স্ক্রিনে প্রদর্শিত হওয়ার জন্য আপনাকে প্রতিটি চরিত্রের মধ্যে অপেক্ষা করতে হবে না; আপনি যদি টাইপ করতে হয় তা যদি জানেন তবে আপনার পছন্দমতো তাড়াতাড়ি তাড়াতাড়ি টানুন এবং টার্মিনালটি আপনি টাইপিং বন্ধ করার সময় থেকে প্রায় এক রাউন্ড-ট্রিপ টাইমে ধরা পড়বে, যা আপনার থেকে বেরিয়ে আসার মতোই ভাল যাইহোক যাইহোক একটি লাইন-বাফার সেটআপ (প্যাকেটের ক্ষতি হ'ল আলাদা, তবে এটির নিজস্ব আকর্ষণীয় বাজির পরিচয় দেয়)।


আমি বেশ কয়েকটি মেশিনে এসএস-টাইপিং-গতির মানদণ্ডের উপায় খুঁজে পেতে আগ্রহী। আমি লক্ষ্য করেছি যে গতি একই স্থানে অবস্থিত মেশিনগুলির মধ্যে প্রচুর পরিমাণে পরিবর্তিত হতে পারে এবং এতে কোনও ভারী বোঝা নেই। আমার তত্ত্বটি হ'ল বিশেষত এডাব্লুএসের ছোট্ট উদাহরণগুলি (মাইক্রো বা মিনিগুলির মতো) এর সাথে ঘটে।
sorin

1
মোশ কাগজ দেখুন। লেখক কিছু বেঞ্চমার্কিং করেছেন moh.org/#techinfo
ব্যবহারকারী 7610

25

পুটিটি দুটি বৈশিষ্ট্য সরবরাহ করে যা ব্যবহারযোগ্য হতে পারে: "লোকাল প্রতিধ্বনি" এবং "স্থানীয় লাইন সম্পাদনা" " স্থানীয় লাইন সম্পাদনা সবকিছুকে বাফার করে এবং কেবল একটি লাইন ফেরতের পরে এটি সার্ভারে প্রেরণ করে। এটি কমান্ড লাইনটিকে মোকাবেলা করতে আরও সহজ করে তুলতে পারে তবে এটি কোনও পাঠ্য সম্পাদককে নরক ব্যবহার করেও করতে পারে।

পুটির কাছে কিছু জিনিস সক্ষম করার / অক্ষম করার জন্য অন্যান্য কিছু বিকল্প রয়েছে (নাগলের অ্যালগরিদম) যা সংযোগের বিলম্বকে অনুভব করতে পারে। আমি এটি দেখতে পাচ্ছি, ওপেনএসএইচ ক্লায়েন্ট পটিটি এই বিষয়ে সমস্ত বৈশিষ্ট্য সরবরাহ করে না এবং আমি তুলনা করি এমন একটি লিনাক্স বিকল্প সম্পর্কে জানি না।

অন্যথায়, womble এর অধিকার আছে।


এটি গ্রহণযোগ্য উত্তর হওয়া উচিত
ফ্রেডি ফ্যাব্রেগাস

আমি ম্যাকোজে পটিটিওয়াই ইনস্টল করতে ব্যর্থ হয়েছি, প্রতিস্থাপন আছে কি?
এ্যারো উইন্ডোওয়াকার

লিনাক্সে পুটি কিছুটা ব্যথা করে। এটি স্বয়ংক্রিয়ভাবে পুনঃসংযোগ করতে পারে না, সংযোগ বিচ্ছিন্ন করার জন্য কিছু বার্তা বাক্স দেখায় এবং আমাকে আবার উইন্ডো খোলার প্রয়োজন। আমি আশা করি আমি কিটি বা প্লিংক.এক্সির মতো কিছু ব্যবহার করতে পারি লিনাক্সে বা আরও ভাল করে কেবল কোনওভাবে অটোশ টুইঙ্ক করতে। কিছু ডিভাইস মোশকে সমর্থন করে না (যদি আমি আমার বাড়ির ওপেনর্ট রাউটারটি অ্যাক্সেস করার চেষ্টা করি)
পোমাতাতু

22

মোশকে এই সঠিক সমস্যাটির সমাধান করার জন্য নকশা করা হয়েছিল। এটি উচ্চ-বিলম্ব এবং অবিশ্বাস্য সংযোগের উপরে ব্যবহারের জন্য ডিজাইন করা হয়েছে এবং এটি স্থানীয় প্রতিধ্বনি এবং লাইন সম্পাদনা সরবরাহ করে।


আপনি এটি sudo ছাড়া উত্স থেকে স্থানীয় ডিরেক্টরিতে ইনস্টল করতে পারেন। এছাড়াও, mosh.org এ দেখুন। এটিতে বলা হয়েছে, "কোনও সুবিধাযুক্ত কোড নেই No কোনও ডিমন নয় Mos মোশ ইনস্টল করতে বা চালাতে আপনাকে সুপারভাইজার হওয়ার দরকার নেই The ক্লায়েন্ট এবং সার্ভারটি সাধারণ ব্যবহারকারীর দ্বারা চালিত এক্সিকিউটেবল এবং কেবলমাত্র সংযোগের জন্য স্থায়ী হয়।"
স্টিভেন সি হাওয়েল

1
শুধু খেয়াল করার জন্য। মোশ এসএসএইচ নয়। এটি নিজস্ব মালিকানাধীন প্রোটোকল ব্যবহার করে। (যদিও তাতে আমার কোনও সমস্যা নেই)
user

এটি অ্যান্ড্রয়েড এবং বাড়ির খারাপ ওয়াইফাই নেটওয়ার্কে আমার জন্য স্ক্র্যাচ থেকে কাজ করেছে। এটি
রিডলাইন

9

ssh host.example.org bash(অথবা আপনি যে কোনও শেল ব্যবহার করতে চান) দিয়ে এসএসএস সেশনটি খুলুন ।

আপনি রিমোট শেলটিতে লাইন-বাফার মোড পাবেন, যার অর্থ আপনি প্রম্পট এবং লাইন-সম্পাদনা পাবেন না তবে আপনি স্থানীয় প্রতিধ্বনি এবং "একবারে একটি লাইন" মোড পাবেন। খুব খারাপ সংযোগের সাথে কাজ করার সময় এটি কখনও কখনও দরকারী। সমস্ত প্রোগ্রাম সঠিকভাবে চলবে না কারণ আপনার ছদ্ম-টিটি হবে না তবে বেশিরভাগ ইউনিক্স ইউটিলিটিগুলি ঠিক কাজ করে।

হালনাগাদ:

উপরের কৌশলটি ব্যবহার করার সময় আপনি স্থানীয় প্রান্তে আরএলএফএ নামক একটি সুবিধাজনক মোড়কের প্রোগ্রাম ব্যবহার করে সাধারণ লাইন সম্পাদনা ( রিডলাইন ) পেতে পারেন । শুধু চালান ।rlfe ssh host.example.org bash


1
আমি চেষ্টা করেছি এবং এটি খুব কার্যকরভাবে খুঁজে পেলাম না। তবে এটি জানার জন্য দুর্দান্ত।
স্ট্যাকড ক্রুকড

এটি আমার জন্য আশ্চর্যজনকভাবে কাজ করে।
lakesare

6

একই সমস্যা রয়েছে ( কিছু স্থানে ভয়াবহ মোবাইল ডেটা মানের কারণে উচ্চ বিলম্ব এবং প্যাকেট ক্ষতি ), এবং মোশ আমার জন্য এটি কাটছে না (এটি সমস্ত দূরবর্তী হোস্টগুলিতে বিশেষ প্রোগ্রামের প্রয়োজন, ইউটিএফ 8 স্থানীয়ভাবে এবং দূরবর্তীভাবে সমস্ত সার্ভারে স্থির করে তাদের ব্রেক না করে) , সমস্ত ফায়ারওয়ালগুলি সংশোধন করে - এবং এটি কোনওভাবেই স্থানীয় লাইন সম্পাদনা সরবরাহ করে না) আমি এসএসএসের জন্য স্থানীয় লাইন সম্পাদনা মোড সরবরাহ করার জন্য একটি ছোট মোড়ক লেখার সিদ্ধান্ত নিয়েছি ।

ডিফল্টরূপে, এটি কেবলমাত্র ডিফল্ট চর-বাই-চর মোডে সমস্ত কিছু প্রেরণ করে, তবে আপনি যে কোনও সময় পঠন-চালিত স্থানীয় লাইন সম্পাদনা মোডে প্রবেশ করতে হটকি টিপতে পারেন। সুতরাং আপনি স্থানীয়ভাবে সম্পূর্ণ সম্পাদন (সম্পাদনা, কমান্ড প্রত্যাহার ইত্যাদি) সহ প্রবেশ করতে পারেন এবং তারপরে আপনি যখন এন্টার টিপেন তখন এটি একটি টিসিপি প্যাকেট হিসাবে দূরবর্তী দিকে প্রেরণ করা হবে।

সুবিধা হ'ল লেগ-ফ্রি কমান্ড লাইন সম্পাদনা (পুরানো টেলনেট রান্না করা / ক্যানোনিকাল "লাইন বাই লাইন বাফার মোড" এর মতো, তবে জিএনইউ রিডলাইন দ্বারা সরবরাহিত উচ্চতর সম্পাদনা কমান্ড সহ )। এছাড়াও, সার্ভার বা ফায়ারওয়ালে কোনও পরিবর্তন করার দরকার নেই। এবং সম্পাদক এবং অন্যান্য অভিশাপ-ভিত্তিক প্রোগ্রামগুলি সাধারণ এসএসএস সংযোগের মতো ডিফল্ট চর-বাই-চর মোডে স্বাভাবিকভাবে (লেগ থাকা সত্ত্বেও) কাজ চালিয়ে যায়।

অসুবিধাটি হ'ল হয় আপনি প্রতিবার চাইলে স্থানীয় লাইন সম্পাদনা মোডে প্রবেশের জন্য হটকি টিপতে হবে, অথবা স্বয়ংক্রিয়করণের অনুমতি দেওয়ার জন্য আপনাকে দূরবর্তী হোস্টের প্রম্পটটি পরিবর্তন করতে হবে। এছাড়াও, রিমোট ট্যাব ফাইলের নাম সমাপ্তি বর্তমানে আপনাকে কেবল চার-বাই-চর মোডে ফেলে রেখে কাজ করে (বা আপনার পছন্দগুলির উপর নির্ভর করে রিমোটের পরিবর্তে স্থানীয় ফাইল সিস্টেম ব্যবহার করে)। এটি অগ্রগতিতে কাজ করছে, তবে উন্নতির জন্য অনুরোধগুলি গ্রহণযোগ্য বা কার্যকর ধারণা স্বাগত!


অপ্রচলিত দিক থেকে, আপনি স্থানীয়ভাবে দূরবর্তী ফাইল সিস্টেমটি মাউন্ট করতে বিকল্পভাবে এসএসএইচএফএস ব্যবহার করতে পারেন ।

সুবিধাটি হ'ল কেবল আপনার শেল (এবং এর লাইন সম্পাদনা) স্থানীয় এবং ল্যাগ-মুক্ত নয়, তবে আপনি দূরবর্তী ফাইল সিস্টেমে নেভিগেট করতে পারেন এবং দূরবর্তী ফাইলগুলির জন্য শেল ফাইলের নাম সম্পূর্ণ ( ট্যাব কী ) ব্যবহার করতে পারেন। এছাড়াও, (সেরা বৈশিষ্ট্য আইএমএইচও) আপনি রিমোট ফাইলগুলির পিছনে বিনামূল্যে সম্পাদনার জন্য নিজের স্থানীয় স্থানীয় সম্পাদক ব্যবহার করতে পারেন।

অসুবিধাগুলি হ'ল (বিশেষত যদি আপনি লিঙ্কটিও নিম্ন-ব্যান্ডউইথ, এবং কেবলমাত্র উচ্চ-ল্যাটেন্সিই নয়) যে কোনও ফাইল সম্পাদনা করার জন্য, এটি সম্পূর্ণরূপে লোকালহোস্টে স্থানান্তরিত করা দরকার, এবং তারপরে সম্পাদনার পরে, পুরোপুরি রিমোটে স্থানান্তরিত হওয়া দরকার। এসএসএইচএফএস কিছু সমস্যা কমাতে কিছু ক্যাশিংয়ের জন্য (sshfs (1) বিকল্প ক্যাশে , ক্যাশে_টাইমআউট , ক্যাশে_এক্স_টাইমআউট দেখুন ) সরবরাহ করে। এছাড়াও, আপনি যদি রিমোটে কিছু চালাতে চান তবে আপনাকে অন্য স্ক্রিন ব্যবহার করতে হবে বা " ssh রিমোটহোস্ট " (উদাহরণস্বরূপ ssh remotehost sudo service apache restart) দিয়ে সমস্ত কমান্ডের উপসর্গের প্রয়োজন । দ্রুত প্রয়োগ করতে (এবং পাসওয়ার্ড প্রম্পট না করে ) দ্রুত করার জন্য ssh_config (5) এ কন্ট্রোলমাস্টার বিকল্পটি দেখুন ।


3

আপনি যদি এমনটি করে কমান্ডগুলি চালাচ্ছেন তবে আপনি সেই আচরণটি অনুকরণ করতে পারেন,

ssh ব্যবহারকারী @ টার্গেটম্যাচাইন 'আমার কমান্ডগুলি একটি স্ট্রিং'

কিন্তু,

  1. এটি সংযোগ তৈরি করতে অতিরিক্ত বিলম্ব যুক্ত করে ( মাস্টার / শেয়ার্ড এসএসএস সংযোগ ব্যবহার করে প্রশমিত করা যেতে পারে )
  2. আপনার যদি পাসওয়ার্ডহীন ব্যক্তিগত কী না থাকে তবে আপনাকে পাসওয়ার্ডটি ব্যবহার করতে ssh-agentবা টাইপ করতে হবে
  3. আপনি মেনুগুলির সাথে আলাপ করছেন বা ফাইল সম্পাদনা করছেন ইত্যাদি পরিষ্কারভাবে এটি কাজ করে না

1

আপনার টাইপিংয়ের সাবলীল প্রতিধ্বনি অর্জন করতে আপনি 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\'

0

এটি আপনি যা চান তা করে। যদিও আপনাকে ক্লায়েন্ট এবং সার্ভার উভয়ই ইনস্টল করতে হবে এবং ওপেনএসএসএইচ আপস্ট্রিম কখনই পরিবর্তনগুলি গ্রহণ করে নি। https://github.com/hyc/OpenSSH-LINEMODE

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.