টার্মিনাল শুক্রবার: স্ট্যান্ডার্ড স্ট্রিম

অন্য শুক্রবারে আপনাকে স্বাগতম ...

এই সময়টি টার্মিনালের একটি ছোট্ট অংশটি জানার। অনেক চিন্তাভাবনা করার পরে আমি এই সম্পর্কে একটি পোস্ট তৈরি করার সিদ্ধান্ত নিয়েছে স্ট্যান্ডার্ড স্ট্রিম; যদিও এটি পৃষ্ঠপোষক হবে, আমি মনে করি এটি এমন একটি বিষয় যা প্রত্যেকেরই জানা উচিত।

স্ট্যান্ডার্ড স্ট্রিম

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

স্ট্যান্ডার্ড স্ট্রিমগুলিতে দ্রুত ডায়াগ্রাম।

স্ট্যান্ডার্ড স্ট্রিমগুলিতে দ্রুত ডায়াগ্রাম।

3 আই / ও সংযোগগুলি হ'ল: stdin স্ট্যান্ডার্ড ইনপুট, stdout স্ট্যান্ডার্ড আউটপুট, stderr মান ত্রুটি.

স্টিডিন: স্ট্যান্ডার্ড ইনপুট

স্ট্যান্ডার্ড ইনপুট হল সেই পথে যা আমরা পাইপ, পুনর্নির্দেশ, কীবোর্ড ইত্যাদির মাধ্যমে কোনও আদেশ থেকে তথ্য ক্যাপচার করি is আমরা ফাইল বর্ণনাকারী 0 দিয়ে এটি সনাক্ত করি।

বর্ণনাকারী এই ক্ষেত্রে-ইনপুট এবং আউটপুট চ্যানেলগুলিতে অ্যাক্সেসের জন্য একটি সূচক। এগুলি হল মান, সাধারণত 0, 1 এবং 2।

স্টিডিনের উদাহরণ হ'ল:

বাছাই <তালিকা

এটি তালিকায় থাকা সমস্ত তথ্য গ্রহণ করে - এই ক্ষেত্রে সংখ্যাগুলি এলোমেলোভাবে লেখা হয়- এবং যখন ফাইলটি ls কমান্ডের সাথে পুনঃনির্দেশিত করা হয়, তখন এটি বর্ণ সংখ্যা অনুসারে সংখ্যার তালিকাটি বাছাই করে। এই উদাহরণে পতাকাগুলি অন্তর্ভুক্ত।

স্টাডআউট: স্ট্যান্ডার্ড আউটপুট

স্ট্যান্ডার্ড আউটপুট, এর নাম অনুসারে, কনসোলের মাধ্যমে একটি কমান্ডের আউটপুট প্রদর্শন করে। আমরা যদি স্ক্রিনে আমাদের দেখায় এমন সমস্ত তথ্য l লিখি তবে এটি স্ট্যান্ডার্ড আউটপুট। এটি বর্ণনাকারক 1 দ্বারা উপস্থাপন করা হয়।

এখন আমি স্ট্যাডিন ইনস্ট্যান্ট করার চেষ্টা করব এবং বাশ-এ লিখিত স্ক্রিপ্টটি দিয়ে স্ট্যান্ডআউট করব, কেবল কারণ আমি বাশ হাহাহাকে ভালবাসি। 🙂

test.sh

#! / বিন / বাশ যদি [-t 0]; তারপরে "আপনি stdout ব্যবহার করছেন" এলিফ প্রতিধ্বনি করুন [-t 1]; তারপরে "আপনি স্ট্ডিন ব্যবহার করছেন" প্রতিধ্বনি করুন অন্যথায় "ব্রুটাল ​​ত্রুটি" ফাই প্রতিধ্বনি করুন

এখন একটি স্ক্রিনশট যা স্ক্রিপ্টটি কীভাবে ব্যবহার করতে হয় তা প্রদর্শন করে। পুনর্নির্দেশ বা স্ক্রিপ্ট ব্যবহারের সাথে পাইপ ব্যবহার করার সময় পরীক্ষা -t শুধুমাত্র stdout স্ক্রিপ্টটি কার্যকর করা হয়েছে কিনা তা জানতে এবং যদি তা না হয় স্পষ্টতই স্টিডিন হয়।

bash test.sh ls | bash test.sh bash test.sh </ etc / passwd
প্রশ্নে থাকা স্ক্রিপ্ট এবং এর ফলাফলগুলি ...

প্রশ্নে থাকা স্ক্রিপ্ট এবং এর ফলাফলগুলি ...

কমান্ডটি সংশোধন এবং অনুশীলন করতে ভুলবেন না যাতে আপনি শিখেন।

