একবার, আমি পাওয়ারশেল এর লিনাক্সের মতো বৈশিষ্ট্যের প্রশংসা করে একটি নিবন্ধ লিখেছিলাম। আমি এমনকি সেখানে একটি চমৎকার অ্যানিমেশন ছিল, প্রত্যেকের আনন্দের জন্য. বেশ কয়েক বছর ধরে, মাইক্রোসফ্ট ওপেন-সোর্স পাওয়ারশেলকে লিনাক্সে (!) উপলব্ধ করার সিদ্ধান্ত নিয়েছে এবং এটি এখন প্রাথমিক পরীক্ষার জন্য উপলব্ধ।
আমি অনেক কারণে এই ধারণা পছন্দ. এটি উন্নয়ন এবং সিস্টেম রক্ষণাবেক্ষণের ক্ষেত্রে আরও সাধারণ গ্রাউন্ডের অনুমতি দেয়, বিশেষত যেহেতু উইন্ডোজের জন্য ব্যাশও রয়েছে, তাই আমরা প্রচেষ্টার একটি সুন্দর প্রতিফলন দেখতে পাচ্ছি। দীর্ঘমেয়াদে, এটি দুটি অপারেটিং সিস্টেমকে আরও কার্যকরভাবে সহযোগিতা করতে হবে এবং প্রকৃত বিজয়ী হবেন প্রশাসন, বিকাশকারী, কিন্তু শেষ ব্যবহারকারীরাও। দেখা যাক এটা কিভাবে কাজ করে।
পাওয়ারশেল সেটআপ করুন
আমার পরীক্ষার সিস্টেমটি একটি CentOS 7.2 Xfce বক্স, এবং এটি সমর্থিত লিনাক্স উদাহরণগুলির মধ্যে একটি। মাইক্রোসফ্ট বর্তমানে উবুন্টুর জন্য ইনস্টলার অফার করে, এর দুটি এলটিএস প্রজন্ম এবং সেন্টোস। সেটআপটি মোটামুটি তুচ্ছ, এমনকি যদি ডাউনলোডের জন্য প্যাকেজগুলি খুঁজে পাওয়া কিছুটা জটিল হয়। স্থানীয়ভাবে yum দিয়ে ইনস্টল করুন এবং কমান্ড লাইন থেকে চালু করুন।
yum install powershell-6.0.0_alpha.9-1.el7.centos.x86_64.rpm
এখন কি?
আমি সত্যিই একজন উন্নত পাওয়ারশেল ব্যবহারকারী নই। কিন্তু এটি একটি শেল, এবং তাই আপনাকে কেবল সিনট্যাক্স শিখতে হবে এবং এটি ব্যবহার শুরু করতে হবে। এখন, এটি BASH বা একইভাবে প্রতিস্থাপন করতে পারে? ওয়েল, সত্যিই না, কিন্তু যে বিন্দু না. যাইহোক, আমি কয়েকটি মৌলিক কমান্ড হাতুড়ি শুরু করেছি, এটি কীভাবে কাজ করে তা জানার জন্য।
প্রথমে, ব্যবহারের মডেলটি লিনাক্স ব্যবহারকারীদের কাছে একটু পাল্টা স্বজ্ঞাত হতে পারে। কিন্তু সারমর্ম একই থেকে যায়। পাওয়ারশেল বর্তমানে কীভাবে উপলব্ধি করা হয় তার একটি খারাপ দিক হল রঙের কোড। সাদার উপর হলুদ ভাল কাজ করে না, তাই আপনি একটি ভিন্ন টার্মিনাল থিম ব্যবহার করতে চাইতে পারেন।
আপনি যদি সংগ্রাম করেন, তাহলে আপনি সর্বদা সাহায্য করতে পারেন:সাহায্য
কিছু কমান্ডের (cmdlets) একটি সংক্ষিপ্ত সংস্করণও রয়েছে। উদাহরণস্বরূপ, Get-ChildItem হল UNIX-এর সমতুল্য কার্যকারিতার জন্য একটি অ-স্বজ্ঞাত নাম, এছাড়াও এটিকে সংক্ষেপে gci বলা যেতে পারে। এটি প্রথমে একটু বিভ্রান্তিকর হতে পারে। তবে খুব বেশি নয়।
gci -path /* -include "igor" -recurse
আরেকটি জিনিস যা আপনাকে বিভ্রান্ত করতে পারে তা হল - রুটটি অবশ্যই একটি ট্রেলিং স্ল্যাশ দিয়ে চিহ্নিত করা হয়েছে, তবে বেশিরভাগ পাথ-নির্ভর কমান্ডগুলি সঠিকভাবে কাজ করার জন্য, আপনাকে আসলে স্ল্যাশের পরে একটি তারকাচিহ্ন যোগ করতে হবে। চিত্রে যান. তবুও, আমি আপনার মতোই শিশু-পদক্ষেপ করছি।
এটা সব আছে. চেহারা এবং অনুভূতিতে কিছুটা আলাদা - এবং অবশ্যই নামে, তবে এটি ভাল কাজ করছে বলে মনে হচ্ছে। শেলটি মোটামুটি স্থিতিশীল ছিল। একটি ব্যতিক্রম ছিল যে Powershell একটি খুব দীর্ঘ পুনরাবৃত্ত ফাইল অনুসন্ধানের সময় পরিমাপ করার সময় হ্যাং হয়ে গিয়েছিল। এটা শুধু বন্ধ, কিন্তু আমি মৃত্যুদন্ড বাধা দিতে সক্ষম ছিল.
ত্রুটি
পাওয়ারশেল খুবই শব্দসমৃদ্ধ এবং ত্রুটির প্রবণ, যা উদ্বেগজনক বলে মনে হতে পারে, লাল রঙের কারণে এবং সত্য ত্রুটিগুলি টেক্সটের অনেক লম্বা ব্লক হয়ে যায়, অনেকটা উইন্ডোজের মতো। কিন্তু আমরা নির্দোষ জিনিস কথা বলছি, কমান্ড লাইনে ফাইল অনুসন্ধানের সময় অনুমতি অস্বীকার করা ত্রুটির মতো জিনিস।
তারপর, আপনাকে আরেকটি উদাহরণ দিতে, পরিমাপ-কমান্ড cmdlet (একভাবে লিনাক্স সময়ের সমতুল্য) আর্গুমেন্টগুলি কোঁকড়া বন্ধনীতে আবদ্ধ করা প্রয়োজন। আপনি যদি এইগুলি মিস করেন তবে আপনি একটি বড় ত্রুটি পাবেন যা দেখতে বেশ আতঙ্কজনক, তবে এটি আসলে বেশ ক্ষতিকারক। একই অন্যান্য cmdlets অনেক জন্য যায়.
এটি ত্রুটির উপরের অর্ধেক মাত্র। আরো আছে.
ফেডোরা ব্যবহারকারীদের সম্পর্কে কি?
ঠিক আছে, আমরা জানি যে মাইক্রোসফ্ট উবুন্টু এবং সেন্টোসের জন্য পাওয়ারশেল প্রকাশ করেছে। আমি ভাবছি যদি ফেডোরা শ্রেণীবদ্ধ করে। আসলে, আমি ভাবছি না। আমি পরীক্ষা করেছি। যতটা যায়, এই ছোট্ট পরীক্ষাটি ততটা মসৃণ ছিল না যতটা আমি আশা করেছিলাম। ইনস্টলেশনের পরপরই, এবং পাওয়ারশেল চালানোর চেষ্টা করে, আমি একটি সুন্দর, সরস ত্রুটি পেয়েছি:
শক্তির উৎস
CoreCLR আরম্ভ করতে ব্যর্থ হয়েছে, HRESULT:0x80131500
এটি একটি মোটামুটি সাধারণ ত্রুটি, এবং GitHub এ উপলব্ধ এই বিষয়ে একটি বরং দীর্ঘ আলোচনা আছে। যাইহোক, শুধু অন্ধভাবে পরামর্শ অনুসরণ করার পরিবর্তে, আমি প্রথমে নিশ্চিত করতে চেয়েছিলাম যে সমস্যাটি লিবিকু নির্ভরতার সাথে ছিল। বুদ্ধিমত্তার জন্য, আমি স্ট্রেসের শক্তির উপর আহ্বান জানিয়েছিলাম, যা আমার ক্রমাগত ক্রমবর্ধমান ডিবাগিং অস্ত্রাগারের অন্যতম হাতিয়ার।
open("/usr/lib64/libicuuc.so.50", O_RDONLY|O_CLOEXEC) =-1 ENOENT (এই ধরনের কোনো ফাইল বা ডিরেক্টরি নেই)
প্রকৃতপক্ষে আমাদের কয়েকটি অনুপস্থিত গ্রন্থাগার রয়েছে। জিনিসটি হল, এই প্যাকেজটি ফেডোরাতে উপলব্ধ, শুধুমাত্র এটি পাওয়ারশেলের প্রত্যাশার চেয়ে একটি নতুন সংস্করণ। আমি প্রতীকী লিঙ্ক তৈরি করে সমস্যাটি হ্যাক করার চেষ্টা করেছি এবং এটি কিছুটা সাহায্য করেছে।
ln -s /usr/lib64/libicui18n.so.56 /usr/lib64/libicui18n.so.50
শেষ পর্যন্ত, ত্রুটিটি একটি সাধারণ স্টার্টআপ সমস্যা থেকে শেয়ার করা অবজেক্টের অভ্যন্তরে চিহ্নগুলির সাথে একটি সমস্যায় চলে গেছে। এবং এটি এমন কিছু যা আপনি নির্বিচারে সমাধান করতে পারবেন না।
শক্তির উৎস
পাওয়ারশেল:প্রতীক সন্ধান ত্রুটি:/opt/microsoft/powershell/6.0.0-alpha.9/System.Globalization.
Native.so:অনির্ধারিত প্রতীক:uloc_getDefault_50
সমাধান হল libicu এর পুরানো সংস্করণ ডাউনলোড করা, এটিকে কোথাও বের করা এবং তারপর লাইব্রেরি পাথ এমনভাবে সেট করা যা পাওয়ারশেলকে প্রথমে libicu নির্ভরতাগুলি খুঁজে পেতে এবং বাছাই করতে দেয়, যেমন:
এক্সপোর্ট LD_LIBRARY_PATH=
উপসংহার
আমরা এখানে. এটি 2016 সাল, এবং আপনি উইন্ডোজে BASH চালাতে পারেন, নেটিভভাবে, এবং আপনি লিনাক্সে পাওয়ারশেল চালাতে পারেন, নেটিভভাবে। বব শুধু তোমার মামা নয়, তুমিও ববের চাচা! আমি এই উন্নয়নে সন্তুষ্ট। এটি কেবল দীর্ঘমেয়াদে সকলের উপকার করবে।
Powershell একটি স্ক্রিপ্টিং টুল, ভাষা এবং কাঠামোর জন্য আমার তাত্ক্ষণিক পছন্দ নয়, তবে এর যোগ্যতা রয়েছে এবং যাদের একটি মাল্টি-OS পরিবেশ বজায় রাখতে হবে তাদের জন্য এটি প্রশাসনের প্রচেষ্টাকে উল্লেখযোগ্যভাবে সহজতর করতে পারে। প্রারম্ভিক আলফা বিল্ড পরীক্ষার জন্য যথেষ্ট স্থিতিশীল, কিন্তু আমি দৃঢ়ভাবে ভারী পরীক্ষার বিরুদ্ধে সুপারিশ করব, বিশেষ করে রুট অনুমতি সহ নয়, এবং উত্পাদন সিস্টেমে। শুধু নিরাপদ দিকে হতে. সব মিলিয়ে, বেশ ঠিক আছে। যাই হোক, তুমি যাও। আপনার কীবোর্ডের সাথে বেহালা করার সময়।
চিয়ার্স।