Sunday, July 30, 2017

কমান্ড লাইন -৫ (Wildcard/তুরুপের তাস)


পর্ব= (Wildcard/তুরুপের তাস)

আজকের বিষয় হল Wildcard, লিনাক্স সেলের এক বিশেষ ফিচার, বাংলায় একে তুরুপের তাস বললে মনে হয় অন্যায় কিছু হবে না, কারণ এর কাজটা এমনই। যেমন, মনে করা যাক আপনি চাচ্ছেন কোন ডাইরেক্টরির সকল .pdf ফাইল কপি করবেন অথবা মুভ(move) করবেন, তাহলে শুধু মাত্র ওই ডাইরেক্টরিতে গিয়ে লিখবেন,
cp -uv *.pdf গন্তব্য
গন্তব্য = যেখানে(যে ডাইরেক্টরিতে) কপি করে রাখবেন।
@ লক্ষ্য করুন, শুধুমাত্র * (স্টার) দেওয়ার জন্য আপনার আর একটা একটা করে ফাইলের নাম লিখে কপি করতে হল না।
এখানে এই স্টার ই আপনার তুরুপের তাস!
@ স্টার (*) চিহ্নের পর কোন স্পেস (ফাঁকা স্থান) রাখবেন না।
এমন আরো অনেক রকমের তুরুপের তাস রয়েছে যা আপনার কাজকে অনেক সহজ করে দেয়। সেগুলি নিচে দেওয়া হল,

------------------------------------------------------------------------------------------------------
* = সকল ক্যারেক্টার নিয়ে কাজ করবে।
যেমন, cp -uv *.txt গন্তব্য ; এই কমান্ড সকল .txt ফাইল কপি করে আপনার নির্দেশিত ডাইরেক্টরিতে রাখবে ।
? = যে কোন একটি ক্যারেক্টার নিয়ে কাজ করবে ।
যেমন, cp -uv Gnu????? গন্তব্য ; Gnu দিয়ে শুরু হবার পর যেগুলির সাথে আরো পাঁচটি ক্যারেক্টার আছে তাদের নিয়ে কাজ করবে ।
[characters] = সেটের ভেতর যে সব ক্যারেক্টার থাকবে তাদের নিয়ে কাজ করবে।
যেমন, [ASDF] ; যেসব ফাইল বা ডাইরেক্টরি ASDF দিয়ে শুরু তাদের নিয়ে কাজ করবে।
[!characters] = সেটে যেসব ক্যারেক্টার রাখবেন, সেগুলি ছাড়া অন্য সব ক্যারেক্টার নিয়ে কাজ করবে।
[[:class]] = বিশেষ ক্লাসের মধ্যে যে সকল ক্যারেক্টার আছে তাদের নিয়ে কাজ করবে ।
------------------------------------------------------------------------------------------------------
[:alnum:] = (alphabet + number) অক্ষর এবং সংক্ষা নিয়ে কাজ করবে।
[:alpha:] = শুধুমাত্র অক্ষর নিয়ে কাজ করবে।
[:digit:] = সংখ্যা(ডিজিট) নিয়ে কাজ করবে।
[:lower:] = ছোট হাতের অক্ষর(smaller letter/lower case letter) নিয়ে কাজ করবে।
[:uppr:] = বড় হাতের অক্ষর(capital letter/upper case letter) নিয়ে কাজ করবে।
------------------------------------------------------------------------------------------------------
* = সকল ক্যারেক্টার নিয়ে কাজ করবে।
a* = যেসব ক্যারেক্টার a দিয়ে শুরু হয়েছে তাদের নিয়ে কাজ করবে।
a*.mp3 = যেসব ক্যারেক্টার a দিয়ে শুরু হয়েছে এবং শেষ হয়েছে .mp3 দিয়ে।

আপনি যা কিছু সিলেক্ট করতে যাচ্ছেন তা দেখে নিতে পারেন ls কমান্ড ব্যবহার করে।
যেমন, ls a*.mp3 
 
