آموزش اسکریپت نویسی لینوکس (مدیریت داده ها)
آموزش اسکریپت نویسی لینوکس (مدیریت داده ها)
مثال: می خواهیم پسورد دوّم را برای Userid ایجاد کنیم و اگر پسورد دوّم غلط بود یک ایمیل برای Admin و صاحب Userid برود.
برای اینکه بتوانیم این تمرین را حل کنیم باید بدانیم که موقعی که ما login می کنیم چه اتفاقی می افتد.
اگر ls -a را بزنید تمام فایل هایی را که وجود دارد، می بینید.
وقتی شما در لینوکس Userid می سازید فرد هر کاری که انجام دهد یک فایل نقطه دار برای آن ساخته می شود که خود فرد هم از آنها خبر ندارد.
برای اینکه history خود را ببینید این فرمان را بزنید:
less .bash-history
ما ۴ تا فایل داریم که با bash. شروع می شود.
فایل بعدی bash_profile. است که معادل autoexec.bat در ویندوز است که به محض اینکه login کنید این فایل اجرا می شود.
که می توانیم در این فایل تغییراتی هم ایجاد کنیم که مثلا بعد از اینکه Login کردیم یک پیغام مثلا salam بنویسیم.
“echo “salam
حالا تمرین را حل می کنیم:
حواسمان باشد در if اگر پسورد غلط بود قبل از else یک exit هم باید بگذاریم.
اولین مشکل این است که پسورد دیده شد باید کاری کنیم که دیده نشود، می آییم بنابراین آپشن s- را به read اضافه می کنیم.
مشکل دوّم این است که می خواهیم Enter زدیم Prompt نگیرد.
نکته:
فرمان su را که بزنیم به معنی switch user می باشد یعنی از یک Userid به Userid دیگر رفتن
و اگر – (dash) جلوی آن بگذاریم به معنی full می باشد و به root می رود.
علاوه بر if برای نوشتن اسکریپت در bash امکاناتی همچون while و for نیز وجود دارد.
مثلا فرمان زیر:
for a in {1..10}; do echo $a; done
اعداد یک تا 10 را چاپ خواهد کرد. البته همین کار را با دستور:
seq 10
نیز می توانید انجام دهید.
فایل های مهم bash
فایل های پیکربندی در زیر دایرکتوری etc/ هستند، این فایل ها در سطح کل سیستم هستند و بر کل سیستم اثر می گذارند.
برای bash چندین فایل مهم وجود دارد که در جدول زیر آمده است:
توجه داشته باشید که از یک دیدگاه دو نوع شل داریم.
مثلا وقتی شما در حالت عادی در سیستمی که بر روی آن محیط گرافیکی نصب است بالا می آیید و بعدا یک Terminal باز می کنید،
شلی که با آن روبرو هستید، یک شل non-login است.
ولی مثلا وقتی کلید ctrl+alt+f1 را فشار دهید، در این صورت با یک شل login روبرو خواهید شد.
تذکر: اگر Ctrl+Alt+F1 را فشار داده اید، برای برگشتن به محیط گرافیکی می توانید Ctrl+Alt+F7 را فشار دهید.
و مانند اسکریپت هایی که برای اجرا شدن در هنگام ورود در نظر گرفته شده است،
اسکریپت هایی نیز برای هنگام خروج وجود دارد که از آن جمله bash_logout./~ می باشد که مختص هر کاربر است.
در هنگام افزودن کاربر جدید، چه از طریق واسط گرافیکی و چه از طریق دستوراتی همچون useradd یا adduser، اطلاعاتی که در مسیر etc/skel/ قرار دارد به دایرکتوری home کاربر جدید کپی می شود.
بنابراین هرگاه بخواهید فایل های اولیه ای، مثلا فایل قوانین کاری در سیستم ها، برای کاربران جدیدی که ساخته شده است کپی شود،
یا مثلا لینک آن کپی شود که فضا هم نگیرد، می توانید آن را در مسیر etc/skel/ قرار دهید.
یکی از دستورات مهم که یک دستور built-in در bash است،
دستور alias می باشد که جهت تعریف کردن نام دیگر برای یک دستور و راحتی کار استفاده می شود.
مثلا فرض کنید که می خواهید دستور cp همواره به صورت Interactive اجرا شود و فایل ها را بدون پرسیدن سؤال از شما، روی هم ننویسد.
کافی است فرمان زیر را بزنید:
“alias cp=”cp -i
اگر می خواهید، دستور بالا برای همیشه در کل سیستم بماند، می توانید خط بالا را در فایل etc/bash.bashrc/ اضافه کنید.
خب در پایان یادآور می شوم که جهت یادگیری نحوه اسکریپت نویسی به مالتی مدیای مربوط به این دوره (دوره اسکریپت نویسی در لینوکس ) مراجعه نمایید.
جهت مشاهده دوره های آموزشی بر روی این لینک کلیک نمایید.
جدیدترین اخبار مجموعه فراز نتورک را در این صفحه اجتماعی دنبال کنید.
نویسنده: موسی رشوند
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.