বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

লিনাক্স সম্পর্কিত আলোচনা
User avatar
অভ্রনীল
প্রযুক্তি মনষ্ক
Posts: 1507
Joined: Sun May 24, 2009 6:42 pm
লাইসেন্স: by-nc-sa(Creative Commons)
স্ট্যাটাস: উবুন্টু ১০.০৪ [ল্যুসিড লিংক্স]
Location: ঢাকা
Contact:

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by অভ্রনীল » Fri Jul 03, 2009 5:59 pm

[মাত্র লিনাক্স ব্যবহার করা শুরু করেছি, তাই এক্কেবারে কিছুই জানিনা। অজ্ঞতার কারনে অনেক অপরিপক্ক প্রশ্ন মাথার মধ্যে আসে যেগুলো হয়ত বাঘা বাঘা লিনাক্সবোদ্ধাদের কে জিজ্ঞেস করলে বাঁকা হাসি দিবে! তারপরও তো জানতে হবে, অন্তত নিজের তাগিদেই। তাই মাঝে মধ্যেই আমার এইসব বোকা-সোকা প্রশ্নগুলো নিয়ে ইন্টারনেট ঘাঁটাঘাটি করি। মাঝমধ্যে পেয়ে যাই, কখনো বা লিঙ্কের সাগরে তলিয়ে যাই, কিন্তু বেশিরভাগ সময়ই এত কাঠখোট্টা-টেকি কথা থাকে যে আমার মত নাদান লিনাক্স-ইউজাররা কঠিনভাবে ভড়কায় যায়। তবে আমি ভড়কায় গেলেও চেষ্টা থামাইনা, কারন আমাকে লিনাক্সের জ্ঞান নিতে হবে, শাস্ত্রে বলা আছে জ্ঞান নিতে সুদূর চীন পর্যন্ত যেতে হবে, কিন্তু চৈনিক সাইটগুলাতে চৈনিক ভাষা ব্যবহার করায় কাজটা আমার জন্য আরো জটিল হয়ে গেছে! যাই হোক নাদান মনের বোকা বোকা সেসব প্রশ্ন নিয়েই এই পোস্ট। আশাকরি সবার সহযোগিতায় একেবারে জলবৎ-তরলনং-উত্তরং পাব।]



১.
লিনাক্সে ফাইলট্রি নিয়ে বেশ প্যাজগীতে আছি। উবুন্টুতে 'ফাইল সিস্টেম' এ গেলে রুটে ঢোকা যায়, কিন্তু Trash বা Computer এ ঢুকতে হলে নটিলাসে trash:/// বা computer:/// লিখতে হয়। Computer এ গেলে দেখা যায় এটার মধ্যে আবার 'ফাইল সিস্টেম' আছে :? , যেটা কিনা আবার রুট। তাহলে ব্যাপারটা কি হল, computer এর ভিতর রুট? নাকি রুটের ভিতর কম্পিউটার? :oo: বহুত প্যাঁচ! লিনাক্সের ফাইল হায়রার্কিটা একটু সহজভাষায় বুঝালে খুব ভালো হয়। [ফোরামে এটা নিয়ে সার্চালাম কিন্তু কোন টপিক (অন্তত আমি) পাইনাই]। আর নটিলাসে কখন trash:/// বা computer:/// এই ফরম্যাটে লিখতে হয়, কারন নরমালি তো একটা স্ল্যাশ ব্যবহার করার কথা, তিনটা কখন আসে?

২.
যদ্দূর বুঝি উইন্ডোজে যেমন সব ফাইলের গোড়া হচ্ছে C ড্রাইভ ঠিক তেমনি লিনাক্সে সেটা রুট (/)। সম্ভবত উইন্ডোজে দুই বা ততোধিক পার্টিশান করলে গোড়াও দুই বা ততোধিক হয়, যেমন E, F, G ইত্যাদি ড্রাইভ নিজে একেকটা গোড়া হয়ে যায় (ভুল বললাম নাকি? :-? )। কিন্তু লিনাক্সে সেক্ষেত্রেও ঐ একটাই রুট থাকে। উইন্ডজে আমি পার্টিশন করতাম যাতে সিস্টেম ফেল করলে C ড্রাইভ ছাড়া অন্য কোন ড্রাইভের ফাইলগুলো এফেক্টেড না হয় , কারন রুটিন করে প্রতি দুই তিন মাসে একবার উইন্ডোজ রিন্সটল করতে হত। যেহেতু আমি কেবলমাত্র উইন্ডোজের জন্য C ড্রাইভ ব্যবহার করতাম তাই রিন্সটল করলেও অন্য ড্রাইভগুলোর ডাটা ঠিক থাকত। তাছাড়া আমার মতে অধিকাংশ ভাইরাসের মূল টার্গেট থাকে C ড্রাইভ, তাই ডাটা সেফলি রাখার জন্য উইন্ডোজ ছাড়া তেমন কোন ফাইলই C ড্রাইভে রাখতামনা। পার্টিশন করার আরেকটা কারন ছিল My Computer এ ঢুকলে যাতে সহজেই C ড্রাইভকে পাশ কাটিয়ে আমার দরকারি ফাইলে ইজিলি যেতে পারি, মানে ফাইল ম্যানেজমেন্ট সহজ করে নিতাম আরকি। আমি পার্টিশান ব্যবহার করতাম মূলত এই তিনটি কারনে। কিন্তু লিনাক্সে যেহেতু সব কিছু ঐ রুট থেকেই শুরু হচ্ছে তাতে য়ামার এই তিনটা কাজের একটাও তো কাজে লাগছে না। তাহলে লিনাক্সে হার্ডডিস্ক পার্টিশনের যৌক্তিকতা কতটুকু? আদৌ কি দরকার আছে? যদি ডুয়েল বুট সিস্টেম না থাকে তবে পার্টিশন কি আলাদা কোন এডভ্যান্টেজ যোগ করে?