------------------------------------------------------------------------------------------------------
Reference Book: The Linux Command Line

Writer: William Shotts

Third Internet Edition
------------------------------------------------------------------------------------------------------



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



গনু/লিনাক্সের প্রয়োজনে আমার লেখাগুলি কপি/পেস্ট করতে পারেন।



আরো দেখুন,

Sunday, July 23, 2017

উইন্ডোজ আর গনু+লিনাক্স

আজ উইন্ডোজ আর গনু+লিনাক্স নিয়ে কিছুটা আলোচনা করবো, এ নিয়ে আর কথা বলব না বলেই ঠিক করেছি, তাই এটি সম্ভবত এই বিষয় নিয়ে আমার শেষ পোস্ট।

অধিকাংশ নতুন লিনাক্স ব্যবহারকারীদের মত আমিও একটি কাজ প্রায়ই করেছি, শুধু উইন্ডোজের কটুক্তি করা।
যে সব বিষয়ে ওগুলি করেছি বা কেউ করে, তথ্যগুলি ভুল থাকে না, ভুল থাকে চেতনায়।
উইন্ডোজ অবশ্যই অত্যন্ত বন্ধুসুলভ এবং ভাল গ্রাফিক্সের অপারেটিং সিস্টেম। এ বিষয়ে সারা দুনিয়া একমত, কারণ এটাই সত্য। আমি সত্য ভালবাসি, তাই আমিও একমত। গেমস খেলায় ভাল অনুভুতি পেতে হলে উইন্ডোজ ব্যবহারের বিকল্প এখনো নেই। আর আমাদের নিত্য প্রয়োজনীয় প্রায় সকল সফ্টয়্যারই উইন্ডোজে পাওয়া যায়। এমনকি গনু প্রজেক্টের প্রায় সকল অ্যাপ্লিকেশন (সফ্টয়্যার) এর উইন্ডোজ ভার্সন রয়েছে।
-----------------------------------------------------------
হ্যাঁ, তবে প্রশ্ন হল, "সবই যদি ওখানেই পাওয়া যায় তবে (উইন্ডোজ) ব্যবহার করতে দোষ কি?"
=> এখানে দোষের কিছু নেই।
----------------------------------------------------------
তাহলে গনু+লিনাক্স কেন ব্যবহার করবো?
=>
১। আপনি যদি আপনার কম্পিউটারের সম্পূর্ণ নিয়ন্ত্রণ নিজের কাছে রাখতে চান,
২। যদি অপারেটিং সিস্টেম কিভাবে কাজ করে বা কিভাবে লেখা হয়েছে দেখতে চান বা জানতে চান,
৩। যদি সফ্টয়্যারকে নিজের মত করে ব্যবহার করতে চান,
৪। যদি অযথা টাকা খরচ করে ভাইরাস/অ্যান্টিভাইরাস খেলা না খেলতে চান,
৫। যদি টাকা দিয়ে ভিপিএন না কিনে সর্বোচ্চো নিরাপত্তা চান,
৬। যদি ড্রাইভার ইন্সটলেশনের ঝামেলা থেকে দূরে থাকতে চান ,
৭। যদি সফ্টয়্যয়ার কোম্পানীর দাসত্ব না করতে চান,
তাহলে গনু+লিনাক্স আপনার জন্যই।

