LINUX

آموزش لینوکس

LINUX

آموزش لینوکس

LINUX

این وبلاگ به بحث پیرامون لینوکس و امنیت و زبان برنامه نویسی تحت لینوکس می پردازد.

طبقه بندی موضوعی

برنامه ای که امروز نوشتم یک فایل متشکل از تعدادی سایت رو از شما میگیره (بدون http) و سایت هایی که وجود دارند رو برای شما در یک فایل به نام ok.txt میریزه. همچنین با اجرا کردن این برنامه خروجی به طور همزمان برای شما به نمایش در میاد... :)



برای دیدن کد به ادامه مطلب برید:

۱ نظر موافقین ۰ مخالفین ۰ ۰۸ تیر ۹۳ ، ۱۱:۱۲
من

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



زندگینامه ریچارد متیو استالمن Richard Matthew Stallman :

نام و نام خانوادگی : ریچارد متیو استالمن

 

تاریخ تولد :  ۱۶ مارس ۱۹۵۳

 

محل تولد: نیو یورک، ایالات متحده آمریکا 

 

شغل:  رئیس بنیاد نرم‌افزارهای آزاد

 

محل تحصیل : دانشگاه هاروارد (لیسانس فیزیک) 

 

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

۰ نظر موافقین ۲ مخالفین ۰ ۰۶ تیر ۹۳ ، ۲۱:۴۲
من
در بخش قبل به توضیحی درباره متغیرها پرداختم و الان میخوام به بررسی متغیرهای مخصوصی در زبان bash بپردازم.
برای مثال اگر میخواین pid شل که در حال اجراست رو در بیارید میتونید به صورت زیر عمل کنید:
$ echo $$
29949

حالا میخوام به توضیح مختصری در باره این نوع متغیرها بپردازم و در انتها هم یک مثال براتون بیارم:
- $0 : نام اسکریپتی که در حال نوشتن اون هستید رو نمایش میده:
- n$ : در این جا شما میتونید به جای n مقدار عددی مثبت رو قرار بدید. مثلا 1$ بیانگر پارامتر اولی هست که به اسکریپت میدید و ....
- #$ : این علامت بیانگر تعداد پارامترهایی هست که این اسکریپت نیاز داره تا با اون ها اجرا بشه. یا تعداد پارامترهایی که اسکریپت با اون اجرا شده.
- *$ : تمام پارامتر ها رو به نمایش میذاره
- @$ : این هم مانند قبل همه پارامتر ها رو نشون میده
- ?$ : این متغیر وضعیت خروج آخرین دستور زده شده رو به صورت یک عدد به شما نمایش میده. مثلا اگر دستور آخری که اجرا کردید موفقیت آمیز بوده و صحیح بده مقدار 0 رو بر میگردونه و اگر دستور یا اسکریپت با موفقیت به اجرا در نیامد مقدار 1- را بر میگرداند
- $$ : شماره پراسه شل در حال اجرا یا شلی که در اون هستید رو بر میگردونه
- !$ : شماره پراسه آخرین دستوری که در background اجرا شده رو نمایش میده
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ تیر ۹۳ ، ۲۰:۴۴
من

امروز در ادامه بحث دیروز میخوام به بررسی باقی توابع ریاضی در پایتون بپردازم:

max

قاعده استفاده از این تابع به صورت زیر است:

max( x, y, z, .... )


این تابع تعدادی عدد رو از شما میگیره و ماکزیمم اون رو براتون حساب میکنه:

#!/usr/bin/python
print "max(80, 100, 1000) : ", max(80, 100, 1000)
print "max(-20, 100, 400) : ", max(-20, 100, 400)
print "max(-80, -20, -10) : ", max(-80, -20, -10)
print "max(0, 100, -400) : ", max(0, 100, -400)


خروجی برنامه پایتون به صورت است:

max(80, 100, 1000) :  1000
max(-20, 100, 400) :  400
max(-80, -20, -10) :  -10
max(0, 100, -400) :  100


min

قاعده استفاده از این تابع به صورت زیر است:

min( x, y, z, .... )

این تابع نیز تعدادی عدد به عنوان ورودی گرفته و کوچکترین عدد از بین اون ها رو انتخاب و نمایش میده:

#!/usr/bin/python
print "min(80, 100, 1000) : ", min(80, 100, 1000)
print "min(-20, 100, 400) : ", min(-20, 100, 400)
print "min(-80, -20, -10) : ", min(-80, -20, -10)
print "min(0, 100, -400) : ", min(0, 100, -400)


بعد از اجرای اسکریپت خروجی زیر رو دریافت میکنید:

min(80, 100, 1000) :  80
min(-20, 100, 400) :  -20
min(-80, -20, -10) :  -80
min(0, 100, -400) :  -400

۱ نظر موافقین ۰ مخالفین ۰ ۰۶ تیر ۹۳ ، ۱۹:۱۷
من
متغیرها نوعی از داده های رشته ای هستند که مقداری به آنها تخصیص داده میشود. مغیرها میتوانند عدد متن کاکتر نام فایل یا هر چیز دیگری باشد.
متغیر چیزی جز اشاره گر به مقدار اصلی نمی باشد. شل به شما اجازه حذف تغییر و یا ایجاد متغیر ها را میدهد.