৩.
উইন্ডোজে কোন ফাইল ইন্সটল করলে সেটা কোথায় ইন্সটল হবে তা নির্ধারন করার জন্য ব্রাউজ অপশন দেয়, যেটা দিয়ে ডিরেক্টরি চুজ করা যায়। লিনাক্সে তো সেরকম কিছু নাই। তাহলে বাই ডিফল্ট ফাইল যেখানে ইন্সটল হতে চাইবে সেখানেই ইন্সটল হবে, ইউজারের কি কোন ডিরেক্টরী চুজ করার অপশন নাই? আর এই ফাইলগুলো ইন্সটলই বা হয় কোথায়? :-? কারন সব সময় দেখি Applications এ ইন্সটল্ড হওয়া প্রোগ্রামের একটা আইকন এসে যোগ হয়। কিন্তু উইন্ডোজে ক্ষেত্রে আমি জানি যে কোন ড্রাইভের কোন ফোল্ডারে গেলে ইন্সটল্ড হওয়া প্রোগ্রামটার .exe এক্সেটেনশনটা পাওয়া যাবে।

স্বপ্নচারী
সমন্বয়ক
Posts: 817
Joined: Sat Sep 15, 2007 10:26 pm
Location: কভেন্ট্রি, ইংল্যান্ড
Contact:

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by স্বপ্নচারী » Fri Jul 03, 2009 7:21 pm

এখানে লিখেছিলাম লিনাক্সের ফাইল স্ট্রাকচার নিয়ে।

নটিলাস একটা ফাইল ব্রাউজার। এর নিজস্ব কিছু প্রটোকল আছে ফাইললিস্ট দেখানোর জন্য। ওয়েব ব্রাউজারে যেমন http://" onclick="window.open(this.href);return false;, ftp:// ইত্যাদি আছে। তেমনি নটিলাসেরও কিছু নিজস্ব প্রটোকল আছে। সেগুলোরই কয়েকটা computer:///, fonts:///, trash:///। এগুলো লিনাক্সের কিছু নয়। বরং নটিলাসের শর্টকাট। একইভাবে কেডিই-তেও ডলফিন বা কনকোয়ারারের বেশ কিছু প্রটোকল আছে।

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

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

অবশ্য এসব আলাদা পার্টিশন, নেটওয়ার্ক ড্রাইভ ইত্যাদি গ্রাফিক্যালি বোঝানোর জন্য নটিলাস বা ডলফিন বা অন্য গুই এনভায়রনমেন্টগুলো ভিন্ন আইকন ব্যবহার করে।

উপরের লিঙ্কে বলেছি, কোথায় সফটওয়্যার ইনস্টল হয়। রিপো থেকে ইনস্টল করলে সেটা নির্দিষ্ট স্থানেই ইনস্টল হবে। নিজে কোনকিছু ইনস্টল করলে বা কম্পাইল করে ইনস্টল করলে জায়গা পরিবর্তন করা যায়।

User avatar
জাহিদ সুমন
প্রযুক্তি মনষ্ক
Posts: 922
Joined: Sun May 25, 2008 6:35 pm
রক্তের গ্রুপ: A+
লাইসেন্স: by-nc-nd (Creative Commons)
Location: Bangladesh
Contact:

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by জাহিদ সুমন » Fri Jul 03, 2009 10:41 pm

১.
লিনাক্সে ফাইলট্রি নিয়ে বেশ প্যাজগীতে আছি। উবুন্টুতে 'ফাইল সিস্টেম' এ গেলে রুটে ঢোকা যায়, কিন্তু Trash বা Computer এ ঢুকতে হলে নটিলাসে trash:/// বা computer:/// লিখতে হয়। Computer এ গেলে দেখা যায় এটার মধ্যে আবার 'ফাইল সিস্টেম' আছে :? , যেটা কিনা আবার রুট। তাহলে ব্যাপারটা কি হল, computer এর ভিতর রুট? নাকি রুটের ভিতর কম্পিউটার? :oo: বহুত প্যাঁচ! লিনাক্সের ফাইল হায়রার্কিটা একটু সহজভাষায় বুঝালে খুব ভালো হয়। [ফোরামে এটা নিয়ে সার্চালাম কিন্তু কোন টপিক (অন্তত আমি) পাইনাই]। আর নটিলাসে কখন trash:/// বা computer:/// এই ফরম্যাটে লিখতে হয়, কারন নরমালি তো একটা স্ল্যাশ ব্যবহার করার কথা, তিনটা কখন আসে?


আপনি লিনাক্স নিয়ে এক্সপেরিমেন্ট এর সাথে সাথে এটি নিয়ে যে কিছুটা ভাবতে শুরু করেছেন তা স্পষ্ট। :v Go Ahead

