NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
BN

লিনাক্স কমান্ড এবং শেল দক্ষতা

sed: এডিটর না খুলে স্ট্রীম সম্পাদনা করা

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

মূল বিষয়সমূহ

  • প্রতিশ্রুতি দেওয়ার আগে পূর্বরূপ দেখুন: sed -n '10,20p' ফাইলটি একটি লাইন পরিসর দেখায় এবং একই -n প্লাস p সংমিশ্রণটি কেবলমাত্র রেজেক্স বা ঠিকানার সাথে মেলে এমন লাইনগুলি প্রিন্ট করে৷
  • পতাকাগুলির সাথে প্রতিস্থাপন করুন যা আপনি যা বলতে চান তা করে: সমস্ত ম্যাচের জন্য s/পুরাতন/নতুন/g, মাত্র সেকেন্ডের জন্য 2g এর মতো একটি সংখ্যা এবং ব্যাকস্ল্যাশ এস্কেপের পৃষ্ঠা ছাড়াই বর্ধিত রেজেক্সের জন্য -E৷
  • ইন-প্লেস এডিট একটি প্রত্যয় পায়, কোনো ব্যতিক্রম নেই: sed -i.bak 's/http://https://g' অ্যাপ প্রতিটি পরিবর্তনের পাশে একই-নামের ব্যাকআপ রাখে; যে প্রত্যয়টি কোনো সম্পাদকের পূর্বাবস্থার ইতিহাসের চেয়ে বেশি স্থাপনা উদ্ধার করেছে।
  • ডিলিমিটারগুলি বিনামূল্যে: s|/var/www|/srv/app|g (বা s#...#g) যখন আপনার প্যাটার্নে পাথ পূর্ণ থাকে তখন স্ল্যাশ-এসকেপিং মারামারি এড়িয়ে যায়৷
  • -i পারমাণবিক নয়: একটি ক্র্যাশ বা খারাপ রেজেক্স মিড-ব্যাচ একবার অর্ধ-পুনঃলিখিত ফাইলগুলিকে পিছনে ফেলে দেয়, তাই বাল্ক কাজগুলি অনুলিপি বা গিট-ট্র্যাক করা গাছগুলির বিরুদ্ধে চলে, কখনও একমাত্র অনুলিপি নয়।
  • GNU এবং BSD sed -i-তে অসম্মত: BSD-এর জন্য স্ক্রিপ্টের আগে প্রত্যয় প্রয়োজন (sed -i '' macOS-এ কাজ করে, এটি একটি লিনাক্স সিনট্যাক্স নয়), যা পোর্টেবিলিটি স্ক্রিপ্টগুলি সম্পূর্ণরূপে -i এড়িয়ে যাওয়ার আরেকটি কারণ।
  • মুছুন এবং বিচ্ছিন্ন করা হল সৎ ক্রিয়া: 'd' মিলে যাওয়া লাইনগুলিকে সরিয়ে দেয় (sed '/^#/d' স্ট্রিপ মন্তব্য), এবং -n একটি পরিসর সহ একটি বিভাগকে বিচ্ছিন্ন করে; উভয় চতুর প্রতিস্থাপন চেয়ে ভাল পড়া.
  • একক-লাইন সম্পাদনা, আক্ষরিক মাল্টি-লাইন ব্লক, বা রাষ্ট্রীয় যোগদানের অতীত যেকোন কিছু awk বা একটি বাস্তব স্ক্রিপ্টের অন্তর্গত; sed কে প্রোগ্রামার কাজ করতে বাধ্য করা হল কিভাবে অপাঠ্য এক-লাইনারের জন্ম হয়।

মাঠের নোট

আমার প্রথম sed -i একটি .bak প্রত্যয় ছাড়াই একটি প্রোডাকশন nginx কনফিগারে আঘাত করেছে ঠিক বিকেলের ট্রাফিক পিক হওয়ার আগে। তারপর থেকে প্রতিটি ইন-প্লেস এডিট একটি ব্যাকআপ প্রত্যয় বহন করে এবং -i কমান্ডের কাছাকাছি যাওয়ার আগে আমি ড্রাই-রান আউটপুট পড়ি।

সচরাচর জিজ্ঞাসা

আমি কীভাবে কেবলমাত্র লাইনগুলি সম্পাদনা করব যা অন্য কিছুর সাথে মেলে?

তাদের সম্বোধন করুন: sed '/cache/s/true/false/' শুধুমাত্র ক্যাশে লাইনে সত্য থেকে মিথ্যা ফ্লিপ করে, এবং '/<VirtualHost>/,/<\/VirtualHost>/s/Old/New/g' স্কোপ এডিট ব্লকের মত রেঞ্জ; ঠিকানা প্রথম যায়, কমান্ড দ্বিতীয়.

উইন্ডোজ-সম্পাদিত ফাইলে লাইনের শেষের সাথে sed ​​মিলবে না কেন?

এই লাইনগুলি ক্যারেজ-রিটার্ন অক্ষর দিয়ে শেষ হয় যা '$' অ্যাঙ্কররা আশা করে না; প্রথমে tr দিয়ে সেগুলি খুলে ফেলুন বা আসার পথে স্বাভাবিক করুন এবং মাল্টিলাইন বিষয়বস্তু এখনও -0777 সহ awk বা পার্লে রয়েছে৷

সাধারণ প্রতিস্থাপনের জন্য sed কি awk এর চেয়ে দ্রুত?

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

আমি কি sed দিয়ে পুরো কনফিগারেশন ব্লক সন্নিবেশ করতে পারি?

হ্যাঁ: 'a' পরে যোগ করে, 'i' আগে সন্নিবেশ করে, এবং 'c' লাইনটি প্রতিস্থাপন করে, তবে সন্নিবেশিত পাঠ্যটিকে সরল এবং এক-উদ্দেশ্য রাখুন; প্রকৃত ব্লকগুলি একটি টেমপ্লেট ফাইল বা একটি যথাযথ ব্যবস্থার পদক্ষেপের অন্তর্গত।

লিনাক্স কমান্ড এবং শেল দক্ষতা নিয়ে Kinetikatech কীভাবে সাহায্য করে

এটাই আমরা প্রতিদিন করি: কমান্ড এবং স্ক্রিপ্টিং অভ্যাস যা নির্ধারণ করে যে একজন প্রশাসক একটি সার্ভার পরিচালনা করে বা এটির সাথে লড়াই করে: অনুসন্ধান, রূপান্তর, স্থানান্তর, এবং টেক্সট এবং প্রক্রিয়াগুলিকে তত্ত্বাবধান করে যা প্রতিটি বেস ইনস্টলে থাকে। আমাদের Linux সার্ভার নিরাপত্তা and সার্ভার ব্যবস্থাপনা সেবাটি শুরু থেকে শেষ পর্যন্ত সব নেয় — মূল্যায়ন, বাস্তবায়ন, ২৪/৭ পর্যবেক্ষণ, আর ৩০ মিনিটের মধ্যে জরুরি সাড়া।

একজন প্রকৌশলীর সঙ্গে কথা বলুন

সার্ভার সমস্যা? হ্যাক করা সাইট? ধীর ওয়েবসাইট?

জরুরি সমস্যার উত্তর ৩০ মিনিটের মধ্যে — দিনে ২৪ ঘণ্টা, সপ্তাহে ৭ দিন।

জরুরি সহায়তা অনুরোধ করুন support@kinetikatech.com