** قسمت هایی از ویدیو جلسه دوم **

با دیدن این ویدیو آموزشی، موارد زیر را یاد خواهید گرفت:

  • کاربرد و استفاده از Shebang
  • کاربرد و استفاده از Encoding

انواع Prompt در مفسر پایتون

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

1- پرامپت اصلی (Primary Prompt): برای اجرای دستوری که یک خط (Single Line) بوده و چند خط (Multi Line) نیستند:

>>> print("netpent.com") 

2- پرامپت فرعی (Secondary Prompt): برای دستورات چند خطه یا بلاک هایی از کد که هنوز تکمیل نشده است:

>>> site = "netpent.com"
>>> if site == "netpent.com":
...    print("Cyber Security Site") 

Shebang در پایتون

به نظر شما، اسکریپت پایتونی نوشته شده توسط شما با چه روش هایی می تواند اجرا شود؟ با یکی از سه روش زیر میتوان اسکریپت را اجرا نمود.

1- خط فرمان (Command Prompt): می توان اسکریپت نوشته شده را مستقیما با استفاده از Python صدا زده و اجرا نمود. در لینوکس می توان از Terminal و در ویندوز از CMD یا Powershell استفاده کرد.

python3 <filename>.py 

2- محیط های برنامه نویسی (Integrated Development Environment): محیط های ساخته شده توسط شرکت های مختلف برای نوشتن کد ها موجود است. در این محیط ها می توان تمام خطوط کد را نوشته و سپس آن را توسط زبان مورد نظر اجرا کرد. نمونه ای از این محیط های برنامه نویسی، Pycharm، Atom، VScode و غیره می باشند.

محیط های برنامه نویسی

3- Shebang: فرض کنید در یک سیستم، زبان های برنامه نویسی Python، C، Ruby و PHP نصب می باشد. اگر بدون استفاده از روش های ۱ و ۲ بالا بخواهیم این اسکریپت را اجرا کنیم باید چه کاری انجام دهیم؟ در این مواقع برای مستقل کردن اسکریپت مورد نظر و مشخص کردن مفسر برای اجرای آن اسکریپت، باید از Shebang استفاده شود. Shebang حتما باید اولین خط اسکریپت موردنظر بوده و با فرمت زیر نوشته شود:

#!/usr/bin/python3
print("netpent.com") 

کاربرد Shebang در هک و امنیت

  • اجرای مستقیم: پس از نوشتن اسکریپت، برای اجرای آن بدون وابستگی به استفاده مستقیم از Python Interpreter، می توان از Shebang استفاده کرد. در این مواقع، اسکریپت موردنظر در صورت داشتن مجوز اجرایی (Executable Permission) و همچنین نصب بودن پایتون در سیستم مقصد، می تواند به راحتی در آن سیستم اجرا شود.
  • زمان بندی کارها (Cron Jobs): فرض کنید اسکریپت شما میخواهد در ساعت و تاریخ مشخصی خود به خود اجرا شود. در این سناریو نیز میتوان از Shebang بهره گرفت.
  • ورژن خاص (Specific Version): فرض کنید در گذشته اسکریپتی با ورژن 2.7 پایتون نوشته اید. برای اجرای آن اسکریپت فقط به وسیله مفسر پایتونی همان نسخه، میتوان از Shebang استفاده کرد. در این سناریو، باید مخصل نصب پایتون 2.7 داده شود.
  • محیط مجازی (Virtual Environment): فرض کنید بدافزاری با پایتون نوشته اید. آیا این بدافزار را در سیستم خود امتحان میکنید؟ برای اجرای این بدافزار در یک محیط مجازی، از Shebang استفاده کرده و باید محل نصب پایتون در محیط مجازی را در آن قرار دهیم.

Encoding در پایتون

برای اطمینان از انتقال و ذخیره داده ها با پیوستگی و فرمت مناسب، از Encoding استفاده می شود. در واقع، Encoding به مفسر کمک می کند که برخی کارکتر های خاص را بتواند تفسیر کند. فرض کنید فایلی حاوی رشته هایی به زبان فارسی دارید. در صورتی که Encoding فایل موردنظر برای انتقال (Transmit)، خواندن (Read) و نوشتن (Write) فقط برای زبان انگلیسی تنظیم شده باشد چه خواهد شد؟ در این صورت، داده فارسی به صورت درست انتقال یا خوانده یا نوشته نخواهد شد. برای مشخص کردن Encoding مناسب کد پایتون، باید از فرمت زیر استفاده شود. توجه شود که در صورت استفاده از Shebang، حتما باید Encoding بعد از آن استفاده شود. Encoding باید به صورت زیر نوشته شود که به جای ascii میتوان کد های موجود در جدول Encoding در سایت پایتون استفاده کرد.

#!/usr/bin/python3
# -*- coding: ascii -*-
print("netpent.com") 

اگر ASCII Encoding را برای نمایش کارکترهای فارسی به کار ببریم چه می شود؟ خودتان امتحان کنید. در این حالت با خطای Encoding برخورد خواهید کرد چون ASCII فقط برای کارکترهای انگلیسی می باشد.

#!/usr/bin/python3
# -*- coding: ascii -*-
print("نت پنت") 
پیمایش به بالا