انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: alend در 14 مهر 1391، 05:42 ق‌ظ

عنوان: مفهوم این دستورات چیست؟
ارسال شده توسط: alend در 14 مهر 1391، 05:42 ق‌ظ
۱- به هیچ عنوان این دستورات را روی سیستم خود، حتی مجازی ساز اجرا نکنید (virtual box, vmware, ...). بر اساس این تاپیک:
http://forum.ubuntu.ir/index.php/topic,46267.0/topicseen.html
۲- عواقب این دستور در تاپیک فوق ذکر شده است.
۳- لطفا اگر مفهوم این کد را می دانید پاسخ دهید.
:(){ :|: & };: –


(این مورد از جهت آگاه سازی افراد بسیار اهمیت دارد تا هر کدی را اجرا نکنند!)
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: alend در 14 مهر 1391، 07:15 ق‌ظ
این هم جواب:
http://www.cyberciti.biz/faq/understanding-bash-fork-bomb/ (http://www.cyberciti.biz/faq/understanding-bash-fork-bomb/)
این یک تابع BASH است!

:()تعریف تابع ":" :o
:|:تابع بازگشتی! که ":" خودش ":" را فراخوانی می کند (۲ بار!)
& ‌
برنامه را در پس زمینه اجرا می کند.
;
پایان تعریف تابع
:
فراخوان مجدد برنامه
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: alieblice در 14 مهر 1391، 11:56 ق‌ظ
رویه همه ی سیستما من شنیدم کارساز نیست. مثلا رو ردهت میگن یکم طول می کشه تا ناثیر گذار بشه تو منابع.
یک بار تو ubuntu server قبلا زدمش تو vmware بودش . خودش اوتومات تمام سرویس هارو کیل کرد .
رویه لپتابایه شرکت اپل اگر بزنین کلی شروع به سرصدا کردن میکنه. ((کلی بوق میزنه))

عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: ﴿ AliReaza ﴾ در 14 مهر 1391، 01:08 ب‌ظ
ای کاش این تاپیک درست نمیشد.
چون ممکنه بعضی از دوستان کنجکاو بشن و یا بخوان شبطنت کنند و کد را اجرا کنند.

عواقب اجرای کد:

1- ممکنه اجرا نشه ( احتمالش کمه )
2- ممکنه به کندی اجرا بشه ( همچون ubuntu 12.4 ( که توسط خودم امتحان شد ) و redhat ( که توسط دوستان معرفی شد) )
3- ممکنه اجرا بشه و سیستم را بهم بریزد ( احتمال کمی وجود دارد اما باز هم ریسک دارد )
4- در صورت اجرا ممکنه به سخت افزار ها آسیب بزند ( به شخصه زمان اجرا در مجازی ساز هم شاهد فشار زیاد به CPU بودم، که از ترس به صورت دستی مجازی ساز را بستم. )

نکته بسیار مهم: این کد در نسخه های پایدار ممکنه آسیب زیادی به سیستم وارد نکنه، اما در نسخه های ناپایدار میتونه عواقب بدی داشته باشه

از همه نکات مهمتر: در هر صورت مراقب سخت افزارهای خودتان باشید. ( هم در سیستم عامل حقیقی و هم در مجازی )
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: alend در 14 مهر 1391، 01:24 ب‌ظ
ای کاش این تاپیک درست نمیشد.
چون ممکنه بعضی از دوستان کنجکاو بشن و یا بخوان شبطنت کنند و کد را اجرا کنند.

عواقب اجرای کد:

1- ممکنه اجرا نشه ( احتمالش کمه )
2- ممکنه به کندی اجرا بشه ( همچون ubuntu 12.4 ( که توسط خودم امتحان شد ) و redhat ( که توسط دوستان معرفی شد) )
3- ممکنه اجرا بشه و سیستم را بهم بریزد ( احتمال کمی وجود دارد اما باز هم ریسک دارد )
4- در صورت اجرا ممکنه به سخت افزار ها آسیب بزند ( به شخصه زمان اجرا در مجازی ساز هم شاهد فشار زیاد به CPU بودم، که از ترس به صورت دستی مجازی ساز را بستم. )

نکته بسیار مهم: این کد در نسخه های پایدار ممکنه آسیب زیادی به سیستم وارد نکنه، اما در نسخه های ناپایدار میتونه عواقب بدی داشته باشه

