বাইনারি ফাইল প্রদর্শনের পরে টার্মিনালটি ঠিক করুন


122

আমি catএক্সিকিউটেবল ফাইল সহ কমান্ড চেষ্টা করতাম :

cat /bin/ls

এখন আমি এই টার্মিনালে কোনও শব্দ পড়তে পারি না (লিনাক্স কনসোল)। আমি কীভাবে এটি ঠিক করতে পারি?


4
যদি আমি সঠিকভাবে বুঝতে পারি তবে সম্ভবত আপনার টার্মিনালটি খারাপ হয়ে গেছে; টাইপ করার চেষ্টা করুন reset
প্যাট্রিস লেভেস্ক


আসলে আমি মনে করি উত্তরগুলি এখানে আরও ভাল,
অন্যভাবে ডুপ

উত্তর:


165

প্রায়শই বার যখন উদাহরণস্বরূপ একটি ইউনিক্স / লিনাক্স টার্মিনাল (ব্যাশ), আপনি কমান্ড ব্যবহার করব moreবা lessবা catএকটি ফাইল দেখার জন্য। আপনি যখন এটি করেন এবং ফাইলটি বোঝার অর্থ নয় (যেমন /bin/ls) আপনি এ জাতীয় আউটপুট পাবেন:

                বাইনারি আউটপুট এর এসএস

এখানে যা চলছে তা হ'ল আপনি কেবল একটি প্রোগ্রামের একটি ফাইল দেখার চেষ্টা করেছেন। একটি নির্বাহযোগ্য যা আমি উপরে বর্ণিত হিসাবে মানক দর্শকদের সাথে দেখার বোঝানো হয় না।

পদ্ধতি # 1 - পুনরায় সেট করুন

এই সমস্যাটি সমাধান করার জন্য আপনি নিম্নলিখিতগুলি করতে পারেন:

  1. কয়েকবার কন্ট্রোল + সি চাপুন ( Ctrl+ C)
  2. কমান্ডটি টাইপ করুন resetএবং রিটার্ন হিট করুন

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

পদ্ধতি # 2 - stty বুদ্ধিমান

@ সেন্ডমোরইনফোর মন্তব্যে যেমন পরামর্শ দেওয়া হয়েছে, উপরোক্ত কাজ না করে তার পরিবর্তে নিম্নলিখিত কমান্ডগুলি ব্যবহার করে আপনার ভাগ্য ভাল হতে পারে:

$ stty sane
$ tput rs1

একটি ফাইলের ধরণ নির্ধারণ

ঘটনাক্রমে, আপনি যদি কোনও ফাইল জুড়ে এসে থাকেন এবং নিশ্চিত না হন যে এটি আপনার টার্মিনালটিকে বিশৃঙ্খলা করছে কিনা আপনি কমান্ডটি ব্যবহার করে ফাইলটি পরীক্ষা করতে পারবেন fileযা এটি ফাইলের ধরণের প্রতিবেদন করবে।

উদাহরণস্বরূপ, /bin/lsসেই ফাইলটি সহ নিম্নলিখিত আউটপুটটি দেখায়:

$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped

15
resetটার্মিনাল উন্মাদনার জন্য 100% নিরাময় নয়। stty saneঅনুসরণ করার চেষ্টা করুন tput rs1
সেন্ডমোরইনফো 14

@sendmoreinfo - ধন্যবাদ আমি আপনার পরামর্শটি উত্তরে যুক্ত করেছি। আমি ব্যবহার করেছি stty saneকিন্তু কখনই না tput
slm

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

4
resetআমার ক্ষেত্রে কাজ করেছে
কোড_মনক

1
clearহালকা ক্ষেত্রে জন্য কাজ করে।
নবীন

36

আমার এমন একটি অনুষ্ঠান হয়েছিল যেখানে সাধারণ ট্রিকস, resetবা stty sane, কোনও কাজ করেনি (দুর্ঘটনাক্রমে printপাইথন বাইটারায় কল করার পরে )। আমি এই সহায়ক ব্লগে তালিকাবদ্ধ পদ্ধতি 2 দিয়ে সাফল্য পেয়েছি ।

আমি তখন থেকে একটি সর্বাধিক সহায়ক ওরফে তৈরি করেছি:

alias fix='echo -e "\033c"'

2
আমি জানি এটি পুরানো, তবে এটি কেবলমাত্র আমার পক্ষে কাজ করেছিল এটির উপরে একমাত্র উত্তর! ধন্যবাদ
ইআর

