Wednesday, July 12, 2017

কমান্ড লাইন -৩ (file,less এবং আরো কিছু)


আজ file এবং less কমান্ড দিয়েই শুরু করা যাক,

file বা Directory কোন ধরনের সেটি জানতে file কমান্ড ব্যবহৃত হয়। যেমন media, image... এগুলি হল file টাইপ।
আর less কমান্ড ব্যবহৃত হয় ফাইলের ভেতর কি আছে তার টেক্সট(text) পড়ার জন্য।
উদাহরণ :
file hello.c ; এখানে file হল কমান্ড আর hello.c হল ফাইলের নাম।
দেখালো, hello.c: C source, ASCII text
আর less hello.c টাইপ করলে এর ভেতরে যে লেখা আছে তা দেখাবে।
ইউনিক্স সাদৃশ অপারেটিং সিস্টেমের ধারণা হল, সব কিছুই ফাইল , যেমন jpeg, mp3, m4a, wav, pdf ইত্যাদি।

গনু/লিনাক্স সিস্টেমে প্রচুর প্রোগ্রাম সরাসরি টেক্সট ফাইল ব্যবহার করে। less কমান্ড এসব ফাইল পড়াকে দ্রুত ও সহজ করে। একটা মজার জিনিস বলে রাখি। ইউনিক্স সিস্টেমে একইরকম একটি প্রোগ্রাম ছিল more (বাংলা অর্থ "বেশি") নামে। সেটির গনু/লিনাক্স ভার্সন হল less (বাংলা অর্থ "কম") । কিন্তু কথা হচ্ছে এই কম কিন্তু মোটেই কম নয়! অনেক বেশি। 
 
টেক্সট(text) কি? (.txt)
এখন আমাদের একটু জানা উচিৎ টেক্সট ফাইল কোনগুলোকে বলবো। কম্পিউটার বিভিন্নরকম তথ্য আমাদের সামনে বিভিন্নভাবে উপস্থাপন করে। এইসব তথ্য উপস্থাপনের ক্ষেত্রে দুটো বিষয় থাকে।
) নির্দিষ্ট ধরনের তথ্য এবং
) নির্দিষ্ট ধরণের সংখ্যায় সেই তথ্যের প্রকাশ। কম্পিউটার শুধু সংখ্যা নিয়েই কাজ করে।


কোনো কোনো ক্ষেত্রে এই প্রকাশ পদ্ধতি খুব জটিল যেমন কমপ্রেসড্ (Compressed) ভিডিও ফাইল, অন্যদিকে কিছু কিছু বেশ সহজ। তথ্য উপস্থাপনের প্রথমদিকের ও সহজ উপায় হল সকি টেক্সট(ASCI - American Standard Code for Information Interchange)। এটা প্রথমে কী-বোর্ডের ক্যারেক্টারগুলোর সংখ্যাতাত্ত্বিক অবস্থান দিতে টেলিটাইপ মেশিন গুলোতে ব্যবহৃত হয়েছিল। খুবই সহজ পদ্ধতি এবং খুব কম জায়গা নেয়। একটি অক্ষরের জন্য এক বাইট(১ বাইট = ৮ বিট ) জায়গা প্রয়োজন হয়। এক্ষেত্রে বলা ভালো, ওয়ার্ড প্রসেসর দিয়ে তৈরী ডকুমেন্ট কিন্তু টেক্সট ফাইল নয়। এতে অনেক ননক্যারেক্টার তথ্য থাকে ফরম্যাটিং এর জন্যে।

less এর ব্যবহার :
less কমান্ডটি file কমান্ডটির মতই ব্যবহার করতে হয়। অর্থাৎ কমান্ডের আর্গুমেন্ট হিসেবে ফাইলের_নাম দিতে হয়। যেমন: less /etc/passwd। কমান্ডটি দিলে ফাইলটি দেখাবে। আপনি উপরে ও নীচে স্ক্রল করে পড়তে পারবেন এবং q চেপে এটা বন্ধ করতে পারবেন।

আমরা less এর গুরুত্বপূর্ণ কমান্ডগুলোতে চোখ বুলিয়ে নিই:

Page Up or b = এক পেজ উপরে স্ক্রল করবে।
Page Down or space = এক পেজ নীচে স্ক্রল করবে।
Up Arrow = এক লাইন উপরে স্ক্রল করবে।
Down Arrow = এক লাইন নীচে স্ক্রল করবে।
G = ফাইলের একদম শেষে যাবে।
1G or g = ফাইলের একদম শুরুতে যাবে।
/characters = / চিহ্নর সাথে যা লেখা হবে সেটা খুঁজবে এবং প্রথম যেখানে পাওয়া গেছে দেখাবে।
n = কোনো কিছু সার্চ করা হলে সেটা আর পরে কোথায় আছে দেখাবে।
h = হেল্প স্ক্রীন দেখাবে।
q = বন্ধ করবে।

