با ثبت نام در سایت از مزایای اعضا بهره مند شوید!

اجرای چند برنامه با یک آیکون

+1 امتیاز
87 بازدید
سوال شده شهریور 20, 1394 در برنامه‌نویسی توسط imsh1170 (19 امتیاز)
سلام

من میخوام توی ابونتو بتونم چند برنامه رو با یک آیکون که روی دسکتاپ هست رو اجرا کنم.

اگه توضیح بدید ممنون میشم چون خیلی از لینوکس سر در نمیارم:(

1 پاسخ

+1 امتیاز
پاسخ داده شده شهریور 21, 1394 توسط amirnami (1,161 امتیاز)
ویرایش شده شهریور 21, 1394 توسط amirnami

سلام

فکر کنم راهکار زیر قابل انجام باشه.

برای اجرای چند دستور پشت سر هم و یکجا باید از pipe استفاده کنید. علامت &&  برای مفهوم pipe هست به طوری که اگر دستور سمت چپی به درستی و کامل اجرا بشه اونوقت دستور سمت راستی اجرای میشه

commaand1 && command2 && command3 

اما اگه براتون اجرای درست و کامل دستور سمت چپی مهم نیست و می خواهید به هر صورتی توالی دستورها از سمت چپ ترین تا سمت راست ترین اجرا بشن از علامت ; استفاده کنید.

commaand1 ; command2 ; command3

برای ایجاد ایکون هم لینک زیر رو بخونید

http://xmodulo.com/create-desktop-shortcut-launcher-linux.html

دارای دیدگاه شهریور 28, 1394 توسط imsh1170 (19 امتیاز)
تشكر از راهنمايي تون.

اما با اين لانچر گنوم من نميتونم برنامه رو لانچ كنم! جالبه كه با ترمينال وقتي ميرم توي مسير برنامه همه چيز درسته و برنامه كار ميكنه. اما با اين نرم افزار هايي كه لانچر ميسازند اجرا نميشه،يه گزينه هم داره كه نوشته run in terminal اما اون هم يه لحظه ترمينال رو باز ميكنه اما باز هم برنامه اجرا نميشه!!!؟
دارای دیدگاه شهریور 28, 1394 توسط amirnami (1,161 امتیاز)

به طور کلی دو تا راه وجود داره که شما چندین دستور رو پشت سر هم اجرا کنید. یکیش اجرا از خط فرمان هست که در بالا گفتم (یعنی استفاده از && و ;   ). راه دیگه نوشتن یک فایل اسکریپت هستش. یعنی شما توالی دستور ها رو در یک فایل بنویسید و سپس اونرو اجرا کنید (یا به عبارتی برای شما مسیر اون فایل رو به لانچر معرفی کنید)

اول یک فایل بسازید مثلا به اسم cmds.sh با دستور زیر تو مسیر و دایرکتوری که می خواهید

touch cmds.sh

بعد با ویرایشگر خودتون مثل vi و nano از خط فرمان یا ویرایشگرهای گرافیکی مثل gedit اونرو باز کنید و دستورها رو وارد کنید. یک راهش همونی هست که گفتم یعنی استفاده از &&   و  ;

 اما راه دیگه اجرا در background  هستش  به اینصورت که هر مسیر هر دستور در یک خط بنویسید و انهای اون با یک فاصله علامت & بزارید. با این کار هر دستور مجزا در پس زمینه اجرا شده و پس از اتمام اجرا دستور بعدی به همین نحو اجرا میشه. خط اول کدهای زیر رو هم عینا وارد کنید و سپس & command1 به بعد رو وارد کنید. 

bin/bash/ !#

& command1

& command2

......

بعد اینکه فایل رو ذخیره کردید باید با دستور زیر بهش مجوز اجرا شدن بدید

chmod +x /path/to/cmds.sh

دستور chmod

اجرای شل اسکریپت ها

دستور touch

اجرای دستورها در background

دارای دیدگاه شهریور 28, 1394 توسط imsh1170 (19 امتیاز)
ممنون از راهنماییتون اما همچنان مشکل پا برجاست! من طبق چیزی که گفتین یک فایل cmds.sh درست کردم و دستورات را وارد کردم اما همچنان یک لحظه ترمینال باز میشه و بسته میشه و دیگه هیچ اتفاقی نمی افته! این درحالی هست که وقتی توی یه ترمینال دستی اون دستور رو میزنم برنامه باز میشه؟؟؟
دارای دیدگاه شهریور 29, 1394 توسط amirnami (1,161 امتیاز)

سلام

من خودم تا به حال چنین نیازی نداشتم و چیز دیگه ای به نظرم نمی رسه اما شاید مشکل به خاطر این باشه که میزکاری که استفاده می کنید چنین چیزی را پشتیبانی نمی کنه

یه راه دیگه که از خط فرمان است ایجاد یک alias هستش. alias نام مستعار هستش که به یک یا چند دستور اشاره می کنه و در واقع یعنی شما یک چند دستور رو در غالب یک نام تعیین می کنید. برای این کار به صورت فرمت کلی زیر خط زیر رو در یکی از فایل های etc/bashrc یا فایل bashrc در دایزکتوری خانگی خودتون یعنی home/yourname/.bashrc  وارد کنید

"alias your_alias_name="command1 && command2 && command3

or

"alias your_alias_name="command1 ; command2 ; command3

بعد با توجه به فایلی که از استفاده کردید یکی از د ستورهای زیر رو اجرا کنید.

bash /etc/bashrc

or

bash /home/your_name/.bashrc

فقط دقت کنید که میان سمت چپ و راست علامت مساوی نباید فاصله باشه

نام های مستعار

اجرای شل اسکریپت ها

فایل های startup 

این کار در حالت گرافیکی نیست بلکه یک نام جدید (در واقع یک دستور جدید) ایجاد می کنه که به چندین دستور دیگه اشاره می کنه

سرور مجازی لینوکس

2,041 سوال

3,206 پاسخ

3,381 دیدگاه

7,467 کاربر

...