از همه نکات مهمتر: در هر صورت مراقب سخت افزارهای خودتان باشید. ( هم در سیستم عامل حقیقی و هم در مجازی )

چگونه می تونه به سخت افزار صدمه بزند!

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

ای کاش این تاپیک درست نمیشد.

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

(این مورد از جهت آگاه سازی افراد بسیار اهمیت دارد تا هر کدی را اجرا نکنند!)
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: ﴿ AliReaza ﴾ در 14 مهر 1391، 01:47 ب‌ظ
در مورد سخت افزار اگر هم سخت افزار شما قوی هم باشه بالاخره براشون یک مرز خطری وجود دارد.

در مورد کد:

1- این کد یک تابع هست.
2- خودش را در هر بار اجرا 2 بار فراخوانی می کند. ( اجرا و ساخت شدن تابع به توان 2 )
3- اجرا در پیش  زمینه
4- اجرای بی نهایت
5- اجرا با سرعت بسیار بالا

این کد فقط خودش رو تکرار میکنه و چون به صورت ریشه ای خودش را اجرا میکنه حافظه را اشغال میکنه و وقتی هم پردازش بره بالا میتونه به CPU آسیب بزنه

تازشم همانطور که میدانید توزیعات گنو/لینوکس مصرف زیادی دارند. و وقتی پردازش بره بالا مصرف سیستم هم میره بالا، تا حدی که میتونه خطرناک باشه
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: alend در 14 مهر 1391، 02:07 ب‌ظ
پردازش بالا که به cpu آسیب نمی رساند (بسیاری از برنامه ها از چند هسته cpu یه صورت ۱۰۰ در ۱۰۰ استفاده می کنند بدون هیج مشکل).



بعد می دونم پردازش زیاد به سخت افزار صدمه بزند. در مورد pc و server مطمئنم.
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: آرمان اسماعیلی در 14 مهر 1391، 02:12 ب‌ظ
در مورد سخت افزار اگر هم سخت افزار شما قوی هم باشه بالاخره براشون یک مرز خطری وجود دارد.

در مورد کد:

1- این کد یک تابع هست.
2- خودش را در هر بار اجرا 2 بار فراخوانی می کند. ( اجرا و ساخت شدن تابع به توان 2 )
3- اجرا در پیش  زمینه
4- اجرای بی نهایت
5- اجرا با سرعت بسیار بالا

این کد فقط خودش رو تکرار میکنه و چون به صورت ریشه ای خودش را اجرا میکنه حافظه را اشغال میکنه و وقتی هم پردازش بره بالا میتونه به CPU آسیب بزنه

تازشم همانطور که میدانید توزیعات گنو/لینوکس مصرف زیادی دارند. و وقتی پردازش بره بالا مصرف سیستم هم میره بالا، تا حدی که میتونه خطرناک باشه
البته اینها را که خود alend نیز توضیح دادن. اما نکته‌ای که هست اینه که من اولین باره می‌شنوم پردازش بتونه به سخت‌افزار آسیب برسونه. سخت‌افزار ساخته شده برای همین کار. اگر هم دما بیش از حد بالا بره که خودکار سیستم خاموش می‌شه.
من داخل ویرچوال‌باکس که نه، روی خود سیستم امتحان کردم هیچ مشکلی هم نیست.
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: ﴿ AliReaza ﴾ در 14 مهر 1391، 02:23 ب‌ظ
ببینید دوست عزیز داره موضوع منحرف میشه.
من به طور کلی میگم:

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

جدا از این بحث بعضی سیستمها ممکنه تنظیمات Bios دستکاری شده باشه و سیستم خاموش یا ریست نشه.

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

از ما گفتن از شما.....
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: alend در 14 مهر 1391، 02:26 ب‌ظ
این که فقط از ram و cpu استفاده می کنه، چگونه می تونه مصرف کل سیستم را افزایش دهد!
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: محمدرضا ح. در 14 مهر 1391، 03:41 ب‌ظ
من اجراش کردم رو خود سیستم :) اول یه عدد نشون داد و بعدش کلا هنگ کرد و سیستم داغ شد  :oops: با ریست دستی درست شد  ](*,) فکر کنم یکم پیش میرفت سیستم منفجر میشد  ;D
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: wolfeyesh در 14 مهر 1391، 03:48 ب‌ظ
ببینید دوست عزیز داره موضوع منحرف میشه.
من به طور کلی میگم:

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