ফাইল হায়ারার্কিটা শেল মোডে চিন্তা করুন। শেল মোডে যে পাথ পাবেন সেটিকেই আসল পাথ বলতে পারেন। এখানে রুট (/) বা স্ল্যাশ দিয়েই প্রথমে শুরু হয়। আপনি trash বা computer এর যে পাথগুলি বললেন সেগুলিকে সহজভাবে উইন্ডোজের শর্টকার্ট এর মত ভাবতে পারেন। লিনাক্সেও এরকম শর্টকার্ট তৈরী করা যায় কোন ফাইল বা ফোল্ডারের যেটিকে লিংক বলা হয়। লিংক তৈরীর জন্য ln কমান্ড ব্যবহার করা হয় লিনাক্সে।
২.
যদ্দূর বুঝি উইন্ডোজে যেমন সব ফাইলের গোড়া হচ্ছে C ড্রাইভ ঠিক তেমনি লিনাক্সে সেটা রুট (/)। সম্ভবত উইন্ডোজে দুই বা ততোধিক পার্টিশান করলে গোড়াও দুই বা ততোধিক হয়, যেমন E, F, G ইত্যাদি ড্রাইভ নিজে একেকটা গোড়া হয়ে যায় (ভুল বললাম নাকি? :-? )। কিন্তু লিনাক্সে সেক্ষেত্রেও ঐ একটাই রট থাকে। উইন্ডজে আমি পার্টিশন করতাম যাতে সিস্টেম ফেল করলে C ড্রাইভ ছাড়া অন্য কোন ড্রাইভের ফাইলগুলো এফেক্টেড না হয় , কারন রুটিন করে প্রতি দুই তিন মাসে একবার উইন্ডোজ রিন্সটল করতে হত। যেহেতু আমি কেবলমাত্র উইন্ডোজের জন্য C ড্রাইভ ব্যবহার করতাম তাই রিন্সটল করলেও অন্য ড্রাইভগুলোর ডাটা ঠিক থাকত। তাছাড়া আমার মতে অধিকাংশ ভাইরাসের মূল টার্গেট থাকে C ড্রাইভ, তাই ডাটা সেফলি রাখার জন্য উইন্ডোজ ছাড়া তেমন কোন ফাইলই C ড্রাইভে রাখতামনা। পার্টিশন করার আরেকটা কারন ছিল My Computer এ ঢুকলে যাতে সহজেই C ড্রাইভকে পাশ কাটিয়ে আমার দরকারি ফাইলে ইজিলি যেতে পারি, মানে ফাইল ম্যানেজমেন্ট সহজ করে নিতাম আরকি। আমি পার্টিশান ব্যবহার করতাম মূলত এই তিনটি কারনে। কিন্তু লিনাক্সে যেহেতু সব কিছু ঐ রুট থেকেই শুরু হচ্ছে তাতে য়ামার এই তিনটা কাজের একটাও তো কাজে লাগছে না। তাহলে লিনাক্সে হার্ডডিস্ক পার্টিশনের যৌক্তিকতা কতটুকু? আদৌ কি দরকার আছে? যদি ডুয়েল বুট সিস্টেম না থাকে তবে পার্টিশন কি আলাদা কোন এডভ্যান্টেজ যোগ করে?


প্রথমেই বলে নিই- মাউন্ট বলতে হার্ডডিস্কের কোন পার্টিশনকে ব্যবহারকারীর জন্য সিস্টেমে ব্যবহার উপযোগী করাকেই বোঝায়।

উইন্ডোজেও কিন্তু গোড়া আছে। সেটি খানিকটা লুকায়িত থাকে। উইন্ডোজ বুট করার সময়েই অন্যান্য ড্রাইভগুলি অটো মাউন্ট হয়ে যায় এবং সেগুলিকে সে আলাদাভাবে প্রদর্শন করে। কিন্তু লিনাক্সে এরকম লুকোছাপার কোন ব্যাপার নাই। আজকাল লিনাক্সের জিনোম ডেস্কটপ যা আপনি উবুন্তুতে দেখতে পান তাতেও কিন্তু এরকম অটো মাউন্ট হয়ে থাকে উইন্ডোজ বা লিনাক্সের বিভিন্ন ড্রাইভগুলি এবং সেগুলিকে আইকন আকারে ডেস্কটপে এবং কম্পিউটারেও দেখানো হয়ে থাকে। তারপরও আপনি এ উইন্ডোজ এবং লিনাক্সের ড্রাইভগুলিকে আলাদাভাবে রুট এর আন্ডারে /media ফোল্ডার বা কোন কোন ডিস্ট্রোতে /mnt ফোল্ডারে পাবেন। তবে আপনি ইচ্ছা করলে এগুলিকে অন্য যেকোন ফোল্ডার এমনকি আপনার হোম ফোল্ডারেও মাউন্ট করতে পারবেন কমান্ড দিয়ে বা /etc/fstab ফাইলে কনফিগারেশন প্যারামিটার দিয়ে।

আপনাকে একটা প্রশ্ন করিঃ যখন নতুন করে উইন্ডোজ ইনস্টল করার সময় সি ড্রাইভ ফরম্যাট করেন তখন কি ড্রাইভগুলি উইন্ডোজ না থাকলে বাস্তবে থাকে না? ড্রাইভগুলি অপারেটিং সিস্টেম উইন্ডোজ বা লিনাক্সের সাথে সম্পর্কিত নয় বরং এটি হার্ডডিস্কের সাথে সম্পর্কিত। এখানে প্রাইমারি পার্টিশন আছে - লজিক্যাল পার্টিশন আছে- আছে এক্সটেনডেড পার্টিশন। এগুলি ডস লেভেলের কিছু প্রোগ্রাম (example: fdisk) দিয়েই কিন্তু লিনাক্স বা উইন্ডোজ ইনস্টলের আগেই করা হয়ে থাকে। আজকাল অবশ্য কিছু গ্রাফিক্যাল টুলস যেমন জিপার্টেড বা পার্টিশন ম্যাজিক পাওয়া যায়।

