linux commands for beginners

لینکس کی وہ کمانڈز جو ہر مبتدی کو پتا ہونی چاہیئں

linux commands for beginners

لینکس یا یونکس کا ذکر ہو تو بیشتر لوگوں کے ذہن میں ایک سیاہ اسکرین کا عکس آتا ہے جس میں کمانڈ لکھ کر سب کام کئے جاتے ہیں اور اسی تصور کی وجہ سے مبتدی حضرات اس آپریٹنگ سسٹم سے خوف کھاتے ہیں۔ اگرچہ لینکس اور یونکس نے اس شبیہ کو بدلنے کے لئے خوبصورت گرافیکل یوزر انٹرفیس بھی پیش کئے ہیں جس سے انہیں استعمال کرنا مائیکروسافٹ ونڈوز جتنا آسان ہوجاتا ہے۔

یعنی اب آپ کو لینکس کی الف ب بھی نہ آتی ہو لیکن مائیکروسافٹ ونڈوز استعمال کرچکے ہوں تو آپ لینکس بھی چلا سکتے ہیں۔ لیکن اس کے باوجود لینکس کی کمانڈ ہی اس کی طاقت اور پہچان ہیں۔ لینکس کے بابے جانتے ہیں کہ کمانڈ لائن انٹرفیس کے ذریعے اس آپریٹنگ سسٹم پر کام کرنا کتناسہل اورسیدھا ہے۔ آپ کو شاید یہ بات مذاق لگے لیکن بعض حالات میں کمانڈ لائن کے ذریعے کسی گرافیکل یوزر انٹرفیس سے زیادہ بہتر اور تیزرفتاری سے کام کیا جاسکتا ہے۔

(جاری ہے)


آپ میں سے کئی دوست ایسے ہونگے جن کا لینکس یا یونکس سے کسی نہ کسی ذریعے سے تعلق رہا ہوگا یا واسطہ پڑ چکا ہوگا۔ ہوسکتا ہے کہ آپ کسی ویب سائٹ کے مالک ہو اور اس ویب سائٹ کا سرور لینکس استعمال کرتا ہو۔ ممکن ہے کہ آپ کے آفس میں لینکس کو بطور سرور استعمال کیا جاتا ہو۔ ایسے میں ضروری ہوجاتا ہے کہ آپ لینکس کی بنیادی کمانڈز سے واقف ہوں۔

یہ مضمون اسی تناظر میں لکھا گیا ہے کہ مبتدی حضرات کو لینکس کی چند اہم کمانڈز سے واقفیت کرائی جائے۔


ls کمانڈ

یہ ایک بنیادی نوعیت کی کمانڈ ہے اور اس کمانڈ کا بے تحاشہ استعمال ہوتا ہے۔ اگر آپ DOS کی کمانڈ dir سے آشنا ہیں تو یوں سمجھیں کہ ls کمانڈ بھی وہی کام کرتی ہے جو dir کمانڈ کرتی ہے یعنی جس ڈائریکٹری میں آپ اس وقت موجود ہیں، اس میں موجود تمام فائلوں اور ڈائریکٹریز کی فہرست دکھاتی ہے۔

دلچسپ بات یہ ہے کہ آپ لینکس میں بھی dir کمانڈ استعمال کرسکتے ہیں۔ ls اور dir میں فرق صرف چند آپشنز کا ہے۔ باقی ان دونوں کے کام کرنے کا طریقہ کار تقریباً ایک جیسا ہی ہے۔


man کمانڈ
یہ کمانڈ بہت کام کی ہے۔ یہ اس وقت آپ کے کام آتی ہے جب آپ کو کوئی کمانڈ یا اس کے کام کرنے کا طریقہ یاد نہ آرہا ہو۔ man دراصل مینوئل کی مختصر شکل ہے۔

اگر آپ man ls ٹائپ کرکے اینٹر کا بٹن پریس کریں تو ls کمانڈ کے متعلق مینوئل میں موجود صفحہ ظاہر ہوجائے گا۔ اس میں ls سے متعلق تمام معلومات اور اس کے ساتھ استعمال کئے جاسکنے والے آپشن (آرگیومنٹ) موجود ہونگے۔
مبتدی حضرات کو چاہے کہ کچھ اور یاد کریں نہ کریں، لیکن man کمانڈ کو کبھی نہ بھولیں ۔ جب بھی لینکس کی کسی انجان کمانڈ کے بارے میں پڑھیں، فوراً man کمانڈ کے ذریعے دیکھ لیں کہ وہ کمانڈ کیا کرتی ہے اور کیسے استعمال کی جاسکتی ہے۔

