در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش لینوکس : مدیریت سیستم : قسمت 5 : ایجاد اسکریپت

سلام و وقت بخیر. در این بخش به بررسی اصول نوشتن Shell Script در لینوکس میپردازیم. برای نوشتن یک برنامه تحت Shell به نکات زیر توجه کنید.

1- معمولا انتهای نام های برنامه های تحت Shell یک sh. میگذارند. این sh. به معنای پسوند فایل نیست. بر خلاف ویندوز که پسوند فایل ها در نام فابل مشخص میشود، در لینوکس پسوند فایل ها در متا دیتای فایل ذخیره میشود. این گذاشتن sh. فقط برای تفهیم کاربر است. مثلا برای برنامه های پایتون py. میگذاریم. گذاشتن و نذاشتن این اسامی تاثیری در اجرا و عملکرد برنامه ندارد. فقط برای اینکه خودمون متوجه بشیم محتویات و جنس فایل ها چیست به درد میخورد.

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

3- فایل ها به طور پیش فرض executable نیستند، پس از نوتشن کد ها در یک فایل خالی، باید به فایل خاصیت exe بودن بدهیم.

4- اگر لازم بود که برنامه را بتوان در هر مسیری اجرا کرد و از همه جا قابل اجرا کردن باشد، مسیر پوشه برنامه باید به PATH کاربر افزوده شود. این قسمت اجباری نیست. اگر این کار را نکنیم، برای اجرای برنامه لازم است آدرس absolute بدهیم، همین. ولی اگر در PATH کاربر هم تعریف شده باشد، در هر مسیری با نوشتن نام برنامه، برنامه اجرا میشود.

موارد بالا برای نوشتن هر نوع برنامه ای به هر زبانی در لینوکس است. چه پایتون، چه C، چه پرل و ...

بریم سراغ اصل کار. به کد های زیر توجه کنید. برای کاربری که با نام آن وارد سیستم شدم، متغیر PATH را نگاه میکنم، قسمت آخر متغیر PATH را نگاه کنید. همان قسمتی بود که توسط bash-profile ایجاد شده بود. این مسیر بطور پیش فرض وجود ندارد. یعنی نمیتوانم به آن cd کنم ولی در PATH وجود دارد. یعنی هر بار که دستوری زده میشود، این مسیر هم توسط سیستم عامل چک میشود. میتوان این پوشه را با دستور mkdir درست کرد. راحت تر است که برای نوشتن برنامه ها از این مسیر استفاده کنیم و فایل های برنامه را اینجا ذخیره کنیم، چون بصورت پیش قرض در PATH وجود داردو هر جای دیگر هم میتوان برنامه ها را ذخیره کرد. میتوان هر مسیری را هم به PATH اضافه کرد. این کاملا به شما بستگی دارد. فقط همانطور که گفتم اگر مسیر برنامه در PATH باشد، در هر مسیری قایل اجراست ولی اگر مسیر برنامه در PATH نباشد، برای اجرای آن باید آدرس absolute (یعنی آدرس از ریشه) بدهیم.