نام متغیرها
نام متغیرها میتواند از حروف انگلیسی کوچک یا بزرگ و یا اعداد و یا _ باشد. اما چیزی که در اون ها متداول هست در دنیای لینوکس اینه که شما از حروف بزرگ استفاده کنید. برای مثال:
_ALI
TOKEN_1
VAR_A
VAR_B

اما چیزهایی که نمیتونید استفاده کنید:
2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

اینکه شما نمیتونید از * یا ! یا - و ... استفاده کنید بخاطر این هست که این نام ها کلمات خاصی هستند که برای شل معنای خاصی داره.
۱ نظر موافقین ۰ مخالفین ۰ ۰۶ تیر ۹۳ ، ۱۳:۴۶
من
همونطور که پیداست شاید همه شما تقریبا بدونید موضوع بحث امروز چیه. امروز میخوام درباره اعداد در پایتون صحبت کنم. آبجکت های عددی وقتی بوجود میان که شما یک مقداری رو بهشون تخصیص بدید:
var1 = 1
var2 = 10

شما همچنین میتونید آبجکت مورد نظر رو با استفاده از دستور del که در پایتون وجود داره اون رو پاک کنید:
del var1[,var2[,var3[....,varN]]]]

شما همچنین میتونید یک یا هر چند تا آبجکت که بخواید رو پاک کنید:
del var
del var_a, var_b

پایتون چهار نوع داده عددی را میشناسد:
- int : که اینتیجر نامیده میشه که شامل اعداد صحیح مثبت و منفی میشه
- long : اینتیجر های نامحدودی هستند که میتوان با حروف بزرگ یا کوچک نوشته بشن
- float : بیانگر اعداد حقیقی هستند. همچنین میتونه شامل اعداد e یا E هم باشه
- complex : فرمت این اعداد به صورت ai + bj هست. این اعداد  مختلط هستند که شامل بخش حقیقی  و مجازی هستند.

۰ نظر موافقین ۰ مخالفین ۰ ۰۵ تیر ۹۳ ، ۲۲:۴۱
من

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

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


Shell Prompt

علامت شل $ می باشد که وقتی ظاهر شد شما میتونید دستورات لازم رو وارد کنید. بعد از اینکه دستور رو نوشتید و اینتر رو زدید, شل مقدار ورودی رو از شما میگیره. هر دستور در لینوکس به خودی خود یک داده از نوع رشته ست که به صورت پیوسته و ناگسسته نوشته میشه.

دستور زیر تاریخ و ساعت رو به شما نشون میده:

$ date
Tue Jun 24 20:27:28 IRDT 2014


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

۲ نظر موافقین ۲ مخالفین ۰ ۰۳ تیر ۹۳ ، ۲۱:۳۱
من

عبارات کنترلی معمولا روند اجرای برنامه را از حالت معمول خارج میکنند. عبارات کنترلی در پایتون عبارتند از: break, continue, pass


عبارت کنترلی break

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


شمای کلی اون به صورت زیر است:


۰ نظر موافقین ۰ مخالفین ۰ ۰۱ تیر ۹۳ ، ۲۳:۱۵
من

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

وقتی شما یک دستوری رو توی سیستم اجرا میکنید یا چیزی رو ایجاد میکنید و ... سیستم برای شما یک پراسه ایجاد میکنه. 

هر پراسه یک آی دی داره که به اصطلاح بهش Process ID یا pid گفته میشه. همچنین هیچ دو پراسه های با آی دی های یکسان ذر سیستم وجود نخواهند داشت.


شروع پراسه

برای به اجرا در آوردن ی پراسه شما دو راه دارید:

 - Foreground Processes

- Background Processes


پراسه های Foreground

هر پراسه ای که در foreground اجرا میشه یک خروجی رو برای شما به نمایش میذاره. معمولا دستور ها در حالت عادی به این حالت اجرا میشن. به عنوان مثال:

$ ls ch*.doc
ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc   ch02-1.doc


همونطور که شما میبینید خروجی دستور ls در صفحه نشون داده شده است.

۱ نظر موافقین ۰ مخالفین ۰ ۳۰ خرداد ۹۳ ، ۱۵:۴۷
من

حلقه های for در پایتون این قابلیت رو دارن که بتونن یک جمله یا لیست یا رشته و یا هرچیز دیگه ای رو به صورت متوالی انجام بدن یا خروجی اون رو چاپ کنن.


قاعده

قاعده استفاده از حلقه های for در پایتون به صورت زیر است:

for iterating_var in sequence:
   statements(s)


مقدار یا عبارتی که بعنوان iterating_var مشخص می شود تا هنگامی که sequence ادامه داشته باشد بررسی میشود.


شمای کلی


۰ نظر موافقین ۰ مخالفین ۰ ۳۰ خرداد ۹۳ ، ۱۳:۴۳
من