sf

sf

sf

sf

  • ۰
  • ۰

نصب گواهی ssl :

Microsoft Office Communications Server 2007 

 

  1. در سرور روی گزینه Start -> Programs -> Administrative Tools -> Office Communications Server 2007. کلیک کنید.
  2. تا جایی که گزینه Enterprise Edition Server را پیدا کنید ادامه دهید.
  3. بر روی Office Communications Server راست کلیک کنید که در آن CSR قبلا ساخته شده است و روی Certificates کلیک کنید.
  4. روی Next کلیک کنید، سپس Process the pending request and install the certificate. را انتخاب کنید.
  5. برای یافتن فایل گواهی ssl که از COMODO دریافت کردید (به عنوان مثال( yourDomainName.cer  مرور  کنید.
  6. پس از انتخاب فایل گواهی نامه ، روی Next کلیک کنید.
  7. ویزارد گواهی ssl را ببندید.

    گواهی ssl شما اکنون نصب شده و آماده استفاده است.

منبع:https://sarvssl.com/%D9%86%D8%B5%D8%A8-%DA%AF%D9%88%D8%A7%D9%87%DB%8C-ssl-microsoft-office-communications-server-2007/

  • server server
  • ۰
  • ۰

نصب گواهی ssl ی :  WHM/cPanel 11

  1. به کنترل پنل cPanel وارد شوید.

 

  1. در قسمت Security روی SSL/TLS Manager کلیک کنید.

 ssl nasb1

  1. در قسمت 'Certificates' بر روی Generate, view, upload or delete SSL Certificates کلیک کنید.

 ssl nasb2

 

  1. وارد کردنگواهی ssl ی Domain/End Entity
  • در بخش 'Upload a New Certificate' در جعبه متن با برچسب 'Paste the crt below' محتوای 'yourDomainName.crt' را کپی و جایگذاری کنید.

یا

  • روی «مرور» کلیک کنید و به «yourDomainName.crt» بروید و سپس روی «آپلود» کلیک کنید-

    یا -
    ب روی 'Browse' کلیک کنید و به «yourDomainName.crt» بروید ، سپس روی 'Upload' کلیک کنید.

 4nasb ssl

  1. روی گزینه Go Back کلیک کنید.

 5nasb ssl

  1. به پایین صفحه بروید و روی Return to SSL Manager کلیک کنید.

 6nasb ssl

 

  1. روی گزینه Setup a SSL Certificate to work with your site کلیک کنید.

 

 7nasb ssl

  1. دامنه ای که استفاده میکنید را از منوی کشویی Domain انتخاب کنید این سیستم تلاش خواهد کرد تا گواهینامه SSL و کلید خصوصی شما را به دست آورد.
    توجه: شما می توانید این فایل ها را کپی و در جعبه های مناسب خود در این زمان وارد کنید

 

  1. در قسمت جعبه ای که با برچسب CA Bundleاست ، محتویات فایل CA Bundle که تهیه شده است را جایگذاری کنید.

 8nasb ssl

 

نکته: اگر فایل ca-bundle را دریافت نکردید، میتوانید از بخش گواهی ssl ریشه و واسط  خود در در قسمت دانلودهای خودتون این فایل را دانلود کنید. لطفا یکی از مواردی  را که با گواهی ssl شما مطابقت دارد را دانلود کنید. اگر مطمئن نیستید، لطفا با پشتیبانی تماس بگیرید.

 

  1. روی گزینه Install Certificate کلیک کنید.

 

گواهی ssl در حال حاضر به سرور شما اضافه شده و به دامنه اختصاص داده شده است.

 

منبع:https://sarvssl.com/8390-2/

  • server server
  • ۰
  • ۰

نصب گواهی ssl ی :  WHM/Cpanel

نکته : این راهنما فرض می کند که کاربر به "SSL Manager" در داخل WHM دسترسی داشته باشداگر شما یک مدیر نیستید، نمیتوانید این گواهی ssl را نصب کنید و برای انجام این کار باید با مدیر خود در تماس باشید.

 

برای نصب گواهینامه ssl شما ، شما باید وارد حساب cPanel خود یا WHM شویدهر دوی آنها یعنی  cPanel (پانل کنترل کاربر نهایی) و WHM (پانل مدیریت) روش های کمی متفاوت از هم برای نصب گواهی دارند.
شما گواهی ssl خود را از ما دریافت خواهید کرد، یک فایل معمولا با  نام 'your_domain_com.crt' و به خوبی فایل 'ca-bundle' که دارای پسوند .ca-bundle می باشد.

 

WHM

 

  1. ورود به WHM. از منو، به قسمت SSL / TLS بروید و روی 'Install a SSL Certificateand Setup the Domain'  کلیک کنید.

 

  1. فایل  گواهی ssl  را در یک ویرایشگر متن باز کنید (این فایل با نام دامنه شما در نام فایل است) و مطالب را در کادر بالا کپی و جایگذاری کنید. بر روی دکمه دوم'Fetch' کلیک کنید، نزدیک بخش فایل کلید (به رنگ قرمز).

 

  1. این کلید خصوصی و دامنه، اطلاعات کاربر و آدرس IP از سرور را بازیابی و آن را در فرمی برای شما جمع آوری می کند.

 

  1. به پایین فرم بروید ، جعبه ای با عنوان 'Paste the ca bundle here (optional)' را مشاهده خواهید کرد. فایل 'ca-bundle' را باز کنید و محتویات را در این کادر کپی کنید. روی دکمه 'Submit' کلیک کنید و بعد از یک یا دو دقیقه گواهی ssl در دامنه نصب و راه اندازی خواهد شد.
    اگرفایل 
    ca-bundle را دریافت نکردید، یادداشت های زیر را مشاهده کنید.


cPanel


  1. ورود به cPanel. در منو 'Security' روی گزینه 'SSL/TLS Manager' کلیک کنید.

 

  1. روی لینک پایین 'Certificates' کلیک کنید.

 

  1. در کادر 'Paste the crt below:' ، محتویات فایل گواهی ssl  خود را (معمولا به نام 'your_domain_com.crt' ) کپی و جای گذاری کنید.

 

 همچنین شما می توانید آن را از طریق مرورگر آپلود کنید. روی دکمه 'Upload' کلیک کنید . گواهی ssl بارگذاری و در سایت نصب خواهد شد.

 

نکته : اگر فایل "ca-bundle" را دریافت نکردید، می توانید آن را از گواهی ssl  نامه واسط بسازید . به سادگی یک فایل متنی جدید ایجاد کنید و محتویات گواهی ssl واسط را در آن، یکی پس از دیگری، کپی کنیدکپی آنها را به ترتیب، از بالا به پایین٪٪ INTERMEDIATES ٪٪.

منبع:https://sarvssl.com/%D9%86%D8%B5%D8%A8-%DA%AF%D9%88%D8%A7%D9%87%DB%8C-ssl-%DB%8C-whmcpanel/

  • server server
  • ۰
  • ۰

نصب گواهیssl ی Plesk 7 & 8

نصب گواهیssl  برای سرور

  1. وارد پنل کنترل Plesk شوید

 

Plesk 7

 

  1. قسمت 'Domains' را از منوی سمت چپ انتخاب کنید.

 

11a

Plesk 8

 

  1. روی "Home" کلیک کنید و به پایین صفحه بروید.
  2. بر روی'Domain name' نام دامنه ای که گواهیssl در آن وجود دارد کلیک کنید.

22a

  1. روی نماد 'Certificates'در زیر سرویس ها کلیک کنید.

33a

  1. 5نصب گواهینامه ssl ی End Entity/Domain و CA

بارگذاری گواهی نامه ها

  1. گواهی ssl ی Entity/Domain را بارگذاری کنید.

44a

روی 'Browse' کلیک کنید و گواهی نامه End Entity / Domain استخراج شده را پیدا کنیدمعمولا با عبارت  yourDomainName.crt  می باشد برای تکمیل این نصب روی 'Send File'  کلیک کنید.

  1. بارگیری گواهی CA

    روی 'Browse' کلیک کنید و گواهی CA استخراج شده را پیدا کنید .معمولا در بسته نرم افزاریca خواهد بودبرای تکمیل این نصب روی 'Send File' کلیک کنید. 

کپی و جایگذاری گواهی ssl

الف) a 'yourDomainName.crt'  و 'yourDomainName.ca-bundle' را در ویرایشگر متن مورد علاقه خود باز کنید.
ب) محتویات 'yourDomainName.crt' را به بخش گواهی ssl کپی کنید.
ج ) محتویات 'yourDomainName.ca-bundle' را کپی و به بخش گواهینامه  CA ارسال کنید.
د) پس از اتمام کار روی 'Send Text' کلیک کنید.

 

  1. گواهی ssl شما در حال حاضر به مخزن گواهی نامه سایت شما اضافه شده است.
    نکته: اگر شما یک فایل .ca-bundle دریافت نکرده اید لطفا این مقاله را درباره نحوه ایجاد این فایل برای خودتان بخوانید.