[mohammad@CentOS6 ~]$ pwd
/home/mohammad
[mohammad@CentOS6 ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/mohammad/bin
[mohammad@CentOS6 ~]$ cd bin
-bash: cd: bin: No such file or directory
[mohammad@CentOS6 ~]$ mkdir bin
[mohammad@CentOS6 ~]$ cd bin
[mohammad@CentOS6 bin]$ pwd
/home/mohammad/bin                 //برنامه ها را اینجا ذخیره میکنیم
[mohammad@CentOS6 bin]$ 

بسیار خوب ، بیاید یم مثال ساده رو اجرا کنیم. به کد زیر دقت کنید.

[mohammad@CentOS6 bin]$ vim hello.sh
[mohammad@CentOS6 bin]$ ls -l hello.sh 
-rw-rw-r--. 1 mohammad mohammad 44 Aug 18 13:45 hello.sh
[mohammad@CentOS6 bin]$ chmod +x hello.sh
[mohammad@CentOS6 bin]$ hello.sh 
We are ITPRO!!!
[mohammad@CentOS6 bin]$ ls -l hello.sh 
-rwxrwxr-x. 1 mohammad mohammad 44 Aug 18 13:45 hello.sh
[mohammad@CentOS6 bin]$ cd ~
[mohammad@CentOS6 ~]$ hello.sh 
We are ITPRO!!!
[mohammad@CentOS6 ~]$ 
[mohammad@CentOS6 ~]$ 
[mohammad@CentOS6 ~]$ bash -x bin/hello.sh
+ echo 'We are ITPRO!!!'
We are ITPRO!!!
+ exit 0
[mohammad@CentOS6 ~]$ 
[mohammad@CentOS6 ~]$ 

در همان مسیری که بودم با استفاده از vim یا gedit یک سند خالی درست کردم. درون آن کد ها زیر را وارد کردم.

#!/bin/bash

echo "We are ITPRO!!!"

exit 0

در خط اول به سیستم عامل میگوییم برای خواندن و اجرای برنامه از چه کتابخانه ای استفاده کند. مسیر نصب bash را وارد کردم. اگر داشتم پایتون مینوشتم مسیر نصب پایتون رو میدادم. خط بعد با دستور echo یک جمله را در خروجی چاپ کردم. در خط آخر هم گفتم 0 را برگردان. 0 به معنی اجرای صحیح برنامه است. سپس برنامه را ذخیره کرده و خارج میشم. اگر با دستور ls جزئیات فایل hello.sh را چاپ کنم، متوجه میشوم که خاصیت exe یعنی خاصیت اجرایی ندارد. با دستور chmod این فایل را exe میکنم تا از حالت فقط متنی خارج شود. حالا اگر نام برنامه را بزنم، برنامه اجرا میشود. حتی اگر مسیرم را با دستور cd عوض کنم باز هم برنامه اجرا میشود. برای debug کردن یک برنامه از دستور bash و سویچ x- استفاده کنید.

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

پایان قسمت اول از بخش دوم

نویسنده : سید محمد باقر موسوی

منبع : جزیره لینوکس و سیستم های متن باز وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

#دوره_آموزشی_linux_فارسی #نوشتن_shell_script_در_لینوکس #آموزش_لینوکس_فارسی #آموزش_linux_مقدماتی #آموزش_shell_scripting #آموزش_دستورات_مقدماتی_لینوکس #آموزش_shell_scripting_در_لینوکس #دوره_آموزشی_shell_scripting_در_لینوکس #نوشتن_یک_shell_script_ساده
عنوان
1 آموزش لینوکس : مدیریت سیستم : قسمت 1 : Shell سفارشی : متغیرها رایگان
2 آموزش لینوکس : مدیریت سیستم قسمت 2 : Shell سفارشی : تنظیمات Shell رایگان
3 آموزش لینوکس : مدیریت سیستم : قسمت 3 : Shell سفارشی : Aliases رایگان
4 آموزش لینوکس : مدیریت سیستم : قسمت 4: Shell سفارشی: Login Scripts رایگان
5 آموزش لینوکس : مدیریت سیستم : قسمت 5 : ایجاد اسکریپت رایگان
6 آموزش لینوکس : مدیریت سیستم : قسمت 5 : Read User Input رایگان
7 آموزش لینوکس : مدیریت سیستم : قسمت 6 : IF Statement رایگان
8 آموزش لینوکس : مدیریت سیستم : قسمت 7 : Case Statement رایگان
9 آموزش لینوکس : مدیریت سیستم : قسمت 8 : Loops رایگان
10 آموزش لینوکس : مدیریت سیستم : قسمت 9 : Managing Users رایگان
11 آموزش لینوکس : مدیریت سیستم : قسمت 10 : Managing Groups رایگان
12 آموزش لینوکس : مدیریت سیستم : قسمت 11 : ارتباط با اکتیودایرکتوری رایگان
13 آموزش لینوکس : مدیریت سیستم : قسمت 12 : OpenLDAP رایگان
14 آموزش لینوکس : مدیریت سیستم : قسمت 13 : Cron AnaCron و Batch رایگان
15 آموزش لینوکس : مدیریت سیستم : قسمت 14 : آشنایی با IPTables رایگان
زمان و قیمت کل 0″ 0
2 نظر
samurai

آقا دم شما گرم مرسی

samurai

منظور شما اینه که پسوند فایل در inode فایل قراره داره؟

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

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