كيفية استخدام الأمر الذي في Linux

يمنحك Linux تحكمًا كاملاً في كيفية عملك ، من التخصيص إلى إدارة النظام. أداة واحدة مفيدة يمكن أن تجعل تجربتك أكثر سلاسة هي which
يأمر. يساعدك ذلك بسرعة في العثور على الموقع الدقيق لملف قابل للتنفيذ من خلال البحث من خلال الدلائل المدرجة في الخاص بك $PATH
عامل. في هذا الدليل ، سنشرح كيف يعمل الأمر ، واستكشاف بناء الجملة والخيارات الخاصة به ، ونمر من خلال أمثلة عملية لمساعدتك على استخدامه بفعالية.
فهم بناء جملة الأمر والعمل
ال which
يساعد الأمر في Linux في العثور على الملف القابل للتنفيذ لأمر معين. يبحث في الدلائل المدرجة في متغير بيئة المسار. يعرض هذا الأمر الملف الذي يتم تشغيله عند تنفيذ أمر. يعيد الإخراج التالي:
0
عندما يتم العثور على جميع الأوامر المحددة وتنفيذها.1
إذا كان أحد الأوامر أو أكثر مفقودة أو غير قابلة للتنفيذ.2
إذا تم استخدام خيار غير صالح.
بناء الجملة العام لاستخدام الأمر في Linux هو:
which [file1] [file2] ...
يستبدل [file1]
و [file2]
مع أسماء التنفيذيين التي تريد العثور عليها.
لماذا يجب أن نستخدم أي أمر
هناك العديد من الأسباب لاستخدام الأمر في Linux. على سبيل المثال ، يساعدنا في تحديد ما إذا كان الأمر هو أمر قابل للتنفيذ فعليًا أو مستعارًا أو رابطًا رمزيًا. علاوة على ذلك ، يعرض الموقع الدقيق لملف قابل للتنفيذ. كما أنه يمكّننا من تحديد الأوامر المفقودة أو المتضاربة في متغير المسار. علاوة على ذلك ، فإن استخدام الأمر يضمن تشغيل الإصدار الصحيح عند وجود إصدارات متعددة.
كيفية استخدام أي أمر في Linux
دعونا نستكشف بعض الأمثلة لمعرفة كيفية عمل الأمر في حالات الاستخدام الحقيقي:
مثال 1: حدد موقع مسار القابل للتنفيذ
يمكننا استخدام الأمر الذي يحدد مكان تخزين الملف القابل للتنفيذ للأمر:
which grep
يعيد المسار الكامل ، مثل “/usr/bin/grep” ، مما يشير إلى الموقع الدقيق للمنفذ.
مثال 2: ابحث عن مسارات أوامر متعددة
يمكننا تحديد أوامر متعددة في وقت واحد مع الأمر الذي يتحقق من مسارات كل منهما:
which awk sed cat touch
يسترجع هذا الأمر مسارات awk
و sed
و cat
الأوامر ، على التوالي:

مثال 3: أظهر جميع حالات الأمر
بشكل افتراضي ، which
يعود فقط المباراة الأولى الموجودة في المسار. ومع ذلك ، يمكننا تنفيذ الأمر مع -a
خيار العثور على جميع حوادث الأمر:
which -a cat
يسرد هذا الأمر جميع المواقع حيث cat
موجود في المسار:

يمكنك التحقق من تفاصيلهم ، من خلال تنفيذ أمر LS مع -lh
خيار. هذا يوضح ما إذا كان كلا الملفين هما تنفيذيان حقيقيان أو يتكرران في مواقع مختلفة:
ls -lh /usr/bin/cat && ls -lh /bin/cat

تعرض لقطة الشاشة أعلاه أمرين متطابقين في مواقع مختلفة ، كلاهما بحجم 35 كيلو بايت وقابل للتنفيذ.
مثال 4: تحقق من وجود أمر
يمكننا استخدام الأمر الذي للتحقق من وجود أمر معين:
which cats

إذا لم يكن الأمر غير موجود ، فلا يوجد إخراج ، كما هو موضح في لقطة الشاشة أعلاه ، وحالة الخروج غير صفرية.
مثال 5: تحديد الروابط الرمزية
قد يحتوي النظام على إصدارات متعددة من نفس البرنامج ، ولكن قد تكون بعض الحالات روابط رمزية بدلاً من الملفات الثنائية الفعلية. للعثور على الروابط الرمزية ، ما عليك سوى تشغيل الأمر مع -a
خيار:
which -a crontab

بعد ذلك ، افحص تفاصيل الملف مع ls
يأمر:
ls -lh /usr/bin/crontab && ls -lh /bin/crontab

إذا كان الإخراج يتضمن ->
، هذا يعني أن الملف هو رابط رمزي يشير إلى موقع آخر.
مثال 6: استبعاد الأوامر المدمجة شل
ال which
يعرض الأوامر فقط التنفيذيين الخارجيين ولا يعرض أوامر SHELL المدمجة. يساعدنا في تحديد مكان تثبيت البرنامج على النظام. على سبيل المثال ، في الأمر التالي الذي يرجع فقط مسار LS لأن القراءة هو أمر قذيفة مدمج:
which ls read

أي قيود القيادة
ال which
يتمتع الأمر بالعديد من القيود التي تجعلها أقل موثوقية في بعض المواقف. على سبيل المثال ، يعرض فقط التنفيذيين الخارجيين ولا يكتشف أوامر مدمجة مثل cd
أو read
. بالإضافة إلى ذلك ، لا يمكن التمييز بين الروابط الثنائية والرمزية. يبحث الأمر بصرامة في الدلائل المدرجة في $PATH
متغير ، مما يعني أنه لا يمكن العثور على برامج مخزنة في مكان آخر. أيضًا ، لم يقدم تفاصيل مثل نوع الملف أو الأذونات أو الإصدار. علاوة على ذلك ، إذا لم يكن هناك أمر ، فهو لا يعرض رسالة خطأ ولكن ببساطة لا يعيد شيئًا.
للتغلب على هذه القيود ، يمكنك اختيار أمر بديل مثل أين ، type
، أو ls
.
حيث VS. أي أمر
ال where
و which
أوامر كلاهما يساعد في تحديد موقع الملفات ولكن يخدم أغراض مختلفة. ال where
يستخدم الأمر بشكل أساسي في Windows وبعض الأنظمة التي تشبه Unix. يجد كل من الملفات والأدلة ويسرد جميع المباريات في مسار النظام.
ال which
الأمر خاص بالأنظمة التي تشبه UNIX. يبحث فقط عن الملفات القابلة للتنفيذ في الدلائل المدرجة في $PATH
عامل. بشكل افتراضي ، يعيد المباراة الأولى ، ولكن باستخدام which -a
يسرد جميع المباريات.
على سبيل المثال ، الجري where node
يعرض الأمر على Windows جميع المواقع التي توجد فيها العقدة. على Linux ، which gcc
إرجاع المسار الأول حيث يوجد برنامج التحويل البرمجي العالمي.
بينما which
يقدم Command عدة ميزات ، لا يزال يفتقر إلى بعض القدرات. ومع ذلك ، يمكن التغلب على هذا باستخدام أمر بديل ، كما تمت مناقشته سابقًا. علاوة على ذلك ، و which
يكتشف الأمر فقط الملفات القابلة للتنفيذ في $PATH
. إذا لم يتم العثور على البرنامج النصي أو البرنامج ، فقد يكون مفقودًا في تنفيذ الأذونات. لذلك ، تأكد من أن البرنامج النصي الخاص بك في دليل مدرج في $PATH
ولديه تنفيذ الأذونات.