بخش های سایت
انتخاب سردبیر:
- شماره شناسی شماره تلفن، اعداد خوش شانس و رمزگشایی معانی آنها
- مدیریت نوع گزارش در SKD 1S SKD نمایش جدول با طرح
- استفاده از تابع isnull()
- موارد در مورد موقعیت های آموزشی
- نگهبان پراچت (ترجمه S. Zhuzhunava، ویرایش A. Zhikarentsev) دانلود fb2. نقل قول از کتاب «نگهبانان! نگهبانان! تری پرچت
- حرفه: متخصص امنیت اطلاعات
- نامگذاری در حسابداری 1s 8
- اطلاعات حسابداری شرکت 1s 8
- نحوه در نظر گرفتن برنامه های کامپیوتری، آنتی ویروس ها و سیستم های کمکی سفارش نرم افزار در یک سازمان
- اصول، شرایط و اهداف پردازش داده های شخصی اهداف پردازش داده های شخصی در شرکت
تبلیغات
لینوکس تمام متغیرهای محیطی یک فرآیند در حال اجرا. M. Garrels |
اصل: Linux Fundamentals فصل 12. متغیرهای پوستهدر این فصل، نحوه کار با متغیرهای محیطی را با استفاده از پوسته فرمان یاد خواهیم گرفت. این متغیرها معمولاً برای اجرای برنامه ها مورد نیاز هستند. نماد دلار ($)نماد مهم دیگری که توسط پوسته تفسیر می شود، نماد دلار است. پوسته فرمان به دنبال یک متغیر محیطی با نام مربوط به خط بعد از علامت دلار میگردد و آن نماد و نام متغیر را با مقدار آن متغیر جایگزین میکند (یا اگر متغیر وجود نداشته باشد با هیچ چیز). در زیر چند نمونه از استفاده از متغیرهای $HOSTNAME، $USER، $UID، $SHELL و $HOME آورده شده است. $ echo این پوسته است $SHELL این پوسته /bin/bash است $ echo این پوسته $SHELL است که در رایانه استفاده می شود $HOSTNAME این پوسته /bin/bash است که در رایانه استفاده می شود RHELv4u3.localdomain $ echo شناسه کاربر $USER برابر با $UID است شناسه کاربر paul برابر با 500 دلار است. حساسیت به حروف کوچکاین مثال نشان می دهد که نام متغیرهای پوسته به حروف کوچک و بزرگ حساس هستند! $ echo سلام $USER سلام paul $ echo سلام $user سلام ایجاد متغیرهااین مثال متغیر $MyVar را ایجاد می کند و سپس مقدار آن را تعیین می کند. سپس مثال از دستور echo برای بررسی مقدار متغیر ایجاد شده استفاده می کند. $ MyVar=555 $ echo $MyVar 555 $ نقل قول هاتوجه داشته باشید که دو گیومه همچنین امکان بسط متغیرها را در خط فرمان فراهم می کند، در حالی که نقل قول های تکی از چنین بسطی جلوگیری می کنند. $ MyVar=555 $ echo $MyVar 555 $ echo "$MyVar" 555 $ echo "$MyVar" $MyVar پوسته bash متغیرها را با مقادیر آنها در خطوط دو نقل قول جایگزین می کند، اما این کار را در خطوط تک نقل قول انجام نمی دهد. paul@laika:~$ city=Burtonville paul@laika:~$ echo "ما اکنون در $city هستیم." اکنون در شهر برتون ویل هستیم. paul@laika:~$ echo "ما اکنون در $city هستیم." ما اکنون در شهر $ هستیم. دستور تنظیم کنیدمی توانید از دستور set برای فهرست کردن متغیرهای محیط استفاده کنید. که در سیستم های اوبونتوو دستور set Debian نیز توابع پوسته را بعد از لیست متغیرهای پوسته فهرست می کند. بنابراین برای آشنایی با تمامی عناصر لیست متغیرهای محیطی در هنگام کار با این سیستم ها پیشنهاد می شود از مجموعه | بیشتر. دستور unsetشما باید از دستور unset برای حذف یک متغیر از محیط پوسته خود استفاده کنید. $ MyVar=8472 $ echo $MyVar 8472 $ تنظیم نشده MyVar $ echo $MyVar $ متغیر محیطی $PS1متغیر محیطی $PS1 قالب تبریک را برای پوسته شما تنظیم می کند. هنگام وارد کردن یک رشته فرمت، می توانید از یک اسلش برای فرار از کاراکترهای خاص مانند \u برای نام کاربری یا \w برای فهرست کاری استفاده کنید. صفحه مرد پوسته bash فراهم می کند لیست کاملشخصیت های خاص در مثال زیر، مقدار متغیر محیطی $PS1 را چندین بار تغییر می دهیم. paul@deb503:~$ PS1=دعوت دعوت نامه :\W$" paul@deb503:~$ برای جلوگیری از خطاهای مهلک، می توانید از رنگ سبز برای پیام های پوسته نمایش داده شده استفاده کنید کاربران عادیو قرمز برای درخواست های پوسته که به کاربر اصلی نمایش داده می شود. خطوط زیر را به فایل .bashrc خود اضافه کنید تا از رنگ سبز در فرمان های نمایش داده شده به کاربران عادی استفاده کنید. # درخواست پوسته رنگی ایجاد شده توسط paul RED="\[\033" WHITE="\[\033" GREEN="\[\033" BLUE="\[\033" export PS1="$(debian_chroot:+( $ debian_chroot))$GREEN\u$WHITE@$BLUE\h$WHITE\w\$ " متغیر محیطی $PATHمتغیر محیطی $PATH دایرکتوری ها را تنظیم می کند سیستم فایل، که در آن پوسته فایلهای باینری مورد نیاز برای اجرای دستورات را جستجو میکند (مگر اینکه دستور داخلی باشد یا با نام مستعار فرمان نمایش داده شود). این متغیر حاوی لیستی از مسیرهای دایرکتوری است که با کاراکترهای کولون از هم جدا شده اند. [$ echo $PATH /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin: پوسته فرمان دایرکتوری فعلی را برای باینری های اجرایی جستجو نمی کند. (عملکرد جستجو برای فایل های اجرایی در فهرست فعلی ساده ترین مکانیسم برای دسترسی غیرمجاز به داده های ذخیره شده در رایانه های دارای PC-DOS بود). اگر میخواهید پوسته فایلهای اجرایی را در فهرست فعلی جستجو کند، باید نماد را اضافه کنید. تا انتهای خط که مقدار متغیر $PATH پوسته شما است. $PATH=$PATH:. $ echo $PATH /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:. $ اگر از دستور su به جای دستور su - استفاده کنید، مقدار متغیر $PATH پوسته شما ممکن است متفاوت باشد، زیرا دستور دوم اجازه استفاده اضافی از مقادیر متغیر محیطی کاربر هدف را می دهد. به عنوان مثال، فهرست دایرکتوری ها برای کاربر ریشه که با مقدار متغیر $PATH نشان داده می شود، معمولاً شامل دایرکتوری های /sbin است. $ su رمز عبور: # echo $PATH /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin # exit $ su - رمز عبور: # echo $PATH /usr/local/sbin:/usr/ local/bin:/sbin:/bin:/usr/sbin:/usr/bin: # دستور envدستور env، هنگامی که بدون پارامتر استفاده می شود، لیستی از متغیرهای محیطی صادر شده را نمایش می دهد. تفاوت این دستور با دستور set با پارامترها در این است که دستور set همه متغیرهای محیطی را فهرست می کند، از جمله آن دسته از متغیرهایی که به پوسته های فرزند صادر نمی شوند. علاوه بر این، دستور env میتواند برای راهاندازی یک پوسته خالص (یک پوسته بدون ارث بردن هیچ محیطی) استفاده شود. دستور env -i به شما امکان می دهد محیط را از پوسته کودک پاک کنید. با بازنگری این مثالتوجه داشته باشید که پوسته bash متغیر محیطی $SHELL را هنگام راه اندازی تنظیم می کند. $ bash -c "echo $SHELL $HOME $USER" /bin/bash /home/paul paul $ env -i bash -c "echo $SHELL $HOME $USER" /bin/bash $ می توانید از دستور env برای تنظیم مقدار متغیر $LANG یا هر متغیر محیطی دیگری از یک نمونه پوسته bash در یک دستور استفاده کنید. در مثال زیر این فرصتبرای نشان دادن تأثیر مقدار متغیر $LANG بر عملکرد مکانیسم جستجوی الگوی فایل (برای به دست آوردن اطلاعات اضافی O این مکانیسمباید به فصل جستجوی فایل ها با استفاده از الگوها مراجعه کنید). $ env LANG=C bash -c "ls File" Filea Filea $ env LANG=en_US.UTF-8 bash -c "ls File" Filea FileA File FileB $ فرمان صادراتبا استفاده از دستور export می توانید متغیرهای پوسته را به پوسته های دیگر صادر کنید. در مثال زیر، این دستور یک متغیر محیطی را به shell های فرزند صادر می کند. $ var3=سه $ var4=چهار $ صادرات var4 $ echo $var3 $var4 سه چهار $ bash $ echo $var3 $var4 چهار با این حال، با استفاده از این دستور، متغیر به پوسته فرمان والد صادر نمی شود (مثال قبلی در ادامه آمده است). $ export var5=پنج $ echo $var3 $var4 $var5 چهار پنج $ خروج $ echo $var3 $var4 $var5 سه چهار $ تحدید حدود متغیرتا به حال، دیدهایم که پوسته bash متغیری را که با علامت دلار شروع میشود تفسیر میکند و تا زمانی که اولین کاراکتر غیرالفبایی که زیرخط نیست، ادامه مییابد. در برخی شرایط این رفتار می تواند مشکل ساز باشد. برای حل این مشکل می توان از بریس های فرفری به روشی که در مثال زیر نشان داده شده است استفاده کرد. $ prefix=Super $ echo Hello $prefixman and $prefixgirl Hello and $ echo Hello $(prefix)man and $(prefix)girl سلام سوپرمن و سوپرگرل $ متغیرهای نامحدودمثال زیر سعی میکند مقدار متغیر $MyVar را نمایش دهد، اما به دلیل عدم وجود متغیر، ناموفق است. به طور پیش فرض، پوسته چیزی را چاپ نمی کند اگر متغیر محدود نباشد (وجود ندارد). $ echo $MyVar$ با این حال، یک گزینه پوسته nounset وجود دارد که اگر متغیری که استفاده می کنید وجود نداشته باشد، می توانید از آن برای ایجاد خطا استفاده کنید. paul@laika:~$ set -u paul@laika:~$ echo $Myvar bash: Myvar: متغیر unbound paul@laika:~$ set +u paul@laika:~$ echo $Myvar paul@laika:~$ در پوسته bash، دستور set -u با دستور set -o یکسان است و به طور مشابه، دستور set +u با دستور set +o یکسان است. تمرین: متغیرهای پوسته2. یک پاسخ متغیر ایجاد کنید که مقدار آن 42 باشد. 3. مقدار متغیر $LANG را به مقدار متغیر $MyLANG کپی کنید. 4. متغیرهای پوسته ای که در حال حاضر استفاده می شوند را فهرست کنید. 5. تمام متغیرهای پوسته صادراتی را فهرست کنید. 6. آیا اطلاعات مربوط به متغیر شما در خروجی دستورات env و set وجود دارد؟ 7. متغیر پاسخ خود را از بین ببرید. 8. دو متغیر ایجاد کنید و یکی از آنها را صادر کنید. 9. مقدار متغیر صادراتی را در پوسته فرمان تعاملی فرزند چاپ کنید. 10. یک متغیر ایجاد کنید و مقدار "Dumb" را به آن اختصاص دهید، سپس یک متغیر دیگر با مقدار "do" به همین ترتیب ایجاد کنید. از دستور echo و دو متغیر ایجاد شده برای چاپ کلمه "دامبلدور" استفاده کنید. 11. لیستی از کاراکترهای کنترلی با اسلش برگشتی را در صفحه مرد پوسته bash پیدا کنید. یک کاراکتر کنترلی به متغیر PS1 اضافه کنید تا زمان در پیام تبریک پوسته نمایش داده شود. روش صحیح برای تمرین: متغیرهای پوسته1. از دستور echo برای چاپ رشته "Hello" و سپس نام خود استفاده کنید. (از متغیر bash shell استفاده کنید!) متغیرهای محیطی در لینوکس متغیرهای خاصی هستند که توسط پوسته تعریف شده و توسط برنامه ها در زمان اجرا مورد استفاده قرار می گیرند. آنها می توانند توسط سیستم و کاربر تعریف شوند. سیستم متغیرهای محیطیسیستم های لینوکس توسط سیستم تعریف شده و توسط برنامه های سطح سیستم استفاده می شود. به عنوان مثال، دستور PWD از یک متغیر سیستم برای حفظ دایرکتوری کاری قبلی استفاده می کند. متغیرهای محیط کاربر توسط کاربر، برای پوسته فعلی، به طور موقت یا دائم تنظیم می شوند. کل مفهوم افزودن و حذف متغیرهای پوسته حول چندین فایل، دستورات و پوسته های مختلف می چرخد. به طور کلی، یک متغیر محیطی می تواند سه نوع باشد: 1. متغیرهای محیطی محلیاین متغیرها فقط برای جلسه جاری تعریف شده اند. آنها پس از پایان جلسه برای همیشه پاک می شوند دسترسی از راه دوریا شبیه ساز ترمینال آنها در هیچ فایلی ذخیره نمی شوند، اما با استفاده از دستورات خاص ایجاد و حذف می شوند. 2. متغیرهای پوسته سفارشیاین متغیرهای پوسته در لینوکس برای یک کاربر خاص تعریف شده اند و هر بار که کاربر با استفاده از ترمینال محلی وارد می شود یا از راه دور متصل می شود، بارگذاری می شوند. چنین متغیرهایی معمولاً در فایلهای پیکربندی ذخیره میشوند: bashrc.، .bash_profile، .bash_login، .profile یا فایلهای دیگری که در فهرست کاربر قرار دارند. 3. متغیرهای محیطی سیستماین متغیرها در سراسر سیستم برای همه کاربران در دسترس هستند. آنها در راه اندازی سیستم از بارگیری می شوند فایل های سیستمیتنظیمات: /etc/environment، /etc/profile، /etc/profile.d/ /etc/bash.bashrc. فایل های پیکربندی متغیر محیط لینوکسدر اینجا ما نگاهی گذرا به فایلهای پیکربندی مختلف فهرستشده در بالا که برای پیکربندی متغیرهای محیطی برای کل سیستم یا یک کاربر خاص استفاده میشوند، خواهیم انداخت. .bashrcاین یک فایل متغیر مخصوص کاربر است. هر بار که کاربر یک جلسه ترمینال ایجاد می کند، بارگذاری می شود، به عبارت دیگر، یک ترمینال جدید باز می شود. همه متغیرهای محیطی ایجاد شده در این فایل هر بار که یک جلسه ترمینال جدید شروع می شود، اعمال می شوند. .bash_profileاین متغیرها هر بار که کاربر از راه دور از طریق SSH متصل می شود، تأثیر می گذارد. اگر این فایل وجود نداشته باشد، سیستم به دنبال .bash_login یا .profile خواهد بود. /etc/محیطاین فایل برای ایجاد، ویرایش و حذف هر گونه متغیر محیطی در سطح سیستم می باشد. متغیرهای محیطی ایجاد شده در این فایل برای کل سیستم، برای هر کاربر و حتی هنگام اتصال از راه دور در دسترس هستند. /etc/bash.bashrcسیستم بشرک. این فایل برای هر کاربر، هر بار که یک جلسه ترمینال جدید ایجاد می کند، اجرا می شود. این فقط برای کاربران محلی کار می کند؛ هنگامی که از طریق اینترنت متصل می شوند، چنین متغیرهایی قابل مشاهده نخواهند بود. /etc/profileمشخصات فایل سیستم تمام متغیرهای این فایل تنها در صورتی در دسترس هر کاربر در سیستم است که از راه دور وارد سیستم شده باشد. اما هنگام ایجاد یک جلسه ترمینال محلی در دسترس نخواهند بود، یعنی اگر به سادگی ترمینال را باز کنید. تمام متغیرهای محیط لینوکس ایجاد شده با استفاده از این فایل ها را می توان به سادگی با حذف آنها از آنجا حذف کرد. فقط پس از هر تغییر، باید یا از سیستم خارج شوید و دوباره وارد شوید یا این دستور را اجرا کنید: نام فایل منبع اضافه کردن متغیرهای محیط کاربر و سیستم در لینوکسحالا که کمی تئوری می دانید، بیایید به سراغ عمل برویم. متغیرهای محیطی محلی در لینوکس را می توان با دستورات زیر ایجاد کرد: var = ارزش این متغیرها فقط برای جلسه ترمینال فعلی در دسترس خواهند بود. چندین دستور وجود دارد که می توانید برای حذف متغیرهای محیطی استفاده کنید: 1. استفاده از envبه طور پیش فرض، می توانید از env برای مشاهده تمام متغیرهای محیطی استفاده کنید. اما با گزینه -i به شما این امکان را می دهد که به طور موقت همه متغیرهای پوسته را حذف کنید و دستور را بدون متغیر اجرا کنید. دستور env –i Var هر متغیری است که می خواهید به این دستور منتقل کنید. این دستور پوسته را بدون هیچ گونه متغیر محیطی شروع می کند: پس از راه اندازی چنین محیطی، هیچ متغیری در دسترس نخواهد بود، اما پس از خروج همه چیز به جای خود باز می گردد. 2. استفاده از unsetاین روش دیگری برای حذف متغیرهای محیط لینوکس است. Unset یک متغیر را با نام تا پایان جلسه جاری حذف می کند: متغیر_نام تنظیم نشده است 3. مقدار متغیر را روی "" تنظیم کنیداین ساده ترین راه برای حذف متغیرهای محیطی در لینوکس است؛ با قرار دادن یک متغیر برای خالی کردن، آن را برای بقیه جلسه فعلی حذف می کنید. توجه: با استفاده از این روش ها می توانید مقادیر متغیرهای سیستم یا کاربر را تغییر دهید، اما آنها فقط مربوط به جلسه فعلی خواهند بود. ایجاد متغیرهای محیط کاربر و سیستمدر این بخش، نحوه تنظیم و حذف متغیرهای سیستم و کاربر را نه تنها برای جلسه فعلی، بلکه به گونهای که پس از راهاندازی مجدد اثر باقی بماند، بررسی خواهیم کرد. 1. متغیرهای محلی را در لینوکس تنظیم و حذف کنیدبیایید یک متغیر محلی VAR ایجاد کنیم و آن را روی هر مقداری تنظیم کنیم، سپس آن را تنظیم کنیم و مطمئن شویم که حذف شده است: VAR1 = گمشده راه دیگر برای ایجاد یک متغیر، دستور صادرات است. بیایید با اختصاص یک مقدار خالی آن را حذف کنیم: صادرات VAR = "از دست رفته" حالا بیایید یک متغیر VAR2 ایجاد کنیم و به آن مقدار بدهیم. و سپس با اجرای env -i به طور موقت همه متغیرهای محلی را حذف کنید. یک پوسته بدون هیچ متغیری شروع می شود. پس از ورود به خروج، همه متغیرها بازیابی خواهند شد. VAR2 = گمشده تنظیم و حذف متغیرهای کاربرفایل .bashrc را در فهرست اصلی خود با افزودن یک دستور صادرات برای صادرات متغیر مورد نظر ویرایش کنید. سپس دستور source را اجرا کنید تا تغییرات اعمال شود. بیایید، برای مثال، متغیر CD را ایجاد کنیم: این خط را اضافه کنید (o، سپس paste، سپس Esc و :wq): صادرات CD = "این خانه گم شده است" اکنون باقی مانده است که پیکربندی را به روز کنیم: منبع.bashrc برای حذف این متغیر، به سادگی آن را از .bashrc حذف کنید. حالا بیایید با استفاده از .bash_profile یک متغیر محیطی اضافه کنیم. همانطور که می دانید این متغیر فقط در هنگام ورود از راه دور در دسترس خواهد بود: vi .bash_profile خط را اضافه کنید: export VAR2="این خانه گم شده است" و این دستورات را اجرا کنید تا تغییرات اعمال شود و بررسی کنید که متغیر اضافه شده است: source.bash_profile متغیر در دسترس نیست زیرا شما یک جلسه ترمینال محلی ایجاد کرده اید، اکنون از طریق ssh متصل شوید: ssh user@localhost شما می توانید این متغیر محیطی را مانند حالت قبلی با حذف آن از فایل حذف کنید. اظهار نظر: این متغیرها همیشه در دسترس هستند، اما نه برای همه کاربران. تنظیم و حذف متغیرهای محیطی سیستمبیایید یک متغیر در دسترس همه کاربران ایجاد کنیم جلسات ترمینال، به جز موارد حذف شده، با افزودن آن به /etc/bash.profile: vi /etc/bash.profile export VAR="این متغیر در سراسر سیستم است" سپس به روز می کنیم: منبع /etc/bash.bashrc اکنون این متغیر در تمام پایانه ها برای همه کاربران در دسترس است: پژواک $VAR اگر می خواهید یک متغیر محیطی را برای همه کاربرانی که از راه دور به این دستگاه متصل می شوند در دسترس قرار دهید، فایل /etc/profile را ویرایش کنید: export VAR1="این متغیر در سراسر سیستم فقط برای جلسات راه دور است" پیکربندی را به روز کنید و در دسترس بودن متغیر را بررسی کنید، فقط از راه دور در دسترس خواهد بود: منبع /etc/profile اگر میخواهید یک متغیر محیطی در لینوکس اضافه کنید تا هم از راه دور و هم برای جلسات محلی قابل دسترسی باشد، آن را به /etc/environment صادر کنید: vi /etc/environment export VAR12="من همه جا در دسترس هستم" بررسی می کنیم: منبع /etc/environment مفهوم پارامتر در پوسته ضربه شدیدمشابه مفهوم متغیر در زبان های برنامه نویسی معمولی است. نام پارامتر (یا شناسه) می تواند کلمه ای متشکل از کاراکترهای الفبایی، اعداد و زیرخط (فقط اولین کاراکتر کلمه نمی تواند عدد باشد)، یک عدد یا یکی از کاراکترهای ویژه زیر باشد: * , @ , # , ? , - (خط ربط)، $ , ! , 0 , _ (زیر خط کشیدن). اگر مقداری به آن نسبت داده شود، گفته می شود که یک پارامتر تنظیم یا تنظیم می شود. مقدار نیز می تواند یک رشته خالی باشد. برای نمایش مقدار یک پارامتر، از نماد استفاده کنید $ قبل از نام او بله تیم نام اکو $ کلمه را روی صفحه نمایش می دهد نام، و تیم $echo $name مقدار متغیر نام را برمی گرداند (البته اگر یکی تنظیم شده باشد). 5.6.1 انواع پارامترهاپارامترها به سه دسته تقسیم می شوند: پارامترهای موقعیتی، پارامترهای خاص(که نام آنها کاراکترهای ویژه ای است که به تازگی ذکر شده است) و متغیرهای پوسته. نام ها (شناسه ها) پارامترهای موقعیتیاز یک یا چند رقم (نه یک صفر) تشکیل شده است. مقادیر پارامتر موقعیتی آرگومان هایی هستند که هنگام شروع پوسته داده شده اند (آگومان اول مقدار پارامتر موقعیتی 1 و غیره است). می توانید مقدار یک پارامتر موقعیتی را با استفاده از دستور داخلی تغییر دهید تنظیم. مقادیر این پارامترها نیز در حالی که پوسته یکی از توابع را اجرا می کند تغییر می کند (این مورد در زیر مورد بحث قرار خواهد گرفت. بخش 5.8). پارامترهای خاصالگوهایی هستند که جایگزینی (جایگزینی) آنها به شرح زیر انجام می شود. جدول 5.2.پارامترهای خاص
پارامترهای ویژه فهرست شده در جدول بالا از این جهت متفاوت هستند که فقط می توان به آنها ارجاع داد. شما نمی توانید مقادیری را به آنها اختصاص دهید. متغیراز دیدگاه پوسته، پارامتری است که با یک نام مشخص می شود. مقادیر با استفاده از عملگر زیر به متغیرها اختصاص داده می شود: $name=value جایی که نامنام متغیر و ارزش- مقدار اختصاص داده شده به آن (می تواند یک رشته خالی باشد). نام متغیر فقط می تواند از اعداد و حروف تشکیل شده باشد و نمی تواند با یک عدد شروع شود. مقدار می تواند هر متنی باشد. اگر مقداری حاوی کاراکترهای خاص باشد، باید در گیومه قرار گیرد. البته مقدار اختصاص داده شده حاوی این نقل قول ها نیست. اگر متغیر تنظیم شده باشد، می توان آن را با استفاده از دستور shellbuildin حذف کرد تنظیم نشده. مجموعه تمام متغیرهای پوسته مجموعه با مقادیر اختصاص داده شده به آنها محیط یا محیط پوسته نامیده می شود. با استفاده از دستور می توانید آن را مشاهده کنید تنظیمبدون پارامتر (فقط شاید شما باید یک خط لوله را سازماندهی کنید "تنظیم | کمتر"). خروجی این دستور همه متغیرهای محیط را به ترتیب حروف الفبا فهرست می کند.برای مشاهده مقدار یک متغیر خاص می توانید به جای دستور تنظیم(در خروجی آن همچنان می توانید متغیر مورد نظر را جستجو و جستجو کنید) می توانید از دستور استفاده کنید $echo $name (البته در این حالت باید نام متغیر مورد نظر خود را بدانید). از جمله متغیرهایی که در خروجی فرمان خواهید دید عبارتند از تنظیم، متغیرهای بسیار جالبی وجود دارد. به عنوان مثال به متغیر RANDOM توجه کنید. اگر دستور را چندین بار پشت سر هم اجرا کنید $ اکو $RANDOM هر بار یک مقدار جدید دریافت خواهید کرد. واقعیت این است که این متغیر یک عدد صحیح تصادفی را از بازه 0 - 32768 برمی گرداند. 5.6.2 درخواست های شلیکی از متغیرهای بسیار مهم نام دارد PS1. این متغیر نوع دعوتی را مشخص می کند که ضربه شدیدزمانی که منتظر است دستور بعدی توسط کاربر وارد شود خروجی می گیرد. به طور پیش فرض، این متغیر روی "\s-\v\$" تنظیم شده است. در واقع در ضربه شدیدچهار دعوت وجود دارد که در موقعیت های مختلف استفاده می شود. متغیر PS1نوع اعلانی را مشخص می کند که زمانی که پوسته منتظر وارد شدن فرمان است، صادر می شود. اعلان ثانویه که توسط متغیر مشخص شده است PS2، زمانی ظاهر می شود که پوسته منتظر است تا کاربر اطلاعات بیشتری را که برای ادامه دستور یا برنامه در حال اجرا لازم است وارد کند. متغیر پیش فرض PS2معنی دارد " >" . ممکن است قبلاً این فرمان را هنگام اجرای دستور مشاهده کرده باشید گربهبرای وارد کردن داده ها از صفحه کلید به یک فایل. مثال دیگر دستور است ftp، پس از راه اندازی که دعوتنامه نیز به این شکل در می آید. اعلان متغیر PS3، در دستور استفاده می شود انتخاب کنید. اعلان متغیر PS4، قبل از هر دستور در آن زمان چاپ می شود ضربه شدیدبر پیشرفت اجرا نظارت می کند. مقدار پیش فرض " + ". در صورت تمایل می توانید نوع متغیرها را تغییر دهید PS1و PS2. در این مورد، می توانید از هر علامت وارد شده از صفحه کلید و همچنین تعداد معینی از کاراکترهای خاص استفاده کنید که هنگام ایجاد رشته درخواست، مطابق با جدول رمزگشایی می شوند. 5.3 (مثلاً فقط برخی از آنها را فهرست می کنیم؛ برای یک لیست کامل، صفحه مرد ابزار را ببینید ضربه شدید) . جدول 5.3. نمادهای خاصبرای ایجاد دعوت نامه
شماره دستور فعلی (شماره سریال دستوری که در جلسه جاری اجرا می شود) ممکن است با شماره این دستور در لیست تاریخچه فرمان متفاوت باشد، زیرا دومی شامل دستوراتی است که در فایل تاریخچه فرمان ذخیره شده اند. هنگامی که مقدار متغیری که یک اشاره را تعریف می کند توسط پوسته خوانده شد، می توان با توجه به قوانین بسط پارامتر، جایگزینی در نام دستورات و عبارات حسابی و تقسیم کلمات، آن را جایگزین کرد. این قوانین در زیر، در بخش مورد بحث قرار خواهند گرفت. 5.7. مثلا بعد از اجرای دستور (از آنجایی که در رشته فاصله وجود دارد، نقل قول لازم است) # PS1="[\u@\h \W]\$" اعلان استاندارد یک براکت مربع، نام کاربری، نماد را نمایش می دهد @ ، نام کامپیوتر، فاصله، نام دایرکتوری فعلی (بدون مسیر)، بسته شدن براکت و نماد $ (اگر یک کاربر ساده در پوسته در حال اجرا باشد) یا # (اگر پوسته به صورت روت در حال اجرا باشد). 5.6.3 متغیر مسیرمتغیر بسیار مهم دیگری نام دارد مسیر. لیستی از مسیرهای دایرکتوری هایی را که در آن ها قرار دارند مشخص می کند ضربه شدیددر مواردی که مسیر کامل فایل در خط فرمان مشخص نشده باشد، فایل ها (به ویژه فایل های دارای دستورات) را جستجو می کند. دایرکتوری های فردی در این لیست با دو نقطه از هم جدا شده اند. متغیر پیش فرض مسیرشامل دایرکتوری ها /usr/local/bin، /bin، /usr/bin، /usr/X11R6/bin،یعنی به نظر می رسد: /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin: برای اضافه کردن دایرکتوری به این لیست، باید دستور زیر را اجرا کنید: # PATH=$PATH:new_path. هنگام انجام جستجو، پوسته دایرکتوری ها را به ترتیب فهرست شده در متغیر PATH جستجو می کند. توجه داشته باشید که با افزودن نقطه به متغیر PATH می توانید دایرکتوری فعلی را در این لیست قرار دهید. با این حال، این کار به دلایل امنیتی توصیه نمی شود: یک مهاجم می تواند دستوری را در یک فهرست عمومی قرار دهد که نام آن با یکی از دستوراتی که اغلب توسط ابرکاربر اجرا می شود مطابقت دارد، اما اقدامات کاملاً متفاوتی را انجام می دهد (مخصوصاً اگر فهرست فعلی در ابتدای فهرست باشد. لیست مسیرهای جستجو). 5.6.4 متغیر IFSاین متغیر جداکننده فیلد داخلی را مشخص می کند که در عملیات تقسیم کلمه در هنگام تبدیل استفاده می شود. خط فرمان، قبل از اجرای خط فرمان برای اجرا توسط پوسته اجرا می شود. مقدار پیش فرض این متغیر "<Пробел> 5.6.5 دایرکتوری های فعلی و خانگینام دایرکتوری فعلی در یک متغیر محیطی (به نام PWD) ذخیره می شود و هر بار که برنامه شروع می شود مقدار این متغیر تغییر می کند. سی دی(و همچنین هنگام تغییر دایرکتوری فعلی به روش دیگری، به عنوان مثال، از طریق Midnight Commander). به همان شیوه نام و نام خانوادگی(نشان دهنده مسیر) دایرکتوری خانگی کاربری که این فرآیند را راه اندازی کرده است در متغیر HOME ذخیره می شود. 5.6.6 تیم صادراتهنگامی که پوسته یک برنامه یا دستور را اجرا می کند، برخی از متغیرهای محیطی را به آنها ارسال می کند. برای اینکه یک متغیر محیطی به یک فرآیند راه اندازی شده از پوسته منتقل شود، باید با استفاده از یک دستور خاص تنظیم شود. صادرات، یعنی در عوض $name=value باید آن را بنویسید $export name=value در این حالت، تمام برنامههای راهاندازی شده از پوسته (از جمله نمونههای ثانویه خود پوسته) به متغیرهای تعریفشده به این صورت دسترسی خواهند داشت، یعنی میتوانند مقادیر خود را با نام فراخوانی کنند. V. Kostromin (kos در rus-linux dot net) - 5.6. پارامترها و متغیرها محیط پوستهاشیایی که نامگذاری می شوند و حاوی داده هایی هستند که توسط حداقل یک، معمولاً چندین برنامه استفاده می شود، متغیرهای محیطی نامیده می شوند. به زبان ساده، یک متغیر محیطی چیزی نیست جز یک متغیر که دارای یک نام و یک مقدار است. مقادیر متغیر محیطی میتوانند ویرایشگر پیشفرض مورد استفاده باشند، مانند مکان همه فایلهایی که میتوانند در سیستم اجرا شوند یا تنظیمات محلی برای سیستم. برای مبتدیان کمی مشکل است، اما متغیر محیطی یک راه عالی است اشتراک گذاریتنظیمات پیکربندی بین چندین برنامه و فرآیند. بسته Coreutils شامل برنامههای env و printenv است. برای فهرست کردن همه متغیرهای محیطی که در حال حاضر دارای یک مقدار هستند، به سادگی تایپ کنید: $printenv دو نوع متغیر محیطی در پوسته bash وجود دارد:
متغیرهای محیطی جهانیاز جلسه پوسته، متغیرهای محیط جهانی و هر فرآیند فرزندی که پوسته ایجاد می کند نمایش داده می شود. از سوی دیگر، متغیرهای محلی تنها زمانی که ایجاد می شوند توسط پوسته قابل دسترسی هستند. این باعث می شود که متغیرهای محیط جهانی در برنامه هایی مفید باشند که به اطلاعاتی از یک فرآیند والد نیاز دارند و فرآیندهای فرزند را ایجاد می کنند. بهطور پیشفرض، سیستم لینوکس متغیرهای محیطی جهانی خاصی را هنگام شروع یک جلسه bash تنظیم میکند. متغیرهای محیط سیستم هر بار از تمام حروف بزرگ استفاده می کنند تا آنها را از متغیرهای محیط کاربر عادی متمایز کنند. متغیرهای محیطی محلیزیرا نام آنها نشان می دهد که متغیرهای محیط محلی فقط در فرآیند محلی که در آن تعریف شده اند قابل مشاهده هستند. در مورد متغیرهای محیطی محلی گیج نشوید، آنها به اندازه متغیرهای محیطی جهانی اهمیت دارند. در واقع سیستم لینوکس نیز به صورت پیش فرض متغیرهای محیطی استاندارد محلی را برای شما تعریف می کند. هنگامی که سعی می کنید لیستی از متغیرهای محیط محلی را ببینید، این کار مشکل می شود. متأسفانه هیچ دستوری برای ما وجود ندارد که فقط متغیرهای محیط محلی را نمایش دهد. دستوری وجود دارد که تمام متغیرهای محیطی تنظیم شده برای یک فرآیند خاص را نمایش می دهد. توجه داشته باشید که این شامل متغیرهای محیط جهانی نیز می شود. تنظیم متغیرهای محیطیشما می توانید متغیرهای محیطی خود را مستقیماً از پوسته bash ایجاد کنید. در بخش بعدی، ما به شما نشان خواهیم داد که چگونه متغیرهای محیطی خود را ایجاد کنید و آنها را از پوسته یا برنامه پوسته تعاملی خود ارجاع دهید. تنظیم متغیرهای محیطی محلیهنگامی که یک پوسته bash شروع به کار کرد (یا یک اسکریپت پوسته ظاهر شد)، شما مجاز به ایجاد متغیرهای محلی هستید که در فرآیند پوسته شما قابل مشاهده است. شما می توانید یک متغیر محیطی را با استفاده از علامت تساوی به یک رشته یا متغیر عددی اختصاص دهید که مقدار متغیر را به آن اختصاص می دهد: $ andreyex_test=تست کردن $ echo $andreyex_test تست $ تبریک می گویم، شما به تازگی اولین متغیر خود را ایجاد کرده اید. فقط به یاد داشته باشید که هر زمان که نیاز به ارجاع به مقدار متغیر محیط andreyex_test داشتید، فقط آن را با نام $andreyex_test ارجاع دهید. اگر نیاز به اختصاص رشته ای از مقادیر حاوی فاصله دارید، باید از یک نقل قول برای نشان دادن شروع و پایان رشته استفاده کنید: $ andreyex_test=آزمایش یک دستور طولانی -bash: a: پیدا نشد$ andreyex_test="آزمایش یک رشته طولانی" $ echo $andreyex_test تست یک رشته طولانی اگر بدون نقل قول باقی بماند، پوسته bash فرض می کند که کاراکتر بعدی دستور دیگری برای پردازش است. توجه داشته باشید که برای متغیر محیطی محلی که تعریف کردیم از همه حروف کوچک استفاده کردیم، متغیرهای محیط سیستم که تا به حال دیدهایم از همه حروف بزرگ استفاده کردهاند. در پوسته bash، این قرارداد استاندارد است. اگر متغیرهای محیطی جدیدی را تنظیم می کنید، این مورد نیاز نیست، اما حروف کوچک توصیه می شود. این کمک می کند تا متغیرهای محیط شخصی شما را از نتایج متغیرهای محیط سیستم متمایز کنید. توجه داشته باشید: بسیار مهم است که بین نام متغیر محیطی، علامت مساوی و مقدار فاصله وجود نداشته باشد. اگر هر فاصله ای را در انتساب قرار دهید، پوسته bash مقدار را به عنوان یک دستور جداگانه تفسیر می کند: $ andreyex_test2 = test -bash: andreyex_test2: دستور $ پیدا نشد یک مجموعه متغیر محیطی محلی در فرآیند پوسته شما برای استفاده در هر نقطه از فرآیند پوسته شما در دسترس خواهد بود. اما اگر پوسته دیگری ایجاد کنید، در پوسته فرزند موجود نیست: $ bash $ echo $andreyex_test $ خروج خروج $ echo $andreyex_test تست یک رشته طولانی $ در این مورد، ما پوسته کودک را راه اندازی کردیم. همانطور که متوجه شدید، متغیر محیط andreyex_test در پوسته فرزند موجود نیست (شامل یک مقدار خالی است). پس از اینکه پوسته فرزند را ترک کردیم و به پوسته اصلی برگشتیم، متغیر محیط محلی همچنان در دسترس بود. به همین ترتیب، اگر پس از خروج از فرآیند فرزند، یک متغیر محیط محلی را در یک فرآیند فرزند تنظیم کنید، متغیر محیط محلی دیگر قابل دسترسی نیست: $ bash $ andreyex_test=آزمایش $ echo $andreyex_test تست $ خروج خروج $ echo $andreyex_test $ مجموعه متغیر محیط andreyex_test در پوسته فرزند وقتی به پوسته والد برمی گردیم وجود ندارد. تنظیم متغیرهای محیطی جهانیمتغیرهای محیط جهانی از تمام فرآیندهای فرآیند فرزند ایجاد شده توسط فرآیندی که متغیر محیط جهانی را تنظیم می کند قابل مشاهده است. روشی که برای ایجاد یک متغیر محیط جهانی استفاده می شود، ایجاد یک متغیر محیطی محلی و سپس صادرات آن به محیط جهانی است. این با استفاده از دستور صادرات انجام می شود: $ echo $andreyex_test تست یک رشته طولانی $ صادرات andreyex_test $ bash $ echo $andreyex_test تست یک رشته طولانی $ پس از استفاده از دستور export در متغیر محیط محلی andreyex_test، شروع کردیم روند جدیدپوسته و به مقدار متغیر محیط andreyex_test نگاه کرد. این بار، دستور صادرات، متغیر محیط جهانی را جهانی کرد، بنابراین ارزش خود را حفظ کرد. توجه داشته باشید که وقتی یک فرمان صادراتی را در یک متغیر محیطی محلی اجرا می کنید، از علامت دلار برای اشاره به نام متغیر استفاده نمی کنید. حذف متغیرهای محیطیبدیهی است که اگر بتوانید یک متغیر محیطی جدید ایجاد کنید، منطقی است که میتوانید متغیر محیط موجود را نیز حذف کنید. این را می توان با استفاده از دستور unset انجام داد: $ echo $andreyex_test تست $ unset andreyex_test $ echo $andreyex_test $ اگر به یک متغیر محیطی در دستور unset اشاره می کنید، توجه داشته باشید که از علامت دلار استفاده نکنید. هنگام کار با متغیرهای محیط جهانی، همه چیز کمی پیچیده تر می شود. اگر در فرآیند فرزند هستید و متغیر محیط جهانی را غیرفعال میکنید، فقط برای فرآیند فرزند اعمال میشود. متغیر محیط جهانی در فرآیند والد در دسترس باقی می ماند: $ andreyex_test=آزمایش $ صادرات andreyex_test $ bash $ echo $andreyex_test تست $ تنظیم نشده andreyex_test $ echo $andreyex_test $ خروج خروج $ echo $andreyex_test تست $ در این مثال، یک متغیر محیطی محلی به نام andreyex_test تنظیم می کنیم، سپس آن را صادر می کنیم تا آن را به یک متغیر محیطی جهانی تبدیل کنیم. سپس فرآیند پوسته فرزند را شروع کردیم و بررسی شدیم تا مطمئن شویم که متغیر محیط جهانی andreyex_test هنوز در دسترس است. سپس، در حالی که هنوز در پوسته فرزند بودیم، از دستور unset برای حذف متغیر محیطی جهانی andreyex_test استفاده کردیم و سپس از پوسته فرزند خارج شدیم. حالا به پوسته والد اصلی برگردیم، مقدار متغیر محیط andreyex_test را بررسی کردیم و هنوز معتبر است. متغیرهای پیش فرض محیط پوستهمتغیرهای محیطی خاصی وجود دارد که پوسته bash از آنها برای تعیین محیط سیستم استفاده می کند. همیشه می توانید این متغیرها را برای استفاده در سیستم لینوکس خود حساب کنید. از آنجا که پوسته bash مشتق شده از پوسته اصلی Unix Bourne است، همچنین شامل متغیرهای محیطی است که در ابتدا در آن پوسته تعریف شده اند. مثالهای زیر نشان میدهند که متغیرهای محیطی ارائهشده توسط پوسته bash با پوسته اصلی Unix Bourne سازگار هستند. تا کنون با ارزش ترین متغیر محیطی در این لیست، متغیر محیطی PATH است. هنگامی که دستوری را در پوسته فرمان پوسته (واسط خط فرمان) وارد می کنید، پوسته باید سیستم را جستجو کند تا برنامه را پیدا کند. دایرکتوری هایی که برای دستورات جستجو می کند توسط متغیر محیطی PATH تعیین می شود. در یک سیستم لینوکس، متغیر محیطی PATH باید چیزی شبیه به این باشد: $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin $ این مورد نشان می دهد که هشت دایرکتوری وجود دارد که پوسته در آنها به دنبال دستورات می گردد. هر دایرکتوری با یک دونقطه از هم جدا می شود و در انتهای متغیر PATH لیست دایرکتوری ها انتهایی وجود ندارد. همیشه می توانید با افزودن یک دایرکتوری جدید و اضافه کردن دو نقطه دیگر، دایرکتوری های اضافی را به PATH اضافه کنید. PATH همچنین پرس و جو را نشان می دهد که در آن به دنبال سفارشات است. علاوه بر متغیرهای محیط استاندارد بورن، پوسته bash چندین متغیر را نیز ارائه می دهد، همانطور که نشان داده شده است: متغیرهای Bash Shell Bourne:CDPATH: فهرستی از دایرکتوریهای جدا شده با کولون که به عنوان مسیر جستجو برای دستور cd استفاده میشود. متغیرهای محیطی Shell bash:BASH: نام مسیر کاملا واجد شرایط برای اجرای نمونه فعلی پوسته bash. ممکن است متوجه شوید که پس از استفاده از دستور set، همه متغیرهای پیش فرض محیط نمایش داده نمی شوند. توضیحی برای این میتواند این باشد که اگرچه اینها متغیرهای محیطی پیشفرض هستند، اما لازم نیست همه آنها حاوی یک مقدار باشند. نتیجهدر این راهنما، دنیای متغیرهای محیط لینوکس را بررسی کردیم. متغیرهای محیطی جهانی اغلب توسط هر فرآیند فرزند حاصل از فرآیندی که در آن تعریف شده اند قابل دسترسی هستند. متغیرهای محیط محلی تنها از طریق فرآیندی که در آن تعریف شده اند قابل دسترسی خواهند بود. سیستم لینوکس از هر متغیر محیطی جهانی و محلی برای ذخیره اطلاعات در مورد محیط سیستم استفاده می کند. شما می توانید از رابط خط فرمان پوسته و همچنین اسکریپت های پوسته داخلی به این اطلاعات دسترسی داشته باشید. پوسته bash از متغیرهای محیطی سیستم تعریف شده در پوسته اولیه UNO Bourne و همچنین بسیاری از متغیرهای محیط جدید استفاده می کند. متغیر محیطی PATH الگوی جستجویی را تعریف میکند که پوسته bash هنگام جستجوی یک فرمان اجرایی میپذیرد. شما می توانید متغیر محیطی PATH را تغییر دهید تا دایرکتوری های خود یا شاید نماد دایرکتوری فعلی را اضافه کنید تا کار با برنامه های خود آسان تر شود. شما همچنین می توانید متغیرهای محیط جهانی و محلی خود را برای استفاده خود ایجاد کنید. هنگامی که یک متغیر محیطی ایجاد شد، برای کل جلسه پوسته در دسترس است. بسیاری از فایلهای راهاندازی وجود دارند که پوسته bash را پس از راهاندازی شروع میکنند. این فایلهای راهاندازی ممکن است حاوی تعاریف متغیر محیطی برای تنظیم متغیرهای محیط استاندارد برای هر جلسه bash باشند. پس از ورود به سیستم لینوکسپوسته bash به فایل راه اندازی /etc/profile و همچنین به سه فایل دسترسی دارد فایل های محلیراه اندازی برای هر کاربر، $HOME/.bash، $HOME/.bash ورود به سیستم و $HOME/.profile. کاربران این فایل ها را به گونه ای سفارشی می کنند که شامل متغیرهای محیطی و اسکریپت های راه اندازی برای استفاده خودشان باشد. پوسته bash علاوه بر این، آرایه های متغیر محیطی را فراهم می کند. این متغیرهای محیطی می توانند حاوی چندین مقدار در یک متغیر واحد باشند. شما می توانید با تعیین یک مقدار شاخص یا به طور کلی با تعیین نام آرایه متغیر محیطی کاملا واجد شرایط به مقادیر به صورت جداگانه دسترسی پیدا کنید. در نهایت، در این راهنما باید به استفاده از نام مستعار دستورات اشاره کنیم. اگرچه متغیرهای محیطی نیستند، اما نام مستعار فرمان تقریباً مانند متغیرهای محیطی عمل می کنند. آنها به شما اجازه می دهند که یک نام مستعار برای یک فرمان به همراه پارامترهای آن تعریف کنید. به جای تایپ کردن یک فرمان و پارامترهای بسیار طولانی، می توانید به سادگی یک نام مستعار ساده به آن بدهید و در هر زمانی در جلسه پوسته خود از نام مستعار استفاده کنید. متغیرهای محیط لینوکس، همراه با متغیرهای پوسته، چیزی هستند که تنظیمات را در یک جلسه کاربر تعیین می کنند. آنها به طور خودکار بارگیری می شوند، اما می توان آنها را نادیده گرفت. هر بار که وارد سیستم می شوید محیط ایجاد می شود. متغیرهای محیط لینوکس، متغیرهای پوستهمتغیرهای محیطیبرای فرآیند پوسته کاربر و تمام فرآیندهای فرزند ایجاد شده در آن استفاده می شود. متغیرهای پوستهحاوی داده هایی است که وضعیت جلسه جاری را تعیین می کند. به عنوان مثال، دایرکتوری فعلی. هر جلسه از متغیرهای محیطی و متغیرهای پوسته استفاده می کند. لیست متغیرهای محیط را می توان با اجرا مشاهده کرد printenvیا env ……
تفاوت این است که printenvبه شما امکان می دهد داده ها را برای یک متغیر خاص نمایش دهید - به عنوان مثال: مزیت env این است که امکان ارسال یک متغیر به یک دستور خاص را فراهم می کند مثلا:
مشاهده متغیرهای محیطی BASH=/bin/bash
خروجی را می توان به آن هدایت کرد کمترتا جهت یابی آسان تر شود برای خلاص شدن از شر اطلاعات غیر ضروری در خروجی بدون تغییر محیط فعلی، می توانید این کار را انجام دهید: در حالت POSIX، توابع تعریف شده bash چاپ نمی شوند متغییرهای پرکاربرد:
دستورات شل به شما امکان می دهد مقدار متغیرها را تغییر دهید. بنابراین pwd دایرکتوری فعلی را به کنسول نمایش می دهد /home/admin این یک متغیر پوسته PWD است
OLDPWD=/tmp
بیایید به /tmp برویم و ببینیم مقدار چگونه تغییر می کند
OLDPWD=/home/admin
می بینید که وقتی دایرکتوری را تغییر می دهید، مقدار متغیر پوسته PWD به سادگی تغییر می کند، و OLDPWD نحوه تنظیم یک محیط یا متغیر پوستهمتغیر shell به این صورت اضافه می شود SOMEVAR="سلام" در خروجی env نخواهد بود، زیرا یک متغیر پوسته است، نه یک متغیر محیطی. با افزودن علامت $ قبل از نام می توانید محتویات را از طریق اکو مشاهده کنید سلام برای افزودن یک متغیر به محیط، باید آن را صادر کنید
SOMEVAR=سلام پس از این، مقدار توسط فرآیندهای فرزند به ارث می رسد. می توانید با استفاده از همان فرمان صادراتی با کلید، یک متغیر محیطی را حذف کنید -n مقدار از پوسته تنظیم نشده حذف می شود بارگذاری خودکار متغیرها هنگام ورود به سیستمسیستم های لینوکس از فایل ها استفاده می کنند ~/.bashrc, ~/.bash_profile, ~/.bash_loginیا ~/.پروفایلبرای تعریف متغیرها فایل ها در حین ورود خوانده می شوند که از کدام یک استفاده می شود بستگی به توزیع دارد. در Ubuntu/Debain این ~/.bashrc است. هم متغیرهای محیطی و هم متغیرهای پوسته را اضافه می کند. اولین مورد خوانده می شود /etc/profile. مشخص میکند و میتوان آنها را نادیده گرفت که از کدام فایلها و به چه ترتیبی استفاده شود. برای یک جلسه بدون ورود، متغیرها در /etc/bash.bashrc تنظیم می شوند. این جلسه برای اسکریپت هایی که در پس زمینه اجرا می شوند معمولی است. برای اکثر وظایف، ویرایش کافی است ~/.bashrc. |
خواندن: |
---|
جدید
- مدیریت نوع گزارش در SKD 1S SKD نمایش جدول با طرح
- استفاده از تابع isnull()
- موارد در مورد موقعیت های آموزشی
- نگهبان پراچت (ترجمه S. Zhuzhunava، ویرایش A. Zhikarentsev) دانلود fb2. نقل قول از کتاب «نگهبانان! نگهبانان! تری پرچت
- حرفه: متخصص امنیت اطلاعات
- نامگذاری در حسابداری 1s 8
- اطلاعات حسابداری شرکت 1s 8
- نحوه در نظر گرفتن برنامه های کامپیوتری، آنتی ویروس ها و سیستم های کمکی سفارش نرم افزار در یک سازمان
- اصول، شرایط و اهداف پردازش داده های شخصی اهداف پردازش داده های شخصی در شرکت
- وام آنلاین در قزاقستان - بهترین پیشنهادات