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

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

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


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

نویسنده موضوع: استفاده از اسکریپت یک برنامه در ترمینال(حل شد)  (دفعات بازدید: 1942 بار)

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

آفلاین GamEEK

  • Sr. Member
  • *
  • ارسال: 255
  • جنسیت : پسر
سلام!! میخواستم بدونم چجوری میشه از اسکریپت یه برنامه(مثلا apt-fast) در ترمینال استفاده کرد؟؟
مثلا من اسکریپت apt-fast رو در یه جایی کپی کنم! و بجای استفاده از apt-getاز اون استفاده کنم!! ](*,)
البته درسته که میشه اونو دانلود کرد ::)  :o  ولی میخوام بدونم اینجوری چی کار کنم!!!!  مثلا شاید بخوام اسکریپت رو تغییر بدم!!! ;D
« آخرین ویرایش: 26 خرداد 1393، 08:08 ب‌ظ توسط GamEEK »

آفلاین elyas74

  • Sr. Member
  • *
  • ارسال: 274
  • جنسیت : پسر
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #1 : 23 خرداد 1393، 09:27 ب‌ظ »
 - bash یک متغیر داره به نام PATH که آدرس پوشه هایی که دستور ها داخلش هست رو نگهداری میکنه مثلا داخل متغیر PATH من اینه :
[elyas@localhost ~]$ echo $PATH
/home/elyas/my_scripts:/home/elyas/xdman:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/elyas/.local/bin:/home/elyas/bin:/usr/lib/jvm/jre0.8.0/bin/:/usr/local/sbin:/usr/

 - وقتی ما دستوری رو در bash وارد میکنیم میره و توی اینا دنبالش میگرده و نکته جالبش اینه که از اولین آدرس شروع میکنه ،و این که اگه توی اولی به چیزی که میخواد برسه دیگه بقیه رو بررسی نمکنه.

 - پس با این توضیح ها فقط کافیه یک فلدر به اول این متغیر اضافه کنیم (مثلا من فولدر my_script رو همون جور که میبینی اضافه کردم) و یک اسکریپت به نام همون دستور داخلش بزاری و هر تغییری که میخوای روی دستور به وجود بیاری و کلا تغییرش بدی ،یعنی که این فایل یک واسطه باشه بین دستوری که کاربر وارد میکنه و دستوری که سیستم اجرا میکنه.

 - اضافه کردن این پوشه هم باید در فایل bashrc باشه، عبارت پایین رو باید متناسب با پوشه خودت به فایل bashrc. در home کاربرت اضافه کنی (اگه فقط برای یک کاربر میخوای این طور باشه).
export PATH=~/my_scripts:$PATH
 - (دوستان اگه اشتباهی دارم ممنون میشم بگید.)
ubuntu16.04/unity/JavaScript

آفلاین GamEEK

  • Sr. Member
  • *
  • ارسال: 255
  • جنسیت : پسر
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #2 : 23 خرداد 1393، 09:46 ب‌ظ »
- bash یک متغیر داره به نام PATH که آدرس پوشه هایی که دستور ها داخلش هست رو نگهداری میکنه مثلا داخل متغیر PATH من اینه :
[elyas@localhost ~]$ echo $PATH
/home/elyas/my_scripts:/home/elyas/xdman:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/elyas/.local/bin:/home/elyas/bin:/usr/lib/jvm/jre0.8.0/bin/:/usr/local/sbin:/usr/

 - وقتی ما دستوری رو در bash وارد میکنیم میره و توی اینا دنبالش میگرده و نکته جالبش اینه که از اولین آدرس شروع میکنه ،و این که اگه توی اولی به چیزی که میخواد برسه دیگه بقیه رو بررسی نمکنه.

 - پس با این توضیح ها فقط کافیه یک فلدر به اول این متغیر اضافه کنیم (مثلا من فولدر my_script رو همون جور که میبینی اضافه کردم) و یک اسکریپت به نام همون دستور داخلش بزاری و هر تغییری که میخوای روی دستور به وجود بیاری و کلا تغییرش بدی ،یعنی که این فایل یک واسطه باشه بین دستوری که کاربر وارد میکنه و دستوری که سیستم اجرا میکنه.

 - اضافه کردن این پوشه هم باید در فایل bashrc باشه، عبارت پایین رو باید متناسب با پوشه خودت به فایل bashrc. در home کاربرت اضافه کنی (اگه فقط برای یک کاربر میخوای این طور باشه).
export PATH=~/my_scripts:$PATH
 - (دوستان اگه اشتباهی دارم ممنون میشم بگید.)
