دلایل مختلفی وجود دارد که پوسته لینوکس خطای “command not found” را ایجاد می کند. در اینجا نحوه رفع آن آورده شده است.
اگر کاربر لینوکس هستید، به احتمال زیاد با خطای “command not found” در ترمینال لینوکس مواجه شده اید.
اغلب وقتی با این خطا مواجه می شوید، پیشنهادی برای نصب یک برنامه دریافت می کنید، با این حال، چندین دلیل بالقوه برای خطای “command not found” وجود دارد.
درک متغیرهای محیطی و حساسیت به موارد
قبل از اینکه به رفع علل رایج خطا بپردازیم، مهم است که از چند ویژگی حیاتی دستورات لینوکس قدردانی کنیم.
برخلاف ویندوز، تمامی دستورات، نام فایل ها و دایرکتوری ها در سیستم های لینوکس و یونیکس به حروف بزرگ و کوچک حساس هستند. این بدان معنی است که همه دستورات و آرگومان ها یا گزینه های مربوطه باید دقیقاً همانطور که در نظر گرفته شده اند ظاهر شوند. البته اکثر دستورات حروف کوچک هستند.
متغیرهای محیطی نقش مهمی در لینوکس دارند. آنها حاوی اطلاعات ارزشمندی درباره جلسه ورود شما و سایر جزئیات مهم هستند.
هنگامی که فرمانی را در لینوکس اجرا می کنید، سیستم شما در متغیرهای فعلی شما، به ویژه متغیر PATH جستجو می کند تا دستور یا برنامه ای را که می خواهید اجرا کنید، پیدا کند. اگر دستور پیدا نشد، با خطای پیدا نشدن مواجه خواهید شد.
با این درک، در اینجا نحوه عیب یابی خطای “command not found” در لینوکس آمده است.
1. خطاهای نحوی را بررسی کنید
شما باید تمام دستورات لینوکس را دقیقاً همانطور که به صورت حروف کوچک به نظر می رسد اجرا کنید. به عنوان مثال، پوسته “ls” و “LS” را به عنوان دستورات مختلف در لینوکس در نظر می گیرد.
همچنین، اگر دستور شما حاوی آرگومان است، مطمئن شوید که از حروف درست استفاده میکنید. دستور ssh برای ارسال پورت فرمت زیر را دارد:
ssh -fN -L 80:localhost:8080
آرگومان های “L” و “N”، در این مورد، باید بزرگ باشند، در غیر این صورت، با خطا مواجه خواهید شد.
در برخی موارد، گزینهها یا آرگومانها ممکن است نیاز به خط فاصله قبلی (-) یا خط فاصله دوگانه (–) داشته باشند، و برخی از آرگومانها ممکن است لازم باشد در گیومه یا کروشه قرار بگیرند.
مطمئن شوید که از دستور صحیح استفاده می کنید. املای دستوری را که میخواهید استفاده کنید دوباره بررسی کنید و مطمئن شوید که از حروف درست استفاده میکنید.
2. مسیر را به فایل اجرایی خود وارد کنید
اسکریپت ها نقشی حیاتی در لینوکس بازی می کنند زیرا به شما امکان می دهند کارهای روزمره را خودکار کنید. اگر برنامه Bash خود را می نویسید یا از برخی برنامه های شخص ثالث استفاده می کنید، باید کل مسیر برنامه را برای اجرای موفقیت آمیز آن مشخص کنید.
برای مثال وقتی ابزار Open Virtualization Format Tool را دانلود می کنید، می توانید آن را در هر دایرکتوری دلخواه خود نصب کنید. اکنون، وقتی میخواهید دستور ovftool را از دایرکتوری دیگری غیر از دایرکتوری که در آن نصب شده است اجرا کنید، با خطای “command not found” مواجه میشوید.
برای اجرای صحیح دستور، باید کل مسیر برنامه اجرایی را مشخص کنید. به عنوان مثال، اگر ovftool را در پوشه /opt/ovf نصب کرده باشید، برای اجرای ovftool باید از دستور زیر استفاده کنید:
sudo /opt/ovf/ovftool
همچنین به خطوط مورب توجه کنید. بر خلاف ویندوز که از اسلش های عقب استفاده می کند، لینوکس از اسلش های جلو استفاده می کند. از ویژگی تکمیل خودکار Tab ترمینال خود برای جلوگیری از اشتباهات تایپی در نام دایرکتوری ها استفاده کنید.
3. از متغیرهای محیطی استفاده کنید
اگر متوجه شدید که تعیین یک فهرست کامل در یک دستور خسته کننده است، برنامه قابل اجرا را به متغیر محیطی PATH خود اضافه کنید.
برای افزودن یک برنامه قابل اجرا به PATH، کافی است دستوری را با فرمت زیر اجرا کنید:
PATH = $PATH:/opt/path/to/your/program
به عنوان مثال، برای اضافه کردن برنامه Microsoft .NET tools به PATH، دستور زیر را اجرا کنید:
export PATH=$PATH:~/.dotnet/tools
متغیرهای محیطی در فایل ~/.bashrc در Bash یا فایل ~/.zshrc در صورتی که از پوسته Z استفاده می کنید، نوشته می شوند.
برای به روز رسانی و اعمال تغییراتی که در فایل ~/.bashrc ایجاد کرده اید بدون خروج از سیستم، دستور source را به صورت زیر اجرا کنید:
source ~/.bashrc
با استفاده از دستور زیر می توانید بررسی کنید که آیا مسیر برنامه شما با موفقیت به متغیر PATH اضافه شده است:
echo $PATH
4. مطمئن شوید که برنامه نصب شده است
گاهی اوقات، دلیل خطای “command not found” می تواند به سادگی این باشد که برنامه حتی از ابتدا نصب نشده است.
اگر دستوری که میخواهید اجرا کنید یک فرمان پوسته داخلی نیست، ممکن است برنامه روی سیستم شما نصب نشده باشد. در این صورت باید برنامه یا پکیج حاوی آن را نصب کنید.
بسته به توزیع خود، از مدیر بسته پیش فرض برای نصب نرم افزار مورد نیاز استفاده کنید. در توزیعهای مبتنی بر دبیان، از دستور apt استفاده کنید و از DNF یا YUM در توزیعهای مبتنی بر RHEL استفاده کنید.
5. از امتیازات صحیح استفاده کنید
اگر خیلی مطمئن هستید که برنامه یا دستوری که میخواهید اجرا کنید روی سیستم شما است و از نحو درست استفاده میکنید، ممکن است مشکل از مجوزها باشد.
مشابه ویندوز، برای اجرای برخی برنامه ها در لینوکس به امتیازات بالایی نیاز دارید. اگر اینطور است، مطمئن شوید که از sudo استفاده می کنید یا برنامه را به عنوان کاربر اصلی اجرا می کنید.
از متغیرهای محیطی در لینوکس استفاده کنید
اطمینان حاصل کنید که هنگام اجرای دستورات لینوکس از نحو صحیح استفاده می کنید و برنامه هایی را که اغلب اجرا می کنید به متغیرهای محیط خود اضافه کنید.
متغیرهای محیطی نقش مهمی در لینوکس دارند که درک آنها برای استفاده روزمره شما از سیستم عامل کلیدی است.