انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: اجرا script همه جا (حل شد)  (دفعات بازدید: 1278 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین HassanTavangar

  • Jr. Member
  • *
  • ارسال: 46
اجرا script همه جا (حل شد)
« : 22 آذر 1395، 05:26 ب‌ظ »
سلام به دوستان
من یه  فایل  shell script نوشتم و با دستور
chmod +x test.sh اجرایش کردم
چکار کنم که همه جای ترمینال اجرا بشه ( نیازی به آدرس دادن نباشه)
سوال ساده ای هست ولی جوابش رو پیدا نمی کنم ](*,)
« آخرین ویرایش: 25 آذر 1395، 01:08 ق‌ظ توسط HassanTavangar »

آفلاین علیرضاامیرصمیمی

  • ناظر انجمن
  • *
  • ارسال: 2489
  • جنسیت : پسر
  • Arch Linux + KDE
    • وبسایت شخصی من
پاسخ : اجرا script همه جا
« پاسخ #1 : 22 آذر 1395، 06:05 ب‌ظ »
با یه اسم دلخواه بدون پسوند ذخیرش کنید (مثلا test ) و بهش قابلیت اجرایی بدید و در نهایت در این مسیر کپیش کنید
/usr/local/bin
حالا کافی هست توی ترمینال اسمش رو وارد کنید تا اجرا بشه :)

آفلاین HassanTavangar

  • Jr. Member
  • *
  • ارسال: 46
پاسخ : اجرا script همه جا
« پاسخ #2 : 22 آذر 1395، 06:39 ب‌ظ »
با یه اسم دلخواه بدون پسوند ذخیرش کنید (مثلا test ) و بهش قابلیت اجرایی بدید و در نهایت در این مسیر کپیش کنید
/usr/local/bin
حالا کافی هست توی ترمینال اسمش رو وارد کنید تا اجرا بشه :)

تشکر استاد ::)


 کپی کردم

sudo cp spa.sh /usr/local/bin
spa.sh
ولی این خطا رو میده
 
bash: /usr/local/bin/spa.sh: Permission denied

آفلاین علیرضاامیرصمیمی

  • ناظر انجمن
  • *
  • ارسال: 2489
  • جنسیت : پسر
  • Arch Linux + KDE
    • وبسایت شخصی من
پاسخ : اجرا script همه جا
« پاسخ #3 : 22 آذر 1395، 07:01 ب‌ظ »
نیازی به پسوند نداره
یه مثال براتون میزنم

یه اسکریپت دارید به نام hassan
که محتویاتش اینه
#!/bin/bash
echo "hello hassan"

اون رو بدون هیچ پسوندی با نام hassan توی home ذخیره کنید
بهش با این دستور قابلیت اجرایی بدید
chmod +x hassan

بعد با این دستور کپیش کنید

sudo cp hassan /usr/local/bin

در نهایت وقتی توی ترمینال (تو هر پوشه ای باشه مهم نیست) بنویسید hassan و اینتر بزنید اسکریپت شما اجرا میشه

آفلاین رسول سعیدنژاد

  • High Hero Member
  • *
  • ارسال: 3504
  • جنسیت : پسر
  • علی (ع): زَكَاةُ الْعِلْمِ نَشْرُه
پاسخ : اجرا script همه جا
« پاسخ #4 : 22 آذر 1395، 07:30 ب‌ظ »
البته من شورت‌لینک رو ترجیح میدم. چون باعث میشه دوفایل تولید نشه و تغییر در فایل اصلی، دردسر ساز نشه!
پس در نتیجه میزنم:
sudo ln -s ~/home/ubuntu/spa.sh /usr/local/bin/spa ;)
نرم افزار، یک ابزاره. برای رسیدن به هدف ازش استفاده کنید. نرم افزار هدف شما نیست :) - آزادی، بزرگ‌ترین دروغ بشریت

آفلاین HassanTavangar

  • Jr. Member
  • *
  • ارسال: 46
پاسخ : اجرا script همه جا
« پاسخ #5 : 24 آذر 1395، 11:18 ق‌ظ »
تشکر از همه دوستان

من این روش رو پیدا کردم

این خط رو توی فایل .bashrs اضافه کردم

export PATH=$PATH:/home/hassan/Documents


کار می کنه
ولی نمی دونم این راه بهتره یا راه دوستان
اگر راهنمایی کنید  :oops: \\:D/ خوبه


بازم تشکر

آفلاین علیرضاامیرصمیمی

  • ناظر انجمن
  • *
  • ارسال: 2489
  • جنسیت : پسر
  • Arch Linux + KDE
    • وبسایت شخصی من
پاسخ : اجرا script همه جا
« پاسخ #6 : 24 آذر 1395، 01:22 ب‌ظ »
سلام هر سه صحیح هست :)

راه اول (راه من) >> فایل اصلی که توی پوشه خودت هست ،کپی میشه توی /usr/local/bin و بعد از کپی شدنش ، دیگه فایل اصلی داخل پوشه خودت لازم نیست نگه داری بشه . برای این شیوه اگر خواستی اسکریپت رو تغییر بدی یا باید از نو کپی کنی یا با دسترسی sudo همون فایل داخل مسیر /usr/local/bin رو تغییر بدی! ولی خب خوبیش این هست که فقط کسی میتونه تغییرش بده که بتونه دسترسی root داشته باشه

راه دوم (راه رسول) >> یه لینک میسازه توی مسیر /usr/local/bin و باید همیشه فایل اصلی رو نگه داری! اگه پاکش کنی دیگه لینک کار نمیکنه! خوبی شیوه رسول اینه که دیگه اگر بخوای فایل اصلی رو تغییر بدی دیگه نیاز به دسترسی root نداری و فایل داخل پوشه خودت رو تغییر بدی تغییرات اعمال میشه ! ولی نکته اینه که اگر کاربر پای سیستمت دسترسی root هم نداشته باشه میتونه این اسکریپت اجرایی رو تغییر بده

راه سوم (راه خودت) >> پوشه رو داری به bash معرفی میکنی (البته بهتر هست به جای اینکه داخل .bashrc معرفی کنی ، متغییر رو داخل .profile معرفی کنی) . توی که این روش خوبیش اینه که بعدا هر اسکریپت دیگه ای هم داشته باشی میتونی بدون دسترسی root  تو مسیر معرفی شده بذاری و بدون مشکل کار کنه! ولی نکته این هست که هر کس دیگه ای هم که پای سیستمت هست میتونه این کار رو بکنه و البته میتونه اسکریپتت رو تغییر بده

برای یه سیستم معمولی که خودت و افراد مطمئن ازش استفاده میکنید ، همون روش خودت راحت تر هست! ولی خب با توجه به شرایطی که گفتم میتونی راه حلت رو انتخاب کنی :)
« آخرین ویرایش: 24 آذر 1395، 01:24 ب‌ظ توسط علیرضاامیرصمیمی »