তাই আপনি পার্টিশন করলে উইন্ডোজে যেমন আলাদাভাবে ডাটা সংরক্ষন করতে পারছেন - লিনাক্সেও কিন্তু পারবেন। লিনাক্সেও তো পার্টিশনগুলি আইকন আকারে ডেস্কটপে পাচ্ছেন। এখানে লজিক্যাল কোন পার্থক্য নেই। বরং লিনাক্সে আপনি পার্টিশনগুলিকে ইচ্ছামত মাউন্ট করাসহ কন্ট্রোল করতে পারেন যা উইন্ডোজে সম্ভব নয়। লিনাক্সে মাউন্ট এর জন্য mount কমান্ড ব্যবহার করা হয় যেখানে অনেকগুলি অপশন যোগ করা যায়। দেখার জন্য কমান্ড দিন man mount। সুতরাং বুঝতেই পারছেন লিনাক্স কত ফ্লেক্সিবল।

এখানে একটি কথা বলে নেয়া ভাল- যেহেতু রুট এর আন্ডারে কোন ফোল্ডার যেমন /media বা /mnt ফোল্ডারে অন্য ড্রাইভগুলি মাউন্ট করছেন তাই মনে হতে পারে যে, লিনাক্সের পার্টিশন ফরম্যাট করলে আপনার অন্য ড্রাইভগুলিও মুছে যাবে- কিন্তু এটি নিয়ে মোটেও চিন্তা করার কিছু নেই। আপনি বরং নিজে মুছে দিয়ে দেখুন লিনাক্সের পার্টিশনটি, দেখবেন অন্য সব ড্রাইভ ঠিক আছে। তারপর আবার লিনাক্সের পার্টিশনেই লিনাক্স ইনস্টল করলে অন্য ড্রাইভের সব কিছু ফেরত পাবেন। আশা করি বুঝতে পেরেছেন।

যারা লিনাক্সে এক্সপার্ট তাদের জন্য কিছু কথা- লিনাক্স যেহেতু কাস্টমাইজেবল তাই অনেকেই লিনাক্সে ব্যবহারকারীর ফোল্ডারসমূহ যেমন /home, /usr, /var ফোল্ডারগুলি অন্য কোন ড্রাইভে ইনস্টলের সময় টার্গেট করে দেন যাতে রুট (/) এর ড্রাইভ মুছে ফেললেও ব্যবহারকারীর ডাটা সুরক্ষিত থাকে। ঠিক যেমনটি উইন্ডোজে আমরা মাই ডকুমেন্টকে অন্য ড্রাইভে টার্গেট করে দিয়ে থাকি। এটি লিনাক্স দিয়ে সার্ভার মেশিন তৈরীর সময় করা হয়ে থাকে যাদের কাছে মিশন ক্রিটিক্যাল ডাটা থাকে।
৩.
উইন্ডোজে কোন ফাইল ইন্সটল করলে সেটা কোথায় ইন্সটল হবে তা নির্ধারন করার জন্য ব্রাউজ অপশন দেয়, যেটা দিয়ে ডিরেক্টরি চুজ করা যায়। লিনাক্সে তো সেরকম কিছু নাই। তাহলে বাই ডিফল্ট ফাইল যেখানে ইন্সটল হতে চাইবে সেখানেই ইন্সটল হবে, ইউজারের কি কোন ডিরেক্টরী চুজ করার অপশন নাই? আর এই ফাইলগুলো ইন্সটলই বা হয় কোথায়? :-? কারন সব সময় দেখি Applications এ ইন্সটল্ড হওয়া প্রোগ্রামের একটা আইকন এসে যোগ হয়। কিন্তু উইন্ডোজে ক্ষেত্রে আমি জানি যে কোন ড্রাইভের কোন ফোল্ডারে গেলে ইন্সটল্ড হওয়া প্রোগ্রামটার .exe এক্সেটেনশনটা পাওয়া যাবে।
আপনি যখন সিন্যাপ্টিক/এ্যাড-রিমুভ এর মত গ্রাফিক্যাল বা শেল ইনস্টলার ব্যবহার করবেন তখন কিন্তু ডিফল্ট ডিরেক্টরীতে প্রোগ্রামগুলি ইনস্টল হয়ে থাকে। আর এটি সাধারন /usr ফোল্ডারেই হয়ে থাকে। একটু ঘাটাঘাটি করুন তাহলে এ ফোল্ডারে সব পেয়ে যাবেন। আর লিনাক্সে .exe লাগে না ভাই। আপনি .exe দিয়ে ফাইল তৈরী করতে পারবেন লিনাক্সে কিন্তু তাকে যদি execute করার পারমিশন না দেন তাহলে তা কোনদিনই রান করবে না। লিনাক্সের প্রায় সব এক্সিকিউটেবল প্রোগ্রাম আপনি /usr, /bin ফোল্ডারগুলিতে পাবেন। এগুলির প্রোপার্টিজ দেখে বুঝতে পারবেন যে এগুলি এক্সিকিউটেবল ফাইল। যেমন শেল মোডে যে কমান্ডগুলি দেয়া হয় তা /bin ফোল্ডারে আপনি পাবেন।

আর সিন্যাপ্টিক বা apt-get, aptitude কমান্ড ছাড়া আপনি যদি কম্পাইল করা প্রোগ্রাম ইনস্টল করেন তাহলে যেকোন ফোল্ডারেই তা ইনস্টল করা সম্ভব। এছাড়াও আজকাল লিনাক্সে একধরনের শেল মোড ইনস্টলার পাওয়া যায় যার এক্সটেনশন সাধারনতঃ install.sh টাইপের হয়ে থাকে। এগুলি যেকোন ফোল্ডারে এমনকি হোম ফোল্ডারেও প্রোগ্রামকে ইনস্টল করতে পারে। তাই এটি নিয়ে চিন্তার কিছু নেই।

