نصف شبه و دارم تو انجمن میگردم
توی همین بخش یه موضوع دیدم با عنوان"چگونه اکلیپس (یا هر برنامهی دیگری) را در منوها قرار دهیم. (راهنما)"
انجام دادم و جواب داد حالا برام سوال پیش اومده که میشه برای اجرای هر برنامه کاری کرد که با نوشتن اسمش توی ترمینال اجرا بشه ؟
دقیقا همونطور که firefox رو مینویسین و اینتر میزنید بعدشم firefox اجرا میشه
میخوام برای هر برنامه مثلا همین eclipse کاری کنم که با وارد کردن اسمش یا هر دستور دیگه برنامه اجرا بشه،فقط به راهنمایی شما دوستان نیاز دارم
آره خب. هر کاری ممکنه!
ببین، هر دستوری که توی ترمینال میزنی، در واقع به یه فایل اجرایی اشاره میکنه. این فایلها توی مسیر /usr/bin/ هستن اصولا.
با دستور which میتونی بفهمی کجا قرار گرفتته.
مثلا اگه بزنی
which firefox
میگه که /usr/bin/firefox . یعنی فایل اجراییش اونجاست. پس اگه تو ترمینال مستقیم بزنی:
/usr/bin/firefox
فایرفاکس اجرا میشه!
این فایلهای اجرایی توی چند جای سیستم هستن. وقتی یه دستور رو توی ترمینال میزنی، میره همه رو میگرده و اگه پیداش نکرد، میگه command not found. همه اون جاهایی که میگرده توی متغیر PATH ذخیره شده که میتونی اینجوری ببینیشون:
echo $PATH
که به ترتیب از اول شروع میکنه به گشتن.
اصولا هر برنامهای که نصب کنی، خودش مسیرش به path اضافه میشه و یا لینکی از یه فایل اجرایی توی bin میسازه که با زدن دستورش، اجرا بشه.
اگه به هر دلیلی این اتفاق نیفتاده، یا خودت برنامه رو یه جایی دیگه نصب کردی، دو تا راه هست.
راه خیلی روتین اینه که از دستور alias استفاده کنی. مثلا این رو ببین:
alias do-update='sudo apt update'
با این کار، یجورایی یه دستور جدید تعریف میشه. یعنی با زدن do-update توی ترمینال، دستور sudo apt update اجرا میشه.
حالا، واسه اون کار میتونی بزنی:
alias COMMAND='/PATH/TO/SOMETHING'
یعنی آدرس مسیر فایل اجرایی اون برنامه رو بهش بدی.
اینجوری با هر بار زدن اون دستور مورد نظر، فایلی که میخوای (که میتونه اون برنامه باشه، یا یه اسکریپت که خودت نوشتی)، اجرا میشه.
البته با هربار بستن ترمینال، از بین میره و برای اینکه این اتفاق نیفته، این دستور رو به انتهای فایل .bashrc توی home اصافه کن تا با هربار باز کردن ترمینال، اجرا بشه.
و یا یه راه دیگه هم اینه که مستقیم بری اون مسیر رو به متغیر PATH اضافه کنی. (که راه اول خیلی بهتره و ایمنتر!)