টার্মিনাল ভেঙে র্যান্ডম কনসোল আউটপুটকে কীভাবে প্রতিরোধ করবেন?


23

এসইতে অনেকগুলি প্রশ্ন রয়েছে যা দেখায় যে টার্মিনালটি কীভাবে ভেঙে যায় cat /dev/urandom। যারা এই সমস্যাটির সাথে অপরিচিত তাদের জন্য - এটি সম্পর্কে কী তা এখানে:

  1. আপনি নির্বাহ cat /dev/urandomবা সমতুল্য (উদাহরণস্বরূপ, cat binary_file.dat)।
  2. আবর্জনা ছাপানো হয়।
  3. এটি ঠিক আছে ... আপনার টার্মিনালটি কমান্ড শেষ হওয়ার পরেও আবর্জনা মুদ্রণ অব্যাহত রাখে ! প্রকৃতপক্ষে g ++ আউটপুট হ'ল একটি রেন্ডারেন্ডার্ড পাঠ্যের একটি স্ক্রিনশট এখানে রয়েছে:

    উদাহরণ স্ক্রিনশট

    আমার ধারণা, লোকেরা সি ++ এর ত্রুটিগুলি সম্পর্কে কখনও কখনও খুব ক্রিপ্টিক থাকায় সঠিক ছিল!

সাধারন সমাধানটি চালানো stty sane && reset, যদিও প্রতিবার এটি ঘটে তা চালানো এক ধরণের বিরক্তিকর।

সে কারণে, আমি এই প্রশ্নে যা ফোকাস করতে চাই তা হ'ল এটি হবার মূল কারণ এবং এই জাতীয় আদেশ জারি হওয়ার পরে টার্মিনালটি কীভাবে ভাঙ্গতে রোধ করা যায়। আমি আপত্তিজনক কমান্ডগুলি পাইপ করা trবা এর জন্য পাইপ করার মতো সমাধানগুলি খুঁজছি না xxdকারণ এটি আপনাকে চালিত / মুদ্রণের আগে প্রোগ্রাম / ফাইল বাইনারি আউটপুট দেয় তা জানতে হবে এবং প্রতিবার যখন আপনি এই জাতীয় ডেটা আউটপুট করে যান তখন মনে রাখা দরকার ।

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

উত্তর:


22

নং:

  • "এটিকে অক্ষম" করার কোনও মানক উপায় নেই এবং
  • ভাঙার বিবরণগুলি আসলে টার্মিনাল-নির্দিষ্ট, তবে
  • কিছু সাধারণভাবে প্রয়োগ করা বৈশিষ্ট্য রয়েছে যার জন্য আপনি খারাপ ব্যবহার করতে পারেন।

সাধারণভাবে প্রয়োগ করা বৈশিষ্ট্যগুলির জন্য, ভিটি 100-স্টাইলের বিকল্প চরিত্র সেটটি দেখুন, যা সক্রিয় করে ^Nএবং ^O(সক্ষম / অক্ষম) করে। যে কিছু টার্মিনাল যখন হল UTF-8 মোড ব্যবহারের দমন করা হতে পারে, কিন্তু একই টার্মিনাল আপনার পর্দা দেখছিলেন পালাবার ক্রম তারা (গনুহ পর্দা, লিনাক্স কনসোল, পুটিং এখানে বিষয়ে কথা) জন্য প্রশস্ত সুযোগ আছে কি স্বীকার করে।

উদাহরণস্বরূপ অন্যান্য কয়েকটি পালানোর ক্রম হোস্ট দ্বারা প্রাপ্ত প্রশ্নের সাথে টার্মিনাল থেকে প্রাপ্ত প্রশ্নের উপর নির্ভর করে to হোস্ট যদি এটি প্রত্যাশা না করে তবে ফলাফলটি স্ক্রিনে ট্র্যাশ হয়।

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

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


0

যদি আপনার নিয়ন্ত্রণে থাকে এবং জেনে থাকে কোনও আদেশ আপনাকে স্ক্রু করতে চলেছে, আমি সাধারণত আউটপুটটি কম কিছুতে দেখি।

head -n4 /dev/urandom | less

এই স্বাভাবিকটি আবর্জনা ধরা এবং এটি একটি বুদ্ধিমান উপস্থাপনের সাথে মুদ্রণ করে মনে হয়, কিউ দিয়ে বেরিয়ে আসার পরে আমার কোনও অসুবিধা হয় নি , যা আমি কম সাহস ছাড়লে আপনার অপরিচিতকে ঘৃণা করি।


2
প্রশ্নটি সুনির্দিষ্টভাবে বলেছে যে প্রোগ্রামটি বাইনারি আউটপুট উত্পাদন করে এমন সময়ের আগে আপনাকে জানতে হবে যে সে সমাধানগুলি সন্ধান করছে না।
বার্মার

-1

আপনার কমান্ডের আউটপুট ইত্যাদি পাইতে পাইপ করুন -


2
কীভাবে সাহায্য করবে? এটি এখনও আউটপুট মুদ্রণ করবে, তবে এটি একটি ফাইলেও সংরক্ষণ করবে।
বার্মার

তুমি বলতে চাচ্ছো moreনাকি less?
বার্মার

আমার জোর দিয়ে ওপি অনুযায়ী: "... এই জাতীয় কমান্ড জারি হওয়ার পরে । আমি আপত্তিজনক আদেশগুলি পাইপ করার মতো সমাধান খুঁজছি না "
জেফ শ্যাচলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.