فعال کردن سایت برای SSL

  1. در قسمتی  که در آن گواهی ssl نصب شده است بمانید.
  2. بر روی "Up Level" از قسمت بالا سمت راست کنترل پنل کلیک کنید.
  3. روی 'Setup' کلیک کنید.
  4. با استفاده از جعبه کشویی، گواهی ssl که قبلا در بالا نصب شده را انتخاب کنید.
  5. وضعیت آدرس IP و گواهی نامه خود را بررسی کنید.
  6. 55a

نکته : این مثال یک IP مشترک باگواهی ssl پیش فرض را نشان می دهددر صورتی که هیچ گواهیssl  در جعبه کشویی در این منطقه وجود نداشته باشد، این بدان معنی است که شما در یک حساب میزبان مشترک هستید و بنابراین شما باید بسته میزبانی خود را ارتقا دهید و یک آدرس IP اختصاصی / استاتیک را از ارائه دهنده میزبان خود خریداری کنید.

 

 

قبل از ادامه به عنوان مدیر به سیستم وارد شوید!

راه اندازی مجدد سرویس Apache

  1. بر روی آیتم 'Server'از منوی سمت چپ کلیک کنید.
  2. 66a

بر روی منو 'Service Management' کلیک کنید.

 

توقف و شروع روند Apache . آیکن ها نمایش دهنده شروع، توقف و راه اندازی مجدد هستند.

 77a

نکته : سرویس Apache را به سادگی راه اندازی نکنیدشما باید سرویس را متوقف کنید، سپس آن را دوباره شروع کنید تا فرآیند نصب کامل شود.

منبع:https://sarvssl.com/%D9%86%D8%B5%D8%A8-%DA%AF%D9%88%D8%A7%D9%87%DB%8C-%D9%86%D8%A7%D9%85%D9%87-plesk-7-8/


  • server server
  • ۰
  • ۰

نصب گواهینامه : Microsoft IIS 7.x

  • نکته : به عنوان یک جایگزین برای دستورالعمل های دستی در این صفحه، Comodo یک ابزار رایگان پیشنهاد می دهد که به طور خودکار گواهی ssl  شما را در وب سایت  IIS شما نصب می کندبرای یافتن اطلاعات بیشتر اینجا را کلیک کنید.

Install to Web Server

 

  1. برای یک سرور مناسب Internet Information Services Manager (IISM) را باز کنید.

Start -> Administrative Tools -> IISM -> Server Name

 

  1. آیکون Server Certificates را باز کنید.

 

1m

  1. پنجره ویزارد 'Complete Certificate Request' را باز کنید.

 

 2m

از منوی Actions در سمت راست گزینه 'Complete Certificate Request' را انتخاب کنید.

 

  1. تا کامل شدن درخواستگواهی ssl   به صورت ویزاردی ادامه دهید.

 

 4m

 

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

 

نکته : در IIS 7 یک مسئله شناخته شده است که خطای زیر را می دهد:

"Cannot find the certificate request associated with this certificate file. A certificate request must be completed on the computer where it was created."

 شما همچنین ممکن است یک پیام را با عنوان "ASN1 tag value met met" دریافت کنید در صورتی که این همان سرور است که شما CSR را در آن ایجاد کردید، در اغلب موارد، گواهی ssl  در واقع نصب شده است نگران نباشید، گفتگو را لغو کنید و "F5" را فشار دهید تا لیستی از گواهی ssl   سرور را تازه سازی کنیداگر گواهینامه جدید در حال حاضر در لیست باشد، می توانید با قدم بعدی ادامه دهیداگر آن در لیست نیست، مجددا گواهی خود را با استفاده از CSR جدید ایجاد کنید (دستورالعمل های ایجاد CSR ما برای IIS 7 را ببینید).( پس از ایجاد یک CSR جدید، به حساب Comodo خود وارد شوید و دکمه 'replace' را برای گواهی خود کلیک کنید.

 

اختصاص به وب سایت

 

  1. بازگشتن به ریشه وب سایت مناسب . در وسط پنجره باید "default website home" یا هر نامی که وب سایت دارد را بگویید.
  2. 'Bindings' را از زیر منو 'Edit Site' انتخاب کنید.

 5m

  1. پورت 443 را اضافه کنید.

 

 

در پنجره 'Site Bindings'  روی 'Add'کلیک کنید. پنجره 'Add Site Binding' را باز می شود.

 

 

در زیر قسمت 'Type'  گزینه  https  را انتخاب کنید. آدرس IP باید آدرس IP سایت یا All Unassigned باشد و پورت که  در ترافیک بالا توسط SSL محافظت می شود، معمولا 443 می باشد. فیلد  'SSL Certificate' باید گواهینامه ای را که با استفاده از مراحل فوق نصب شده بود را مشخص کند.

برای ذخیره تغییرات روی OK کلیک کنید.

نکته: ممکن است ورودی https در این منطقه قبلا وجود داشته باشد. اگر چنین است، روی «https» کلیک کنید تا آن را برجسته کنید. سپس روی " Edit " کلیک کنید و در قسمت 'SSL certificate' نام دوستانه ای که قبلا تولید شده انتخاب کنید. برای ذخیره تغییرات روی OK کلیک کنید.

 

 8m

 

برای تکمیل نصب بر روی «OK» در پنجره 'Web Site Bindings' کلیک کنید.

مهم : اکنون باید  IIS  وب سایت را مجددا راه اندازی کنید تا نصب گواهینامه ssl  کامل شود.

منبع:https://sarvssl.com/%D9%86%D8%B5%D8%A8-%DA%AF%D9%88%D8%A7%D9%87%DB%8C-%D9%86%D8%A7%D9%85%D9%87-microsoft-iis-7-x/

  • server server
  • ۰
  • ۰

نصب زنجیره گواهینامه SSL

نصب گواهی ssl :

Java Based Web Servers (Tomcat) using keytool

نصب زنجیره گواهینامه SSL (ریشه، واسط ها ونهادهای انتهایی)

  1. وارد کردن گواهی ssl ریشه

-> keytool -import -trustcacerts -alias AddTrustExternalCARoot –file

AddTrustExternalCARoot.crt -keystore domain.keystore

  1. وارد کردن واسط

-> keytool -import -trustcacerts -alias intermediate_filename -file intermediate_filename.crt -keystore domain.keystore

 

نکته :

بسته به نوع گواهی خریداری شده، ممکن است بیش از یک گواهی ssl واسط  در زنجیره  اعتبار وجود داشته باشد. لطفا همه واسط ها را به ترتیب عدد صحیح نصب کنید تا زمانی که به گواهی ssl domain/end entity  رسیدید.

 

برای تعیین اینکه چه زنجیره ای ازاعتبار دارید، لطفا مقاله ای با عنوان

Which is Root? Which is Intermediate? را دنبال کنید.

 

به عنوان مثال UTNAddTrustSGCCA.crt : به UTNAddTrustSGCCA تبدیل می شود.

 

برای اطلاعات بیشتر

 

  1. وارد کردن گواهینامه Entity/Domain

-> keytool -import -trustcacerts -alias mykey -file yourDomainName.crt -keystore domain.keystore
شما باید پیامی دریافت کنید: در صورت موفقیت. Certificate reply was installed in keystore

نباید خروجی مرحله 1 یا 2 در بالا مطابقت دهد.

 

نکته : اگر یک نام مستعار در هنگام ایجاد CSR مشخص شد، لطفا از آن نام مستعار به جای mykey استفاده کنید.

 

  1. سرویس وب سرور را راه اندازی مجدد کنید.

 

نکته : Tomcat ابتدا نیاز به یک اتصال پیکربندی شده گواهی ssl دارد قبل از اینکه بتواند اتصالات ایمن را قبول کند. لطفا اطمینان حاصل کنید که این تنظیم قبل از اینکه سرور دوباره راه اندازی شود انجام گیرد.

منبع:https://sarvssl.com/%D9%86%D8%B5%D8%A8-%D8%B2%D9%86%D8%AC%DB%8C%D8%B1%D9%87-%DA%AF%D9%88%D8%A7%D9%87%DB%8C%D9%86%D8%A7%D9%85%D9%87-ssl/

  • server server
  • ۰
  • ۰


. نصب گواهینامه  : Apache & mod_ssl

 

همه ی محتوای فایل فشرده ZIP که برای شما ارسال شده است را باز کنید(extract) و آنها را به سرور کپی یا جابه جا ((copy/move کنید. معمولا مطالب استخراج شده با اسم های :

yourDomainName.crt  و yourDomainName.ca-bundle نامگذاری می شوند.

 

 

  1. همه فایل های مرتبط با گواهی ssl را به دایرکتوری های مناسب خود انتقال دهید.

 

نصب معمولی :

  • انتقال کلید خصوصی که پیش از این در پوشهkey ساخته شده است، که معمولا در / etc / ssl / یافت می شود. این باید دایرکتوری باشد که فقط Apache بتواند دسترسی پیدا کند.
  • پوشهcrt و yourDomainName.ca-bundle خود را به پوشه ssl.crt منتقل کنید، که معمولا در پوشه / etc / ssl / یافت می شود.

 

  1. فایل حاوی تنظیمات SSL با ویرایشگر متن مورد علاقه خود ویرایش کنید.
    مثالها nano : ، vi، pico، emacs، mousepad، notepad، notepad ++، و غیره.
    نکته: محل این فایل ممکن است از بخش های دیگر متفاوت باشد. این به فایل پیکربندی جهانی Apache اشاره خواهد داشت. به دنبال خطوطی باشید که با   includeشروع می شوند.

 

  1. فایل های پیکربندی Apache

 

  • Fedora/CentOS/RHEL: /etc/httpd/conf/httpd.conf
  • Debian and Debian based: /etc/apache2/apache2.conf

 

فایل های پیکربندیگواهی ssl

 

برخی از نام های ممکن :

 

  • httpd-ssl.conf
  • conf
  • در پوشه /etc/apache2/sites-enabled/

نکته : در صورت نیاز لطفا مستندات توزیع خود را در Apache و SSL به مشورت بگذارید  یا به مستندات Apache در بنیاد Apache بپیوندید

  1. در قسمت VirtualHost فایل لطفا این دستورالعمل ها را در صورتیکه وجود ندارند اضافه کنید. بهتر است نظر خود را از آنچه در حال حاضر وجود دارد بیان و ورودیهای زیر را اضافه کنید.

 

  • SSLEngine on
  • SSLCertificateKeyFile /etc/ssl/ssl.key/server.key
  • SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName.crt
  • SSLCertificateChainFile /etc/ssl/ssl.crt/yourDomainName.ca-bundle ***

 

  1. .

Apache 1.3.x:

SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/server.key
SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName.crt
SSLCACertificateFile /etc/ssl/ssl.crt/yourDomainName.ca-bundle

Apache 2.x:

SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/server.key
SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName.crt
SSLCertificateChainFile /etc/ssl/ssl.crt/yourDomainName.ca-bundle

 

  1. فایل پیکربندی خود را ذخیره کنید و سرویس Apache را راه اندازی مجدد کنید. گاهی اوقات لازم است که "توقف" و سپس "شروع" Apache ، به جای صدور دستور "راه اندازی مجدد" برای تغییرات به اجرا درآید.

نکته:
اگر انتخاب شما این است که یک رمز عبور بر روی کلید خصوصی خود داشته باشید، از شما خواسته می شود تا آن را وارد کنید هر بار که Apache شروع یا ریست می شود. تا وقتی رمز عبور وارد نشده  Apache به طور کامل شروع نخواهد .
فایل پیکربندی معمولا httpd.conf یا apache.conf نامیده می شود، هر چند گاهی اوقات بخش خاص SSL در یک فایل جداگانه به نام ssl.conf قرار می گیرد و از تنظیمات اصلی با دستور "Include" مرتبط می شود. گاهی اوقات بخش TheVirtualHost در یک فایل خاص برای آن سایت ، در یک زیر پوشه ای که اغلب به عنوان سایت فعال برچسب گذاشته شده خواهد بود.
بخش عمده ای از طرح فایل های پیکربندی Apache و قراردادهای نامگذاری دایرکتوری توسط توزیع سیستم عامل مورد استفاده شما کنترل می شود. توصیه می شود که به سایت خود و اسناد توزیع برای تأیید مکان ها مراجعه کنید.

منبع:https://sarvssl.com/%D9%86%D8%B5%D8%A8-%DA%AF%D9%88%D8%A7%D9%87%DB%8C%D9%86%D8%A7%D9%85%D9%87-apache-mod_ssl/

س

  • server server
  • ۰
  • ۰

آموزش ویرایشگر VIM سرور مجازی

جولای 3, 2017

ویرایشگر vim

ما تا اینجا تعدادیفرمانیاد گرفتیم ولی گاهی اوقا شما نیاز دارید یک فایل را تغییردهید و یا تنظیماتی که مد نظرتان است را

اعمال کنید. بنابراین الزام است و می توان گفت ضروری است که یک لینوکس کار بتواند با یک editor کار کند.ویرایش گر یک ه

ما با آن کار می کنیم ویرایشگر vim می باشد.

در این جلسه ما به طور کامل ویرایشگر Vim را بررسی میکنیم.

[N.pardis@lpi1 ~]$ vim

[N.pardis@Lpi1~]$man vim

این فرمان جزوه ی کاملی هم دارد. برای اینکه یک فایل را ویرایش کنیم این فرمان را میزنیم

File-namevim[N.pardis@Lpi1~]

اگر فایلی را نتوانیم تغییردهیم vim در خط آخر اعتراض میکند و با خط قرمز اعتراضش را نشان میدهد.

Vim محدودیت ندارد و اگر باینری exe باشد میشود انجام داد و به طور کلی هر چیزی را آماده است ویرایش کند.

برنامهای بنویسید که یک اسم را بخواند و حرف اولش را چاپ کند: میخواهیم این برنامه را به صورت یک فرمان

در لینوکس در بیاوریم. شروع کار به صورت زیر است و فایلی با نام test1 سرور مجازی میسازد:

[N.pardis@Lpi1~]$vim testl

برای وارد کردن دستورا و یا ت ییرا در فایل کلید i در صفحه کلید را فشار می دهیم و تغییراتی را که می خواهیم اعمال می

کنیم.

برای ذخیره و خارج شدن از محیط ویرایشگر x : shift را میزنیم حال l –ls که بزنیم مشخصا فایل را میبینیم و اگر اسم

فایل را بزنیم اجرا میشود.

[N.pardis@Lpi1~]$ test1

میبینیم که اجرا نشد و به ما پی ام found not command را میدهد که این به این دلیل است که لینوکس به خاطر مسایل

امنیتیdirectory current را نمیگردد و از بیرون میخواهد بیاورد برخالف ویندوز مایکروسافت. مسایل امنیتی اینست که

ممکن است فرمانی مثل date در دایرکتوری جاری دستکاری شده باشد و اگر ما date را از دایرکت وری جاری اجرا کنیم مثالً

formatیا delete را انجام دهد به همین دلیل است که از دایرکتوری جاری نمیخواند

حال اگر خودمان مشخص کنیم که از دایرکتوری جاری بخوان باید به صورت زیر بزنیم

[N.pardis@Lpi1~]$./testl

Permission denied

که حال اجرا میشود ولی ممکن است پی ام denied permission هم بگیرید.

[N.pardis@Lpi1~]$chmod 777 test1

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

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

گرفته شود. که این error را error semantic میگویند و اگر دستورکلا اشتباه باشد error syntax میدهد.

برنامهای بنویسید که اسم را بگیرد سرور اختصاصی و حرف آخر آن را چاپ کند؟

[N.pardis@Lpi1~]$vim testn

echo “please Enter ur NAME:”

read N

echo $N |tail-c2

خروج از vim با x : shift

[n.pardis@lpi ~]$ testn

-bash: testn: command not found

بنابراین برای اجرا testn ./را به کار می گیریم:

[N.pardis@Lpi1~]$ ./testn

bash:./testn permission denied

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

اینست که

[N.pardis@Lpi1~]$chmod 777 test1

[N.pardis@Lpi1~]$ ./testn

حال میبینیم که اجرا میشود و از ما اسم میخواهد و حرف آخرش را نمایش میدهد.

 

میخواهیم وارد یک دایرکتوری به نام dummy شویم و فایلهایی که اسمشان 0 حرفی است را به ما نشان دهد:

[N.pardis@Lpi1~]$ cd dummy

[N.pardis@Lpi1~/dummy]$ ls ??

1a 1b sh 1j

دو تا ؟؟ یعنی 0 حرفی وفایل های دو حرفی را نمایش میدهد. هر ؟ یعنی یک حرف . فایلهای

دو حرفی که اوّلش عدد است را نمایش دهد؟

[N.pardis@lpi1~/dummy]$ls [0-9]?

فایلهایی که اسمشان به عدد ختم میشود را نمایش دهد ؟

[N.pardis@lpi1~/dummy]$ ls *[0-9]

فایلهایی که آخرشان حرف صدادار دارد را نمایش دهد ؟

[N.pardis@lpi1~/dummy]$ ls *[aciou]

فایلهایی که از a تا k شروع میشوند را نمایش دهد ؟

[N.pardis@lpi1~/dummy]$ ls [a-k] *

فایلهایی که با a شروع نمیشوند را نمایش دهد ؟

[N.pardis@lpi1~/dummy]$ ls [!a]*

ما در vim میتوانیم abbreviation تعریف کنیم به این صورت :

:abbr p pardis

با این تعریف به محظ اینکه حرف p را بزنیم و سپس کلید space را فشار دهیم pardis را مینویسد.

p space

همچنین در vim میتوانید macro تعریف کنید که مثالً اگر 5 F1 را فشار دادیم. بالای نامه �به نام خدا � بنویسید و خیلی

امکانات دیگر هم در vim داریم.

برنامهای بنویسید که یک IP بگیرد و کامپیوتر مربوطه را کنترل کند و اگر سیستم down بود به Adminیک

ایمیل ارسال کند؟

چطور میشود فهمید که یک کامپیوتر up است یا down؟ فرمان ping را اجرا میکنیم.

[N.pardis@Lpi1~]$ Ping 192.168.100.1

ping با استفاده از پروتوکل ICMP. ،56 حرفکه عبارت است از حروف الفبا به اضافه character special میفرستد و اگر

دوباره برایش پس فرستاد میفهمیم که up است.

به معنی در تاریکی به دنبال چیزی گشتن Groper internet packet  Ping

ping بیشتر برای رفع اشکال بدرد میخورد.

ICMP internet control message protocol

اگر ما در این پروله ping کنیم مدام در حال پرسیدن و جواب گرفتن است و اگر . ماه بعد هم بیاییم باز هم همین کار را دارد

انجام میدهد. حال منوآل ping را بخوانید و بگویید چه کار کنیم که 1 بار بیشتر ping نکند؟ از آپشن c1 –استفاده میکنیم که

یک بار بیشتر نفرستد.

[N.pardis@Lpi1~]$ ping 192.168.100.1

[N.pardis@Lpi1~]$ vi test2

#!/bin/bash

با نوشتن این خط داریم میگوییم که این نرمافزار را چه کسی اجرا میکند و در این مثال bash آن را اجرا می کند.

این خط صفحه را پاک میکند.

clear

X=`date`

read -p “please Enter Ip:” IP

این خط پی امی را روی صفحه مینویسد و توقع دارد IP بدهیم.

Ping -c1 $IP>/dev/null 2>/dev/null

ttp

24

به طور کلی هر نرم افزاری عدد یک ورودی میخواهد و حداقل دو تا خروجی دارد:

1 خروجی استاندارد

0 خروجی خطا

نرمافزاری که خروجیاش همیشه یک چیز درست و مشخصی است همیشه به output standard میفرستد و نرمافزار اعتراض

و پیامهای خطایش را به خروجی خطا میفرستد.

&> 0 یعنی 0 جایی برود که یک 1 میرود.

null/dev </1 یعنی ما نمیخواهیم خروجیا را ببینیم خروجیا را بریز دور.

null/dev </0 یعنی خروجی خطا را هم نمیخواهیم ببینیم و بریز دور.

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

تمام شود کدش صفر است و هر فرمانی اجرا نشود و error دهد و نتیجهای که خواستیم ندهد غیرصفر است.

فرمان دیگری که داریم و برای ادامه حل این تمرین نیاز داریم بدانیم اینست که باید بفهمیم وقتی ping کردیم چطور بفهمیم

که ping با موفقیت انجام شده و سیستم up است؟؟؟ فرمانی که در اینجا مطرح می شود فرمانی است که نتیجه نهایی فرمان

قبلی که اجرا شده را به ما میدهد که اگر صفر باشد با موفقیت انجام شده در غیر این صورت اگر هر عددی غیر از صفر باشد به

معنی عدم موفقیت فرمان قبلی می باشد.

[n.pardis@lpi1~]$ echo $?

0

مقدار تابع date را میگیرد `date=`Xیکبار ping میکند.

اگر ping انجام شد ویا به هر دلیلی انجام نشد را از طریق ساختار شرطیif چک می کنیم که در زبانهای برنامه نویسی برای شرط

بود و شرطی را بیان میکرد :

[n.pardis@lpi1~]$ type if

if is a shell keyword

If [$? !=0]; then

به Admin ایمیل میکند.

echo $Ip $X |mail -s “server is down…” Admin

else

echo “server is up”

fi

بنابراین پروژه ما به اتمام رسید به این صورت :

#!/bin/bash

clear

X=`date`

read -p “please Enter Ip:” Ip

ping -c1 $Ip>/dev/null 2>/dev/null

If [$?!= 0] then

echo $Ip $X | mail -s “server is down…” Admin

else

echo “server is up”

fi

از vim خارج می شویم و permission می دهیم و آن را اجرا می کنیم:

[N.pardis@Lpi1~]$ chmod 700 test2

[N.pardis@Lpi1~]$ ./test2

ttp

25

برای اینکه زمان و ساعت را نگه داریم آن را در یک متغیربا حرف بزرگ به نام X میریزیم و این نکته را هم به

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

فرمان را درون آن قرار می دهیم.

[N.pardis@Lpi1~]$ X=`date`

[N.pardis@Lpi1~]$ echo $X

اگر بخواهیم فقط روز را نگه داریم در X به این صورت عمل میکنیم:

[N.pardis@Lpi1~]$ X=` date |cut-cl-3′

[N.pardis@Lpi1~]$ echo $X

در تمرین 15 که در قسمت قبل حل کردیم این مشکل وجود دارد که اگر هیچ Ip ای هم وارد نکنیم و Enter بزنیم جلوی ما را

نمیگیرد میخواهیم کاری کنیم که اگر هیچip ای وارد نکردیم جلوی ما را بگیرد. برای این ک ار ping را دس ت نم یزن یم و در

بالای برنامه یک if میگذاریم میگوییم:

if [$Ip=’ ‘]

then

echo “U Must Enter Ip…”

exit

fi

اگر در دو طرف Ipیک حرف نگذاریم با یک Enter میشود شکستیعنی اگر enter بزنیم و بخواهیم خالی رد کنیم قبول می کند

و error نمیدهد چون enter را هم به عنوان ورودی می گیرد و فکر میکند خالی نیست.

این باز هم درست کار نمیکند.چرا؟

if مثل کفه ی ترازوهای قدیمی است که اگر یک طرف یک وزنه یک کیلویی باشد و آن طرف هم جنس هر دو طرف مثالً یک

وزنه ی خیلی کوچک قرار میدهند تا مساوی شوند. ما هم در if همین کار را میکنیم و هر دو طرف ifیک حرف مثالx قرار می

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

رد کنیم. اکثر script shell ها به این صورت است. چون هر دو طرف فقط یک x داریم و x ها مساوی هستند معلوم م یش ود

که ما Enter زدیم.

:میخواهیم پسورد دوّم را برایid user ایجاد کنیم و اگر پسورد دوّم غلط بود یک ایمیل برا یAdmin و صاحب

userid برود.

برای اینکه بتوانیم این تمرین را حل کنیم باید بدانیم که موقعی که ما login میکنیم چه اتفاقی میافتد.

اگر a-ls را بزنید تمام فایلهایی را که وجود دارد میبینید. وقتی شما در لینوکس userid میسازید فرد هر کاری که انجام ده د

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

این فرمان روبهرو را که بزنیم تمام فایلهای نقطهدار را نشان میدهد.

less [N.pardis@Lpi1~]$ bash-history

عبارت است از یک فایلی که تمام history ها را به شما نشان میدهد.

برای اینکه history خود را ببینید این فرمان را بزنید:

[N.pardis@Lpi1~]$ less .bash-history

ما 1 تا فایل داریم که با bash .شروع میشود. فایل بعدیprofile-bash .است که معادل bash.Autoexec در ویندوز اس ت

که به مح اینکه loginکنید این فایل اجرا میشود. که میتوانیم در این فایل ت ییراتی هم ایجاد کنیم ک ه م ثالً بع د از ا ینک ه

login کردیم یک پی ام مثالً salam بنویسید.

echo “salam”

حال تمرین را حل میکنیم:

[N.pardis@Lpi1~]$ vi .bash-profile

trap “echo enter second password” 2

read –s-p “PLZ ENTER SECOND PASS:” pass

iF [ P$pass != pardisp ] then

echo $USER on `date` hacked | mail -s hacked admin

exit

else

حواسمان باشد در if اگر پسورد غلط بود قبل از elseیک exit هم باید بگذاریم.

اولین مشکل اینست که پسورد دیده شد باید کاری کنیم که دیده نشود میآییم بنابراین آپشن s –را ب ه read اض افه

میکنیم.

مشکل دوّم اینست که میخواهیم Enter زدیم prompt نگیرد.

فرمانsu را که بزنیم به معنیuser switch میباشد یعنی از یک id user به id user دیگر رفتن و اگر dash –جلوی

آن بگذاریم به معنیfull میباشد و به root میرود.

.bash-logout فایل

بنابراین ما متوجه شدیم که 1 فایل نقطه داریم. فایل بعدی که بررسی میکن یم logout-bash .است و وقتی شما out log

میکنید این نرم افزار اجرا میشود.

میخواهیم برنامهای بنویسید که وقتی میخواهید out log کنید از شما بپرسد مطمئن ی و اگر yes گفتید out log

کند و اگر No گفتید prompt را برای شما بیاورد؟

[n.pardis@lpi1~]$ vi .bash-logout

بررسی سیگنال ها

یک برنامه وقتی میآید در حافظه باید آنقدر محکم باشد که از بین نرود. یکی از عاللمی که یک برنامه را متوقف میکند و یا می

کشد c ctrl است. در محیط گرافیکال cut که وقتی به یک نرمافزار میرسد آن را از بین میبرد و میکشد.

به همین دلیل است که وقتیpass second را میخواهد c ctrl میزنیم که میکشد آن را و وارد م یش ود. ب ه c ctrl م ی

گوییم سیگنال. ما سیگنالهای مختلفی داریم. که سه تا عکسالعمل میتوانیم در مقابل هر سیگنال داشته باشیم:

1 عکسالعمل نشان دادن Action

Ignore 0

Default 3

دو سیگنال معروفی که داریم یکیc ctrl و دیگریup Hang شماره 1 ارتباط مخاطب با پروسس قطع شده است است.

حال این فرمان را میزنیم تا ببینیم چند تا سیگنال داریم.

[N.pardis@Lpi1~]$ kill -l

1 .سیگنال ما داریم که لینوکس همه را support میکند. که یکی از آنها Hangup است و interrupt شماره 0 همان

c ctrl است. Vim را نمیتوان با c ctrl کشت. هر سیگنال یک کد دارد. ما به وسیلهیtrapیعنی فرمانtrap برای سیگنال می

توانیم تله بگذاریم و جلوی اجرا شدنش را بگیریم. trapیکی از فرمانهای داخلیbash است میتوان به وسیله آن عکس العمل

مناسب را در مقابل سیگنال اتخاذ نمود و توصیه میشود دستور trap را در ابتدایscript گذاشت. با این فرمان میگو ییم هر

وقت

[n.pardis@lpi1~]$ trap ‘cal’ 2

سیگنال شماره 0 یعنیc ctrl آمد تقویم را اجرا کن. یعنی سیگنال 0 را اجرا نمیکند و تقویم را اجرا میکند.

اگر فرمان زیر را وارد کنیم دوباره c ctrl کار می کند.

[n.pardis@lpi1~]$ trap ” 2

حال اگر دو تا کوتیشن را به هم بچسبانیم و بعد c ctrl را بزنیم م یبینیم که اجرا نمیش ود. وقت یspace بینشان باشند

یعنیc ctrl را بگیرد ولی هیچ کاری نکند.

و اگر دو تا کوتیشن به هم چسبیده باشندیعنیignore میکند c ctrl را. در بین دو کوتیشن میتوانیم هر چی بگذاریم echo

salamیا اجراییک نرمافزار. اگر خواستیم دوباره برگردانیم به حالت پیشفرض بین دو تا کوتیشن یک blank میگذاریم.

برای دیدن منوآل signal که خیلی هم مهم است این فرمان را بزنید:

[n.pardis@lpi1~]$

man -a signal

  • server server
  • ۰
  • ۰

بررسی مجوز های فایل در لینوکس وسرور مجازی سرور اختصاصی

می 21, 2017

بررسی مجوز های فایل در لینوکس

در لینوکس هر object که ایجاد میشود یک شناسه منحصر به فرد دارد که اطلاع و مجوزها و صاحب هر object را مشخص

میکند.

وقتیفرمانl -ls را میزنیم اطلاع و مشخصا فایل ها را مشخص میکند.اولین فیلد اطلاعتی شامل مجوزها می باشد .سمت چپ

ترین کاراکتر اگر d باشد یعنیدایرکتوری است و اگر – باشد یعنی فایل است.

بعد از سمت چپ ترین کاراکتر در فیلد اول . کاراکتر دیگر هم در این فیلد مشاهده میکنیم که سه دسته می باشند.سه تا ی اول

مربوط به ownerیعنی صاحب فایل می باشد execute write read rwx یعنی مجوز خواندن، نوشتن و اجرا کردن. اگر به

جای هر کدام از این کاراکترها – بود یعنی اجازه ی انجام آن کار را ندارد .سه تای دوم مربوط به هم گروه ها ی آن userid می

باشدgroup که مشخص میکند هم گروههای آن userid چه permission هایی دارندexecute write read rwx و سه

تای آخر هم مجوز های مربوط به other را مشخص می کند یعنی افراد غریبه چه مجوزهایی دارند.به عنوان مثال مجوز زیر می

تواند مربوط به یک فایل می باشد.

سرور مجازی 

-rwx r– r–

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

[N.pardis@Lpi1~]$ cd /home/

به یاد داشته باشید که هیچ وقت در لینوکس اسم فایل و یا فرمان ی را به طور کامل تا ی م نکنید و همیشه از کلید tab که

completion command است استفاده کنید.

 

و از آنجا به خانه یک فرد دیگر میرویم که پی ام denied permission میگیریم چون باید root باشیم تا این مجوز فعال شود

و اجازه داشته باشیم:

[N.pardis@Lpi1~]$ cd /a.Niki/

Permission denied

حال اگر مجوزها را تغییردهیم میتوانیم به خانهی فرد برویم که با فرمانchmod میتوانیم مجوزها را تغییردهیم. 777 یعنی

همه میتوانند همه کاری را انجام دهند، هر فردی چه غریبه و چه همگروه میتوانند همه کاری انجام دهند.

اجازهی اجرای دایرکتورییعنی مجوز x برای یک دایرکتوری چیست؟

ln

در لینوکس ما میتوانیم به یک فایل تا 055 تا اسم بدهیم.

فرمانln که مخفف link می باشد در لینوکس برای دادن چندین اسم به یک فایل به کار می رود.

ابتدا یک فایل می سازیم.با فرمانl –ls مشخصا آن را میبینیم که اندازه آن صفر است.

[N.pardis@Lpi1~]$ > F1

[N.pardis@Lpi1~]$ ls-l

اگر بخواهیم دو تا اسم دهیم از فرمانln استفاده میکنیم که با هم manual آن را میبینیم

[N.pardis@lpi1 ~]$ man ln

[N.pardis@Lpi1~]$ln F1 F2

[N.pardis@Lpi1~]$ln F1 F3

حال F1 سه تا اسم دارد.فرمانln که مخفف link می باشد چندین کاربرد دارد:

1:فایل های با نام طولانی را می توانیم یک اسم کوتاه بدهیم .

0:به یک فایل می توانیم چندین نام به زبان های مختلف بدهیم.

3:ت ییرا در هر چند فایل به صورت همزمان اعمال می شود.

ttp

19

1:با پاک شدن یکی از فایل ها در صورت وجود نام دیگر به طور کامل نابود نمی شود چون 0 تا اسم دارد از روی دیسک پاک

نمیشود..سرور اختصاصی 

فرمانrm فایل را پاک میکند:

[N.pardis@Lpi1~]$rm F2

حال فایلی که ساختیم دواسمیمیشود.

آیا F3یک کپی از F2 است؟ چطور بفهمیم که یکی هستند؟

در لینوکس هر object ای که درست میکنیم به آن یک عدد صحیح و مثبت اختصاص میدهد. که اگر قبل از دس تور l-lsیک

i –هم بنویسیم یعنیindexیا شمارهی آن را هم میدهد و شماره F1 و F3 را میبینیم که یکی است. ه ر object در لین وکس

درست شود یک شماره دارد که به آن inode node index میگویند.

حال اگر i –ls بزنیم میبینیم که شماره این سه فایل یعنیinode آنها یکی است البته چون یکی از آنه ا را delete کرد یم الان

دو تا فایل داریم که f1 و f3 می باشند که inode آنها یکی است.

[n.pardis@lpi ~]$ ls -i

با فرمانfind میتوانید پیدا کنید که فایلهایی که هم اسم هستند را نشان دهد.

 حال یک دایرکتوری میسازیم تا ببینیم به تناق میرسیم یا نه؟

[N.pardis@Lpi1~]$mkdir test2

[N.pardis@Lpi1~]$ls-l

میبینیم که این دایرکتوری که تازه ساختیم و هیچ ln هم به آن نداشتیم تعداد لینکهایش 0 است چرا؟

مثالً یک دایرکتوریetc داریم که 055 اسم دارد آیا میتواند درست باشد؟ تعداد لینکهای دایرکتوری 0 است ولی فایل 1 است

منبع : https://sarvserver.com/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D9%85%D8%AC%D9%88%D8%B2-%D9%87%D8%A7%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D9%88%D8%B3%D8%B1%D9%88%D8%B1-%D9%85%D8%AC%D8%A7/

  • server server
  • ۰
  • ۰


سرور مجازی لینوکس ساخت فایل از خروجی یک فرمان

آوریل 26, 2017

ساخت فایل از خروجی یک فرمان

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

دهیم:

[N.pardis@Lpi1~]$ cat namef> a

بنابراین برای اینکه خروجی یک فایل را به جای اینکه نمایش دهیم در فایلی نگه داریم از علامت <یعنیredirection استفاده می

کنیم. با این دستوریک فایلی درست شد به اسم a و محتویات namef داخل آن است.

فقط اسامی را در فایلی به نام name بریزید:

[N.pardis@Lpi1~]$ cut-c1-10namef > name

فقط نام خانوادگی را در فایلی به نام family بریزید:

[N.pardis@Lpi1~]$ cut -c18-30 namef > family

اگر دو تا علامت < داشته باشیم یعنی><به چه معنی می باشد؟

سرور مجازی 

یعنی اگر فایلی به نام family در مثال بالا وجود دارد در انتهای آن اضافه میکند و محتویاتت فایل قبلی تغییر نمی نماید ولی اگر

فایل وجود نداشته باشد فایلfamily را خودش می سازد.

فایل passwd

Untitled-4-1.png

در لینوکس فایلی داریم به نام passwd که تمام userId ها در آن ثبت شده اند و به این صورت میتوانیم محتویات آن را

ببینیم:

[N.pardis@Lpi1~]$ less /etc/ passwd

محتویات داخل این فایل با: از هم جدا شده اند و اطلاع مربوط به هر Id user با دو نقطه از Id user بعدی جدا میشود:

قلمهای اطلاعتیId user و password و شماره Id و … می باشد.پس فایل passwd آدرس و شماره و … شما را نگه میدارد.

ما میتوانیم این فایل را تغییردهیم.

اگر بخواهیم مشخصه Fingerیک شناسه را تغییربدهیم:

[N.pardis@Lpi1~]$ chfn

Password

Name

Office

Phone

اگر بخواهیم ببینیم به عنوان مثال:

سرور اختصاصی 

[N.pardis@Lpi1~]$ finger n.pardis

میخو اهیم تمام Id user ها را از فایل passwd جدا کنیم و محتویات آن را به userid به نام sabt ارسال کنیم؟

[N.pardis@Lpi1~]$ cut -f1 -d: /etc/ passwd |mail -s uid sabt

آپشن d –مخفف delimiter به معنی جدا کننده می باشد و در این فایل جداکننده دو نقطه : می باشد.

میخواهیم sort کنیم و ایمیل کنیم:

[N.pardis@Lpi1~]$ cut -f1 -d: /etc/passwd |sort| mail-s uid sabt

میخواهیم فیلد اوّل و پنجم را جدا کنیم:

[N.pardis@Lpi1~]$ cut -f1,5 -d: /etc/passwd |sort| mail-s uid sabt

اگر بخواهیم history خودمان را Mail کنیم به این صورت :

[N.pardis@Lpi1~]$ history |mail-s myhis sabt

اگر بخواهیم history مان برای همه ایمیل کنیم به جای اینکه اسم همه id user ها را بنویسیم از users استفاده میکنیم.

[N.pardis@Lpi1~]$ history |mail -s my hist `users`

تعریف متغیر در لینوکس

در لینوکس ما متغیرداریم و میتوانیم به راحتی به آن مقدار دهیم :

[N.pardis@Lpi1~]$ x=2

برای اینکه مقدار یک متغیریا محتویات یک متغیررا ببینیم از echo استفاده میکنیم و جلوی اسم متغیرعلامت $ قرار

میدهیم که مقدار آن را در نظر بگیرد نه اینکه اسم متغیر را بنویسد:

[N.pardis@Lpi1~]$echo $x

دستور زیر مقدار متغیرx را در t میریزد.

[N.pardis@Lpi1~]$ echo t=$x

برای اینکه یک عبارت را در کنار مقدار متغیرچاپ کند به این صورت مینویسیم:

[N.pardis@Lpi1~]$ echo ${x}aictc

عبارت متغیر

read

برای خواندن اطلاع در لینوکس فرمانread را داریم که به وسیلهیفرمانtype میفهمیم که یک دستور builtin میباشد:

[N.pardis@Lpi1~]$ type read

read is a shell builtin.

وقتی فرمانread و سپس نام متغیررا وارد می نمایید.

ttp

14

[N.pardis@Lpi1~]$ Read NAME

 اسم متغیر

سپس منترر میماند تا شما اطلاعتی را وارد کنید و به عنوان مثال zahra را وارد میکنیم .

وقتیecho کنیم میبینیم که مقدار متغیررا برای ما مینویسد. توصیه میشود اسامی متغیرها را بزرگ بنویسید

[N.pardis@Lpi1~]$ echo $NAME

zahra

اطلاع بیشتر از فرمان read را می توان با فرمان read help مشاهده نمود.فرمانهایbuiltin فقط help دارند.

[N.pardis@Lpi1~]$ help Read

با توجه به helpفرمانreadکاری کنید اگر فرمانRead بعد از 5 ثانیه جواب ندادید out time بدهد و خارج شود:

[N.pardis@Lpi1~]$ Read –t5 NAME

چه کاری انجام دهیم تا اسم را بیشتر از سه حرف نگیرد؟

[N.pardis@Lpi1~]$ read –n3 NAME

در Read اگر اسم متغیررا وارد نکنید error نمیدهد و پیشفرض اسم replyمیگذارد.

حال میخواهیم که اسم بیشتر از 3 حرف نگیرد و out time 7 ثانیه باشد.

[N.pardis@Lpi1~]$read-n3 –t7 name

اسم متغیر

p –در فرمانread به ما prompt میدهد:

[N.pardis@Lpi1~]$ read -p “PLZ ENTER UR NAME:”–t7 -n14 NAME

اگر فرمان زیر را بزنیم بعد از مد ثانیهای که در آن مشخص میکنیم خط قطع میشود که این فرمان برای کنترل و کار کردن

کاربران مناسب است.

بعد از 15 ثانیه خط قطع میشود با حروف بزرگ 15 =TMOUT

با یک خط برنامهای بنویسید که یک اسم را بخواند و حرف اوّل آن را چاپ کند؟

[N.pardis@Lpi1~]$ read -p “ENTER UR NAME:” -t 7 -n3 NAME; echo $NAME |cut-c1

ENTER UP NAME: pardis

p

[N.pardis@Lpi1~]$ read –p “ENTER NAME:” –t 7 -n 14 NAME;echo $NAME > /tmp/a; cutc1/tmp/a

ولی توصیه میشود هرگز از این روش استفاده نکنید و directory current خود را با فایلهایمتفرقه پر نکنید.

برنامهای بنویسید که اسمی را بخواند و حرف آخر آن را چاپ کند؟

[N.pardis@Lpi1~]$ read -p “ENTER Name:” –t 7 -n 14 NAME;echo $ NAME |tail -c2

حرف آخر اسم مورد نظر ما s است از آخر حرف دوم است چونEnter هم که بعد از اسم وارد کرد یم هم یک کاراکتر

حساب میشود.

دلیل اینکه 0 مینویسیم به این خاطر است که اگر مثالً کلمه Hello را ما به echoبدهیم و بگوییم dump octal آن را به ما

بدهد به این صورت جواب میدهد:

[N.pardis@Lpi1~]$ echo hello |od -c

0000000 h e l l o \n

n\هم که enter است یکی حساب میشود.

از طریق فرمانod می توانیم هر کلیدی که در این فرمان وارد کنیمod آن را به ما نشان میدهد

[N.pardis@Lpi1~]$ read a; echo $a |od–c

read

[N.pardis@Lpi1~]$ read a b

Najibeh pardis

[N.pardis@Lpi1~]$ echo $a

Najibeh

همیشه اولین داده ورودی تا قبل از space را میدهد به اوّلین متغیرو دوّمین ورودی و هر چه که باز هم بعد از space میزنیم

را به همان b که متغیردوّم است میدهد. و اگر تعداد داده ورودی کمتر بود متغیرآخری چیزی گیرش نمیآید.

منبع:https://sarvserver.com/%d8%b3%d8%b1%d9%88%d8%b1-%d9%85%d8%ac%d8%a7%d8%b2%db%8c-%d9%84%db%8c%d9%86%d9%88%da%a9%d8%b3-%d8%b3%d8%a7%d8%ae%d8%aa-%d9%81%d8%a7%db%8c%d9%84-%d8%a7%d8%b2-%d8%ae%d8%b1%d9%88%d8%ac%db%8c-%db%8c%da%a9/

  • server server