آشنایی با دستورات لینوکس بخش چهارم

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 25, 2020

در قسمت چهارم از بررسی دستورات لینوکس و خط فرمان Terminal به بررسی چندین فرمان دیگر به همراه زیر ساخت های لینوکسی برای نوشتن دستورات shell و همچنین نوشتن سرویس هایی برای اجرا در هنگام بوت سیستم خواهیم پرداخت.

shell scripts

دستورات را می توان با هم در یک فایل ترکیب کرد که بعدا می تواند اجرا شود. به عنوان مثال، متن زیر را در ویرایشگر متن مورد علاقه خود کپی کنید:

while :
do
echo Raspberry Pi!
done

و فایل را با اسم fun-script ذخیره کنید. قبل از اینکه بتوانید آن را اجرا کنید باید ابتدا آن را به عنوان یک فایل اجرایی درآورید؛ می توان با استفاده از دستور chmod تغییر حالت انجام داد. هر فایل و دایرکتوری مجموعه ای از مجوز های خود را دارد که کاربر می تواند و یا نمی تواند به آن عمل کند. در این مورد، با اجرای دستور chmod + x fun-script، فایل fun-script به حالت یک فایل اجرایی در می آید. پس از آن شما می توانید با تایپ کردن ./fun-script (فرض کنید که فایل در دایرکتوری فعلی شماس)فایل مورد نظر را اجرا کنید. این اسکریپت بی نهایت حلقه چاپ raspberry pi می باشد و برای متوقف کردن آن، Ctrl + C را فشار دهید.که این دستور در واقع هر عملی که در ترمینال در حال اجراست را متوقف می کند.

scheduling tasks

Cron یک ابزار برای پیکربندی وظایف برنامه ریزی شده در سیستم های یونیکس است. برای برنامه ریزی دستورات یا اسکریپت ها و برای اجرا به صورت دوره ای و با فواصل ثابت استفاده می شود. وظایفی همچون تهیه پشتیبان از پوشه های home کاربر هر روز که برای ذخیره اطلاعات ورودی از cpu در این پوشه استفاده می شود. دستور crontab (جدول cron) برای ویرایش لیست کارهای برنامه ریزی شده در عمل استفاده می شود و براساس هر کاربری مجزا صورت می گیرد. هر کاربر (از جمله root) دارای crontab خودش است.

محیط گرافیک Cron و یا (Cron GUI)

یک برنامه گرافیکی برای Cron با نصب بسته gnome-schedule در دسترس قرار خواهد گرفت:

sudo apt-get install gnome-schedule

سپس برنامه Scheduled Tasks را از منوی اصلی اجرا کنید.

ویرایش Crontab

اجرای crontab با پرچم -e برای ویرایش جدول cron:

crontab -e
انتخاب یک ویرایشگر متن

اولین بار که شما crontab را اجرا می کنید از شما خواسته می شود که یک ویرایشگر را انتخاب کنید. اگر مطمئن نیستید کدام یک را انتخاب کنید، با فشار دادن Enter، nano را انتخاب کنید.

وظایف زمانبندی شده را اضافه کنید

طرح بندی ورودی cron شامل 6 جزء است: دقیقه، ساعت، روز ماه، ماه سال، روز هفته و در نهایت فرمان برای اجرا

# m h  dom mon dow   command
# * * * * *  command to execute
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
# │ │ │ └────────── month (1 - 12)
# │ │ └─────────────── day of month (1 - 31)
# │ └──────────────────── hour (0 - 23)
# └───────────────────────── min (0 - 59)

برای مثال:

0 0 * * *  /home/pi/backup.sh

این ورودی cron هر روز در نیمه شب اسکریپت backup.sh را اجرا می کند.

نمایش وظایف زمانبندی شده

وظایف برنامه ریزی شده فعلی خود را با موارد زیر مشاهده کنید:

crontab -l

یک دستور و یا وظایف را در هنگام reboot اجرا کند برای اجرای دستوراتان در هر بار که Raspberry Pi مجدد شروع به کار می کند، به جای زمان و تاریخ @reboot را در ابتدای خط وارد نمایید.

@reboot python /home/pi/myscript.py

با این دستور اسکریپت مورد نظر در هر بار زمان شورع مجدد رزبری پای اجرا می شود. اگر می خواهید فرمان شما در پس زمینه اجرا شود در حالی که Raspberry Pi همچنان راه اندازی می شود،پس از ایجاد یک فضا از علامت & استفاده نمایید. این:

