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

کمک و پشتیبانی => انجمن عمومی => نویسنده: GamEEK در 23 خرداد 1393، 08:56 ب‌ظ

عنوان: استفاده از اسکریپت یک برنامه در ترمینال(حل شد)
ارسال شده توسط: GamEEK در 23 خرداد 1393، 08:56 ب‌ظ
سلام!! میخواستم بدونم چجوری میشه از اسکریپت یه برنامه(مثلا apt-fast) در ترمینال استفاده کرد؟؟
مثلا من اسکریپت apt-fast رو در یه جایی کپی کنم! و بجای استفاده از apt-getاز اون استفاده کنم!! ](*,)
البته درسته که میشه اونو دانلود کرد ::)  :o  ولی میخوام بدونم اینجوری چی کار کنم!!!!  مثلا شاید بخوام اسکریپت رو تغییر بدم!!! ;D
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: elyas74 در 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
 - (دوستان اگه اشتباهی دارم ممنون میشم بگید.)
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: GamEEK در 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 در 23 خرداد 1393، 10:50 ب‌ظ
 - من یک سری دوست شوخ داشتم که هربار مرسیدن پشت سیستمم دستور های خاموش کردن سیستم رو میزدن و من با این کار یک شکلک :p بهشون نشون میدادم وقتی دستور رو میزنن.

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

 - و اسکریپتت رو هم بزار ببینیم چی نوشتی و شاید دوستان نظر بهتری از این راهی که من گفتم داشته باشن.
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: HSN6 در 23 خرداد 1393، 11:48 ب‌ظ
این apt-fast رو ندارم ولی شاید این‌جوری پیدا شه :
whereis apt-fast
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: GamEEK در 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 در 25 خرداد 1393، 06:58 ب‌ظ
دوستان کسی نمیدونه این مشکل چجوری حل میشه؟؟؟ ](*,) ](*,)
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: احسان☺ - در 25 خرداد 1393، 07:55 ب‌ظ
آدرس پرونده تون کجاست؟قابلیت اجرایی که داره؟

برای apt-fast باید اسکریپت برنامه رو توی /user/bin  کپی کنید.و بهش دسترسی اجرایی بدید.پرونده ی تنظیماتش رو هم توی etc بریزید.
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: GamEEK در 26 خرداد 1393، 12:14 ق‌ظ
آدرس پرونده تون کجاست؟قابلیت اجرایی که داره؟

برای apt-fast باید اسکریپت برنامه رو توی /user/bin  کپی کنید.و بهش دسترسی اجرایی بدید.پرونده ی تنظیماتش رو هم توی etc بریزید.
فایل اجرایی نداره !!  فقط یه اسکریپته !! قابلیت اجرا شدن هم داره !!! راستی مگه مهمه کجا باشه؟؟  ???  ???
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: احسان☺ - در 26 خرداد 1393، 12:47 ق‌ظ
تو روشی که الیاس گفتن اگه مثلا توی یه پارتیشن ntfs باشه ممکنه مشکل پیش بیاد.تنظیماتش رو بریزید توی etc ببینید درست میشه؟
همون فایل اجراییه.
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: GamEEK در 26 خرداد 1393، 11:57 ق‌ظ
تو روشی که الیاس گفتن اگه مثلا توی یه پارتیشن ntfs باشه ممکنه مشکل پیش بیاد.تنظیماتش رو بریزید توی etc ببینید درست میشه؟
همون فایل اجراییه.
کلا من فقط یه اسکریپت دارم !! نمیدونم منظور شما از فایل اجرایی چیه؟  ](*,)
اگه میشه لطفا بیشتر راهنمایی کنید!!! هر کاری میکنم نمیشناسه؟
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: احسان☺ - در 26 خرداد 1393، 01:22 ب‌ظ
کلا من فقط یه اسکریپت دارم !! نمیدونم منظور شما از فایل اجرایی چیه؟  ](*,)
اگه میشه لطفا بیشتر راهنمایی کنید!!! هر کاری میکنم نمیشناسه؟
هرچیزی که دسترسی اجرایی داشته باشه رو میگیم پرونده ی اجرایی.:) که اینجا اسکریپت apt-fast هستش.
apt-fast دو تا پرونده داره.یکی اسکریپت اصلی و اون یکی پرونده ی تنظیمات.دو تاش رو از گیت هاب بگیرید  (https://github.com/ilikenwf/apt-fast)و کاری رو که بالاتر گفتم انجام بدید.
عنوان: پاسخ : استفاده از اسکریپت یک برنامه در ترمینال
ارسال شده توسط: GamEEK در 26 خرداد 1393، 08:07 ب‌ظ
کلا من فقط یه اسکریپت دارم !! نمیدونم منظور شما از فایل اجرایی چیه؟  ](*,)
اگه میشه لطفا بیشتر راهنمایی کنید!!! هر کاری میکنم نمیشناسه؟
هرچیزی که دسترسی اجرایی داشته باشه رو میگیم پرونده ی اجرایی.:) که اینجا اسکریپت apt-fast هستش.
apt-fast دو تا پرونده داره.یکی اسکریپت اصلی و اون یکی پرونده ی تنظیمات.دو تاش رو از گیت هاب بگیرید  (https://github.com/ilikenwf/apt-fast)و کاری رو که بالاتر گفتم انجام بدید.
مرسی حل شد :)