উদাহরনস্বরূপ virtual box সফটওয়্যারটি লিনাক্সে খুবই জনপ্রিয়। এটি সিন্যাপ্টিক বা এড-রিমুভ প্রোগ্রাম দিয়ে ইনস্টল করা যায়। একইসাথে এটি আপনি নেট থেকেও নামাতে পারেবন http://www.virtualbox.org/wiki/Linux_Downloads" onclick="window.open(this.href);return false; এড্রেস থেকে যেখানে দেখুন উবুন্তু/ডেবিয়ান ইত্যাদি বিভিন্ন লিনাক্সের পাশাপাশি একদম নীচে অল ডিস্ট্রিবিউশনের জন্য প্যাকেজ দেয়া আছে। এটিই সেই প্যাকেজ যেটিকে আপনি যেকোন ফোল্ডারে ইনস্টল করতে পারবেন উইন্ডোজের মত। তবে ডিস্ট্রোর নিজস্ব প্যাকেজ ব্যবহার করাই উত্তম যাতে ডিফল্ট লোকেশনে প্রোগ্রামটি ইনস্টল হয়ে থাকে কারন তাতে কম্প্যাটিবিলিটি এ্যান্ড পারফর্ম্যান্স বেশী পাওয়া যায়।
Last edited by জাহিদ সুমন on Sun Jul 05, 2009 11:26 am, edited 1 time in total.
লিনাক্স নিয়ে লিখছি-বাংলাতে আমার ব্লগে

User avatar
অভ্রনীল
প্রযুক্তি মনষ্ক
Posts: 1507
Joined: Sun May 24, 2009 6:42 pm
লাইসেন্স: by-nc-sa(Creative Commons)
স্ট্যাটাস: উবুন্টু ১০.০৪ [ল্যুসিড লিংক্স]
Location: ঢাকা
Contact:

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by অভ্রনীল » Sat Jul 04, 2009 4:33 pm

জাসু ভাই আর স্বপু ভাইকে অনেকানেক ধন্যবাদ, ফাইল নিয়ে কিছু জিনিস পরিস্কার করার জন্য।

আমি যদ্দূর জানি লিনাক্সে ফাইলের এক্সটেনশনের কোন ভূমিকা নেই। অর্থ্যাৎ .exe .doc .mp3 এইসবের কোন দরকার নেই।

গুই ব্যবহার না করে টর্মিনালে কোন ফাইল দেখে তাহলে কিভাবে বুঝব যে এইটা অডিও ফাইল না সিস্টেম ফাইল? কারন উইন্ডোজে একটা ফাইলের এক্সটেনশন দেখে আমি ফাইলটার ধরন বুঝতাম।

User avatar
অভ্রনীল
প্রযুক্তি মনষ্ক
Posts: 1507
Joined: Sun May 24, 2009 6:42 pm
লাইসেন্স: by-nc-sa(Creative Commons)
স্ট্যাটাস: উবুন্টু ১০.০৪ [ল্যুসিড লিংক্স]
Location: ঢাকা
Contact:

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by অভ্রনীল » Sat Jul 04, 2009 4:55 pm

স্বপ্নচারী wrote:এখানে লিখেছিলাম লিনাক্সের ফাইল স্ট্রাকচার নিয়ে।

ফাইল স্ট্রাকচার নিয়ে স্বপু ভাইয়ের পোস্টটা এইখানে হুবহু কপি করলাম, কেবল মাত্র আমার নিজের সুবিধার জন্য! স্বপু ভাইয়ের বা অন্য কারো আপত্তি থাকলে মডু ভাইদের অনুরোধ করব এই পোস্টটা সরায় দেবার জন্য।


পোস্ট-১
স্বপ্নচারী wrote:লিনাক্সের ফাইলসিস্টেমে ড্রাইভ বলতে কিছু নেই। এখানে ফোল্ডার, ফাইল, ডিভাইস সবকিছু একটা ট্রি-র নিচে থাকে। সেই গাছের গোড়া হচ্ছে / (slash)। এখান থেকেই বিভিন্ন ফোল্ডার, ফাইল, ডিভাইস, পার্টিশন প্রভৃতি মাউন্ট হয়। মাউন্ট মানে সোজা বাংলায় যুক্তকরণ। আর সোজা ইংরেজীতে এটাচ। এখান থেকে বিভিন্ন ফোল্ডার সাজানো থাকে। তার মধ্যে জানা প্রয়োজন কয়েকটা বিশেষ ফোল্ডার। সেগুলো হচ্ছে:

/bin এবং /sbin
এগুলোতে লিনাক্সের মূল কমান্ডগুলো থাকে। যেগুলো সকল লিনাক্স ডিস্ট্রোতে তো একই, বরং অন্যান্য POSIX ওএসেও (যেমন: সোলারিস, বিএসডি, প্রভৃতি) একই।

/boot
এখানে থাকে কম্পিউটার কীভাবে লিনাক্সকে বুট করবে সে সম্পর্কিত ফাইল/ফোল্ডার।

/dev
এখানে থাকে ডিভাইস ফাইলসমূহ। মানে এটাকে হার্ডওয়্যার ড্রাইভার গুদামও বলা যায়।

/etc
এখানে থাকে বিভিন্ন এপ্লিকেশনের কনফিগারেশন ফাইলসমূহ। এটাকে উইন্ডোজ রেজিস্ট্রির সাথে তুলনা করা যায়।