دلچسپ بات یہ ہے کہ آپ man man یعنی man کمانڈ کا مینوئل بھی دیکھ سکتے ہیں اور جان سکتے ہیں کہ man کمانڈ بذات خود کیسے کام کرتی ہے۔


cd کمانڈ

یہ چینج ڈائریکٹری کمانڈ ہے جو ڈوس اور مائیکروسافٹ ونڈوز میں بھی استعمال کی جاتی ہے۔ اس کمانڈ کے ذریعے آپ ایک ڈائریکٹری سے دوسری ڈائریکٹری میں جا سکتے ہیں۔ مثلاًآپ root ڈائریکٹری یعنی / پر موجود ہیں اور var ڈائریکٹری میں جانا چاہتے ہیں تو cd var ٹائپ کریں۔


فرض کریں اگر آپ پہلے کسی ایسی ڈائریکٹری میں موجود ہیں جو کہ کئی ڈائریکٹریز کے اندر ہے۔ مثال کے طور پر :
/var/www/xyz.com/wp-content/themes/
اب اس ڈائریکٹری سے اگر آپ براہ راست var ڈائریکٹری میں آنا چاہتے ہیں تو cd /var لکھ کر اینٹر کردیں۔فارورڈ سلیش (/)کا مطلب ہے روٹ اور var ڈائریکٹری ہے۔ یعنی روٹ پر موجود var ڈائریکٹری۔ یاد رہے کہ لینکس اور یونکس میں روٹ ڈائریکٹری کو فارورڈ سلیش سے ظاہر کیا جاتا ہے۔


اگر آپ جس ڈائریکٹری میں موجود ہوں اس سے پچھلی ڈائریکٹری میں جانا چاہتے ہیں تو cd .. لکھیں۔
یہاں نوٹ کیجئے کہ cd کے بعد ایک اسپیس بھی موجود ہے۔ ونڈوز اور ڈوس میں اسپیس کے بغیر بھی کام چل جاتا ہے لیکن لینکس میں نہیں۔


mkdir کمانڈ

اس کمانڈ کے نام سے ہی اس کا کام واضح ہورہا ہے۔ جی ہاں، آپ نے درست سمجھا۔ یہ کمانڈ نئی ڈائریکٹری بنانے کے لئے استعمال کی جاتے ہے۔

آپ نے کرنا بس یہ ہے کہ mkdir لکھیں اور اس کے آگے ڈائریکٹری کا نام لکھ دیں۔ اگلے ہی لمحے دیئے گئے نام سے ڈائریکٹری بن جائے گی۔
اس کمانڈ کے ساتھ ایک آپشن -p کا اکثر استعمال کیا جاتا ہے۔ فرض کریں کہ آپ درج ذیل کمانڈ لکھتے ہیں:
mkdir -p /var/www/xyz.com/image
اب ہوگا یہ کہ اگر /var/www/xyz.com ڈائریکٹری موجود نہیں تو -p کے آپشن کی وجہ سے mkdirپہلے
/var/www/xyz.com ڈائریکٹری بنائے گا اور پھر اس میں images ڈائریکٹری بنائے گا۔


ڈائریکٹری بنانے کے بعد سوال پیدا ہوتا ہے کہ کسی ڈائریکٹری کو ڈیلیٹ کیسے کیا جاتا ہے؟
اس کے لئے rmdir کی کمانڈ استعمال ہوتی ہے۔
rmdir images
اس کمانڈ کے استعمال میں قباعت یہ ہے کہ ڈیلیٹ کی جانے والی ڈائریکٹری کا خالی ہونا ضروری ہے۔ اگر وہ خالی نہ ہو تو ایرر آجاتا ہے۔ اس کمانڈ کے ساتھ بھی -p سوئچ استعمال کیا جاسکتا ہے۔ یعنی اگر آپ یہ کمانڈ لکھیں:
rmdir -p /var/www/xyz.com/images
توvar، www، xyz.com اور images ڈائریکٹریز ڈیلیٹ ہوجائیں گی۔

لیکن شرط وہی ہے کہ یہ تمام ڈائریکٹریز خالی ہونی چاہئے۔
اگر ڈائریکٹری میں فائلیں موجود ہوں تو انہیں کیسے ڈیلیٹ کیا جائے؟


pwd کمانڈ

یہ کمانڈ بتاتی ہے کہ آپ اس وقت کونسی ڈائریکٹری میں موجود ہیں۔ ڈوس اور مائیکروسافٹ ونڈوز میں اس کی متبادل کمانڈ cd ہے۔ آپ سوچ رہے ہونگے کہ بھلا اس کمانڈ کا کیا استعمال ہوگا؟ جناب جب آپ کمانڈ لائن پر ڈائریکٹریز کی بھول بھلیوں میں کھو چکے ہوں تو یہی کمانڈ بتاتی ہے کہ آپ اس وقت کہاں پر موجود ہیں۔