আপনি হয়ত দেখে থাকবেন ls -l কমান্ডের আউটপুটে নিচের ফাইলের মত কিছু দেখায়:

lrwxrwxrwx 1 root root 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so

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

সিমবোলিক লিঙ্ক দিয়ে সহজেই এই সমস্যার সমাধান করা যায়। মনে করি আমরা libfoo-2.6 ইন্সটল করেছি এবং একটা সিমবোলিক লিঙ্ক তৈরী করেছি শুধুমাত্র libfoo নামে। যে প্র‌োগ্রামাররা libfoo কে তাদের প্রোগ্রামে ব্যবহার করবে তারা ওই লিঙ্কটি ব্যবহার করবে। ফলে আমরা পরে libfoo-2.7 ইন্সটল করে যখন একই নামে অর্থাৎ libfoo তে লিঙ্ক করবো তাকে তার প্রোগ্রামে পরিবর্তন আনতে হবে না।

সিমবোলিক লিঙ্ক হার্ড লিঙ্কের চেয়ে অনেক আধুনিক প্রযুক্তি। হার্ডলিঙ্ক তার নিজের ড্রাইভের বাইরে লিঙ্ক তৈরী করতে পারে না এবং ডিরেক্টরির হার্ড লিঙ্ক হয় না। সিমবোলিক লিঙ্কের এই সীমাবদ্ধতাগুলো নেই। সিমবোলিক লিঙ্ক আর তার অরিজিনাল ফাইলটির ব্যবহারযোগ্যতায় কোনো পার্থক্য নেই। তবে লিঙ্কটি ডিলিট করলে আপনি শুধু লিঙ্কটিই ডিলিট করবেন, অরিজিনাল ফাইলটি নয় এবং অরিজিনাল ফাইলটি ডিলিট করলে লিঙ্কটি ব্রোকেন লিঙ্ক হিসেবে থাকবে এবং কোনোকিছুর দিকেই পয়েন্ট করবে না।

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



পরবর্তী দিন আমরা নিচে দেওয়া ৫ টি কমান্ড এবং তাদের ব্যবহার শিখবো । আর শিখবো কত সহজে আর দ্রুততার সাথে এগুলি ব্যবহার করা যায়, সাথে থাকবে আরো কিছু কৌশল!

cp = ফাইল এবং ডাইরেক্টরি কপি (অনুলিপি) করতে ব্যবহৃত হয়।
mv = ফাইল এবং ডাইরেক্টরি মুভ/রিনেইম (move = স্থানান্তর, rename = নতুন নামকরণ) করতে ব্যবহৃত হয়।
mkdir = ডাইরেক্টরি তৈরি করতে ব্যবহৃত হয়।
rm = ফাইল এবং ডাইরেক্টরি রিমুভ (remove = মুছে ফেলা ) করতে ব্যবহৃত হয়।
ln = হার্ড লিঙ্ক এবং সিম্বলিক লিঙ্ক তৈরি করে।

এই পাঁচটি কমান্ড লিনাক্স সিস্টেমে সবচেয়ে বেশি ব্যবহৃত হয়। আর এগুলি ফাইল বা ডাইরেক্টরি, দুই ক্ষেত্রেই কাজ করে।


Reference Book: The Linux Command Line
Writer: William Shotts Jr.
Third Internet Edition




কোন রকমের আত্মপ্রচার বা লাভের জন্য কিছু নয়, তাই আমার পরিশ্রম যদি সামান্য হলেও আপনার কাজে লাগে, সেটাই আমার বড় পাওয়া। 
 
গনু/লিনাক্স ব্যবহার করুন এবং আপনার পরিচিতজন দেরও উৎসাহিত করুন। কারণ এটা মুক্ত,বিনামূল্য এবং নিরাপদ।

No comments:

Post a Comment

Simple Screen Recorder এবং ফেসবুকে স্ক্রিন শেয়ারিং এর Black Screen সমস্যার সমাধান

 লিনাক্স নির্ভর অপারেটিং সিস্টেমে GNOME Interface ব্যবহারকারীদের কেউ কেউ ফেসবুকের ভিডিও কলে স্ক্রিন শেয়ারিং অপশনে কিংবা সিম্পল স্ক্রিন রেকর্...