جدا از این بحث بعضی سیستمها ممکنه تنظیمات Bios دستکاری شده باشه و سیستم خاموش یا ریست نشه.

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

از ما گفتن از شما.....
موافقم
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: majidkamali1370 در 14 مهر 1391، 05:35 ب‌ظ
دو تا سوال داشتم.
۱. فرق & با && چیه؟ اگه آخر هر دستوری & بزاری میره توی پس زمینه؟ یعنی توی یه thread دیگه اجرا میشه؟
۲. اون خط تیره آخرش برای چیه؟

با تشکر
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: محمدرضا ح. در 14 مهر 1391، 05:43 ب‌ظ
دو تا سوال داشتم.
۱. فرق & با && چیه؟ اگه آخر هر دستوری & بزاری میره توی پس زمینه؟ یعنی توی یه thread دیگه اجرا میشه؟
۲. اون خط تیره آخرش برای چیه؟

با تشکر

فکر کنم وقتی بین دوتا دستور & بزاریم یعنی همزمان اجرا بشن یا در پس زمینه برن. ولی وقتی && هست یعنی اول اولی و بعد اونی که بعد از && قرار گرفته اجرا بشه.
این دستور فکر کنم کمک کنه : (:دی)

gedit & firefox
البته اضافه کنم یکیش که Kill بشه اون یکی هم کشته میشه :D و در اصل یعنی دو دستور رو در یک دستور جاسازی میکنه.

اما این :

gedit && firefox
اول گدیت رو باز میکنه و وقتی که اون رو ببندید تازه فایرفاکس باز میشه.
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: doomhammer65ir در 14 مهر 1391، 07:26 ب‌ظ
نقل‌قول
gedit && firefoxاول گدیت رو باز میکنه و وقتی که اون رو ببندید تازه فایرفاکس باز میشه.
اگر گفتید چرا تا زمانی که gedit رو نبندی فایرفوکس اجرا نمیشه ؟
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: محمدرضا ح. در 14 مهر 1391، 08:30 ب‌ظ
نقل‌قول
gedit && firefoxاول گدیت رو باز میکنه و وقتی که اون رو ببندید تازه فایرفاکس باز میشه.
اگر گفتید چرا تا زمانی که gedit رو نبندی فایرفوکس اجرا نمیشه ؟

والا تنها چیزی که از && میدونم اینه که دستورات رو اولویت بندی میکنه. و با ساختارش آشنا نیستم.
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: shervinkh در 14 مهر 1391، 09:34 ب‌ظ
اگه برنامه اول با موفقیت خارج نشه (مقدار غیر صفر return کنه) اونوقت برنامه دوم اجرا نمیشه.(در ساختار &&) و همچنین مقداری که کل دستور برمیگردونه فقط در صورتی صفر هست (صفر به معنی موفقیت) که همه دستور ها با موفقیت اجرا شده باشن.
|| هم برعکس اینه اگه اولی با موفقیت اجرا شه دومی رو اجرا نمی کنه. و مقداری که برمی گردونه هم فقط در صورتی غیر صفر هست که همه دستور ها با شکست مواجه شن.
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: alend در 16 دی 1391، 08:26 ق‌ظ
روی CENTOS بی اثر بود.
عنوان: پاسخ : مفهوم این دستورات چیست؟
ارسال شده توسط: Paracode.net در 16 دی 1391، 05:47 ب‌ظ
من اوبونتو ۱۲ ال تی اس دارم این کد رو زدم سرعت دستگاه اومد پایین بعدشم به حالت هنگ درومد منم هیچ کاری نکردم گفتم بالاخره تموم میشه بعد از تقریبا ۱۰ دیقه دیدم ساعت بالای دسکتاپ عوض نشد با دست ریستارت کردم .
تو سیستم مونیتورینگ دیدم دمای سی پی یو ۷۲ درجه بود . توی یه پست دیگه هم گفتم من از رو اینکه واقا نمیدوستم انجام دادم (آخه عنوان پست این بود : «۸ دستور جادویی») ولی توصیه می کنم این کارو نکنین :)