/home
এটাই হচ্ছে ইউজারদের নিজস্ব এলাকা। প্রত্যেক ইউজারের আলাদা ফোল্ডার থাকবে এখানে সেই ইউজারের নামে। যখনই কোন ইউজার লগইন করে মেশিনে, শুধু এখানেই তার যা কিছু করার অধিকার থাকে। এর বাইরে কিছু করতে হলে হয় এডমিন হতে হবে, নয়তো এডমিনের পারমিশন লাগবে।

/lib
এখানে থাকে সফটওয়্যার চালানোর জন্য বিভিন্ন লাইব্রেরি। এটাকে উইন্ডোজের ডিএলএল ফাইলের ভাণ্ডার বলা যেতে পারে।

/media
উবুন্তুতে এক্সটার্নাল সকল ডিভাইস এই ফোল্ডারে মাউন্ট হয়। তবে হার্ডডিস্কে একাধিক পার্টিশন থাকলে সেগুলোও এখানে মাউন্ট হয়। সাধারণত ইনস্টলের সময় যদি পার্টিশনগুলো থাকে উবুন্তু স্বয়ংক্রিয়ভাবে সেগুলো এখানে মাউন্ট করে এবং Places ও ডেস্কটপে শর্টকাট আইকনও তৈরী করে। অন্যান্য প্লাগ এন প্লে ডিভাইস অটোমাউন্ট হয় এবং যথারীতি আইকন দেখায়।

/mnt
এটা আগে /media র কাজ করত। অন্যান্য লিনাক্সে এখনও করে। তবে উবুন্তু এখানে কিছু করে না। /mnt -র চাইতে /media টা বেশি ভালো শোনা, তাই না?

/proc
এখানে কিছু ডাইন্যামিক ফাইল থাকে। যা হার্ডওয়্যার সম্পর্কে তথ্য প্রদান করে। প্রোগ্রামারদের জীবন সহজ করার জন্য এখানে বেশ সহজ কিছু ফাইল পাওয়া যায়। যা পড়তে গেলে ডাইন্যামিক্যালি হার্ডওয়্যার ডাটা দেখায়। যেমন - cat
/proc/cpuinfo কমান্ডটা প্রসেসরের ইনফরমেশন দেখাবে।

/root
লিনাক্সে একজন সর্বময় ক্ষমতার অধিকারী ইউজার থাকে। এই মহামান্য ইউজারের নাম root। এই ইউজার এই কম্পিউটারের যেকোন রকম পরিবর্তন করতে সক্ষম। অর্থাৎ এই কম্পিউটার ধ্বংস করার ক্ষমতাও তার হাতে। সুতরাং উবুন্তুতে এই ইউজারকে
অক্ষম করে রাখা হয়েছে। আর এই ফোল্ডারটা তার হোম ফোল্ডার, ঠিক যেমনটা অন্যান্য ইউজারদের জন্য /home/USERNAME

/sys
নামেই বোঝা যাচ্ছে এটা সিস্টেম ফোল্ডার।

/tmp
এখানে সকল প্রকার টেম্পোরারী ফাইল বা ক্যাশ থাকে।

/usr
এখানে সকল এপ্লিকেশন থাকে। অনেকটা উইন্ডোজের প্রোগ্রাম ফাইলস ফোল্ডারের মত। তবে এখানে আরও অনেক কিছুই থাকে, যেমন প্রোগ্রামারদের জন্য সহায়তাকারী ফাইল, লাইব্রেরী প্রভৃতি। মজার ব্যাপার হলো লিনাক্সের সোর্স কোডও এই ডিরেক্টরিতে পাওয়া যাবে src ফোল্ডারের ভেতর। উইন্ডোজে এই সোর্স ফোল্ডারটা পাবেন মাইক্রোসফটের কোন অফিসের সিন্দুকের ভেতর।

/var
এটাও অনেকটা ক্যাশের মত কাজ করে। তবে এখানে সার্ভারের পাবলিক ফোল্ডারও পাওয়া যায় www তে।

অতএব দেখাই যাচ্ছে, সাধারণ ব্যবহারের জন্য সব ফোল্ডার জানার কোনই প্রয়োজন নেই। প্রত্যেক ব্যবহারকারী তার নিজের হোম ফোল্ডার নিয়ে ব্যস্ত থাকলেই চলবে। অন্য কোথাও নাক গলানোর প্রয়োজন নেই big_smile।
পোস্ট-২
স্বপ্নচারী wrote:একটা সফটওয়্যার অনেকগুলো ফাইলের সমন্বয়ে তৈরী হয়। কিছু শেয়ারড লাইব্রেরী, স্ট্যাটিক লাইব্রেরী, কনফিগারেশন ফাইল, এক্সিকিউট্যাবল ফাইল, সোর্স ফাইল, হেডার ফাইল প্রভৃতি। লিনাক্সে এসব ফাইলসমূহকে ভিন্ন ভিন্ন ফোল্ডারে রাখা হয়। যেমন - lib, etc, bin, src, include প্রভৃতি।

লিনাক্সের নিজস্ব সিস্টেম প্রোগ্রামগুলো তাদের ফাইলসমূহ / (রুট) ফোল্ডারেই রাখে। অর্থাৎ /lib, /etc, /bin, /sbin এসব ফোল্ডারগুলোতে। এরপর আসে বিভিন্ন এপ্লিকেশন প্রোগ্রাম, যেমনঃ ফায়ারফক্স, ওপেনঅফিস প্রভৃতি। এসব তৃতীয় পক্ষের সফটওয়্যারগুলোর জন্য নির্ধারিত আছে /usr ফোল্ডারটি। অর্থাৎ এর ভেতরেও রয়েছে lib, bin ফোল্ডারসমূহ। যেখানে এপ্লিকেশন প্রোগ্রামগুলোর ফাইলসমূহ থাকে।