এছাড়াও যে কোন গনু+লিনাক্স ডিস্ট্রো উইন্ডোজের তুলনায় অনেক কম জায়গা ব্যবহার করে [(এর কারণ হল শেয়ারিং পদ্ধতি (শেষের দিকে আলোচনা করা হবে)]
-------------------------------------------------------------
যেহেতু বাংলাভাষী ভাই-বোনদের কথা ভেবে লিখি, তাই আরো কিছু তথ্য দেওয়ার প্রয়োজনীয়তা অনুভব করছি,
আমাদের দেশে গ্রাম-গঞ্জ থেকে শুরু করে বড় শহর পর্যন্ত যারা উইন্ডোজ ব্যবহার করেন, তাঁদের অধিকাংশ এটাকে সম্পূর্ণ বিনামূল্য ভেবেই করেন। আর জানেনও না যে অপারেটিং সিস্টেম কি? এটা অবশ্য তাঁদের দোষ নয়, দোষটা আমাদের, শিক্ষিত সমাজের। যারা শুধু জ্ঞান প্রচারের চেয়ে জ্ঞান বিক্রি কে বেশি প্রাধান্য দিই। নিজেদের স্বল্প স্বার্থের জন্য দেশের বৃহৎ স্বার্থকে ধ্বংস করা উচিৎ নয়। আবার আসবো এ বিষয়ে, তার আগে আর একটি বিষয় সামনে আনা জরুরী, তা হল সফ্টয়্যার "ক্র্যাক (crack)" করে চালানো, এক্ষেত্রে অধিকাংশ মানুষ জানেও না যে সে আসলে কি করছে, এটা ভাল না খারাপ, নিরাপদ নাকি অনিরাপদ.......অবশ্যই খারাপ এবং অনিরাপদ। এভাবে আপনার তথ্য বেহাত হবার আশঙ্কা থেকেই যায়।
আগের প্রসঙ্গে আসা যাক, প্রত্যেক নাগরিকই দেশের অংশ, আর আপনার তথ্য অন্য দেশের হাতে যাওয়া মানে হল দেশের তথ্য পাচার হওয়া, অন্তত এই সুযোগটা কাওকে দেয়া উচিৎ নয়। নিজেকে এবং নিজের দেশকে ভালবাসতেই হবে কারণ এটাই আপনার পরিচয় ।
.
এজন্য মুক্ত সোর্সের(open source) সফ্টয়্যার ব্যবহার করাই যথার্থ।
-------------------------------------------------------------------
গনু+লিনাক্সের প্রোগামগুলি তাদের লাইব্রেরী ফাইল নিজেদের মাঝে শেয়ার করে ব্যবহার করে, যেমন ধরুণ VLC প্লেয়ার চালাতে যেসব কোডেক(Codec : A codec is a device or computer program for encoding or decoding a digital data stream or signal) ব্যবহার করে SMPlayer ও সেই কোডেকেই চলে, এক্ষেত্রে উইন্ডোজ হলে একই কোডেক দুইবার ইন্সটল হবে, কিন্তু লিনাক্সে তা একবার ইন্সটল হবে আর তারা সেগুলি নিজেদের মাঝে শেয়ার(share) করে ব্যবহার করবে। এ কারণে বেশ কম জায়গাতেই লিনাক্স নির্ভর অপারেটিং সিস্টেম বেশ সাবলীল ভাবেই চলে।
-----------------------------------------------------------------
আপনি যখন গনু+লিনাক্স অপারেটিং সিস্টেম ইন্সটল করবেন তখন তা প্রয়োজনীয় ড্রাইভারগুলিও ইন্সটল করে নেবে। তাই ড্রাইভার দেওয়া নিয়ে দুশ্চিন্তা করতে হবেনা।
---------------------------------------------------------------
উইন্ডোজ অপারেটিং সিস্টেমে যা যা রয়েছে, গনু+লিনাক্সেও সেগুলি আছে, তাই অযথা কেন উইন্ডোজ চালাবেন?







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

গনু/লিনাক্সের প্রয়োজনে আমার লেখাগুলি কপি/পেস্ট করতে পারেন।


আরো দেখুন,


কেন শিক্ষা-প্রতিষ্ঠানের ফ্রী-সফ্টয়্যার ব্যবহার করা উচিৎ ?--(রিচার্ড স্টলম্যান)

Tuesday, July 18, 2017

কমান্ড লাইন -৪ (cp, mv, mkdir, rm, ln)


আজ আমরা কমান্ড লাইনের মাধ্যমে ফাইল এবং ডাইরেক্টরি বিষয়ে কিছু কৌশল সংক্ষেপে শিখব, তাই এটা যথেষ্ট গুরুত্বপূর্ণ, আশা করি আগের লেখাগুলি এড়িয়ে যান নি, যদি গিয়েই থাকেন তবে আমাদের গ্রুপ থেকে সংগ্রহ করে নিতে পারেন।

ফাইল আর ডাইরেক্টরি বিষয়ে ৫টি কমান্ড সবচেয়ে বেশি ব্যবহৃত হয়,

cp = (copy) ফাইল এবং ডাইরেক্টরি কপি (অনুলিপি) করতে ব্যবহৃত হয়।

mv = (move/cut+rename) ফাইল এবং ডাইরেক্টরি মুভ/রিনেইম (move = স্থানান্তর,rename=নতুন নামকরণ) করতে ব্যবহৃত হয়।

mkdir = (make directory) ডাইরেক্টরি তৈরি করতে ব্যবহৃত হয়।

rm = (remove) ফাইল এবং ডাইরেক্টরি রিমুভ (remove = মুছে ফেলা ) করতে ব্যবহৃত হয়।

ln = (link) হার্ড লিঙ্ক এবং সিম্বলিক লিঙ্ক তৈরি করে।

[বি.দ্র: যারা লিনাক্সের জগতে নতুন তারা এটা ভাববেন না যে কাজগুলি গ্রাফিকালি করা যায় না। সব কিছুই গ্রাফিকাল ভাবে করা যায়, যারা কমান্ড লাইনের ব্যবহার শিখতে চান, তাদের জন্যই আমার এই ক্ষুদ্র নিবেদন।

আশাকরি কিছুটা হলেও আপনাদের কাজে লাগবে।]
------------------------------------------------------------------------------------------------------------------------------------

ডাইরেক্টরি তৈরি (mkdir):
mkdir এর পর যা লিখবেন(স্পেস ছাড়া শব্দ) যেমন gnu, movie, my_music ইত্যাদি, ঐ নামে ডাইরেক্টরি তৈরী হবে।

[বি.দ্র: কোন শব্দের মাঝখানে স্পেস এর বদলে হাইফেন ' - ' আন্ডারস্কোর ' _ ' এইসব ব্যবহার করবেন, কারণ শব্দের মাঝখানে 'space' ডিটেক্ট(নির্দিষ্ট করা) করানোটা কিছুটা জটিল, আমরা পরবর্তিতে এসব জানার চেষ্টা করবো ]

কমান্ড লাইনে লিখুন,
mkdir dir1 = 'dir1' নামের একটি ডাইরেক্টরি তৈরি হবে।
আপনি এক কমান্ডে অনেক গুলো ডাইরেক্টরি ও তৈরি করতে পারবেন, শুধু ডাইরেক্টরির নামগুলি স্পেস দিয়ে আলাদা করে দিন। যেমন: mkdir dir1 dir2 dir3 = এই কমান্ডে dir1, dir2 এবং dir3 নামে তিনটি ডাইরেক্টরি তৈরি হবে।

ফাইল এবং ডাইরেক্টরি কপি করা (cp):
cp -rv item1 item2 ; লক্ষ করুন এখানে cp কমান্ডের পর -rv কমান্ড, এখানে "-"(হাইফেন) এর পর "r" আপনার ডাইরেক্টরি সম্পূর্ণ কপি হয়েছে তা নিশ্চিত করবে(file কপির ক্ষেত্রে r ব্যবহারের দরকার নেই) আর "v" এর জন্য আপনার ফাইলটা কোথায় কপি হল তা দেখাবে। এরপর আরো দুইটি শব্দ(ফাইল অথবা ডাইরেক্টরি) item1, item2 ; এখানে item1 হল যে ফাইল বা ডাইরেক্টরি কে কপি করা হচ্ছে আর item2 হচ্ছে যে ডাইরেক্টরিতে কপি হবে। Receive ডাইরেক্টরি সব সময় শেষে হবে।

ফাইল এবং ডাইরেক্টরি মুভ করা (mv):
cp (copy) কমান্ডের মতই, এখানে '-r' ব্যবহার করতে হবে না।
আর একটা বিষয় rename করা,
mv file1 file2 ; এই কমান্ডে file1 এর নাম পরিবর্তিত হয়ে file2 হবে অর্থাৎ রিনেইম(rename)

ফাইল এবং ডাইরেক্টরি মুছে ফেলা (rm):
বেশ গুরুত্বপূর্ণ কমান্ড,এখানে সামান্য ভুল হলেও ঝামেলা, তাই একটু মনযোগ দিন।
rm file1 ; file1 নামের ফাইলটি মুছে যাবে।
rm -rv file1 ; এখানে file1 নামের ফাইল বা ডাইরেক্টরিটি মুছে যাবে। '-r' ব্যবহৃত হয় ডাইরেক্টরি মুছে ফেলার জন্য। আর '-v' ব্যবহৃত হয় কি কাজ হল তা দেখার জন্য।

লিঙ্ক তৈরী করা ( ln ):
হার্ড লিঙ্ক (hard link):
ln file link
file = আপনি যে ফাইলের হার্ড লিঙ্ক তৈরি করতে চান তার নাম।
link = যে নামে লিঙ্ক তৈরি করবেন সেই নাম।

সিম্বোলিক লিঙ্ক (symbolic link):
ln -s file link
file = আপনি যে ফাইলের হার্ড লিঙ্ক তৈরি করতে চান তার নাম।
link = যে নামে লিঙ্ক তৈরি করবেন সেই নাম।

একটু চর্চা করলেই বিষয়গুলি অতি সহজেই আপনার আয়ত্বে এসে যাবে। তবে আসুন একটু চর্চা করি।
যা যা কমান্ড লিখব, সে বিষয়ে আগেই বলা হয়েছে তাই আগের বিষয়গুলিতে আবার একটু চোখ বুলিয়ে নিন।
-------------------------------------------

[Ctrl+Alt+T]
cd [ /home ডাইরেক্টরিতে যাবে ]
cd Desktop [ /home থেকে Desktop ডাইরেক্টরিতে যাবে ]
mkdir practice [ practice নামে ডাইরেক্টরি তৈরী হবে ]
cd practice [ Desktop থেকে practice এ যাবে ]
--------------------------------------------

mkdir sun moon star [sun, moon & star নামের তিনটি ডাইরেক্টরি তৈরী হরে]
cp /etc/passwd . [ /etc থেকে passwd নামের ফাইল কপি করে যেখানে আছেন সেখানে আনবে ]

ls [ list দেথুন ]
cp -rv moon sun [ moon ডাইরেক্টরি কপি হয়ে sun এ যাবে]
cd sun [sun এ যাবে ]
ls [লিস্ট দেখাবে]
cd - [এক ধাপ পেছনে আসবে]
ls [লিস্ট দেথুন]
cp -rv sun star [sun কপি হয়ে star এ যাবে]
cd star
ls
---------------------------------------------

cd /home/আপনার_নাম(user_name)/Desktop/practice
ls
mv passwad fun [ passwad ফাইলটি fun হয়ে গেল (rename হল) ]
ls
mv -v moon sun [ /moon ডাইরেক্টরি /sun এ মুভ (move=স্থানান্তরিত) হল]
ls
----------------------------------------------

ln fun fun-hard
ln -s fun fun-sym
ls -l
-----------------------------------------------

rm -rv sun star [ sun এবং star মুছে গেল! ]
rm -v fun [ fun ফাইলটি remove ( মুছে যাওয়া ) হল ]
rm -v fun-hard fun-sym
-----------------------------------------------

একটু কঠিন লাগতেই পারে, তবে এ নিয়ে চিন্তিত হবার কিছু নেই । কয়েকবার চর্চা করুন , দেখবেন খুবই সহজ।


----------------------------------------------
আগামী পোস্টে থাকবে কিভাবে অনেকগুলি ফাইল সিলেক্ট(চিহ্নিত) করে কপি, মুভ এবং রিমুভ করা যায় !
-----------------------------------------------

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

 

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




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

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

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