দ্রষ্টব্য: এই সমাধানটি অনুসরণ করার সময়, একক শেল সেশনে কমান্ড টাইপ করুন (অথবা একটি স্ক্রিপ্ট ব্যবহার করুন) যদি না অন্যথায় বলা হয়। এটি কারণ এটি ভেরিয়েবল এবং ফাইল বর্ণনাকারীগুলিকে ব্যবহার করে, তারা সরাসরি তাদের মূল সেশনের বাইরে উপলব্ধ নয়।
একটি অস্থায়ী ফিফ তৈরি করুন। একটি অস্থায়ী ফাইল তৈরি করার সঠিক উপায় রয়েছে mktemp
। দুর্ভাগ্যবশত এটি fifos তৈরি করতে পারবেন না। এটি যদিও একটি অস্থায়ী ডিরেক্টরি তৈরি করতে পারে:
tmpd=`mktemp -d`
tmpf="$tmpd"/fifo
mkfifo "$tmpf"
printf "%s\n" "$tmpf" # just to know the path to the fifo, it may be useful later
বিকল্পভাবে আপনি কিছু নির্দিষ্ট বা অ্যাড-হক অবস্থানের মাধ্যমে হাতে নামযুক্ত ফিরো তৈরি করতে পারেন। এটা আপনার উপর নির্ভর করছে.
একটি পটভূমি প্রক্রিয়া তৈরি করুন যা কোনও সার্ভারে ফিফো পড়বে এবং ডেটা পাস করবে:
nc 192.168.1.115 12345 < "$tmpf" &
ncpid=$! # PID may be useful later
মনোযোগ দিতে হলে nc
prematurely প্রস্থান না। অনুগ্রহ করে সংযোগটি নিজেই বা সার্ভারের সাথে কোনও সমস্যা নেই বলে মনে হচ্ছে, উপরের পটভূমি কমান্ডটি ফোনের মাধ্যমে প্রথম গুচ্ছ তথ্য প্রেরণ শেষ না হওয়া পর্যন্ত সংযুক্ত থাকবে। কিন্তু আপনি এটি খোলা থাকতে এবং একাধিক লেখা গ্রহণ করতে চান, তাই ফিফো খুলুন এবং এটি বন্ধ করবেন না (এখনো):
exec 3> "$tmpf"
এখন আপনি ফিফোর মাধ্যমে যা চান তা পাঠাতে পারেন এবং ব্যাকগ্রাউন্ড সংযোগটি অব্যাহত থাকে:
echo abcd >&3 # sends text
echo -e '\x80' >&3 # sends "binary"
cat /etc/issue >&3 # sends file
cat >&3 # type whatever you want, terminate with Ctrl+D
এই কমান্ডের যেকোনো একটির পরিবর্তে পিনোয়ের পথের সাথে আহ্বান করা যেতে পারে &3
, যদি আপনি শুধুমাত্র পথ জানেন। পথটি জানার জন্য, আপনি একই থেকে বাফফোতে লিখতে পারেন অন্য শেল অধিবেশন:
cat > /path/to/the/fifo # type whatever you want, terminate with Ctrl+D
অথবা আপনি অন্য সেশনে অনুরূপ পদ্ধতিতে একটি বর্ণনাকারী খুলতে পারেন। আপনি যাই হোক না কেন পিনো লিখুন, দী nc
এটি একটি একক সংযোগে রিমোট সার্ভারে প্রেরণ করবে।
কিন্তু জাতি শর্ত সতর্কতা অবলম্বন করা। একটি একক শেল সেশনের ভিতরে একটি একক বর্ণনাকারী ব্যবহার করা তাদের এড়িয়ে চলার একটি ভাল উপায়।
আপনি প্রয়োজন যাই হোক না কেন তথ্য পাস, সমাপ্ত nc
এবং মূল শেল সেশনে বর্ণনাকারী বন্ধ করুন:
kill $ncpid
exec 3>&-
কিছু পরিস্থিতিতে উল্লেখ্য একমাত্র পরের কমান্ড ব্যাকগ্রাউন্ড তৈরি করতে যথেষ্ট nc
প্রস্থান; এটি আপনি কি করেছেন এবং আপনি কি এখনও ফিরোতে করছেন তার উপর নির্ভর করে। এই কারণে আমি হত্যা করতে বেছে নিলাম nc
স্পষ্টভাবে।
অস্থায়ী ডিরেক্টরি এবং এর সামগ্রী (যেমন পিজো) সরান:
rm -r "$tmpd"
চূড়ান্ত নোট:
এটা করা প্রয়োজন হয় না nc
প্রথম স্থানে পটভূমি মধ্যে। আপনি এটি একটি টার্মিনালে চালাতে পারেন, অন্যটি থেকে ফিফো (তার পথ জানার) লিখুন। এই ভাবে আপনি সহজেই তার রাষ্ট্র নিরীক্ষণ করতে পারেন। দরকারি আপনার প্রয়োজন এই সমাধান।
echo -e '\x80\xF4\x12' | xclip -i
অন্য টার্মিনালে, তারপর মধ্যে পেস্ট করুনnc
টার্মিনাল, কিন্তু টার্মিনাল ইনপুট সেটিংস উপায় হচ্ছে এবং আমি জানি না কিভাবেnc
এই সেট করে, অথবা আমি যে সেটিংস সঙ্গে কাজ করবে খুঁজে পেতে পারেনstty ... ; cat | xxd ; stty sane
।