এই নিয়মের একটু ব্যতিক্রমও আছে। সেটা হচ্ছে etc, include আর src ফোল্ডারসমূহ। সিস্টেম ও এপ্লিকেশন উভয় প্রকার প্রোগ্রামই এই ফোল্ডারগুলো শেয়ার করে। etc সরাসরি রুট ফোল্ডারে থাকে, include ও src ফোল্ডারগুলো /usr এর ভেতর থাকে।

/usr ফোল্ডারটা ডিস্ট্রো থেকে প্রাপ্ত সফটওয়্যারগুলোর জন্য নির্ধারিত। অর্থাৎ সরাসরি রিপোজিটরি থেকে যেসব সফটওয়্যার আমরা ইনস্টল করি apt বা yum এর মাধ্যমে, তাদের জন্য।

আমরা জানি, সোর্স থেকে কম্পাইল করে আমরা লিনাক্সে প্রোগ্রাম ইনস্টল করতে পারি। যেগুলো ডিস্ট্রোতে নেই। অথবা ডিস্ট্রোর থেকে আলাদা ভার্সন ব্যবহার করতে চাই। এখন এগুলোকে কোথায় ইনস্টল করবো? আমার যেখানে খুশী সেখানে ইনস্টল করতে পারি। তবে এর জন্যও একটা কনভেনশন আছে, মানে একটা জায়গা নির্দিষ্ট করা আছে। সেটা হলো /usr/local/। আমরা যখন কম্পাইল করে কোন প্রোগ্রাম ইনস্টল করতে যাই। সেটা সাধারণত এই ফোল্ডারে ইনস্টল হয়। ফলে এখানে সেই bin, lib ফোল্ডারসমূহ তৈরী হয়। অবশ্য আর একটা জনপ্রিয় জায়গা হচ্ছে /opt, এখানেও অনেক ইনস্টলার প্রোগ্রাম ইনস্টল করে। ফলে এখানেও এরকম স্ট্রাকচার দেখা যাবে।

এভাবে লিনাক্সে বিভিন্ন প্রোগ্রামের জন্য ভিন্ন লোকেশন ঠিক করা হয়। এর ফলে একটার সাথে আর একটার যুদ্ধ বাঁধার সম্ভাবনা কমে যায়। আরও লাভ যেটা হয়, সেটা হচ্ছে একই সময়ে একই সফটওয়্যার ভিন্ন ভার্সন ইনস্টল ও ব্যবহার করা যায়। যেমন - এই মুহূর্তে আমার ম্যাকে ছয়টা ভিন্ন পাইথন, চারটা এ্যপাচে ইত্যাদি ইনস্টল করা আছে। যখন যেটার দরকার হয়, তখন সেটা ব্যবহার করি।

User avatar
অভ্রনীল
প্রযুক্তি মনষ্ক
Posts: 1507
Joined: Sun May 24, 2009 6:42 pm
লাইসেন্স: by-nc-sa(Creative Commons)
স্ট্যাটাস: উবুন্টু ১০.০৪ [ল্যুসিড লিংক্স]
Location: ঢাকা
Contact:

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by অভ্রনীল » Sat Jul 04, 2009 5:06 pm

নীচের ফাইলগুলা সম্পর্কে জানতে পারলে ভাল হত!
  • /cdrom
    /lost+found
    /opt
    /selinux
    /srv
এর মধ্যে /cdrom এর কাজ বুঝতে পারছি। উইন্ডোজের CD ROM ড্রাইভের মত কাজ করে। অর্থ্যাৎ কোন CD বা DVD ড্রাইভে ঢুকানো হলে সেটা এক্সেস করতে এই ফাইলের কাচেই জেতে হয়।

আরো একটা প্রশ্ন ছিল। উবুন্টুতে "ফাইল সিস্টেম" এ নিচের ফাইল গুলোও দেখায়, এগুলার ফাংশন কি?
  • initrd.img
    initrd.img.old
    vmlinuz
    vmlinuz.old

User avatar
সাইফ
প্রযুক্তি মনষ্ক
Posts: 805
Joined: Sat Jul 19, 2008 3:30 am
লাইসেন্স: by-nc-nd (Creative Commons)
স্ট্যাটাস: অনলাইন আয় শেখার চেস্টায় আছি....
পছন্দ করি: উবুন্টু লিনাক্স, ফায়ারফক্স, অপেন সোর্স।
Location: হেলানবিহীন টুলে...
Contact:

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by সাইফ » Sat Jul 04, 2009 6:09 pm

আরও একটা দারুন টপিক খোলার জন্য অভ্রনীল ভাইকে অনেক ধন্যবাদ। অনেক কিছু জানতে পারলাম।
স্বপ্নচারী ও জাহিদ সুমন ভাইকেও অনেক ধন্যবাদ... এতো সুন্দর করে বোঝালে কম্পিউটার ট্রেনিং সেন্টার ওয়ালারা না খেয়ে মরবে। :-D
অভ্রনীল ভাই wrote: ফাইল স্ট্রাকচার নিয়ে স্বপু ভাইয়ের পোস্টটা এইখানে হুবহু কপি করলাম, কেবল মাত্র আমার নিজের সুবিধার জন্য...
আমার মতে সবার সুবিধা হবে, ধীর গতির ইন্টারনেট দিয়ে আর একটি পেজ ব্রাউজ করা লাগবেনা। :thumb:

