کنکوریا

کنکور

کنکوری

سایت کنکور

جزوه
دانلود

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
فرق shell های مختلف در لینوکس و یونیکس
#1
سلام دوستان

این تاپیک رو باز کردم تا در مورد شل های مختلفی که وجود داره ( csh ksh sh bash ) یکم بحث کنیم تا در آخر به یک جمع بندی برسیم .

خب می دونیم که روی اکثر توزیع های لینوکسی شل پیشفرض bash هست ولی مثلا روی FreeBSD شل پیشفرض csh هست .

سوال اول اینه که فرق اینا دقیقا توی چیه ؟

مورد بعدی این که برای اجرای یک اسکریپت توی لینوکس ، پسوند فایل اسکریپت رو به sh. تغییر می دیم و بعد هم پرمیشن اجرا می دیم و اجراش می کنیم . سوالی که باقی می مونه اینه که چرا sh. ؟ آیا این sh. اشاره به اجرای این فایل توسط شل sh داره ؟ مثلا فایل txt که می گیم تو ویندوز با notepad باز میشه

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


دوستان لطفا توی بحث شرکت کنید . با تشکر  Heart
پاسخ
 سپاس شده توسط N3td3v!l
#2
سلام عرض میکنم
منم گفتم یه نظری بدم و سهمی در این بحث داشته باشم Smile
همونطور که میدونید برای دیدن شلی که روی سیستم به صورت پیشفرض در حال استفاده است باید از دستور زیر استفاده کنیم :
کد:
echo $0
خوب پیشنهاد میکنم دو تا ترمینال باز کنید یکی از bash استفاده کنید و روی دومی به عنوان مثال از zsh یا زی شل برای رفتن به محیط zsh هم خود zsh رو تایپ کنید و اینتر بزنید
خوب توی محیطی که bash هست دستور ls رو بزنید و بعد اول حرف یکی از فایل های موجود رو بزنید و کلید tab رو فشار بدین میبینیم که فایل هایی که با همون حرف شروع شدن رو لیست میکنه ، حالا همین کار رو توی زی شل انجام بدین یه تفاوت داره اونم اینه که شما بعد از زدن تب با کلید های کیبورد میتونین روی فایل ها برین و انتخاب کنید ، تو برنامه های کامند لاین kmplayer و اینا اگه کار کرده باشید 100% با این موضوع برخوردید ، پس این یه مورد که بسته به هدف برنامه ای که نوشته میشه میشه از شل به خصوص استفاده کرد .
برای خروج از زی شل ctrl+d رو فشار بدین .
خیلی فرق ها بین شل های مختلف هست مثلا توی bash ما متغیر HISTTIMEFORMAT داریم که توی sh موجود نیست ( پستشو توی پرتال گذاشتم )
بازم اگه چیزی یادم اومد تو اسکریپتینگ میام میگم Big Grin Wink
پیروز باشید
پاسخ
 سپاس شده توسط E2MA3N
#3
ممنون محمد بخاطر شرکت در این بحث .

موردی که اشاره کردی تفاوت در ظاهر بود تقریبا . موردی که شاید بشه اون رو مهم دونست اینه که آیا میشه اسکریپت های بش رو داخل شل های دیگه بدون مشکل اجرا کرد ؟ و یا همین طور برعکس

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

در مورد سوال اولی که خودم مطرح کردم . نظر خودم ( نمی دونم درسته یا نه ) اینه که :

طبق عادتی که همه دارن ، آخر فایل هاشون پسوند می زارن . مثلا برای فایل های متنی ، فایل های صوتی و یا اسکریپت ها . من فکر می کنم اضافه کردن sh. هم طبق همین عادت باشه . چرا که اجرای فایل های اسکریپت و یا حتی دیگر فایل ها ( مثل فایل متنی و صوتی و ... ) لزوما نیاز داشتن پسوند نیست .

حالا سوال پیش میاد که چرا sh. ? چرا bash. نزاریم ؟ به نظر من ، این هم نوعی عادت از زمانی است که از sh به صورت پیش فرض استفاده می شد .
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

تماس با ما | انجمن تخصصی او اس لرن | بازگشت به بالا | | حالت آرشیو | پیوند سایتی آراِس‌اِس