یہ کمانڈ روٹ ڈائریکٹری سے اس فولڈر تک کا مکمل پاتھ جہاں آپ موجود ہیں، اسکرین پر پرنٹ کرتی ہے۔


rm کمانڈ
کسی فائل کو یا کسی ایسی ڈائریکٹری جو کہ خالی نہ ہو، کو ڈیلیٹ کرنے کے لئے rm کمانڈ استعمال کی جاتی ہے۔ مثلاًrm file.txt کمانڈ سے file.txt فائل ڈیلیٹ ہوجائے گی۔ اگر آپ ایک ساتھ کئی فائلیں ڈیلیٹ کرنا چاہتے ہیں تو اس کے لئے rm کمانڈ کو کچھ ایسے استعمال کیا جائے گا:
rm file1.txt file2.txt file3.txt
یاد رہے کہ اگر کوئی فائل write protectedہو اور آپ اسے ڈیلیٹ کرنے کی کوشش کریں تو آپ کو ڈیلیٹ کے عمل کی تصدیق کرنے کے لئے کہا جاتا ہے۔

تصدیق کے اس عمل سے بچنے کے لئے آپ -fکا آپشن استعمال کریں۔ اس طرح تمام فائلیں فٹا فٹ ڈیلیٹ ہوجائیں گے چاہیں وہ رائٹ پروٹیکٹڈ ہی کیوں نہ ہوں۔
فائل ڈیلیٹ کرنا تو پتا چل گیا ہمیں، لیکن ڈائریکٹری میں درجن بھر فائلیں ہوں تو انہیں کیسے ڈیلیٹ کیا جائے؟
اس کے لئے بھی rm کی کمانڈ ہی استعمال ہوگی۔ فرق صرف آپشنز کا ہوگا۔ سب سے پہلے تو آپ اس ڈائریکٹری میں تشریف لے جائیں جس میں موجود فائلیں ڈیلیٹ کرنی ہیں۔

اس کے لئے cdکی کمانڈ استعمال ہوگی۔ مثلاً
cd /var/www/xyz.com/images
اب ٹائپ کیجئے rm * اور اینٹر کا بٹن دبا دیں۔ اگلے ہی لمحے اس ڈائریکٹری میں موجود تمام فائلیں ڈیلیٹ ہوجائیں گی۔ یہاں بھی -f کا آپشن استعمال کیا جاسکتا ہے کیونکہ تمام فائلیں ڈیلیٹ کرتے ہوئے اگر کوئی فائل رائٹ پروٹیکٹڈ پائی گئی تو تصدیق کے لئے ڈیلیٹ کا عمل روک دیا جائے گا۔

-f کا آپشن تصدیق کے عمل کو ختم کردیتا ہے اور زبردستی فائل کو ڈیلیٹ کرتا ہے۔
فائل کے بعد باری آتی ہے ڈائریکٹری کو ڈیلیٹ کرنے کی۔ اس کے لئے -r کا آپشن استعمال ہوگا۔
rm -r /var/www/xyz.com/images
مندرجہ بالا کمانڈ چلانے سے images کے فولڈر میں موجود تمام فائلیں اور ڈائریکٹریز ڈیلیٹ ہوجائیں گی۔ اس کمانڈ کے ساتھ بھی -fکا سوئچ استعمال کیا جاسکتا ہے:
rm -rf /var/www/xyz.com/images


cpکمانڈ

ڈیلیٹ کے بعد چلیں کاپی کرنے کی بات بھی کرلیتے ہیں۔

cp کمانڈ فائلوں اور ڈائریکٹریوں کو کاپی کرنے کے لئے ہے۔
cp originalfile newfile
مندرجہ بالا کمانڈ چلانے سے originalfile کی ایک نئی کاپی newfile کے نام سے بن جائے گی۔ شرط یہ ہے کہ originalfile موجود بھی ہو اور اسی ڈائریکٹری میں موجود ہو جہاں آپ اس وقت موجود ہیں۔ ایک اور بات یاد رکھیں کہ اگر newfile کے نام سے پہلے سے فائل موجود ہوئی اور آپ نے درج بالا کمانڈ چلا دی تو originalfile کی کاپی newfile کے نام سے بن جائے گی اور پرانی فائل overwrite ہوجائے گی۔