@reboot python /home/pi/myscript.py &
.bash and .bash_rc

در پوشه home شما یک فایل پنهانی با نام .bashrc پیدا خواهید کرد که حاوی گزینه های پیکربندی کاربر است. شما می توانید این فایل را با توجه به نیازهای خود ویرایش کنید. تغییرات ساخته شده در این فایل زمانی انجام می شود که ترمینال مجددا باز شود،زیرا تنها زمانی که ترمینال باز می شود این دستورات مورد بررسی قرار می گیرند. اگر می خواهید تغییرات خود را در ترمینال فعلی خود انجام دهید، می توانید از منبع ~ / .bashrc یا exec bash استفاده کنید.این ها در واقع چیزهای کمی متفاوت هستند: شکل دهنده و مجری terminal به سادگی فایل .bashrc را دوباره اجرا می کند،که ممکن است به تغییرات نامطلوب به چیزهایی مانند مسیر منجر شود،که در این وضعیت shell قدیمی را به جای تغییرات جدید باز خواهد کرد. برخی از سازگاری های مفید برای شما ارائه می شود؛ بعضی از این ها به صورت پیش فرض توسط # اعلان می شوند. برای فعال کردن آنها، # را حذف کنید و زمانی که سیستم عامل دوباره بوت می شود و یا ترمینال جدیدی باز می کنید فعال خواهند شد. به عنوان مثال تعدادی از عملکرد های دستور ls:

alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

تغییراتی همانند این برای کاربران سیستم عامل های ویندوزی و DOS تعبیه شده بودند تا کمک حالشان باشند. و بقیه این دستورات برای تغییرات در نمای رنگ خروجی دستور هایی همچون grep و ls می باشند. تنوع بیشتر ls نیز ارائه شده است: کاربران اوبونتو ممکن است با این موضوع آشنا باشند زیرا به طور پیش فرض در این توزیع ارائه شده است. این خطوط را برای دسترسی به این نامهای مستعار در آینده آزاد کنید. .bashrc همچنین حاوی یک اشاره به یک فایل bash_aliases است که به طور پیش فرض وجود ندارد. شما می توانید این فایل را اضافه کنید تا یک روش دستی برای نگه داشتن همه نام های مستعار خود در یک فایل جداگانه داشته باشید.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

دستور if در اینجا قبل از هر چیز، وجود فایل را بررسی می کند. سپس شما فقط فایل .bash_aliases را ایجاد می کنید و نام مستعار های بیشتری را ایجاد می کنید.مانند:

alias gs='git status'

شما می توانید چیزهای دیگر را به طور مستقیم به این فایل یا دیگر فایل ها مشابه .bash_aliases اضافه کنید

rc.local

برای اینکه یک فرمان یا برنامه زمانی در زمان بوت رزبری پای اجرا شود، میتوانید دستورات را به فایل rc.local اضافه کنید. این حالت در زمانی مفید است که می خواهید رزبری را به یک منبع بی سر متصل کنید و بدون هیچ گونه اعمال تنظیمات دستی به اجرا در آورید. یک جایگزین برای مدیریت وظیفه برنامه ریزی شده cron است.

ویرایش rc.local

در Pi خود فایل /etc/rc.local را با استفاده از ویرایشگر انتخابی خود ویرایش کنید. این ویرایش می بایست تحت کاربر Root باشد، مثلا:

sudo nano /etc/rc.local

دستورات خود را در زیر کامت ها وارد کنید، اما مقدار exit 0 را پاک نکنید و در انتها ذخیره و خارج شوید.

هشدار

اگر فرمان شما به طور مداوم اجرا می شود (شاید یک حلقه بی نهایت اجرا شود) یا اینکه خارج نشدنیست ، باید مطمئن شوید که فرایند را با اضافه کردن & به انتهای فرمان از بین نرود، مانند:

python /home/pi/myscript.py &

در غیر این صورت، اسکریپت پایان نخواهد یافت و Pi بارگیری نخواهد شد. علامت & (ampersand)اجازه می دهد که فرمان را در یک فرایند جداگانه اجرا کند و با فرآیند در حال اجرا بوت شود. نکته:مطمئن شوید که اسم فایل اسکریپت مورد نظر را همراه با دایرکتوری مربوطه در کد استفاده کنید.

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
0دیدگاه