এটি echo -e "\033c"আমাকে একটি অক্ষরযুক্ত পোশাকযুক্ত এসএসএইচ লগইন টার্মিনাল সেশনটি পরিষ্কার করতে সহায়তা করেছিল যা এটার পরে মিশ্রিত হয়েছিল cat /etc/localtime
প্রো ব্যাকআপ

এটি ওপেনবিএসডি-র সাথে কাজ করেছিল, যখন অন্যরা তা করেনি।
DHW

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

1
এসওএল মাধ্যমে রিমোট লিনাক্স হোস্টের কনসোলের সাথে সংযোগ করার সময় আমার টার্মিনালের আকার (লাইনগুলি) প্রায় অর্ধেক কাটা হয়েছিল using দূরবর্তী সেশনে লাইন = 24 ছিল আমার স্থানীয় ম্যাক সেশনে লাইন = 51 ছিল। ইকো -e "\ 033c" আমার পক্ষে কাজ করেছে তবে আমি চেষ্টা করা অন্যান্য ফিক্সগুলির মধ্যে একটিও হয়নি ('স্টটি সান', টিপুট আরএস 1, টপুট এসজিআর 0, রিসেট)।
চিহ্নিত করুন

7

পূর্বের কোনও উত্তর আমার পক্ষে কাজ করেনি। তবে এটি ব্যাক .rcrc অ্যাডে কৌশলটি করেছে বলে মনে হচ্ছে:

alias fix='reset; stty sane; tput rs1; clear; echo -e "\033c"'

এবং তারপরে সমস্যাটি এলে টাইপ করুন (যদিও আপনি সম্ভবত এটি দেখতে পাচ্ছেন না!)

(ctl-c, ctl-c, ctl-c)
fix

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


একই ঘটনা ঘটেছে। আমার পক্ষে কিছুই কাজ
করেনি

1
আমি আমারsane
কোডেনঞ্জ

4

tmuxব্যবহারকারীরা এই সমস্ত কমান্ডগুলি তাদের শেলের কাছে প্রেরণ করতে সক্ষম হতে পারে তবে পুনরায় সেট করা tmuxফলকের উপরে উন্নত হয় না ।

নতুন tmux উইন্ডো তৈরি করুন: ctrl-B c tmux list-panes আপনার মনে হয় যে ফলক নম্বরটি সাধারণভাবে বিরক্ত 0। এটি কল করুনPPP

Tmux উইন্ডোটি নির্বাচন করুন, XXXউইন্ডো নম্বরটি যেখানে বোর্কযুক্ত রয়েছে, ফলক সংখ্যার মতো অগত্যা নয়। ctrl-B XXX tmux send-key -R -t PPP

তারপরে আপনি এই প্রশ্নের অন্যান্য উত্তরে সমস্ত কমান্ড দেখতে পাবেন যা এটি আপনার শেলকে তৈরি করেছে, কিন্তু কার্যকর হয়নি! হয়তো একজন অন্ধ tmux send-key -R -t PPPকাজ করবে, তবে আমি পরীক্ষা করতে পারছি না।


3

আমার আগের পোস্টের মতো প্রায় একই উরফ, একটি ছোট পরিবর্তন ( tput resetপরিবর্তে rs1) এবং একটি যুক্ত কমান্ড ( setterm -reset) সহ:

alias clr='echo -e "\033c" ; stty sane; setterm -reset; reset; tput reset; clear'

1

উপরের কিছুই আমাকে সাহায্য করেনি। যাইহোক, জ্যাক ওয়াসি tmux উল্লেখ করেছেন, তাই আমি কেবল দৌড়ে এসেছি tmux, আবার বেরিয়ে এসেছি এবং সবকিছু স্বাভাবিক অবস্থায় ফিরে এসেছিল।


0

টার্মিনালটি কীভাবে পুনরায় সেট করতে হবে সে সম্পর্কে পরামর্শ দেওয়া অন্যান্য উত্তরের পাশাপাশি, আমি বুঝতে পেরেছিলাম যে সঠিকভাবে রক্ষণ না করে দুর্নীতি এড়ানো যায় না। তাই আমি আউটপুটটি একটি সাধারণ পাঠ্য-বান্ধব রূপান্তরকারীকে আরও ভালভাবে প্রেরণ করব cat -v:

docker logs myjenkinscontainer 2>&1 | cat -v

বাইনারি ফাইলগুলি দেখতে এবং সম্পাদনা করা সম্ভব hexdump -Cএবং এর সাথে vi -R( :%!xxd -g1একটি হেক্স দর্শন এবং :%!xxd -g1 -rহেক্স পরিবর্তনগুলি সংরক্ষণ করার জন্য) মনে হয়।

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