স্বপ্নচারী
সমন্বয়ক
Posts: 817
Joined: Sat Sep 15, 2007 10:26 pm
Location: কভেন্ট্রি, ইংল্যান্ড
Contact:

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by স্বপ্নচারী » Sat Jul 04, 2009 7:41 pm

ফাইল এক্সটেনশন কোন সিস্টেমেই দরকার নাই। উইন্ডোজেও না। ফাইল এক্সটেনশন দেয়া হয় ভিজ্যুয়াল ফিলের জন্য এবং গ্রাফিক্যাল ফাইল ম্যানেজারকে জানানো যে এটা কী দিয়ে চালাতে হবে। কোন ফাইল কী ধরণের সেটা ফাইলের ভিতরেই লেখা থাকে।

file FILENAME কমান্ড দিয়ে সংক্ষেপে ফাইল সম্পর্কে জানা যায়।

/cdrom, /opt সম্পর্কে তো আগেই বলেছি। ঠিকমত পড়া হয়নি মনে হচ্ছে। বাকিগুলো উবুন্তুতে পাওয়া যায় না, ফেডোরাতে পাওয়া যায়।

/lost+found ফোল্ডারে হারিয়ে যাওয়া ফাইল থাকে। কোন কারণে যদি সিস্টেম ফেইল করে বা ফাইল সেভ করতে না পারে। পরবর্তী বুটের সময় সেটা রিকভারের চেষ্টা করা হয়। সেই সময়ে কিছু পেলে এই ফোল্ডারে সেগুলো রাখা হয়।

/selinux ফোল্ডারে লিনাক্স সিকিউরিটি সিস্টেম selinux এর কনফিগারেশন থাকে। এই selinux সিস্টেমে ইনস্টলকৃত প্রোগ্রামগুলোর পারমিশন, সিকিউরিটি প্রভৃতি ঠিক করে দেয়। উবুন্তুতে এটা নেই, এর বিকল্প আর একটা আছে - apparmour.

/srv ফোল্ডার হচ্ছে ওয়েব সার্ভারের জন্য। উবুন্তুতে এটা /var/www

User avatar
অভ্রনীল
প্রযুক্তি মনষ্ক
Posts: 1507
Joined: Sun May 24, 2009 6:42 pm
লাইসেন্স: by-nc-sa(Creative Commons)
স্ট্যাটাস: উবুন্টু ১০.০৪ [ল্যুসিড লিংক্স]
Location: ঢাকা
Contact:

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by অভ্রনীল » Sun Jul 05, 2009 2:59 am

সাইফ wrote:আরও একটা দারুন টপিক খোলার জন্য অভ্রনীল ভাইকে অনেক ধন্যবাদ। অনেক কিছু জানতে পারলাম।
স্বপ্নচারী ও জাহিদ সুমন ভাইকেও অনেক ধন্যবাদ... এতো সুন্দর করে বোঝালে কম্পিউটার ট্রেনিং সেন্টার ওয়ালারা না খেয়ে মরবে। :-D
হক কথা! :thumb: শুধু এই দুজননা, ব্রাসু ভাই, অখা ভাই, আশু ভাই, উতা ভাই, আরো কতজন যে আমার এই সব বোকা-সোকা কথা শুনার পরও সাহায্য করতেসে তার ইয়েত্তা নাই!!
স্বপ্নচারী wrote:/cdrom, /opt সম্পর্কে তো আগেই বলেছি। ঠিকমত পড়া হয়নি মনে হচ্ছে।
/opt খিয়াল করিনাই... ছরি!! :ttt:
স্বপ্নচারী wrote:বাকিগুলো উবুন্তুতে পাওয়া যায় না, ফেডোরাতে পাওয়া যায়।
স্বপু ভাই, এই গুলা কিন্তু আমার উবুন্টুর রুটে আছে!

User avatar
invarbrass
প্রযুক্তি মনষ্ক
Posts: 897
Joined: Tue Apr 29, 2008 9:37 am
রক্তের গ্রুপ: O+

বোকা-সোকা প্রশ্নঃ লিনাক্সের ফাইল নিয়ে ফালাফালি

Post by invarbrass » Sun Jul 05, 2009 3:33 pm

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

যেমন ম্যাক ওএসএক্স-এ /Library, /Applications, /Users এই ধরণের কিছু এক্সট্রা নন-স্ট্যান্ডার্ড ফোল্ডার পাওয়া যায়। এছাড়া স্ট্যান্ডার্ড অনুযায়ী /srv ফোল্ডারটি সবার ব্যবহার করার কথা, কিন্তু বেশিরভাগ ডিস্ট্রোতেই /var/www ব্যবহার করে।

কিছু পলিটিকাল ব্যাপারস্যাপারও আছে - এই স্ট্যান্ডার্ড বানিয়েছে লিনাক্স ওয়ালারা, কাজেই লিনাক্সের চেয়ে ২০-২২ বছরের পুরণো আসল ইউনিক্স সিস্টেমগুলো এটা মানেনা। (খুব বেশিদিন আগের কথা না, লিনাক্স-এর পরিচিতি/বদনাম ছিলো ইনফিরিয়র কোয়ালিটির ফ্রী ইউনিক্স ক্লোন হিসাবে :-D )

বিস্তারিত জানতে:
http://en.wikipedia.org/wiki/Filesystem ... y_Standard" onclick="window.open(this.href);return false;
http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/" onclick="window.open(this.href);return false;
http://tldp.org/LDP/intro-linux/html/chap_03.htm" onclick="window.open(this.href);return false;

Post Reply

Return to “লিনাক্স”