اگر آپ چاہتے ہیں کہ اسی نام سے اگر فائل پہلے سے موجود ہو تو فائل overwrite کرنے سے پہلے آپ کو بتایا جائے تو -i کا آپشن استعمال کریں۔
cp -i originalfile newfile
ایک ڈائریکٹری سے دوسری ڈائریکٹری میں فائل کاپی کرنے کے لئے cp کمانڈ کچھ یوں استعمال ہوگی:
cp originalfile /directory1/directory2
اس کمانڈ کو چلانے سے originalfileکی کاپی اپنے اصل نام اور ایکسٹینشن کے ساتھ directory1میں موجود directory2کے اندر بن جائے گی۔

فائل کو نئے نام سے کاپی کرنے کے لئے ڈائریکٹری کے آخر میں نئی فائل کا نام بھی لکھ دیں:
cp originalfile /directory1/directory2/file.ext
تمام فائلیں ایک ڈائریکٹری سے دوسری ڈائریکٹری میں کاپی کرنے کے لئے یہ کمانڈ استعمال ہوگی:
cp * /home/directory1/
* کا مطلب ہے تمام فائلیں۔
پوری ڈائریکٹری کو کاپی کرنے کے لئے cp کمانڈ کو استعمال کرنے کا طریقہ یہ ہے:
cp -R directory1 /home/directory2
اس کمانڈ کے درجنوں دوسرے استعمال ہیں جن کی اگر تفصیل لکھی جائے تو کئی صفحات درکار ہونگے۔

لیکن ہمارا مقصد تو آپ کو صرف 'کمانڈ کا مزا چکھانا ہے۔ اس لئے اس کمانڈ کے بارے میں مزید معلومات آپ man کمانڈ سے حاصل کرسکتے ہیں۔


mv کمانڈ

فائل ڈیلیٹ بھی کرلی اور کاپی بھی کرلی۔ اب فائل کو ایک جگہ سے دوسری جگہ منتقل یا move کرنے کا طریقہ سیکھتے ہیں۔ اس کام کے لئے mv کمانڈ استعمال ہوتی ہے۔ لیکن mv کمانڈ کا صرف یہی ایک کام نہیں۔

بلکہ اس کے ذریعے فائل یا ڈائریکٹری کا نام بھی تبدیل (rename)کیا جاسکتا ہے۔
پہلے ہم اس کمانڈ سے فائلوں کو ایک ڈائریکٹری سے دوسری ڈائریکٹری میں منتقل کرنے کا عمل دیکھتے ہیں:
mv file1.txt directory2
اس کمانڈ کو چلانے پر file1.txt فائل directory2 میں منتقل ہوجائے گی۔ دوسری کمانڈز کی طرح آپ یہاں بھی فائل اور ڈائریکٹری کا مکمل پاتھ لکھ سکتے ہیں۔

مثلاً:
mv /var/www/xyz.com/images/photo1.jpg
/var/www/abc.com/images/
یہ تو ہوئی کسی ایک فائل کو منتقل کرنے کی۔ اگر کسی ڈائریکٹری میں موجود تمام فائلوں کو کسی دوسری ڈائریکٹری میں منتقل کرنا ہو تو کیا کریں؟
mv * /home/destination-directory
یہ کمانڈ جس ڈائریکٹری میں آپ اس وقت موجود ہیں، کی تمام فائلوں کو destination-directoryمیں منتقل کردے گی۔
فائلوں کے بعد باری آتی ہے ڈائریکٹری کی۔


ایک ڈائریکٹری کو کسی دوسری ڈائریکٹری میں منتقل کرنے کے لئے mv کمانڈ کچھ یوں لکھی جائے گی۔
mv dir1 /home/dir2
اس کمانڈ سے dir1 کو home ڈائریکٹری میں موجود dir2 کے اندر منتقل کردی جائے گی۔
جیسا کہ ہم نے پہلے بتایا، mvکمانڈ کو کسی ڈائریکٹری یا فائل کو renameکرنے کے لئے بھی استعمال کیا جاسکتا ہے۔ اگر آپ کسی ڈائریکٹری کا نام تبدیل کرنا چاہتے ہیں تو یہ کمانڈ لکھیں گے:
mv dir1 dir2
اس کمانڈ سے dir1کا نامdir2 ہوجائے گا۔


فائلوں کو بھی اسی طرح سے ری نیم کیا جاتا ہے۔ بس کرنا یہ ہے کہ جہاں ڈائریکٹری کا نام لکھا ہے وہاں فائل کا نام لکھ دیں۔


kill کمانڈ

