ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

مفهوم SIGNAL در لينوكس

 
Post new topic   Reply to topic    ParsX.com Forum Index -> مفاهيم اوليه سيستم عامل / Linux
View previous topic :: View next topic  
Author Message
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Mon Jun 27, 2011 11:19 am    Post subject: مفهوم SIGNAL در لينوكس Reply with quote

Ctrl+C : یک سیگنال است - نرم افزار را در حافظه می کشد هم در ویندوز و هم در لینوکس = Break
که داخلش پیام OOB است Out of bound که داده ای درونش نیست . این پیام مجوز رد شدن از خیلی سطوح را دارد
Ctrl+D : نرم افزار را exit می کند
مفهوم سیگنال در لینوکس
Ignore می توان به سیگنا ل توجهی نکرد – می توان یک عکس العملی را انجام داد – تقدیر را به سیستم عامل بسپاریم
اگر نرم افزار قطع شود نباید دیگر به آن سرویس داده شود
تعداد سیگنا ها 64 تا است در لینوکس با دستور مقابل kill –l
SIGPWR برای اعلام قطع شدن برق است که روی باطری روی لب تاپ
SIGHUP : signal hang up
Value کد مربوط به آن سیگنال است که به جای نام آن می توان از آن استفاده کرد
Action عکس العمل در مقابل سیگنال
دستورtrap : برای تعیین یک عکس العمل مناسب برای یک سیگنال است مثلا
trap “cal” 2 اگر کسی کنترل سی زد تقویم را نشان می دهد
trap “ echo break received ” SIGINT  ==  trap “ echo break received ” 2

Hang up یعنی گوشی را گذاشتن – اعدام کردن
SIGWINCH سگنال مینیمایز و ماکزیمم و تغییر سایز است – یک نرم افزار می تواند این سیگنال را Ignore کند
Nohup نرم افزاری که اجرا کرده اید آن را ایمن نگاه می دارد از Break شدن و hang up به آن نمی رسد

#!/bin/bash
Trap “echo break recievef ; exit 1 ” 2
While true
   Do
   Echo “ hello ”
Done
Echo “This Statement will never execute”

Trap “” SIGINT برای Ignore کردن است
دو تا دابل کتیشن خالی
این برنامه هیچ کاه تمام نمی شود
#!/bin/bash
Trap “” 2  # signal 2 = sigint
While true
   Do
   Echo “ hello ”
Done
Echo “This Statement will never execute”

تقدیر را به سیستم عامل می سپاریم با گذاشتن فضای خالی ما بین دابل کتیشن
Trap “ ” SIGINT
سوال امتهان : سیگنال ها را به چند روش می توان مدیریت کرد و هر روش چگونه است.
برنامه ای که می نویسید باید حتما سیگنال را در آن هندل کنید و گرنه در مواقعی ممکن است باعت اختلال در برنامه شوند
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Mon Jun 27, 2011 11:21 am    Post subject: فايل bash_logout Reply with quote

.bash_logout
Cal .bash_logout
زمانی که exit یا Ctrl+D زده شود این فایل اجرا می شود

Read –p “ are you sure?”  answer
If [ $answer = y ]
Then
   Exit
Else
   Bash
If

زیر فایل .bashrc می توان نام مستعار تعریف کرد bash run command
Vim .bashrc
دستور alias برای مشاهده لیست نام های مستعارهای تعریف شده
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Mon Jun 27, 2011 11:22 am    Post subject: Reply with quote

cd dummy
date 06060905
برای ساخت یک فایل >Jalal
برای ساخت یک پوشه mkdir myfolder
پاک کردن پوشه rmdir
Mkdir –p d1/d2/d3/d4/d5/d6/d7/d8
Rm همه چیز را پاک می کند
Rm –f ali پیام ها دیده نمی شود


Printf(“2+2=5”)
L –b | less فایهایی که اسمشان قابل دیدن نیست را نشان می دهد

L ???
L ??*
L [a-z]*
L [0-9]?? فایهایی که با عدد شروع می شود
L [aeiou]* فایهایی که با حروف با صدا شروع می شود

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

Ls کامند اصلی است به جای l
Type l
Man ls
L –a فایهای مخفی را هم نشان می دهد
در لینوکس فایهای نقطه دار مربوط به نرم افزارها است
فایهای نقطه دار فایهای مخفی است
اگر نقطه را از اول یک فایل برداریم از حالت مخفی خارج می شود
فایهای نقطه دار را نباید پاک کنید چون سرعت سیستم بسیار پائین می آید
. یعنی پوشه جاری
.. یعنی پوشه پدر
L .??*
Cd ../../../
تمرین : برنامه ای در .bash_profile قرار دهید که اسم رمز دوم را بخواهد و در صورتی که کاربر اسم رمز را درست وارد ننمود نامه ای به admin ارسال گردد
4 فایل که با .bash شروع می شد داریم
.bash_history برای نگهداری history تمام کامندهایی است که مال شما است که مخفی است
Cat .bash_history
در کامپیوتر مبدا تاریخ 1/1/1970 است EPOCH تعداد ثانیه ها از مبدا تاریخ است
در لینوکس آخرین فایلی که اجرا می کنید .bash_profile است مانند Autoexec.bat در ویندوز

echo salam javad!
read -p "Get other pass:" P
if [ X$P != X123 ]
then
echo "bad pass" | mail -s "wrong pass" admin m.shakiba
exit
fi

اگر در برنامه قبل به جای رمز دوم Ctrl + C زده شود رمز شکسته شده است
Ctrl+C : یک سیگنال است - نرم افزار را در حافظه می کشد هم در ویندوز و هم در لینوکس = Break
که داخلش پیام OOB است Out of bound که داده ای درونش نیست . این پیام مجوز رد شدن از خیلی سطوح را دارد
Ctrl+D : نرم افزار را exit می کند
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> مفاهيم اوليه سيستم عامل / Linux All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum