LINUX

آموزش لینوکس

LINUX

آموزش لینوکس

LINUX

این وبلاگ به بحث پیرامون لینوکس و امنیت و زبان برنامه نویسی تحت لینوکس می پردازد.

طبقه بندی موضوعی

shell چیست؟ (آموزش اسکریپت نویسی)

سه شنبه, ۳ تیر ۱۳۹۳، ۰۹:۳۱ ب.ظ

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

شل محیطی ست که میتونه دستورات برنامه ها و اسکریپت های شما رو اجرا کنه. همونطور که سیستم عامل های مختلفی هست شل های مختلفی هم وجود داره.


Shell Prompt

علامت شل $ می باشد که وقتی ظاهر شد شما میتونید دستورات لازم رو وارد کنید. بعد از اینکه دستور رو نوشتید و اینتر رو زدید, شل مقدار ورودی رو از شما میگیره. هر دستور در لینوکس به خودی خود یک داده از نوع رشته ست که به صورت پیوسته و ناگسسته نوشته میشه.

دستور زیر تاریخ و ساعت رو به شما نشون میده:

$ date
Tue Jun 24 20:27:28 IRDT 2014


شما میتونید نشان دستورات خودتون رو با توجه به توضیحاتی که در بخش محیط ها  گفتم تغییر بدید.

انواع شل

در یونیکس دو نوع اصلی شل وجود داره:

- شل Bourne که وقتی ازون استفاده میکنید علامت $ رو خواهید دید.

- شل C که وقتی ازش استفاده میکنید علامت % رو خواهید دید.


هر کدوم از مواردی که گفته شد خود زیر دسته هایی دارند که به اون ها اشاره میکنم:

- Bourne shell یا sh

- Korn shell یا ksh

- Bourne Again shell یا bash

- POSIX shell یا sh

 همچنین شل از نوع C:

- C shell یا csh

- TENEX/TOP C shell یا tcsh


شل در اصل در میانه های دهه 1970 توسط Stephan R نوشته شد. اولین شلی که نوشته و ایجاد شد نیز Bourne shell بود. من قصد دارم روی Bourne shell تمرکز کنم که عمومیت بیشتری داره و حقیقتا هم خودم بیشتر با همین نوع اسکریپت نویسی آشنا هستم.


Shell Scripts

مفهوم اصلی اسکریپت نویسی به زبان بش این هست که شما باید دستورات لینوکس رو با نظم و قاعده خاصی کنار هم بچینید تا بتونید از اون نتیجه مورد نظر خودتون رو بگیرید. یک اسکریپت خوب اسکریپتیه که در اون از comment گذاری به جا استفاده بشه. برای گذاشتن comment توی اون باید از علامت # استفاده کنید. در اسکریپت نویسی حلقه ها شرط ها و آزمون ها وجود دارند. شما میتونید در اون فایا ها رو بخونید یا مقادیری رو در آرایه ذخیره کنید و خلاصه خیلی کارها میشه باهاش کرد. مخصوصا برای مدیریت سرور های لینوکسی اسکریپت نویسی خیلی مفیده. توابع و اسکریپت ها در bash همگی بدون کاموپایل شدن اجرا میشن.


مثالی از اسکریپت

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

#!/bin/sh


این خط به سیستم میگه که فایل ایجاد شده از نوع Bourne shell هست. حالا میتونید متن اسکریپت خودتون رو که شامل چند دستور ممکنه باشه رو به صورت زیر وارد کنید:

#!/bin/bash
pwd
ls


Comment ها در شل

شما میتونید کامنت هاتون رو در اسکریپت که ممکنه شامل توضیحات یا هر چیز دیگه ای باشه به صورت زیر وارد کنید:

#!/bin/bash
# Author: Triumph
# Copyright (c) Tutorialspoint.com
# Script follows here:
pwd
ls


بعد از نوشتن اسکریپت و بستن فایل نوبت به دادن سطح دسترسی لازم جهت اجرا کردن اسکریپت میرسه:

$ chmod +x test.sh


حالا که اجازه لازم جهت اجرا شدن اسکریپت از سوی شما داده شد میتونید اسکریپت رو به اجرا در بیارید:

$ ./test.sh


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

/home/user
index.htm  unix-basic_utilities.htm  unix-directories.htm  
test.sh    unix-communication.htm    unix-environment.htm


یک مثال کامل تر

اسکریپتی که در ادامه ملاحظه میکنید از read برای گرفتن ورودی از کاربر استفاده میکنه و بعد یک عبارتی رو در کنار ورودی که کاربر وارد کرده چاپ میکنه:

#!/bin/sh
# Author: Triumph
# Copyright(c): linusec.blog.ir

echo "What is your name? "
read NAME
echo "Hello, $NAME"


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

$./test.sh
What is your name?
Ali
Hello, Ali
$

موافقین ۲ مخالفین ۰ ۹۳/۰۴/۰۳

نظرات  (۲)

در "مثالی از اسکریپت"علامت تعجب را بعد از هشتگ نگذاشته‌اید.
پاسخ:
خیلی ممنون از توجهتون... اصلاحش کردم...
mersi.tozihat ba zabane sade bud.mamnoon
پاسخ:
با سلام. خواهش میکنم... یک مساله ی مهم در آموزش به نظر من ساده نشون دادن مطالب به یادگیرنده هست.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی