اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

تفاوت بین فایل های bashrc و bash_profile و profile چیست ؟

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    تفاوت بین فایل های bashrc و bash_profile و profile چیست ؟

    توی این آموزش قصد دارم تفاوت بین فایل های bashrc. و bash_profile. و profile را به شما آموزش دهم و اینکه کدام یک را باید استفاده کرد ؟
    عموما زمانی که به یک سیستم unix لاگین میکنید سیستم برای شما یک برنامه را استارت خواهد کرد که این برنامه در حقیقت یک شل است. برنامه ای که طراحی شده برای شروع کردن برنامه های دیگر و یک خط فرمان شل که شما از طریق آن برنامه ای دیگر را تنها با استفاده از نوشتن نام دستور اجرا میکنید. شل پیش فرض (shell bourne) دستورات را از فایل profile./~ میخواند زمانی که به عنوان shell لاگین یوزر مورد نظر در نظر گرفته شده باشد.

    bash شبیه bourne shell میباشد و دستورات را از فایل bash_profile./~ میخواند زمانی که به عنوان شل لاگین در نظر گرفته باشد و اگر این فایل موجود نباشد bash سعی میکند به جای آن فایل profile./~ را بخواند.

    شما میتوانید یک دایرکتوری shell را در هر زمانی که خواستید در نظر بگیرید. برای مثال launch یک ترمینال درون یک محیط گرافیکی، اگر که shell شما یک شل لاگین نباشد در واقع فایل profile./~ را نمیخواند. هنگامی که شما bash را به عنوان یک interactive shell (نه برای اجرای یک اسکریپت) استارت میکنید فایل bashrc./~ را میخواند. (به جز زمانی که به عنوان یک شل لاگین در نظر گرفته شده باشد که در این مواقع تنها فایل bash_profile./~ و profile./~ را میخواند.

    بنابراین، فایل profile./~ مکانیست برای قرار دادن مواردی که برای کل sesion شما apply میشود مانند برنامه های که شما میخواهید زمانی که لاگین میکنید استارت شود (اما نه برنامه های گرافیکی، آنها به فایل متفاوتی میروند) و تعریف های متغییر محیطی (environment variable)

    فایل bashrc./~ مکانیست برای قرار دادن مواردی که تنها و تنها برای bash اجرا میشود مانند تعریف alias و function، گزینه های شل و تنظیمات prompt (شما همچنین میتوانید key bindings را هم در این فایل قرار دهید اما در مورد bash باید گفت که این تعریف به صورت نرمال در فایل inputrc قرار میگیرد)
    فایل bash_profile./~ میتواند به جای profile./~ مورد استفاده قرار گیرد اما تنها توسط bash خوانده میشود و نه هیچ shell دیگری. این فایل یک مسیر منطقی است برای include کردن فایل bashrc./~ اگر شل interactive باشد. من پیشنهاد میکنم محتوای فایل زیر را در فایل bash_profile./~ داشته باشید:
    کد PHP:
    if [ -~/.profile ]; then . ~/.profilefi
    case "$-" in *i*) if [ -~/.bashrc ]; then . ~/.bashrcfi;; esac 

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

    فایل profile./~ شما ممکن است با توجه به موارد زیر خوانده شود یا خوانده نشود :
    - برنامه لاگین گرافیکی روی پنجره منیجر یا محیط دسکتاپ که شما اجرا کردید.
    - و با توجه به اینکه توزیع لینوکس شما چگونه این برنامه ها را configure میکند.

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


    همچنین توصیه میشود مطالعه کنید :

    آموزش نحوه تعریف متغیر محیطی $path به صورت دائمی در لینوکس


    بعضی افراد به شما توصیه میکنند که متغییر محیطی خود را در فایل bashrc./~ تعریف کنید و یا اینکه همیشه شل های لاگین را در ترمینال ها لانچ کنید که هر 2 ایده های بدی هستند. رایج ترین مشکل در هر 2 ایده ها اینست که متغییرهای محیطی شما تنها در برنامه های لانچ شده از طریق ترمینال تعریف خواهند شد و نه در برنامه های که مستقیما با یک آیکون یا منو یا shortcut کیبرد استارت میشوند.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-05-2021, 11:47 PM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X