با تشکر از شما!! :)
من این کارا رو انجام دادم!! ولی نمیشه   ???
این خطا میاد !! نمیدونم مشکل از اسکریپه یا چیز دیگه!! ولی فکر نمیکنم اسکریپت مشکل داشته باشه!!
برای مثال:
***@GamEEK:~$ sudo apt-fast install vim
[sudo] password for ****:
sudo: apt-fast: command not found

آفلاین elyas74

  • Sr. Member
  • *
  • ارسال: 274
  • جنسیت : پسر
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #3 : 23 خرداد 1393، 10:50 ب‌ظ »
 - من یک سری دوست شوخ داشتم که هربار مرسیدن پشت سیستمم دستور های خاموش کردن سیستم رو میزدن و من با این کار یک شکلک :p بهشون نشون میدادم وقتی دستور رو میزنن.

 - نکته دیگه اینه که وقتی شما داری با sudo کار میکنی در واقع داری با اکانت root کار میکنی پس باید آدرس اسکریپت رو به PATH اون اضافه کنی ،این موضوع رو رعایت کردی؟

 - و اسکریپتت رو هم بزار ببینیم چی نوشتی و شاید دوستان نظر بهتری از این راهی که من گفتم داشته باشن.
ubuntu16.04/unity/JavaScript

آفلاین HSN6

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • یک راَکتیست اسپرانتیست پایتونیست گودوئیست!
    • بلاگ شخصی
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #4 : 23 خرداد 1393، 11:48 ب‌ظ »
این apt-fast رو ندارم ولی شاید این‌جوری پیدا شه :
whereis apt-fast

آفلاین GamEEK

  • Sr. Member
  • *
  • ارسال: 255
  • جنسیت : پسر
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #5 : 24 خرداد 1393، 08:35 ب‌ظ »
- من یک سری دوست شوخ داشتم که هربار مرسیدن پشت سیستمم دستور های خاموش کردن سیستم رو میزدن و من با این کار یک شکلک :p بهشون نشون میدادم وقتی دستور رو میزنن.

 - نکته دیگه اینه که وقتی شما داری با sudo کار میکنی در واقع داری با اکانت root کار میکنی پس باید آدرس اسکریپت رو به PATH اون اضافه کنی ،این موضوع رو رعایت کردی؟

 - و اسکریپتت رو هم بزار ببینیم چی نوشتی و شاید دوستان نظر بهتری از این راهی که من گفتم داشته باشن.
خیلی ممنون ولی دوباره کار نمیکنه!! ادرس اسکریپت رو به PATH روت اضافه کردم !! ولی نمیشناسه!!!!
اینم از اسکریپت:
#!/bin/bash
# apt-fast by Matt Parnell http://www.mattparnell.com
# Modified by Ali Ghaffaari
# This thing is FOSS. Please feel free to suggest improvments to admin@mattparnell.com
# Use this just like apt-get for faster package downloading. Make sure to have axel installed

# Check for root permission
if [ "$USER" != "root" ]; then
echo You are not root. Permission denied!
exit 1
fi

# Filter 'install', 'upgrade' and 'dist-upgrade' options
if [ "$1" = "upgrade" ] || [ "$1" = "install" ] || [ "$1" = "dist-upgrade" ]; then
echo "\033[01m[apt-fast] Working ...\033[0m";

# Go into the directory apt-get normally puts downloaded packages (partial section)
cd /var/cache/apt/archives/partial;

# Have apt-get print the information, including the URI's to the packages
apt-get -y --print-uris $* > debs.list;

# Strip out the URI's, and download the packages with Axel for speediness
# Check to ensure we return http/ftp addresses

egrep -o -e "(ht|f)tp://[^\']+" debs.list > /dev/null 2>&1

if [ $? = "0" ] ; then
# Downloading the packages
head -n $(( `cat debs.list|wc -l` - `egrep -o -e "(ht|f)tp://[^\']+" debs.list|wc -l` )) debs.list
echo -n "Do you want to continue [Y/n]? "
read ANS;
if [ -z $ANS ] || [ "$ANS" = "Y" ] || [ "$ANS" = "y" ]; then
echo do nothing > /dev/null
else
echo "\033[01m[apt-fast] Abort\033[0m"
exit 0
fi

echo "\033[01m[apt-fast] Downloading packages ...\033[0m"
egrep -o -e "(ht|f)tp://[^\']+" debs.list | xargs -l1 axel -a;
echo

# Moving downloaded packages to parent directory
mv *.deb .. > /dev/null 2>&1
fi

# Perform the user's reqested action via apt-get
echo "\033[01m[apt-fast] Installing packages ...\033[0m"
apt-get -y $*;