stderr: স্ট্যান্ডার্ড ত্রুটি

স্ট্যান্ডার্ড ত্রুটি হ'ল প্রোগ্রামগুলি ত্রুটি বা ডায়াগনস্টিকগুলি প্রদর্শন করে। এটি বর্ণনাকারী 2 দ্বারা উপস্থাপন করা হয়।

ধারণাটি বুঝতে, এই অবস্থা: আমরা যখন কোনও কমান্ড ত্রুটি সংরক্ষণ করতে চাই, তখন প্রথম জিনিসটি আমরা আউটপুটটিকে সরল পাঠ্যে পুনঃনির্দেশ করি।

ls> info.txt

এটি কাজ করবে, কমান্ডের তথ্য একটি সরল পাঠ্য ফাইলে সংরক্ষণ করা হবে। ত্রুটি সংরক্ষণ করার সময়, এটি এটি সঞ্চয় করে না, তবে এটি এটি স্ক্রিনে দেখায় এবং প্লেইন পাঠ্য ফাইলটি খালি।

পরিবর্তে যদি আমরা ফাইলটিতে স্ট্যাডারকে বাঁচাতে 2> ব্যবহার করি:

ls foo 2> info.txt

এখন এটি টেক্সট ফাইলে ত্রুটির তথ্য সংরক্ষণ করবে।

বেশিরভাগ ক্ষেত্রে খোল stderr এবং stdout কে &> দিয়ে একটি একক কমান্ড কমান্ডে সংরক্ষণ করার অনুমতি দিন যেখানে ফু একটি অস্তিত্বের ডিরেক্টরি

ls ডাউনলোডগুলি ফু &> info.txt

এই ফাইলটিতে Foo এ ls চালানোর সময় ত্রুটি সম্পর্কিত তথ্য থাকবে এবং ডাউনলোডগুলির অধীনে ডিরেক্টরিগুলি তালিকাভুক্ত করবে।

এবং অবশেষে, কি বিখ্যাত আছে 2> & 1?

সরল, স্টাডারকে স্টডআউটে পুনর্নির্দেশ করুন। এর> এবং 1 এর মাঝামাঝি এটি স্টডআউটে পুনর্নির্দেশ করবে। এটি না থাকলে এটি এমন কিছু হবে ... "ত্রুটিটি ফাইল 1 এ পুনর্নির্দেশ করুন"।

এবং এর সাহায্যে পুনঃনির্দেশ করা সম্ভব:

  • একটি ফাইল stdout
  • stderr একটি ফাইল
  • stdout to stderr
  • stderr to stdout
  • stderr এবং একটি ফাইল stdout
  • অন্যদের মধ্যে

এটি আজকের মানুষের জন্য। আমরা পড়া এবং বন্ধ করার জন্য ধন্যবাদ। 😀


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।

  1.   এলিওটাইম 3000 তিনি বলেন

    মজাদার. আপনার টিউটোরিয়ালগুলির জন্য ধন্যবাদ, আমি বাশকে আরও অনেক পছন্দ করছি।

  2.   কুইন্সি মাগু তিনি বলেন

    প্রিয়, আকর্ষণীয়, তবে নীচের লাইনে আপনার একটি ত্রুটি রয়েছে:

    "এবং যখন ls কমান্ডে ফাইলটি পুনঃনির্দেশিত করা হয়", তখন এটি "হওয়া উচিত এবং ফাইলটি বাছাই করার সময়" - এ পাঠানো উচিত।

    একটি অভিবাদন।

  3.   মিগুয়েল তিনি বলেন

    পাঠ্যের শুরুতে একটি ত্রুটি রয়েছে, যখন আপনি the ls command কমান্ডটি নির্দেশ করেন, এটি «সাজানো should হওয়া উচিত:
    "তালিকায় থাকা সমস্ত তথ্য নিন - এক্ষেত্রে নম্বরগুলি এলোমেলোভাবে লেখা - এবং ফাইলটিকে ls কমান্ডে পুনঃনির্দেশ করুন (এখানে এটি সাজানো হবে)"

    শুভেচ্ছা এবং আপনার কাজ ভাগ করে নেওয়ার জন্য ধন্যবাদ

  4.   রোডার তিনি বলেন

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

    ইউনিক্স দর্শনের দ্বারা বাশ (এস) এর এতগুলি সরঞ্জাম তৈরি হয়েছে "একটি কাজ করুন, এবং এটি ভাল করুন"

  5.   lolo তিনি বলেন

    আচ্ছা আমি কিছুই খুঁজে পাইনি

    1.    ভয়েস তিনি বলেন

      হাহাহা বেশ ভাল করে বোঝানো হয়েছে, তুমি কী বুঝলে না?