یہ کمانڈ کسی چلتے ہوئے پروگرام یا پروسس کو بند کرنے کے لئے استعمال ہوتی ہے۔ اس کمانڈ کی ضرورت خاص طور پر ان لوگوں کو پیش آتی ہے جو لینکس سرور استعمال کررہے ہوتے ہیں۔ کئی بار ایسا ہوتا ہے کہ کوئی پروسیس چلتے ہوئے سرور کی اتنی زیادہ توانائیاں خرچ کررہا ہوتا ہے کہ کوئی دوسرا پروسس کام ہی نہیں کرپاتا۔

ایسے میں سرور کو چلتا رکھنے کے لئے ضروری ہوجاتا ہے کہ اُس پروسس کو killکردیا جائے۔
killکمانڈ کو استعمال کرنے کے لئے ضروری ہے کہ آپ کو pid پتا ہو۔ آپ کہیں کہ اب یہ کیا نئی کہانی ہے؟ PID دراصل پروسیس آئی ڈینٹی فائر ہے۔ یہ ایک منفرد نمبر ہوتا ہے جو کہ ہر چلتےہوئے پروسس کا متعین کیا جاتا ہے۔ اسے آپ پروسس کا شناختی کارڈ نمبر کہہ سکتے ہیں۔

مائیکروسافٹ ونڈوز میں بھی ہر پروسس یا پروگرام کا اپنا ایک شناختی نمبر ہوتا ہے۔ اگلا سوال یہ ہے کہ کسی پروسس کا پروسس آئی ڈی معلوم کیسے کیا جائے۔ لینکس میں اس کے لئے ps کمانڈ موجود ہے۔ پہلے آپ ps -e لکھ کر اینٹر کریں۔ اس سے تمام چلتے ہوئے پروسس اور ان کے شناختی نمبر ظاہر ہوجائیں گے۔ شناختی نمبر نوٹ کرکے killکمانڈ لکھیں اور اس کے آگے شناختی نمبر لکھ دیں۔


kill 2393


sudo کمانڈ

لینکس اور یونکس کو زیادہ محفوظ آپریٹنگ سسٹم سمجھا جاتا ہے اور اس کی کئی وجوہ ہیں۔ لینکس کا سکیوریٹی نظام زیادہ بہتر ہے۔ اس کی ایک مثال یہ ہے کہ جب آپ کوئی کمانڈ چلاتے ہیں تو وہ کم اختیارات رکھنے والے صارف کے تحت چلائی جاتی ہے۔ کچھ کام جیسے کوئی نیا سافٹ ویئر انسٹال کرنا، کسی پروگرام کو حذف کرنا یا کوئی اہم تبدیلی کرنا صرف روٹ یوزر (جس کے پاس سب سے زیادہ اختیارات ہوتے ہیں) کو حاصل ہوتی ہیں۔

اس لئے کسی مخصوص کمانڈ کو عارضی طور پر زیادہ سے زیادہ اختیارات کے تحت چلانے کے لئے sudo کی کمانڈ استعمال کی جاتی ہے۔ فرض کریں کہ آپ کسی ایک پروسس کو kill کرنا چاہتے ہیںلیکن وہ پروسس killکرنا صرف روٹ یوزر کے اختیار میں ہے۔ تو آپ sudoکی مدد سے اس پروسس کو ختم کریں گے:
sudo kill 2923
یاد رہے کہ اگر آپ کے پاس روٹ یوزر کا پاس ورڈ نہیں اور جس یوزر سے آپ لاگ ان ہیں اس کے اختیارات بہت ہی محدود ہیں تو آپ سے sudo کمانڈ چلانے پر روٹ اکاؤنٹ کا پاس ورڈ طلب کیا جائے گا۔


passwd کمانڈ

آپ اس کمانڈ کے نام سے ہی پہچان گئے ہونگے کہ یہ پاس ورڈ سے متعلق ہے۔ جی ہاں، اس کمانڈ کے ذریعے آپ پاس ورڈ تبدیل کرسکتے ہیں۔
آپ جس یوزر اکاؤنٹ سے بھی لاگ اِن ہوں، یہ کمانڈ ٹائپ کریں اور اس یوزر کا پاس ورڈ تبدیل کرلیں۔ یاد رہے کہ آپ کو موجودہ پاس ورڈ بھی یاد ہونا چاہئے۔ ورنہ اس کمانڈ سے کام نہیں چلے گا۔ ساتھ ہی یوزر جس کا پاس ورڈ تبدیل کرنا مقصود ہے کو پاس ورڈ تبدیل کرنے کے اختیارات بھی ہونے چاہئے۔

تاریخ اشاعت: 2016-12-03

Your Thoughts and Comments