# Check the apt-get exit code
if [ $? = "0" ]; then
echo "\033[01m[apt-fast] Done!\033[0m";
else
echo "\033[01m[apt-fast] Failed!\033[0m";
exit $?
fi

# Pass other options to original apt-get!
else
apt-get $*;
fi

آفلاین GamEEK

  • Sr. Member
  • *
  • ارسال: 255
  • جنسیت : پسر
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #6 : 25 خرداد 1393، 06:58 ب‌ظ »
دوستان کسی نمیدونه این مشکل چجوری حل میشه؟؟؟ ](*,) ](*,)

آفلاین احسان☺ -

  • Hero Member
  • *
  • ارسال: 937
  • جنسیت : پسر
  • !no power geek
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #7 : 25 خرداد 1393، 07:55 ب‌ظ »
آدرس پرونده تون کجاست؟قابلیت اجرایی که داره؟

برای apt-fast باید اسکریپت برنامه رو توی /user/bin  کپی کنید.و بهش دسترسی اجرایی بدید.پرونده ی تنظیماتش رو هم توی etc بریزید.

آفلاین GamEEK

  • Sr. Member
  • *
  • ارسال: 255
  • جنسیت : پسر
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #8 : 26 خرداد 1393، 12:14 ق‌ظ »
آدرس پرونده تون کجاست؟قابلیت اجرایی که داره؟

برای apt-fast باید اسکریپت برنامه رو توی /user/bin  کپی کنید.و بهش دسترسی اجرایی بدید.پرونده ی تنظیماتش رو هم توی etc بریزید.
فایل اجرایی نداره !!  فقط یه اسکریپته !! قابلیت اجرا شدن هم داره !!! راستی مگه مهمه کجا باشه؟؟  ???  ???

آفلاین احسان☺ -

  • Hero Member
  • *
  • ارسال: 937
  • جنسیت : پسر
  • !no power geek
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #9 : 26 خرداد 1393، 12:47 ق‌ظ »
تو روشی که الیاس گفتن اگه مثلا توی یه پارتیشن ntfs باشه ممکنه مشکل پیش بیاد.تنظیماتش رو بریزید توی etc ببینید درست میشه؟
همون فایل اجراییه.

آفلاین GamEEK

  • Sr. Member
  • *
  • ارسال: 255
  • جنسیت : پسر
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #10 : 26 خرداد 1393، 11:57 ق‌ظ »
تو روشی که الیاس گفتن اگه مثلا توی یه پارتیشن ntfs باشه ممکنه مشکل پیش بیاد.تنظیماتش رو بریزید توی etc ببینید درست میشه؟
همون فایل اجراییه.
کلا من فقط یه اسکریپت دارم !! نمیدونم منظور شما از فایل اجرایی چیه؟  ](*,)
اگه میشه لطفا بیشتر راهنمایی کنید!!! هر کاری میکنم نمیشناسه؟

آفلاین احسان☺ -

  • Hero Member
  • *
  • ارسال: 937
  • جنسیت : پسر
  • !no power geek
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #11 : 26 خرداد 1393، 01:22 ب‌ظ »
کلا من فقط یه اسکریپت دارم !! نمیدونم منظور شما از فایل اجرایی چیه؟  ](*,)
اگه میشه لطفا بیشتر راهنمایی کنید!!! هر کاری میکنم نمیشناسه؟
هرچیزی که دسترسی اجرایی داشته باشه رو میگیم پرونده ی اجرایی.:) که اینجا اسکریپت apt-fast هستش.
apt-fast دو تا پرونده داره.یکی اسکریپت اصلی و اون یکی پرونده ی تنظیمات.دو تاش رو از گیت هاب بگیرید و کاری رو که بالاتر گفتم انجام بدید.

آفلاین GamEEK

  • Sr. Member
  • *
  • ارسال: 255
  • جنسیت : پسر
پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
« پاسخ #12 : 26 خرداد 1393، 08:07 ب‌ظ »
کلا من فقط یه اسکریپت دارم !! نمیدونم منظور شما از فایل اجرایی چیه؟  ](*,)
اگه میشه لطفا بیشتر راهنمایی کنید!!! هر کاری میکنم نمیشناسه؟
هرچیزی که دسترسی اجرایی داشته باشه رو میگیم پرونده ی اجرایی.:) که اینجا اسکریپت apt-fast هستش.
apt-fast دو تا پرونده داره.یکی اسکریپت اصلی و اون یکی پرونده ی تنظیمات.دو تاش رو از گیت هاب بگیرید و کاری رو که بالاتر گفتم انجام بدید.
مرسی حل شد :)