<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4623421911381139355</id><updated>2024-11-06T06:21:38.226+03:30</updated><category term="آموزش"/><category term="خط فرمان"/><category term="لینوکس"/><category term="اینترنت"/><category term="معرفی ابزارها"/><category term="گوگل"/><category term="اسکریپت bash"/><category term="اوبونتو"/><category term="فدورا"/><category term="هسته"/><category term="کامپایل"/><category term="کرنل"/><title type='text'>گذرگاه آزاد</title><subtitle type='html'>بازنویسی آزادانه‌ی یک دنیای انحصار طلب</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-8060308857707888409</id><published>2018-03-21T19:14:00.001+03:30</published><updated>2018-03-21T19:16:49.152+03:30</updated><title type='text'>انتقال وبلاگ</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;این وبلاگ به آدرس &lt;a href=&quot;http://alimsvi.ir/&quot;&gt;http://alimsvi.ir&lt;/a&gt; انتقال پیدا کرد.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/8060308857707888409/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2018/03/blog-post.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/8060308857707888409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/8060308857707888409'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2018/03/blog-post.html' title='انتقال وبلاگ'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-2122891163478870206</id><published>2014-06-05T15:56:00.004+04:30</published><updated>2014-06-05T16:41:28.024+04:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="آموزش"/><category scheme="http://www.blogger.com/atom/ns#" term="هسته"/><category scheme="http://www.blogger.com/atom/ns#" term="کامپایل"/><category scheme="http://www.blogger.com/atom/ns#" term="کرنل"/><title type='text'>کرنل لینوکس و کامپایل کرنل</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
اخیرا ارائه‌ای برای گروه کاربران لینوکس مشهد داشتم که با توجه به زحمتی که برای این آن کشیده شد، تصمیم گرفتم مطالب ارایه شده را در اینجا نیز منتشر کنم تا قابل استفاده برای سایرین باشد. همچنین اسلایدهای ارایه‌ی مذکور در &lt;a href=&quot;http://www.slideshare.net/tuxitop/ss-35300452&quot; target=&quot;_blank&quot;&gt;اسلایدشیر&lt;/a&gt; موجود بوده و مطالب زیر در قالب فایل PDF بر روی سرور مشهدلاگ وجود داشته و از طریق &lt;a href=&quot;http://www.mashhadlug.org/fa/system/files/compile%20a%20linux%20kernel_0.pdf&quot; target=&quot;_blank&quot;&gt;این لینک&lt;/a&gt; قابل دانلود می‌باشد.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;b&gt;هسته چیست؟&lt;/b&gt;&lt;/h2&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
هسته بخش اصلی اکثر سیستم‌عامل‌های مدرن است. برخی از سیستم‌های عامل ابتدایی فاقد هسته بودند که در این‌گونه سیستم‌ها کاربر مستقیماً با سخت‌افزار ارتباط برقرار می‌نمود. ارتباط مستقیم با سخت‌افزار گرچه باعث افزایش سرعت شده و همچنین دست کاربر را برای برقراری هرگونه ارتباطی با سخت‌افزارش باز می‌گذاشت، اما مشکلات بسیاری را به وجود می‌آورد. یک اشتباه از سوی کاربر و یا یکی از نرم‌افزارها، می‌توانست سخت‌افزار را دچار مشکل کند و همچنین مدیریت نرم‌افزارها برای استفاده از منابع سخت‌افزاری بسیار پیچیده بود.&lt;br /&gt;
برای رفع این‌گونه مشکلات، هسته‌ی سیستم‌عامل به وجود آمد و به عنوان یک رابط بین کاربر و سخت‌افزار طراحی و به یکی از اصلی‌ترین و اساسی‌ترین بخش‌های سیستم‌های عامل امروزی تبدیل شد.&lt;br /&gt;
وظایف هسته&lt;/div&gt;
&lt;h3 style=&quot;text-align: right;&quot;&gt;
۱- مدیریت قطعات:&lt;/h3&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
به جز RAM و CPU قطعات بسیاری به یک کامپیوتر متصل می‌شوند. از جمله کارت‌های گرافیک، صدا، مودم، کارت شبکه و …) که هر یک به نحوی کار می‌کنند و هسته با استفاده از درایورهای مختلف از نحوه‌ی کار آن‌ها مطلع شده و قادر به برقرار ارتباط مناسب بین قطعات می‌شود. هر ارتباطی که با سخت‌افزار صورت می‌گیرد باید از قواعد خاصی پیروی کند و هسته اطمینان پیدا می‌کند که این قواعد به درستی رعایت می‌شوند.&lt;/div&gt;
&lt;h3 style=&quot;text-align: right;&quot;&gt;
۲- مدیریت مموری (حافظه رم)&lt;/h3&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
هر پروسه‌ای که اجرا می‌شود، نیاز به مقدار معینی از حافظه‌ی رم دارد. هسته اطمینان پیدا می‌کند که مقدار حافظه‌ی مورد نیاز هر پروسه، به آن اختصاص داده شود. هسته همچنین باید از تداخل اطلاعات ذخیره شده در حافظه جلوگیری نماید تا اطلاعات مربوط به یک پروسه، توسط پروسه‌ای دیگر دستکاری نشده و مشکلی برای پروسه‌ها به وجود نیاید.&lt;/div&gt;
&lt;h3 style=&quot;text-align: right;&quot;&gt;
۳- مدیریت CPU&lt;/h3&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
هسته برای اطمینان از اینکه هر پروسه مدت زمان لازم را برای استفاده از CPU در اختیار داشته باشد، پروسه‌ها را اولویت‌بندی می‌نماید و زمان لازم را به هر پروسه اختصاص می‌دهد. این مدیریت تنها محدود به زمان نشده و عواملی مثل مجوزهای امنیتی هر پروسه، مالکیت (ownership) پروسه، ارتباطات بین پروسه‌های مختلف و … را شامل می‌شود.&lt;/div&gt;
&lt;h3 style=&quot;text-align: right;&quot;&gt;
۴- ارتباط بین کاربر و سخت‌افزار&lt;/h3&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
در نهایت کرنل وظیفه دارد بستری را برای دسترسی اطلاعات مختلف سخت‌افزاری، منابع سیستم و … در اختیار برنامه‌نویسان و کاربران محیا نماید. برنامه‌نویسان می‌توانند با استفاده از درخواست‌های سیستمی (system calls) به این اطلاعات دسترسی پیدا کرده و در صورت نیاز تغییری در وضعیت سیستم خود به وجود آورند.&lt;/div&gt;
&lt;h2 style=&quot;text-align: right;&quot;&gt;
هسته لینوکس:&lt;/h2&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
یکی از مهم‌ترین بخش‌های سیستم‌عامل لینوکس هسته‌ی آن است و هسته‌ی لینوکس، لینوکس است. بله... نام سیسنم‌عامل لینوکس از نام هسته‌ی آن گرفته شده است.&lt;br /&gt;
پروژه‌ی هسته‌ی لینوکس در سال ۱۹۹۱ و توسط «لینوس توروالدز» ایجاد شد و هنوز هم توسط او مدیریت می‌شود. کرنل لینوکس پس از انتشار اولین نسخه‌‌ی آن در سال ۱۹۹۴، به شدت گسترش پیدا کرد و گرچه عده‌ی انگشت‌شماری تصمیم می‌گیرند که چه کدهایی به هسته راه پیدا کند، اما اکنون بیش از صدها برنامه‌نویس برای هر نسخه‌ی هسته کد می‌نویسند.&lt;br /&gt;
به هسته‌ای که توسط تیم لینوس توروالدز منتشر می‌شود هسته‌ی وانیلی (vanilla kernel) می‌گویند. پس از انتشار هر نسخه از کرنل وانیلی، توزیع‌های لینوکس و پروژه‌های مختلف توسعه‌ی کرنل، تغییرات مورد نظر خود را در هسته‌ی وانیلی ایجاد کرده و برای کاربرانشان منتشر می‌کنند. این هسته‌ها معمولاً شامل امکاناتی می‌شوند که کرنل وانیلی هنوز نمی‌خواهد آن‌ها را پشتیبانی کند و یا به دلایلی پشتیبانی آن‌ها را متوقف کرده است.&lt;/div&gt;
&lt;h2 style=&quot;text-align: right;&quot;&gt;
چگونه هسته‌ی لینوکس را کامپایل کنیم؟&lt;/h2&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: right;&quot;&gt;
۱- جمع‌آوری اطلاعات سخت‌افزاری:&lt;/h3&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
پیش از اینکه بتوانید کرنل خود را کامپایل کنید می‌بایست سخت‌افزارهای سیستم خود را بشناسید. به طور معمول کسی دقیقاً نمی‌داند که از چه سخت‌افزارهایی استفاده می‌کند. خوشبختانه لینوکس ابزارهای خوبی برای شناخت سخت‌افزارهای سیستم دارد که در زیر به معرفی برخی از مهم‌ترین آن‌ها می‌پردازیم:&lt;br /&gt;
&lt;h4 style=&quot;text-align: right;&quot;&gt;
آ. اطلاعات حافظه رم:&lt;/h4&gt;
برای دانستن اطلاعات حافظه‌ی رم خود می‌توانید از دستور زیر استفاده کنید:&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ cat /proc/meminfo
MemTotal:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2030260 kB 
MemFree:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 230200 kB 
MemAvailable:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 604200 kB 
Buffers:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 93492 kB 
Cached:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 506440 kB 
SwapCached:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 kB 
Active:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1146284 kB 
Inactive:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 533528 kB 
Active(anon):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 975512 kB 
Inactive(anon):&amp;nbsp;&amp;nbsp; 220696 kB 
Active(file):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 170772 kB 
Inactive(file):&amp;nbsp;&amp;nbsp; 312832 kB 
Unevictable:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14236 kB 
Mlocked:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14236 kB 
HighTotal:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1149700 kB 
HighFree:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 101624 kB 
LowTotal:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 880560 kB 
LowFree:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 128576 kB 
SwapTotal:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2157564 kB 
SwapFree:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2157500 kB 
…&lt;/pre&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
همین‌طور که مشاهده می‌کنید، مقدار رم سیستم شما و سایر اطلاعات در رابطه با حافظه‌ی خود را می‌توانید در خروجی ببینید. برای به دست آوردن اطلاعت رم همچنین می‌توان از دستور free استفاده نمود.&lt;/div&gt;
&lt;h4 dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
ب. اطلاعات CPU&lt;/h4&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
مشابه رم، برای به دست آوردن اطلاعات مربوط به CPU می‌توان از دستور زیر استفاده کرد:&lt;/div&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ cat /proc/cpuinfo
processor&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0 
vendor_id&amp;nbsp;&amp;nbsp;&amp;nbsp; : GenuineIntel 
cpu family&amp;nbsp;&amp;nbsp;&amp;nbsp; : 6 
model&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; : 23 
model name&amp;nbsp;&amp;nbsp;&amp;nbsp; : Intel(R) Core(TM)2 Duo CPU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T6500&amp;nbsp; @ 2.10GHz 
stepping&amp;nbsp;&amp;nbsp;&amp;nbsp; : 10 
microcode&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0xa07 
cpu MHz&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; : 1200.000 
cache size&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2048 KB 
physical id&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0 
siblings&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2 
core id&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; : 0 
cpu cores&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2 
apicid&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; : 0 
initial apicid&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0 
fdiv_bug&amp;nbsp;&amp;nbsp;&amp;nbsp; : no 
f00f_bug&amp;nbsp;&amp;nbsp;&amp;nbsp; : no 
coma_bug&amp;nbsp;&amp;nbsp;&amp;nbsp; : no 
fpu&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; : yes 
fpu_exception&amp;nbsp;&amp;nbsp;&amp;nbsp; : yes 
cpuid level&amp;nbsp;&amp;nbsp;&amp;nbsp; : 13 
wp&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; : yes 
flags&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm 
bogomips&amp;nbsp;&amp;nbsp;&amp;nbsp; : 4190.70 
clflush size&amp;nbsp;&amp;nbsp;&amp;nbsp; : 64 
cache_alignment&amp;nbsp;&amp;nbsp;&amp;nbsp; : 64 
address sizes&amp;nbsp;&amp;nbsp;&amp;nbsp; : 36 bits physical, 48 bits virtual 
power management:&lt;/pre&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
همان‌طور که می‌بینید، اطلاعات کاملی در رابطه با سی‌پی‌یو توسط این دستور به دست می‌آید.&lt;/div&gt;
&lt;h4 dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
پ. قطعات PCI&lt;/h4&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
برای اطلاع از قطعات PCI متصل شده به دستگاهتان می‌توانید از دستور زیر استفاده کنید:&lt;/div&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ lspci -k
00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: agpgart-intel 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: intel_agp 
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: i915 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: i915 
00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: uhci_hcd 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: uhci_hcd 
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: uhci_hcd 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: uhci_hcd 
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: uhci_hcd 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: uhci_hcd 
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: ehci-pci 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: ehci_pci 
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: snd_hda_intel 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: snd_hda_intel 
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: pcieport 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: shpchp 
00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: pcieport 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: shpchp 
00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: pcieport 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: shpchp 
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: pcieport 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: shpchp 
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: uhci_hcd 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: uhci_hcd 
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: uhci_hcd 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: uhci_hcd 
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: uhci_hcd 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: uhci_hcd 
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: ehci-pci 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: ehci_pci 
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93) 
00:1f.0 ISA bridge: Intel Corporation ICH9M LPC Interface Controller (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: lpc_ich 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: lpc_ich 
00:1f.2 IDE interface: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: ata_piix 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: ata_piix, pata_acpi, ata_generic 
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: i801_smbus 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: i2c_i801 
00:1f.5 IDE interface: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] (rev 03) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: ata_piix 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: ata_piix, pata_acpi, ata_generic 
09:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8040 PCI-E Fast Ethernet Controller (rev 13) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Device 02aa 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: sky2 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: sky2 
0c:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: Dell Wireless 1397 WLAN Mini-Card 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel driver in use: b43-pci-bridge 
&amp;nbsp;&amp;nbsp;&amp;nbsp; Kernel modules: ssb&lt;/pre&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
این دستور اطلاعات جامعی در رابطه با سخت‌افزار شما می‌دهد. مهم‌ترین این اطلاعات نام درایور و ماژولی که در هسته‌ی فعلی برای کار با هر سخت‌افزار استفاده شده است، می‌باشد. این اطلاعات یافتن درایور مورد نیاز هر سخت‌افزار را به هنگام تنظیم هسته برای شما ساده‌تر می‌کند.&lt;/div&gt;
&lt;h4 dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
ت. قطعات USB&lt;/h4&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
دستور زیر اطلاعات مورد نیاز در مورد قطعات usb متصل به دستگاه را به شما می‌دهد:&lt;/div&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ lsusb
Bus 005 Device 003: ID 125f:a94a A-DATA Technology Co., Ltd. 
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 006 Device 002: ID 1bcf:0005 Sunplus Innovation Technology Inc. 
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 004 Device 004: ID 05ca:180a Ricoh Co., Ltd 
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 001 Device 004: ID 413c:8162 Dell Computer Corp. Integrated Touchpad [Synaptics] 
Bus 001 Device 003: ID 413c:8161 Dell Computer Corp. Integrated Keyboard 
Bus 001 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth) 
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;/pre&gt;
&lt;h3 dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
۲- ماژول‌های هسته:&lt;/h3&gt;
&lt;h4 dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
۱- ماژول چیست؟&lt;/h4&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
هسته فایلی است که توسط راه‌انداز (boot loader) در مموری قرار می‌گیرد، اما لینوکس توانایی بارگزاری ماژول‌های هسته را نیز در حافظه، دارد.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
ماژول هسته، بخشی از هسته است که می‌تواند به صورت پویا در حافظه قرار بگیرد و یا از حافظه خارج شود. یعنی شما می‌توانید هسته‌ای داشته باشید که از یک سخت‌افزار خاص پشتیبانی کند اما تا زمانی که واقعاً به آن سخت‌افزار نیازی نباشد آن را در حافظه قرار ندهد. این کار باعث کوچکتر شدن حجم هسته می‌شود.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
ماژول‌ها معمولاً برای قطعات قابل شدن (مثل دستگاه‌های USB) استفاده می‌شوند، ولی توزیع‌های مختلف لینوکس که قصد پشتیبانی سخت‌افزارهای متفاوت کاربرانشان را دارند معمولاً درایور بسیاری از سخت‌افزارها را به صورت ماژول تنظیم می‌کنند و به هنگام بالاآمدن سیستم، ماژول‌های مورد نیاز را در حافظه بارگزاری می‌کنند. لینوکس به صورت خودکار سخت‌افزارهای سیستم را شناسایی نموده و ماژول درایور مورد نیاز هر کدام را بارگزاری می‌کند.&lt;/div&gt;
&lt;h4 dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
۲- Initial Ram Disk&lt;/h4&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
مهم است بدانیم که ماژول‌ها خود در جایی ذخیره شده و از آنجا بارگزاری می‌شوند. بنابراین شما نمی‌توانید ماژول درایور یک دیسک سخت را در همان دیسک سخت قرار دهید و انتظار داشته باشید که لینوکس آن را بارگزاری نماید. و یا قراردادن ماژول درایور سیستم‌فایلی ext3 در یک پارتیشن ext3 کار نادرستی است. برای اینکه بتوان از چنین ماژول‌هایی می‌بایست از initial ram disk یا initrd استفاده کرد. Initrd فایلیست که چنین ماژول‌هایی را در خود جا می‌دهد و توسط راه‌انداز در حافظه قرار می‌گیرد تا هسته بتواند در صورت نیاز از این فایل استفاده کند.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
لازم به ذکر است به جز مواردی که نیاز به پشتیبانی از طیف زیادی از سخت‌افزارها وجود داشته باشد، هسته‌ای که خوب کامپایل شود، نیازی به initrd ندارد. گرچه هسته‌ی لینوکس به صورت پیش‌فرض قادر به ایجاد فایل initrd می‌باشد.&lt;/div&gt;
&lt;h4 dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
3- کار با ماژول‌ها&lt;/h4&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
مهم‌ترین دستورات برای کار با ماژول‌ها lsmod، rmmod و modprobe هستند. برای لیست کردن ماژول‌هایی که در حال حاضر برای سیستم شما بارگزاری شده‌اند از دستور lsmod استفاده می‌شود:&lt;/div&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ lsmod
Module&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size&amp;nbsp; Used by 
fuse&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 71217&amp;nbsp; 3 
joydev&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7691&amp;nbsp; 0 
arc4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1596&amp;nbsp; 2 
b43&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 347917&amp;nbsp; 0 
bcma&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31394&amp;nbsp; 1 b43 
mac80211&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 446215&amp;nbsp; 1 b43 
cfg80211&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 388522&amp;nbsp; 2 b43,mac80211 
rng_core&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2888&amp;nbsp; 1 b43 
mousedev&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9164&amp;nbsp; 0 
ums_realtek&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6579&amp;nbsp; 0 
hid_generic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 781&amp;nbsp; 0 
pcspkr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1519&amp;nbsp; 0 
iTCO_wdt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4599&amp;nbsp; 0 
gpio_ich&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3633&amp;nbsp; 0 
iTCO_vendor_support&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1577&amp;nbsp; 1 iTCO_wdt 
dell_wmi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1249&amp;nbsp; 0 
dell_laptop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11305&amp;nbsp; 0 
sparse_keymap&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2742&amp;nbsp; 1 dell_wmi 
led_class&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2699&amp;nbsp; 2 b43,dell_laptop 
rfkill&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12995&amp;nbsp; 3 cfg80211,dell_laptop&lt;/pre&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
خروجی این دستور نام ماژول، فضایی که ماژول مصرف می‌کنند و تعداد/نام ماژول‌هایی که به آن وابسته‌اند را نمایش می‌دهد.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
برای این که یک ماژول را از حافظه خارج کنید، ابتدا مطمئن شوید که ماژول دیگری به آن وابسته نیست و سپس به صورت زیر عمل کنید:&lt;/div&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# rmmod iTCO_wdt&lt;/pre&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
و برای بارگزاری یک ماژول:&lt;/div&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# modprobe iTCO_wdt&lt;/pre&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
یکی از فواید استفاده از ماژول‌ها در هسته این است که می‌توان در صورت نیاز برخی پارامترهای یک ماژول را به هنگام بارگزاری آن تغییر داده و نحوه‌ی کار ماژول را با استفاده از پارامترهایی که هر ماژول پشتیبانی می‌کند، تحت تأثیر قرار داد. با دستور زیر می‌توان اطلاعاتی درباره‌ی هر ماژول به دست آورد:&lt;/div&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ modinfo uvcvideo
filename:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /lib/modules/3.14.3-1-ARCH/kernel/drivers/media/usb/uvc/uvcvideo.ko.gz 
version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.1.1 
license:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPL 
description:&amp;nbsp;&amp;nbsp;&amp;nbsp; USB Video Class driver 
author:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Laurent Pinchart &lt;laurent .pinchart=&quot;&quot; ideasonboard.com=&quot;&quot;&gt; 
srcversion:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B6EAA5A26874F36D613FD21 
...
depends:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videodev,videobuf2-core,usbcore,media,videobuf2-vmalloc 
intree:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y 
vermagic:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.14.3-1-ARCH SMP preempt mod_unload modversions 686 
parm:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clock:Video buffers timestamp clock 
parm:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nodrop:Don&#39;t drop incomplete frames (uint) 
parm:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quirks:Forced device quirks (uint) 
parm:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trace:Trace level bitmask (uint) 
parm:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timeout:Streaming control requests timeout (uint) &lt;/laurent&gt;&lt;/pre&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
&lt;laurent .pinchart=&quot;&quot; ideasonboard.com=&quot;&quot;&gt; و در نهایت می‌توان ماژول را با پارامتر مورد نیاز بارگزاری کرد:&lt;/laurent&gt;&lt;/div&gt;
&lt;laurent .pinchart=&quot;&quot; ideasonboard.com=&quot;&quot;&gt;&lt;/laurent&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# modprobe uvcvideo nodrop=1&lt;/pre&gt;
&lt;br /&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
&lt;laurent .pinchart=&quot;&quot; ideasonboard.com=&quot;&quot;&gt; البته می‌توان برای همیشگی کردن یک پارامتر، آن را به همراه نام ماژول در یک فایل در فولدر /etc/modprobe.d/ قرار داد:&lt;/laurent&gt;&lt;/div&gt;
&lt;laurent .pinchart=&quot;&quot; ideasonboard.com=&quot;&quot;&gt;&lt;/laurent&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# cat /etc/modprobe.d/uvcvideo
options uvcvideo nodrop=1&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;h3&gt;
3- تنظیم هسته&lt;/h3&gt;
همیشه گفته می‌شود که کامپایل کردن هسته زمان بسیاری را می‌برد. اما بیشتر زمانی که برای کامپایل هسته سپری می‌شود، به هنگام تنظیم کردن آن است. خوشبختانه تنظیمات قابل ذخیره‌سازی و استفاده‌ی مجدد بوده و نیازی نیست که هر بار مجدداً زمان زیادی را برای تنظیم هسته سپری کنیم.&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
برای تنظیم هسته بد نیست نگاهی به وبسایت آقای «Pappy McFae» به آدرس &lt;a href=&quot;http://www.kernel-seeds.org/&quot;&gt;http://www.kernel-seeds.org&lt;/a&gt; بیاندازید. ایشان یکی از کاربران توزیع جنتو هستند که منابع خوبی برای توضیح تنظیمات مختلف کرنل ایجاد کرده‌اند.&lt;br /&gt;
&lt;h4&gt;
آ. ابزار تنظیم هسته&lt;/h4&gt;
هسته به صورت پیش‌فرض دارای ابزاری برای تنظیم آن است. اگر به محل سورس هسته‌ی خود بر روی هارد دیسکتان بروید و دستور make menuconfig را وارد کنید. ابزار تنظیم هسته اجرا خواهد شد و شما با گزینه‌های بسیار زیادی برای تنظیم بخش‌ها و قابلیت‌های مختلف هسته روبرو خواهید شد.&lt;br /&gt;
این ابزار کاری بیش از ویرایش یک فایل متنی به نام config. را که در محل سورس کرنل ایجاد می‌شود، بر عهده ندارد. با این حال ویرایش دستی این فایل به هیچ وجه توصیه نمی‌شود و شما می‌توانید اگر قبلاً یک فایل config. را ایجاد کرده‌اید پیش از تنظیم مجدد از آن بک‌آپ بگیرید تا مطمئن شوید مشکلی به وجود نخواهد آمد.&lt;br /&gt;
&lt;h4&gt;
ب. چند نکته پیش از تنظیم کردن&lt;/h4&gt;
&lt;b&gt; ۱.&lt;/b&gt;&lt;br /&gt;
از هسته‌ی لینوکس ورژن ۲.۶.۳۲ به بعد، آپشن‌های localmodconfig و localyesconfig به هسته اضافه شده است. همان‌طور که پیش‌تر گفته شد هسته به صورت پیش‌فرض سخت‌افزار را شناسایی و ماژول‌های مورد نیاز را لود می‌کند. با استفاده از آپشن localmodconfig می‌توان سخت‌افزارهای شناسایی شده را به عنوان ماژول در هسته تنظیم کرد تا فایل config. ما چیزی برای شروع تنظیمات داشته باشد.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# make localmodconfig&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
با استفاده از localyesconfig نیز می‌توان سخت‌افزارهای شناسایی شده را در خود هسته کامپایل نمود.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
&lt;b&gt; ۲.&lt;/b&gt;&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
به هنگام کار با ابزار تنظیم هسته، می‌توان از کلید ? برای مشاهده‌ی راهنمای هر گزینه استفاده کرد. و همچنین برای جستجوی یک عبارت خاص می‌توان از کلید / استفاده نمود.&lt;/div&gt;
&lt;h3 dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
۴- کامپایل هسته&lt;/h3&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
پس از اینکه کار تنظیم هسته شما تمام شد با استفاده از گزینه exit و تأیید اینکه قصد ذخیره‌سازی تنظیمات را دارید به محیط ترمینال خود برگشته و برای کامپایل هسته دستور زیر را وارد کنید.&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ make&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
کامپایل هسته با توجه به قدرت سی‌پی‌یو شما و نحوه‌ی تنظیم شما ممکن است از ۱۵ دقیقه تا بیش از دو ساعت به طول انجامد. پس از اتمام این مرحله کرنل کامپایل شده در با توجه به معماری سیستم شما (۶۴ بیتی یا ۳۲ بیتی) در هارد دیسک شما ذخیره می‌شود. به عنوان مثال در یک سیستم ۳۲ بیتی در آدرس arch/i386/boot/bzImage می‌توان هسته کامپایل شده را یافت.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
به صورت پیش‌فرض دستور make مراحل کامپایل را یک به یک انجام می‌دهد. با این حال بیشتر سیستم‌ها دارای سی‌پی‌یوهای چند هسته‌ای می‌باشند که قابلیت کامپایل موازی را به کاربر می‌دهد. برای اینکه از این قابلیت استفاده کنید می‌توانید با استفاده از دستور پارامتر j- و تعداد هسته‌های سی‌پی‌یو خود اجرای موازی این دستور را ممکن ساخته و سرعت کامپایل هسته را افزایش دهید. به عنوان مثال برای یک سی‌پی‌یو ۴ هسته‌ای می‌توان دستور زیر را اجرا کرد:&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ make -j4&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;br /&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
پس از کامپایل هسته، نوبت به نصب ماژول‌ها می‌شود. دستور زیر را اجرا کنید تا ماژول‌ها در محل مناسب نصب شوند. (lib/modules/[kernelversion]/)&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# make modules_install&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
در نهایت هسته‌ی کامپایل شده را به آدرس boot/ کپی کنید.&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# cp arch/boot/i386/bzImage /boot/kernel-3&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;h3 dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
۵- تنظیم گراب&lt;/h3&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
برای تنظیم گراب کافی است یک بار دستور آپدیت تنظیمات گراب را وارد نمایید تا گراب به صورت خودکار کرنل جدید را شناسایی و آن را در منوی راه‌انداز شما قرار دهد:&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# grub-mkconfig -o /boot/grub/grub.cfg&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
&lt;h3 style=&quot;text-align: right;&quot;&gt;
۶- کامپایل مجدد هسته&lt;/h3&gt;
تصور کنید که هسته شما با موفقیت کامپایل شده و با رضایت از آن استفاده می‌کنید اما پس از مدتی نیازمند به روز رسانی هسته خود می‌شوید. در این حالت نیازی به اجرای مجدد همه‌ی موارد بالا نیست و می‌توان با چند دستور ساده تنظیمات هسته فعلی خود را استفاده کنید. ابتدا به سورس هسته‌ی خود رفته و دستور زیر را اجرا کنید:&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# zcat /proc/config.gz .config&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
فایل config.gz به صورت پیش‌فرض در هسته کامپایل شده و شامل تنظیمات هسته شما می‌باشد. با اجرای این دستور می‌توانید تنظیمات قبلی ا به شاخه‌ی هسته‌ی جدید خود کپی کنید و سپس با استفاده از دستور زیر از آن بهره‌برده کنید.&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ make oldconfig&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
اجرای این دستور باعث می‌شود که فقط در مورد تنظیماتی که تغییر کرده‌اند شما سؤال کند.&lt;br /&gt;
پس دستور بالا مراحل make و make modules_install را انجام داده و گراب خود را به روز رسانی کنید.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/2122891163478870206/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2014/06/blog-post_5.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/2122891163478870206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/2122891163478870206'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2014/06/blog-post_5.html' title='کرنل لینوکس و کامپایل کرنل'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-4382409835827456263</id><published>2010-12-29T18:40:00.001+03:30</published><updated>2012-02-19T01:42:46.761+03:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="آموزش"/><category scheme="http://www.blogger.com/atom/ns#" term="خط فرمان"/><category scheme="http://www.blogger.com/atom/ns#" term="لینوکس"/><title type='text'>زمان‌بندی پروسه‌ها در لینوکس - بخش دوم: cron</title><content type='html'>&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot; trbidi=&quot;on&quot;&gt;
&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;div style=&quot;direction: rtl;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;در بخش اول، فرمان‌های sleep و at رو توضیح دادم، و در این بخش، به معرفی cron، یکی از قدرتمندترین ابزارهای زمان‌بندی خواهم پرداخت.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cron چیست؟&lt;/b&gt;&lt;br /&gt;
Cron یک Daemon است که وظایفی رو که از طریق دستور crontab دریافت می‌کنه، در زمان‌های مشخص‌شده اجرا می‌کنه. در واقع کار cron اینه که هر دقیقه بیدار شه و بررسی کنه که آیا در crontab کاربرهای مختلف کاری (cron-job) هست که انجام بده؟&lt;br /&gt;
(توجه کنید که crontab هم نام لیستی از cron-jobهاست و هم نام فرمانی که از طریق آن لیست کارها مشخص و ویرایش می‌شود.)&lt;br /&gt;
&lt;br /&gt;
به عنوان مثال ممکنه یک پدر قصد داشته باشه دسترسی به اینترنت رو هر شب ساعت ۹ قطع کنه. و یا اینکه یک مدیر بخواد دسترسی به نرم‌افزارهای مسنجر رو در طی ساعات کاری برای کارمنداش غیر ممکن کنه. و یا اینکه ممکنه کسی بخواد در زمانی که جلوی سیستمش حضور نداره، یک سری از لاگ‌های سیستم روزی یک بار براش میل بشه.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;فایل /etc/crontab&lt;/b&gt;&lt;br /&gt;
Cron تمام این کارها رو از طریق بررسی فایل‌های تنظیمات خاصش به نام crontabها انجام می‌ده. به این معنی که ما باید crontabها رو تنظیم کنیم تا cron محتویات اون‌ها رو بررسی و دستورات درون آن‌ها رو در زمان مشخص شده انجام بده. اولین و مرسوم‌ترین فایل تنظیمات /etc/crontab هست. هر سطر دستور در این فایل از یک الگوی کلی به شکل زیر پیروی می‌کنه:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;img height=&quot;149&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4a6PYYkvxSVxfNYGZIMbMY2nDL2qWOIMV4F48yxW4w2IrudmdKMxhmctC-bKv8oSEOwHkOezIMAXe4eB8GWKcqIR1oQ-etAz8o3gemKoajqHzOvOQFzAL8Wg8UfkAT1qnZAvxpc0ABA8//?imgmax=800&quot; style=&quot;max-width: 800px;&quot; width=&quot;389&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;right&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;دقیقه عددی بین ۰ و ۵۹، ساعت بین ۰ تا ۲۳ و روز در ماه بین ۱ تا ۳۱ می‌باشد. در مورد ماه و روز هفته هم می‌شه از سه حرف اول روز یا ماه استفاده کرد مثل: feb, jan, mon, wed و هم می‌شه از اعداد استفاده کرد. (یکشنبه: ۰، دوشنبه: ۱ تا آخر)&lt;br /&gt;
در هر یک از ستون‌های مربوط به زمان یکی از حالت‌های زیر ممکنه نوشته بشه:&lt;br /&gt;
*، به معنی هر زمانی (مثلا گذاشتن * در ستون دقیقه یعنی تمام دقایق)&lt;br /&gt;
یک عدد&lt;br /&gt;
چند عدد که با کاما جدا شده اند. (5,7,13)&lt;br /&gt;
یک بازه (5-10)&lt;br /&gt;
یک بازه به همراه پله ( 20/2-10 = 10, 12, 14, 16, 18, 20 و 5/* یعنی 5, 10, 15, ...)&lt;br /&gt;
&lt;br /&gt;
به عنوان مثال دو سطر زیر رو در نظر بگیرید:&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;*/10  *     *  5,7,11  *    root command1
0     9-18  *  *       1-5  root command2&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;در سطر اول در ماه‌های می، جولای و نوامبر هر ده دقیقه command1 اجرا می‌شه. در سطر دوم هم command2 در روزهای دو‌شنبه تا جمعه و در ساعات ۹ صبج تا ۶ بعد از ظهر هر ساعت اجرا می‌شه.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
&lt;b&gt;run-parts&lt;/b&gt;:&lt;br /&gt;
با اینکه زمان‌بندی دستورات توسط فایل /etc/crontab یک کار کاملا عملی‌است، اکثر توزیع‌های لینوکس در حال حاضر از اسکریپتی به نام run-parts برای اجرای دستورات استفاده می‌کنن. به عنوان مثال یک نمونه از فایل /etc/crontab در توزیع fedora رو ببینید:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;درواقع کاری که اسکریپت run-parts می‌کنه اینه که اسکریپت‌های قابل اجرا رو در یک فولدر اجرا می‌کنه. مثلا اگر شما قصد داشته باشید که اسکریپتتون هفته‌ای یک بار اجرا بشه، فقط کافیه اون رو توی فولدر /etc/cron.weekly کپی کنید.&lt;br /&gt;
استفاده از این روش خیلی راحته اما، دیگه امکان زمانبندی دقیق وجود نداره و طبیعتا با این‌روش نمی‌شه هر شب ساعت ۹ اینترنت رو قطع کرد و صبح وصلش کرد.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cron برای همه&lt;/b&gt;:&lt;br /&gt;
نیازی به این نیست که برای همه‌ی دستورها از /etc/crontab و کاربر ریشه استفاده کرد. هر کاربر دیگه‌ای هم می‌تونه یک فایل crontab مخصوص به خودش داشته باشه و دستوراتی رو که اجازه‌ی اجراشون رو داره، به وسیله‌ی این فایل زمان‌بندی کنه. این فایل معمولا در فولدر /var/spool/cron/crontab و به نام کاربر ذخیره می‌شه و فرمتش هم مثل /etc/crontab هست با این تفاوت که ستون کاربر وجود نداره.&lt;br /&gt;
البته کاربرها اجازه‌ی ویرایش مستقیم فایل crontab خودشون رو ندارن و برای اینکار باید از دستور crontab -e استفاده کنن.&lt;br /&gt;
کاربر ریشه می‌تونه تعیین کنه که کدام کاربرها حق استفاده از دستور crontab رو داشته باشن. این کار با استفاده از دو فایل /etc/cron.allow و /etc/cron.deny انجام می‌شه و همینطور که از نام فایل‌ها پیداست، اگر اسم یک کاربر در فایل /etc/cron.allow باشه اون کاربر اجازه‌ی دسترسی به crontab رو داره و اگر اسم کاربر در /etc/cron.deny باشه اون کاربر اجازه‌ی دسترسی به crontab رو نداره. البته مسلما بعد از انجام تغییرات در این فایل‌ها، باید یک بار logout و دوباره login کنید تا تغییرات اعمال بشه.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;چند نکته‌&lt;/b&gt;:&lt;br /&gt;
دستوراتی که به cron می‌دین بهتره که شامل محل دقیق دستور باشه چرا که cron فقط توی شاخه‌های /usr/bin و /bin به دنبال دستورها می‌گرده.&lt;br /&gt;
همین‌طور معمولا خروجی استاندارد و ارورهای یک دستور رو به یک فایل redirect می‌کنن تا بعدا بشه خروجی رو دید:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;15 6 * * * /usr/bin/someprog &amp;gt; /tmp/someprog.out 2&amp;gt;&amp;amp;1&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt; الان زمان اون رسیده که خودتون cron رو امتحان کنید و ببینید چه کارایی ازش بر میاد.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;-- برای خوندن قسمت اول این نوشته &lt;a href=&quot;http://tuxcity.blogspot.com/2010/12/sleep-at.html&quot; target=&quot;_blank&quot;&gt;اینجا&lt;/a&gt; رو کلیک کنید.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/4382409835827456263/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2010/12/cron.html#comment-form' title='1 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/4382409835827456263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/4382409835827456263'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2010/12/cron.html' title='زمان‌بندی پروسه‌ها در لینوکس - بخش دوم: cron'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4a6PYYkvxSVxfNYGZIMbMY2nDL2qWOIMV4F48yxW4w2IrudmdKMxhmctC-bKv8oSEOwHkOezIMAXe4eB8GWKcqIR1oQ-etAz8o3gemKoajqHzOvOQFzAL8Wg8UfkAT1qnZAvxpc0ABA8/s72-c/?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-7261075441388461244</id><published>2010-12-14T22:38:00.001+03:30</published><updated>2012-02-19T01:43:56.553+03:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="آموزش"/><category scheme="http://www.blogger.com/atom/ns#" term="خط فرمان"/><category scheme="http://www.blogger.com/atom/ns#" term="لینوکس"/><title type='text'>زمان‌بندی پروسه‌ها در لینوکس - بخش اول: فرمان‌های sleep و at</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;div style=&quot;direction: rtl;&quot;&gt;
&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;شاید خیلی خوب می‌شد اگر ما هر زمان که نیاز داشتیم، می‌تونستیم به سیستم خودمون دسترسی پیدا کنیم و فرمان‌های لازم رو بهش بدیم؛ اما متاسفانه هیچ‌کس چنین توانایی‌ای رو نداره. مدت‌های زیادی آدم به دور از سیستم خودش است و بد نیست به جای بیکار گذاشتن سیستم در این مدت، لیست کارهایی رو که در زمان‌های مختلف باید انجام بده رو بهش بدیم و اون خودش کارها رو انجام بده. اینجوری هم ما به کار و زندگی‌مون می‌رسیم و هم سیستممون!!!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;من قصد دارم در طی دو پست سه روش مرسوم برای زمان‌بندی پروسه‌های مختلف رو توضیح بدم. در پست اول به فرمان‌های sleep&amp;nbsp; و at می‌پردازم و در پست دوم شما رو با قدرت cron آشنا می‌کنم.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;۱- فرمان sleep:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;این فرمان کار زیادی انجام نمی‌ده و و اگر نگاهی به راهنمای اون بندازین می‌بینین که راهنمای بسیار کوتاهیه. در واقع کاری که sleep انجام می‌ده اینه که هر چقدر که ما ازش بخوایم صبر می‌کنه.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;تصور کنید مشغول فیلم دیدن هستید و باید بعد از نیم ساعت سری به غذای روی گاز هم بزنید. فرمان زیر رو وارد می‌کنید و بعد از نیم ساعت سیستم به شما یادآوری می‌کنه که به گاز سر بزنید&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ (sleep 1800; notify-send &quot;You should check the oven...\!&quot;) &amp;amp;&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;۲- فرمان at:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;برای اینکه به سیستم بگیم در یک زمان خاص چند فرمان خاص رو اجرا کن، از فرمان at استفاده می‌کنیم. روش استفاده از این دستور بسیار ساده است.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;به چند روش مختلف می‌شه زمان مورد نظرتون رو به این فرمان بدید. به عنوان مثال اگر قصد دارید ساعت ۳ بعد از ظهر به یکی از دوستانتون زنگ بزنید:&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ at 15:00
at&amp;gt; notify-send &quot;Remember to call your friend...\!&quot;
at&amp;gt; &amp;lt;eot&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;زمانی که لیست فرمان‌هایی که قصد انجامشان را دارید تمام شد، با فشردن کلیدهای ctrl + D و یا نوشتن عبارت &amp;lt;eot&amp;gt; می‌تونید به نوشتن خاتمه دهید.&lt;br /&gt;
اگر قرار باشه فردا ساعت ۳ بعد از ظهر به دوستتون زنگ بزنید از فرمان زیر استفاده می‌کنید:&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ at 15:00 tomorrow&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;و به همین شکل اگر قرار باشه کاری رو در نیمه‌شب ۱۷ جولای انجام بدین:&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ at midnight July 17&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;و همین‌طور اگر می‌خواهید سال دیگه تولد دوستتون بهتون یادآوری بشه:&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ at 09:00 July 04 2011&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;فکر می‌کنم به خوبی متوجه شده باشید که چجوری می‌شه از فرمان at استفاده کرد. برای دیدن لیست کارهای زمان‌بندی شده می‌تونید از فرمان زیر استفاده کنید:&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ atq&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;البته به جای فرمان بالا از at -l هم می‌توان استفاده کرد!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;همچنین اگر قصد دارید یکی از فعالیت‌ها(به عنوان مثال فعالیت شماره ۳) رو‌ پاک کنید، باید از فرمان زیر استفاده کنید:&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;$ atrm 3&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;که به جای دستور بالا می‌توان از at -r3 استفاده کرد.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;منتظر پست بعد و روش‌های حرفه‌ای‌تر زمانبندی پروسه‌ها باشید.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;--&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt; برای مطالعه‌ی قسمت دوم این نوشته &lt;a href=&quot;http://tuxcity.blogspot.com/2010/12/cron.html&quot; target=&quot;_blank&quot;&gt;اینجا&lt;/a&gt; رو کلیک کنید.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/7261075441388461244/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2010/12/sleep-at.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/7261075441388461244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/7261075441388461244'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2010/12/sleep-at.html' title='زمان‌بندی پروسه‌ها در لینوکس - بخش اول: فرمان‌های sleep و at'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-5312246906292133681</id><published>2010-07-02T15:27:00.001+04:30</published><updated>2012-02-19T01:45:51.767+03:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="اینترنت"/><category scheme="http://www.blogger.com/atom/ns#" term="خط فرمان"/><category scheme="http://www.blogger.com/atom/ns#" term="لینوکس"/><category scheme="http://www.blogger.com/atom/ns#" term="معرفی ابزارها"/><category scheme="http://www.blogger.com/atom/ns#" term="گوگل"/><title type='text'>استفاده از سرویس‌های مختلف گوگل از طریق ترمینال</title><content type='html'>&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;اگر از گوگل و سرویس‌های مختلف اون استفاده می‌کنید و در عین حال جزو طرفدارای لینوکس و ترمینالش هم هستید، احتمالا خیلی خوشحال‌ خواهید شد اگه بدونید نرم‌افزاری برای انجام اعمال مختلف در سرویس‌های گوگل از طریق ترمینال نوشته شده است.&lt;br /&gt;
&lt;br /&gt;
نرم‌افزار &lt;a href=&quot;http://code.google.com/p/googlecl/&quot; target=&quot;_blank&quot;&gt;googleCL&lt;/a&gt; نرم‌افزاریه که به زبان پایتون و با استفاده از &lt;a href=&quot;http://code.google.com/apis/gdata/docs/directory.html&quot; target=&quot;_blank&quot;&gt;Gdata APIs&lt;/a&gt; که خود گوگل اون‌ها رو ارائه داده نوشته شده و در هر سه پلتفرم لینوکس، ویندوز و MacOS قابل استفاده ‌است. این نرم‌افزار در حال حاضر تنها برای بعضی سرویس‌های گوگل که API اونها در دسترس قرار داره، قابل استفاده است. این سرویس‌ها شامل بلاگر، Calendar، Contacts، Docs، Picasa و یوتیوب می‌شه. شاید اگر گوگل API سرویس‌های دیگه‌اش رو هم ارائه بده این نرم‌افزار کاربرد بیشتری داشته باشه.&lt;br /&gt;
&lt;br /&gt;
نحوه‌ی نصب و استفاده از این نرم‌افزار بسیار ساده است. در بعضی توزیع‌های لینوکس این نرم‌افزار در ریپوزیتوری توزیع‌ وجود داره و نیازی به کمپایل اون نیست. با این حال برای کمپایل کردن اون می‌تونید به روش زیر عمل کنید:&lt;br /&gt;
&lt;br /&gt;
۱- دانلود کتابخانه &lt;a href=&quot;http://code.google.com/p/gdata-python-client/&quot;&gt;gdata-python-client&lt;/a&gt;&lt;br /&gt;
۲- دانلود نرم‌افزار &lt;a href=&quot;http://code.google.com/p/googlecl/&quot; target=&quot;_blank&quot;&gt;googleCL&lt;/a&gt;&lt;br /&gt;
۳- خارج‌کردن فایل‌ها از حالت فشرده و نصب اون‌ها با استفاده از فرمان‌های زیر:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;cd gdata
python setup.py install
cd ../googleCL
python setup.py install&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;و اما جهت استفاده از این نرم‌افزار بد نیست نگاهی به &lt;a href=&quot;http://code.google.com/p/googlecl/wiki/Manual&quot; target=&quot;_blank&quot;&gt;دستورالعمل استفاده&lt;/a&gt; از این نرم افزار و همچین این &lt;a href=&quot;http://code.google.com/p/googlecl/wiki/ExampleScripts&quot; target=&quot;_blank&quot;&gt;مثال‌ها&lt;/a&gt; بیاندازید. البته می‌تونید با استفاده از فرمان زیر صفحه‌ی راهنمای این نرم‌افزار رو هم بخونید.&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;man google&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;به عنوان مثال برای دانلود لیست کانتکت‌های موجود در Google Contacts خودتون می‌تونید از فرمان زیر استفاده کنید:&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;google contacts list name, email&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;اگر برای اولین بار از یکی از سرویس‌های این نرم‌افزار استفاده کنید پس از وارد کردن اکانت گوگل‌تون ازتون می‌خواد از طریق یک مرورگر اجازه‌ی دسترسی به اطلاعاتتون رو بهش بدید و سپس کلید Enter رو بزنید.&lt;br /&gt;
&lt;br /&gt;
همچنین بدیهیه که با ادغام فرمان‌های مختلف لینوکس و قابلیت‌های مختلف ترمینال می‌تونید به نتایج جالب‌تری برسید. مثلا فرمان زیرکه لیست نام و ای‌میل تمام افرادی رو که نام اون‌ها ثبت شده رو در قالب فایل contacts.scv به ما می‌ده:&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;google contacts list name,email --title &quot;.*.&quot; &amp;gt; contacts.csv&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;امیدوارم از این نرم‌افزار لذت ببرید.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/5312246906292133681/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2010/07/blog-post.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/5312246906292133681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/5312246906292133681'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2010/07/blog-post.html' title='استفاده از سرویس‌های مختلف گوگل از طریق ترمینال'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-3422555755930327153</id><published>2010-06-30T17:20:00.001+04:30</published><updated>2012-02-19T01:48:25.370+03:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="آموزش"/><category scheme="http://www.blogger.com/atom/ns#" term="اوبونتو"/><category scheme="http://www.blogger.com/atom/ns#" term="فدورا"/><category scheme="http://www.blogger.com/atom/ns#" term="لینوکس"/><title type='text'>نصب مجدد تمام نرم‌افزارها، پس از تعویض سیستم‌عامل</title><content type='html'>&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;بعضی مواقع پیش میاد که سیستم عامل آدم مشکل خاصی پیدا کنه و نصب دوباره‌ی سیستم عامل راحت‌تر از رفع مشکلات اون باشه. در این مواقع نصب دوباره‌ی تمام نرم‌افزارها بیشتر شبیه به یک کابوس می‌مونه. باید مدت‌ها پای سیستم نشست و نرم‌افزارها رو دونه دونه نصب کرد.&lt;br /&gt;
&lt;br /&gt;
اما باید یک راهکار ساده‌تر از این هم وجود داشته باشه. اگر راهی باشه که لیست نرم‌افزارهای نصب شده روی سیستم رو توی یک فایل ساده‌ی متنی ذخیره کنیم تا بعدا با استفاده از این فایل و یک دستور توی ترمینال، نرم‌افزارها خودشون اتوماتیک نصب بشن، مشکل ما حل می‌شه.&lt;br /&gt;
&lt;br /&gt;
خبر خوش اینه که با استفاده از روشی که &lt;a href=&quot;http://www.cyberciti.biz/tips/linux-get-list-installed-software-reinstallation-restore.html&quot; target=&quot;_blank&quot;&gt;این سایت&lt;/a&gt; معرفی کرده، این کار به راحتی امکان‌پذیره، برای مرحله‌ی اول کار باید از روش زیر استفاده کرد:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;سیستم‌های بر مبنای دبیان (اوبونتو، پارسیکس و ...):&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ dpkg –get-selections &amp;gt; /backup/installed-software.log&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;سیستم‌های بر مبنای ردهت (فدورا، Cent OS ،Suse Linux و ...)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ rpm -qa &amp;gt; /backup/installed-software.log&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt; این دستورات به راحتی قابل فهم هستند و به همین خاطر فکر نمی‌کنم نیاز به توضیح داشته باشن. با اجرای این دستورات ما یک فایل شامل لیست کامل تمام نرم‌افزار‌های نصب شده خواهیم داشت که پس از نصب مجدد سیستم‌عامل می‌تونیم با استفاده از روش زیر تمام نرم‌افزار‌های داخل فایل رو نصب کنیم:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;سیستم‌های بر مبنای دبیان:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# dpkg --set-selections &amp;lt; /backup/installed-software.log&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;و بعد:&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# dselect&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;و سپس با فشردن کلید &quot;i&quot; می‌توتید نرم‌افزارها رو نصب کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;سیستم‌های بر مبنای ردهت:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# yum -y install $(cat /backup/installed-software.log)&lt;/pre&gt;
&lt;/div&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;اگر از yum استفاده نمی‌کنید، از روش زیر هم می‌توان استفاده کرد:&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# up2date -i $(cat /backup/installed-software.log)&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;rtl&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;البته بعضی از نرم‌افزارها پس از نصب نیاز به تنظیمات دارند و من توصیه&amp;nbsp; می‌کنم از قبل از فایل‌های مربوط به تنظیمات نرم‌افزارهای خاص بک‌آپ بگیرید تا نیازی به تنظیم مجدد اون‌ها نداشته باشید.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/3422555755930327153/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2010/06/blog-post.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/3422555755930327153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/3422555755930327153'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2010/06/blog-post.html' title='نصب مجدد تمام نرم‌افزارها، پس از تعویض سیستم‌عامل'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-4074664472728852897</id><published>2010-05-17T03:13:00.001+04:30</published><updated>2012-02-19T01:50:10.760+03:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="آموزش"/><category scheme="http://www.blogger.com/atom/ns#" term="اینترنت"/><category scheme="http://www.blogger.com/atom/ns#" term="خط فرمان"/><category scheme="http://www.blogger.com/atom/ns#" term="معرفی ابزارها"/><title type='text'>MD5 چیست و با آن چه می‌توان کرد؟</title><content type='html'>&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot; trbidi=&quot;on&quot;&gt;
&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;div style=&quot;direction: rtl;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;در ابتدا، Hash چیست؟&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
hash خروجی تابعی یک‌طرفه است، برای تولید نوعی اثر انگشت از یک سری داده. منظور از یک‌طرفه بودن تابع Hash این است که نمی‌توان با داشتن خروجی تابع به اصل داده دست یافت (همان‌طور که با داشتن اثر انگشت یک انسان، نمی‌توان آن انسان را از نو تولید کرد!). احتمال اینکه دو داده‌ی متفاوت دو خروجی یکسان از این تابع بگیرند بسیار پایین است، به همین دلیل از الگوریتم‌های متفات این تابع معمولا برای تشخیص درستی داده‌ها استفاده می‌شود. به عنوان مثال اگر از الگوریتم معروف MD5 برای محاسبه‌ی خروجی تابع Hash استفاده کنیم، و کلمه‌ی &#39;Cat&#39; را به آن بدهیم، خروجی ما همیشه مقدار زیر است:&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;d077f244def8a70e5ea758bd8352fcd8&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;چنانچه کلمه‌ی &#39;Cat&#39;&amp;nbsp; را به &#39;Cats&#39; تغییر دهیم، خروجی تابع به شکل زیر تغییر پیدا می‌کند:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;0832c1202da8d382318e329a7c133ea0&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt; مقدار داده‌ای که به تابع می‌دهیم، ربطی به سایز خروجی آن ندارد. همچنین تغییر در داده‌، هر چقدر هم که کوچک باشد، خروجی کاملا متفاوتی ارائه خواهد کرد.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;MD5 چیست؟&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
MD5 یا Message-Digest algorithm 5&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt; &lt;/b&gt;پر استفاده‌ترین، تابع رمزنگاری Hash است. از این تابع در بسیاری از نرم‌افزارهای حفاظت اطلاعت استفاده می‌شود و همچنین کاربرد زیادی در تشخیص درستی داده‌ها دارد. خروجی این تابع مقداری 128 بیتی‌است که معمولا به صورت یک عدد هگزادسیمال ۳۲ رقمی ارائه می‌شود. به خروجی تابع MD5 Hash یک داده، MD5 Checksum آن داده گفته می‌شود.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;چگونه MD5 Checksum یک عبارت را محاسبه کنیم؟&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
ساده‌ترین راه برای این کار مراجعه به &lt;a href=&quot;http://www.adamek.biz/md5-generator.php&quot; target=&quot;_blank&quot;&gt;این آدرس&lt;/a&gt;، نوشتن عبارت مورد نظر و فشردن دکمه‌ی Calculate MD5 است، اما نرم‌افزار‌های زیادی هم برای محاسبه‌ی این مقدار نوشته شده است. همچنین اگر شما برنامه‌نویس هستید، توابع متفاوتی برای استفاده در زبان‌های مختلف برنامه‌نویسی وجود دارد. با این حال &lt;a href=&quot;http://fa.wikipedia.org/wiki/%D8%B4%D8%A8%D9%87%E2%80%8C%DA%A9%D8%AF&quot; target=&quot;_blank&quot;&gt;شبه‌کد&lt;/a&gt; محاسبه‌ی این مقدار را می‌توان در &lt;a href=&quot;http://en.wikipedia.org/wiki/MD5#Pseudocode&quot; target=&quot;_blank&quot;&gt;ویکیپدیا&lt;/a&gt; یافت.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;MD5 Hash و فایل‌ها:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
محاسبه‌ و مقایسه‌ی خروجی تابع MD5 Hash فایل‌ها روشی است برای تعیین دست نخورده بودن، و یا سالم بودن یک فایل. همچنین از MD5 Checksum می‌توان برای یافتن فایل‌های مشابه استفاده کرد. به عنوان مثال تصور کنید که قصد دارید مقداری از اطلاعات خود را برای یکی از دوستان خود کپی کنید. برای اینکار می‌توانید ابتدا MD5 Checksum فایل‌های خود و فایل‌های دوستتان را محاسبه کرده، و سپس فایل‌هایی را که مقدار MD5 Checksum آنها متفاوت است، کپی کنید. با این کار از کپی کردن فایل‌هایی که از قبل در هارد دیسک دوستتان وجود داشته‌ است جلوگیری می‌کنید. همچنین بار دیگر بعد از کپی کردن فایل‌ها می‌توانید با مقایسه‌ی مقدار MD5 Checksum فایل‌های کپی شده با فایل‌های موجود در هارد دیسک خود،‌ از این که فایل‌ها به درستی کپی شده‌اند، مطمئن شوید.&lt;br /&gt;
به هنگام دانلود یک فایل‌، در بسیاری از سایت‌های اینترنتی مقدار MD5 Checksum فایل هم ذکر می‌شود تا پس دانلود، بتوان از سلامت فایل مطمئن شد. به عنوان مثال اغلب سایت‌های ارائه دهنده‌ی توزیع‌های لینوکس، مقدار MD5 Checksum فایل‌های ایزوی توزیعشان را نیز ذکر می‌کنند تا پیش از رایت آنها بر روی سی‌دی، بتوان از سلامت فایل دانلود شده مطمئن شد.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;چگونه MD5 Checksum یک فایل را (در لینوکس) محاسبه کنیم؟&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
برای محاسبه‌ی MD5 Checksum یک فایل از ابزار md5sum استفاده می‌شود. این برنامه به صورت پیش‌فرض در اکثر توزیع‌های لینوکس موجود است. تصور کنید قصد محاسبه‌ی این مقدار برای فایلی به نام file.txt را دارید. برای این کار یک ترمینال باز کنید و دستور زیر را وارد کنید:&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;md5sum file.txt&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;همه چیز در مورد md5sum:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
ابزار md5sum چند قابلیت دیگر هم دارد. برای محاسبه‌ی md5sum چند فایل به صورت همزمان، می‌توانید نام فایل‌ها را یکی پس از دیگری به عنوان آرگومان‌های دستور md5sum بنویسید:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;md5sum text1.txt text2.txt&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt; خروجی این دستور چیزی شبیه به این است:&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;9ff460edc32f6a59fd0e612162c8d7e7&amp;nbsp; text1.txt
bbee0ebbbb53235666b515c5d0c2c3ab&amp;nbsp; text2.txt&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt; ستون اول مقدار MD5 Checksum و ستون دوم نام فایل‌هاست.&lt;br /&gt;
بدیهی است می‌توان MD5 Checksum فایل‌ها را با استفاده از دستور زیر در یک فایل جداگانه ذخیره کرد:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;md5sum text1.txt text2.txt &amp;gt; mymd5sums&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt; با این کار فایلی به نام mymd5sums با محتوایی برابر خروجی دستور در فولدر جاری ایجاد می‌شود. از این فایل می‌توان بعدا برای چک کردن تطابق مقدار MD5 Checksum‌های موجود در این فایل، با مقدار به دست آمده از فایل‌ها استفاده کرد. برای این کار از دستور زیر استفاده می‌شود:&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;md5sum -c mymd5sums&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt; خروجی دستور بالا چیزی شبیه به این است:&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;text1.txt: OK
text1.txt: OK&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;چنانچه مقدار به دست آمده از یکی از فایل‌ها با عدد موجود در فایل mymd5sums تطابق نداشته باشد، خروجی به شکل زیر می‌باشد:&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;one.txt: FAILED
two.txt: OK
md5sum: WARNING: 1 of 2 computed checksums did NOT match&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;می‌توان به صورت دستی نیز فایلی مشابه فایل mymd5sums ایجاد نمود و از آن فایل برای مقایسه‌ی مقدار MD5 Checksumهای فایل‌های متفاوت ایجاد کرد. فقط دقت کنید که هر سطون باید با دو بار فشردن کلید Space از هم جدا شوند.&lt;br /&gt;
همچنین می‌توان به جای استفاده از یک فایل، از خروجی استاندارد یک دستور دیگر برای مقایسه‌ استفاده کرد. به عنوان مثال:&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;echo &#39;9ff460edc32f6a59fd0e612162c8d7e7&amp;nbsp; text1.txt&#39; | md5sum -c -&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;دستور بالا، مقدار md5checksum فایل text.txt را با مقدار پایپ شده از دستور echo مقایسه می‌کند. دقت کنید که به جای نام فایل، این بار از -(خط تیره) استفاده شده است.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;و در انتها...&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;امیدوارم چیزی رو از قلم نیانداخته باشم و از شما هم این انتظار را دارم که اگر احساس کرده‌اید جایی اشتباهی صورت گرفته یا بخشی از نوشته نامفهوم بوده به من اطلاع بدهید.&lt;br /&gt;
بعضی قسمت‌های نوشته‌ی بالا برگرفته از منابع زیر است:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;a href=&quot;http://tools.ietf.org/html/rfc1321&quot; target=&quot;_blank&quot;&gt;http://tools.ietf.org/html/rfc1321&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/MD5&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/MD5&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;a href=&quot;http://tombuntu.com/index.php/2007/12/21/how-to-use-md5sum-to-verify-data-integrity/&quot; target=&quot;_blank&quot;&gt;http://tombuntu.com/index.php/2007/12/21/how-to-use-md5sum-to-verify-data-integrity/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/4074664472728852897/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2010/05/md5.html#comment-form' title='2 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/4074664472728852897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/4074664472728852897'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2010/05/md5.html' title='MD5 چیست و با آن چه می‌توان کرد؟'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-681637751205639207</id><published>2010-04-03T18:20:00.002+04:30</published><updated>2012-02-19T01:50:51.133+03:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="آموزش"/><category scheme="http://www.blogger.com/atom/ns#" term="اینترنت"/><category scheme="http://www.blogger.com/atom/ns#" term="خط فرمان"/><category scheme="http://www.blogger.com/atom/ns#" term="لینوکس"/><category scheme="http://www.blogger.com/atom/ns#" term="گوگل"/><title type='text'>استفاده از اکانت Gmail در ترمینال لینوکس</title><content type='html'>&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot; trbidi=&quot;on&quot;&gt;
&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;این پست یک راهنما برای استفاده از Mutt به همراه fetchmail و procmail و msmtp جهت فرستادن، دریافت کردن و خواندن ای‌میل در ترمینال لینوکس و با استفاده از اکانت جی میل است. اگر این سوال براتون پیش اومده که چرا یک نفر باید برای انجام چنین کاری وقت بذاره و طبق معمول از یک مرورگر اینترنت برای دریافت یا ارسال ای‌میل‌ها استفاده نکنه، احتمالا این پست برای شما نیست.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
اما فکر می کنم همه شما تا الان قدرت شگفت‌انگیز ترمینال لینوکس رو حس کرده‌اید، اگر اینطوره حتما از این مطلب خوشتون میاد.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
بیشتر این نوشته برگرفته از نوشته‌ی اندرو استرانگ (Andrew Strong)، با عنوان &lt;a href=&quot;http://www.andrews-corner.org/mutt.html&quot; target=&quot;_blank&quot;&gt;Using Mutt with Gmail&lt;/a&gt; است که در اینجا از ایشون که به من این اجازه رو دادن که از نوشته‌شون استفاده کنم و این متن رو در اینجا بنویسم تشکر می‌کنم.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
&lt;b&gt;پیش از شروع&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;باید دقت کنید که بخش‌هایی از کدها که شامل نام‌کاربری، ای‌میل و یا پسورد می‌باشد باید با اطلاعات شما جایگزین شود&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;بخش یک: دانلود ای‌میل‌ها&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
احتمالا این بخش پیچیده‌ترین بخش این مطلب باشه ولی بهتون اطمینان می‌دم که به سختیش می‌ارزه!&lt;br /&gt;
در ابتدا باید مجوز‌های SSL ٬(SSL Certificates) لازم رو دانلود و نصب کرد، سپس باید  fetchmail رو نصب کرد و در آخر می باید procmail رو نصب کنیم.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
&lt;b&gt; دانلود SSL Certificates:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
از اونجا که احتمال داره مجوزهای جی‌میل پس از یک دوره‌ی زمانی (معمولا طولانی) عوض بشن من در اینجا روشی برای اینکه مجوزها رو خودتون از موزیلا (Mozilla&#39;s source tree) و با استفاده از اسکریپت دانیل استنبرگ (Daniel Stenberg) دانلود کنید، معرفی می‌کنم.&lt;br /&gt;
برای اجرای این اسکریپت باید Perl و همچنین ماژول‌های perl-libwww رو نصب کرده باشید.&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ mkdir -pv $HOME/mail/certs
$ cd $HOME/mail/certs
$ touch Thawte_Premium_Server_CA.pem
$ touch Equifax_Secure_CA.pem
$ curl --verbose --output mk-ca-bundle.pl \
http://cool.haxx.se/cvs.cgi/*checkout*/curl/lib/mk-ca-bundle.pl?rev=1.10
$ perl mk-ca-bundle.pl&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;این کد باعث می‌شه یک فایل به اسم ca-bundle.crt ایجاد بشه که شما باید دو مجوز از درون این فایل استخراج کنید. اولین مجوز &quot;Thawte Premium Server CA&quot; است که باید در فایل مربوط به خودش که چند لحظه پیش ساختیم (Thawte_Premium_Server_CA.pem) ذخیره بشه. من این مجوز رو اینجا برای کسانی که با اسکریپت perl مشکل دارن می‌ذارم ولی بهتره که خودتون این مجوز رو بدست بیارین:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;-----BEGIN CERTIFICATE-----
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
UCemDaYj+bvLpgcUQg==
-----END CERTIFICATE-----&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;دومین مجوز &quot;Equifax Secure CA&quot; است که اون هم باید در فایل مربوط به خودش (Equifax_Secure_CA.pem) ذخیره بشه:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
70+sB3c4
-----END CERTIFICATE-----&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;و در آخر با استفاده از کد زیر کاری کنید که Openssl بدونه کجا دنبال مجوزها بگرده:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ c_rehash $HOME/mail/certs/&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;با این کار بخش مربوط به دانلود مجوزها تموم می‌شه و ما الان آماده‌ایم که به سراغ بخش نصب fetchmail بریم.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
&lt;b&gt;نصب fetchmail:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
الان که موفق شدیم مجوزهای SSL رو دانلود کنیم، fetchmail به راحتی قابل نصب و استفاده است. باید فایل HOME$/fetchmailrc رو با اطلاعات زیر ایجاد کنید:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;poll pop.gmail.com
with proto POP3
user &#39;your.email@gmail.com&#39;
there with password &#39;your_password&#39;
is &#39;your_user_name&#39; here
mda &quot;/usr/bin/procmail -d %T&quot;
options
no keep
ssl
sslcertck
sslcertpath /home/your_username/mail/certs/
&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;واضحه که می‌باید اطلاعات مربوط به خودتون رو جایگزین قسمت‌های مربوطه کنید.&lt;br /&gt;
و در آخر، از اونجا که کلمه‌ی عبور شما در این فایل ذخیره شده، بهتره که فقط به صاحب فایل، مجوز دسترسی و خوندنش رو بدید:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ chmod 600 ~/.fetchmailrc&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;الان زمان مناسبیه برای اینکه مطمئن بشید که POP Forwarding رو در اکانت جی‌میلتون فعال کرده‌اید. این تنظیمات رو می‌تونید در قسمت Settings - Forwarding and POP جی‌میل پیدا کنید. بعد از اینکه تنظیمات مورد نظر خودتون رو اعمال کردید، به مرحله‌ی بعد برید.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
&lt;b&gt;نصب procmail&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;procmail آخرین مرحله از بخش دانلود ای‌میل‌هاست. قبل از نصب اون باید متغیر محیطی MAIL$ رو تعریف کنید تا تمام نرم‌افزارهای مربوط به ای‌میل بدونن محل ذخیره‌ی ای‌میل‌ها کجاست.دو خط زیر رو به bashrc./~ اضافه کنید:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;# Sets the Mail Environment Variable
MAIL=/var/spool/mail/john &amp;amp;&amp;amp; export MAIL&amp;gt;/code&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;بعد از انجام این‌کار باید فایل HOME$/.procmailrc رو به همراه تنظیمات مورد نظرتون ایجاد کنید. من یک نمونه‌ی ساده از تنظیمات procmail رو در زیر می‌آرم که شما می‌تونید در صورت تمایل پس از خوندن راهنمای procmail  تغییرش بدین:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;PATH=/bin:/usr/bin:/usr/local/bin
VERBOSE=off 
DEFAULT=/var/spool/mail/your_username
MAILDIR=$HOME/mail
LOGFILE=$HOME/.procmaillog
# Recipes below this comment:

:0:
* ^TOmutt-user
mutt&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;البته بخش آخر فایل تنها یک مثال ساده است که می‌تونه حذف بشه. فعلا توضیحی در مورد اون نمی‌دم چون شما بعد از خوندن راهنمای procmail متوجه کاربردش خواهید شد. حتما man procmailex رو اجرا کنید تا متوجه تنظیمات بالا بشید. البته فراموش نکنید که در تنظیمات بالا اطلاعات مربوط به خودتون رو جایگزین قسمت قرمز رنگ بکنید.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;بخش دو: فرستادن ای‌میل&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;در این بخش از نرم‌افزار msmtp برای فرستادن ای‌میل استفاده ‌می‌کنیم. برای نصب msmtp می‌بایست فایل HOME$/.msmtprc رو با اطلاعات زیر ایجاد کنید:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;account default
host smtp.gmail.com
port 587
from your_email@gmail.com
tls on
tls_starttls on
tls_trust_file /home/john/mail/certs/Thawte_Premium_Server_CA.pem
# tls_trust_file /home/john/mail/certs/Equifax_Secure_CA.pem
auth on
user your_email
password your_password
logfile ~/.msmtp.log &lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;البته فراموش نکنید که قسمت‌های قرمز رو با اطلاعات مربوط به خودتون تغویض کنید و از اونجا که باز هم در این فایل پسورد شما ذخیره شده، باید کاری کنید که فایل فقط توسط صاحب اون خونده بشه:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;$ chmod 600 ~/.msmtprc&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;و بالاخره Mutt:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;بخش سه: خواندن ای‌میل‌ها&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
برای تنظیم Mutt باید فایل HOME$/.muttrc رو ایجاد و تنظیمات مورد نیازتون رو به اون اضافه کنید. تنظیم Mutt کار نسبتا زمان بریه و اگر بخواید این فایل رو از هیچ بنویسید، ممکنه خسته بشید. من برای شروع یک نمونه‌ی ساده از این تنظیمات رو می‌ذارم که شما می‌تونید بعداً اون رو به هر شکلی که دوست دارید، تغییر بدید. بعضی قسمت‌های این فایل مثل aliasها و رنگ‌ها (colours) به فایل‌ دیگه‌ای اشاره می‌کنن که نباید یادتون بره اون فایل‌ها رو هم ایجاد کنید.&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;#======================================================#
# Boring details
set realname = &quot;your_username&quot;
set from = &quot;your_email@gmail.com&quot;
set use_from = yes
set envelope_from =&quot;yes&quot;

# Use a signature
set signature=&quot;~/.signature&quot;

# Use msmtp rather than sendmail. Check that
# the path is correct for your system:
set sendmail=&quot;/usr/bin/msmtp&quot;  

# If not set in ~/.bashrc:
set spoolfile = /var/spool/mail/john

#======================================================#
# Folders
set folder=&quot;$HOME/mail&quot;      # Local mailboxes stored here
set record=&quot;+sent&quot;           # Where to store sent messages
set postponed=&quot;+postponed&quot;   # Where to store draft messages
set mbox_type=mbox           # Mailbox type
set move=no                  # Don&#39;t move mail from spool

#======================================================#
# Watch these mailboxes for new mail, useful only if
# Procmail or Maildrop is used to sort mail.
mailboxes ! +slrn +fetchmail +mutt
set sort_browser=alpha    # Sort mailboxes by alpha(bet)

#======================================================#
# What to show and order of headers
ignore *
unignore Date: From: User-Agent: X-Mailer X-Operating-System To: \
Cc: Reply-To: Subject: Mail-Followup-To:
hdr_order Date: From: User-Agent: X-Mailer X-Operating-System To: \
Cc: Reply-To: Subject: Mail-Followup-To:

#======================================================#
# which editor do you want to use?
# vim of course!
set editor=&quot;vim -c &#39;set tw=70 et&#39; &#39;+/^$&#39; &quot;
set edit_headers=yes      # See the headers when editing

#======================================================#
# Aliases

set alias_file = ~/mail/mutt_aliases # In their own file
source ~/mail/mutt_aliases           # Source them
set sort_alias=alias                 # Sort alphabetically

#======================================================#
# Colours: defaults are a little bleak so experiment!

source ~/mutt/mutt_colors            # In their own file

#======================================================#
# Lists: An example using the mutt-users list:

lists mutt-users
subscribe mutt-users
set followup_to=yes        # Sets &#39;Mail-Followup-To&#39; header
set honor_followup_to=yes 
fcc-hook mutt-user +mutt   # See your own posts using fcc

#======================================================#
# Odds and ends

set markers          # mark wrapped lines of text in the pager with a +
set smart_wrap       # Don&#39;t wrap mid-word
set pager_context=5  # Retain 5 lines of previous page when scrolling.
set status_on_top    # Status bar on top.
push &amp;lt;show-version&amp;gt;  # Shows mutt version at startup&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;در زیر توضیحات بیشتری در مورد رنگ‌ها و روش استفاده از اون‌ها در Mutt می‌دم:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;رنگ‌ها در Mutt&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;اگر ترمینال شما از رنگ‌ها هم پشتیبانی می‌کنه (که دیگه این روزا خیلی کم پیش می‌یاد که ترمینالی از رنگ‌ها پشتیبانی نکنه)، می‌تونید تغریبا رنگ همه‌ی قسمت‌های پنجره‌ی Mutt رو تنظیم کنید. تمام اطلاعات مربوط به رنگ‌ها در راهنمای Mutt و در قسمت &quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;Section 3: Configuration 8: Using color and mono video attributes&quot; موجوده، ولی در هر حال، روش ساده‌ی استفاده از رنگ‌ها به صورت زیره:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;color   object   foreground   background&amp;gt;/code&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
البته تعیین رنگ‌ها می‌تونه خیلی پیچیده‌تر از این‌ها باشه، ولی یک شروع ساده مناسب‌تره. رنگ‌های اولیه شامل سفید (white)، سیاه (black)، سبز (green)، بنفش (magenta)، آبی (blue)، فیروزه‌ای (cyan)، زرد (yellow)، قرمز (red) و رنگ پیش‌فرض (default) است که همین‌طور می‌تونید با اضافه کردن کلمه‌ی bright در مورد رنگ‌های پس‌زمینه (foreground) اون‌ها رو پر رنگ‌تر کنید. برای افرادی که از ترمینالی با پیش‌زمینه‌ی سفید استفاده می‌کنن، رنگ‌های زیر رنگ‌های مناسبی هستن:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;#---- Mutt Colors for White Background -------
color    hdrdefault    black           default  
color    quoted        red             default  
color    signature     brightblack     default  
color    indicator     brightwhite     red
color    attachment    black           default
color    error         red             default  
color    message       blue            default  
color    search        brightwhite     magenta
color    status        brightyellow    blue
color    tree          red             default  
color    normal        blue            default  
color    tilde         green           default  
color    bold          brightyellow    default  
color    markers       red             default&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
البته باید فایلی به اسم colors.default هم به هنگام نصب Mutt ایجاد شده باشه که برای ترمینال‌هایی با پیش‌زمینه‌ی سفید نوشته شده. برای ترمینال‌هایی که دارای پیش‌زمینه‌ی سیاه رنگ هستند هم فایلی به نام colors.linux به هنگام نصب Mutt ایجاد شده که محتویات این فایل در زیر اومده:&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;#---- Mutt Colors for Black Background -------
color   hdrdefault   blue              black
color   quoted       blue              black
color   signature    blue              black
color   attachment   red               black
color   message      brightred         black
color   error        brightred         black
color   indicator    black             red
color   status       brightgreen       blue
color   tree         white             black
color   normal       white             black
color   markers      red               black
color   search       white             black
color   tilde        brightmagenta     black
color   index        blue              black ~F
color   index        red               black &quot;~N|~O&quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;اگر هم از هیچ‌‌کدوم از رنگ‌های بالا خوشتون نیامد، می‌تونید خودتون دست بکار بشید و با کمک راهنمای Mutt رنگ‌های مورد علاقه‌تون رو انتخاب کنید.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;نتیجه‌ی کار&lt;/b&gt;&lt;br /&gt;
در نهایت، شما می‌تونید بعد از باز کردن Mutt، با فشار دادن کلید &quot;!&quot; یک شل پرامت (shell prompt) باز کنید و پس از اجرای کامند fetchmail -v خواندن ای‌میل‌هاتون رو شروع کنید. و هدیه‌‌ای که من در اینجا به شما می‌دم یک ماکروست که با استفاده از اون می‌تونید به راحتی و با فشردن کلید &quot;I&quot; به خواندن ای‌میل‌ها بپردازید. خط زیر رو به muttrc./~ اضافه کنید:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;macro index,pager I &#39;&amp;lt;shell-escape&amp;gt; fetchmail -v&amp;lt;enter&amp;gt;&#39;&lt;/pre&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
البته این فایل Muttrc./~ خیلی ساده است و می‌تونه پیچیده‌تر از این‌ها باشه، اما به نظر من این فایل بیشتر نیازها رو بر آورده می‌کنه. از اینکه چند ساعتی بیشتر وقت بذارید و این فایل رو کامل‌تر کنید نترسید، چون قطعا کامل‌تر کردنش ارزش زمانی رو که براش می‌ذارید رو داره.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;br /&gt;
&lt;b&gt;و در انتها...&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
ترمینال لینوکس برنامه‌های خارق‌العاده‌ای داره و می‌شه باهاش کارهای عجیب غریبی انجام داد. اسکریپت‌های زیادی می‌شه نوشت که نتیجه‌ی اون‌ها رو ای‌میل کنه، و یا ای‌میلی رو که دریافت شده رو بگیره و کار خاصی روی اون انجام بده. به هر حال امیدوارم از این نوشته بهره‌ی کافی رو برده باشید و خیلی خوشحال می‌شم اگر نظر خودتون و نتیجه استفاده از این نوشته رو از طریق ای‌میل (مسلما با استفاده از Mutt) و یا کامنت به من بگید. همین‌طور اگر در این نوشته به ایرادی برخوردید، حتما من رو مطلع کنید.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/681637751205639207/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2010/04/gmail.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/681637751205639207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/681637751205639207'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2010/04/gmail.html' title='استفاده از اکانت Gmail در ترمینال لینوکس'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-1830973764998903821</id><published>2010-03-31T23:47:00.003+04:30</published><updated>2012-02-19T01:51:33.575+03:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="آموزش"/><category scheme="http://www.blogger.com/atom/ns#" term="خط فرمان"/><category scheme="http://www.blogger.com/atom/ns#" term="لینوکس"/><title type='text'>هر آنچه از ls -l باید بدانید</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;یکی از کامندهای خیلی پر استفاده‌ی لینوکس ls -l هست که به طور حتم شما هم به خوبی می‌شناسیدش و بارها ازش استفاده کرده‌اید. کار این کامند نمایش لیست‌ طولانی (همراه با مشخصات) فایل‌ها و فولدرهاست. یک نمونه از خروجی این کامند رو در زیر می‌بینید که من بعدا هر ستون این کامند رو ترجمه می‌کنم. (گرچه به احتمال زیاد شما بیشتر ستون‌ها یا شاید همه‌ی اون‌ها رو می‌شناسید.)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;drwxr-xr-x.  3 root root    4096 2010-01-02 12:55 alsa
drwxr-xr-x.  2 root root    4096 2009-11-09 22:42 bdevid
lrwxrwxrwx.  1 root root      14 2010-02-13 18:30 cpp -&amp;gt; ../usr/bin/cpp
drwxr-xr-x.  3 root root    4096 2010-02-27 01:04 crda
drwxr-xr-x.  2 root root    4096 2010-01-15 16:51 dbus-1
drwxr-xr-x. 40 root root    4096 2010-03-30 15:14 firmware
drwxr-xr-x.  3 root root    4096 2010-01-04 17:28 i686
drwxr-xr-x.  6 root root    4096 2009-11-09 22:44 kbd
-rwxr-xr-x.  1 root root  179364 2010-01-04 17:59 ld-2.11.1.so
lrwxrwxrwx.  1 root root      12 2010-01-14 14:49 ld-linux.so.2 -&amp;gt; ld-2.11.1.so
lrwxrwxrwx.  1 root root      13 2010-02-05 14:36 ld-lsb.so.3 -&amp;gt; ld-linux.so.2
lrwxrwxrwx.  1 root root      15 2010-01-10 02:56 libacl.so.1 -&amp;gt; libacl.so.1.1.0
-rwxr-xr-x.  1 root root   31444 2009-12-26 23:51 libacl.so.1.1.0
-rwxr-xr-x.  1 root root    3508 2009-07-26 23:38 libaio.so.1.0.0
-rwxr-xr-x.  1 root root    3508 2009-07-26 23:38 libaio.so.1.0.1
-rwxr-xr-x.  1 root root   18556 2010-01-04 17:59 libanl-2.11.1.so
lrwxrwxrwx.  1 root root      16 2010-01-14 14:49 libanl.so.1 -&amp;gt; libanl-2.11.1.so
-rwxr-xr-x.  1 root root  964852 2010-01-26 12:14 libasound.so.2.0.0
-rwxr-xr-x.  1 root root   18516 2009-11-26 22:20 libattr.so.1.1.0
-rwxr-xr-x.  1 root root   93248 2009-12-08 19:25 libaudit.so.1.0.0&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;برای نمونه سطر زیر رو در نظر بگیرید:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;-rwxr-xr-x.  1 root root    3508 2009-07-26 23:38 libaio.so.1.0.1&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;همین‌طور که می‌بینید این سطر به ۱۰ ستون به شکل زیر تقسیم شده:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;style type=&quot;text/css&quot;&gt;
  &lt;!--   @page { margin: 0.79in }   TD P { margin-bottom: 0in }   P { margin-bottom: 0.08in }  --&gt;  
&lt;/style&gt;  &lt;br /&gt;
&lt;table border=&quot;1&quot; bordercolor=&quot;#000000&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;  &lt;colgroup&gt;&lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;col width=&quot;26*&quot;&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr valign=&quot;TOP&quot;&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۱۰&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۹&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۸&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۷&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۶&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۵&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۴&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۳&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۲&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;ستون ۱&lt;/span&gt;&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr valign=&quot;TOP&quot;&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;libaudit.so.1.0.1&lt;/small&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;2009-11-0823:38&lt;/small&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;3508&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;root&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;root&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;1&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;r-x&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;r-x&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;rwx&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;   &lt;td width=&quot;10%&quot;&gt;&lt;small&gt;    &lt;/small&gt;&lt;br /&gt;
&lt;div align=&quot;CENTER&quot; dir=&quot;RTL&quot;&gt;
&lt;small&gt;-&lt;/small&gt;&lt;/div&gt;
&lt;small&gt;   &lt;/small&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Iranian Sans&#39;,Tahoma;&quot;&gt;&lt;u&gt;ستون اول&lt;/u&gt; ممکنه یکی از حالت‌های زیر باشه:&lt;br /&gt;- : فایل&lt;br /&gt;d : فولدر یا directory&lt;br /&gt;l : لینک&lt;br /&gt;&lt;br /&gt;&lt;u&gt;ستون‌های دوم، سوم و چهارم&lt;/u&gt; مربوط به مجوزهاست. مجوز خواندن (r)، مجوز نوشتن (w) و مجوز اجرا کردن (x) که:&lt;br /&gt;ستون اول مجوزهای صاحب (owner) فایل است.&lt;br /&gt;ستون دوم مجوزهای گروه فایل است.&lt;br /&gt;و ستون سوم مجوزهای سایرافراد (everyone) است.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;ستون پنجم&lt;/u&gt; نشان‌دهنده‌ی تعداد لینک‌ها یا فولدارهای داخل یک فولدره.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;ستون ششم&lt;/u&gt; نام صاحب (owner) فایل یا فولدر رو نشان می‌ده.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;ستون هفتم&lt;/u&gt; گروهی رو که فایل به اون تعلق داره، مشخص می‌کنه و هر کاربری (به جز صاحب فایل) که متعلق به این گروه باشه، دارای مجوزهای ذکر شده در ستون سوم است.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;ستون هشتم&lt;/u&gt; نشان دهنده‌ی سایز فایل به بایت است. افزودن h- (برگرفته از &lt;b&gt;H&lt;/b&gt;uman Readable) به همراه l- باعث می‌شه خروجی برای درک بهتر به کیلوبایت، مگابایت و یا گیگابایت باشه.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;ستون نهم&lt;/u&gt; شامل تاریخ و زمان آخرین باری که فایل ویرایش شده است.&lt;br /&gt;&lt;br /&gt;و در &lt;u&gt;ستون دهم&lt;/u&gt; هم که نام فایل به نمایش در می‌آد. البته در مورد لینک‌ها نام فایلی که به آن لینک داده شده پس از علامت &amp;lt;- نمایش داده می‌شه.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/1830973764998903821/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2010/03/ls-l.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/1830973764998903821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/1830973764998903821'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2010/03/ls-l.html' title='هر آنچه از ls -l باید بدانید'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-655512062651575420</id><published>2010-03-10T01:04:00.002+03:30</published><updated>2012-02-19T11:00:56.723+03:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="اسکریپت bash"/><category scheme="http://www.blogger.com/atom/ns#" term="اینترنت"/><category scheme="http://www.blogger.com/atom/ns#" term="خط فرمان"/><category scheme="http://www.blogger.com/atom/ns#" term="لینوکس"/><category scheme="http://www.blogger.com/atom/ns#" term="معرفی ابزارها"/><category scheme="http://www.blogger.com/atom/ns#" term="گوگل"/><title type='text'>دو تابع مفید گوگلی برای استفاده در لینوکس</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;div align=&quot;right&quot; style=&quot;direction: rtl;&quot;&gt;
قصد داشتم برای شروع روش تنظیم و استفاده از اکانت جی میل در کنسول لینوکس رو توضیح بدم ولی نوشتنش بیشتر از اونی که فکر می کردم طول کشید. بنابراین فعلا به این پست کوتاه‌تر بسنده می‌کنم.&lt;br /&gt;
&lt;br /&gt;
اینجا قصد دارم دو تا تابع جالب گوگلی رو برای استفاده در کنسول لینوکس معرفی کنم. اولین تابع، برای تصحیح املای یک کلمه یا همون spell checking با استفاده از موتور جستجوی گوگله. حتما دیدید که در هنگام استفاده از موتور جستجوی گوگل در صورت اینکه کلمه‌ای رو اشتباه تایپ کرده باشید، گوگل کلمه درست رو بهتون پیشنهاد می‌کنه. ما می‌خوایم کاری کنیم که با اجرای یک دستور ساده در کنسول، بتونیم املای صحیح یک کلمه رو چک کنیم. برای اینکار کافیه کد زیر رو در کنسول وارد کنید:&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;spellcheck(){ typeset y=$@;curl -sd &quot;&amp;lt;spellrequest&amp;gt;&amp;lt;text&amp;gt;$y&amp;lt;/text&amp;gt;&amp;lt;/spellrequest&amp;gt;&quot; https://www.google.com/tbproxy/spell|sed -n &#39;/s=&quot;[0-9]&quot;/{s/&amp;lt;[^&amp;gt;]*&amp;gt;/ /g;s/\t/ /g;s/ *\(.*\)/Suggestions: \1\n/g;p}&#39;|tee &amp;gt;(grep -Eq &#39;.*&#39;||echo -e &quot;OK&quot;);}&lt;/pre&gt;
&lt;/div&gt;
(اگر دوست دارید همیشه این تابع دم دستتون باشه، می‌تونید کد بالا رو به bashrc./~ اضافه کنید.)&lt;br /&gt;
&lt;br /&gt;
پس از وارد کردن دستور بالا به راحتی می‌تونید با استفاده از دستور زیر املای صحیح یک کلمه رو چک کنید:&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;spellcheck some_word&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
تابع دوم، می تونه برای تشخیص زبان یک نوشته، با استفاده از مترجم گوگل استفاده بشه. مشابه کد بالا، کد زیر رو هم میتونید به فایل bashrc./~ اضافه کنید تا بتونید همیشه ازش استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;detectlanguage(){ curl -s &quot;http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&amp;amp;amp;q=$(echo &quot;$@&quot; | sed &#39;s/ /%20/g&#39;)&quot; | sed &#39;s/{&quot;responseData&quot;: {&quot;language&quot;:&quot;\([^&quot;]*\)&quot;.*/\1\n/&#39;; }&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
پس از وارد کردن دستور بالا، با استفاده از دستور زیر زبان یک عبارت رو چک کنید:&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;detectlanguage text_in_an_unknown_language&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
امیدوارم مفید بوده باشه.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.commandlinefu.com/commands/view/4873/google-spell-checker&quot; target=&quot;_blank&quot;&gt;منبع کد اول&lt;/a&gt; - &lt;a href=&quot;http://www.commandlinefu.com/commands/view/5035/detect-language-of-a-string&quot; target=&quot;_blank&quot;&gt;منبع کد دوم&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/655512062651575420/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2010/03/blog-post.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/655512062651575420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/655512062651575420'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2010/03/blog-post.html' title='دو تابع مفید گوگلی برای استفاده در لینوکس'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4623421911381139355.post-8562229840987300332</id><published>2009-09-02T16:50:00.001+04:30</published><updated>2012-02-19T01:53:38.454+03:30</updated><title type='text'>گذرگاه آزاد</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;font-family: &#39;Iranian Sans&#39;, Tahoma; text-align: right;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;

&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;

برای سال‌های سال در دنیا عملا مفهوم سیستم عامل و ویندوز شرکت مایکروسافت 
یکی بود و بخش اعظم کامپیوترهای خانگی را محصولات انحصاری شرکت‌های تجاری 
مختلف در دست داشت. ما همه مصرف‌کنندگانی بودیم که محصولات تجاری دیگران را
 تحسین کرده، خریدیم و به آن‌ها فرصت ایجاد یک امپراطوری بزرگ از 
نرم‌افزارهای انحصاری دادیم که به میل خود، ما را به هر سمت و سو که بخواهد
 ببرد و کم کم ما را تحت سلطه‌ی خود قرار دهد.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;

&lt;br /&gt;
اما در این بین کم کم صدای یک سیستم‌عامل نسبتا تازه‌تر شنیده شد. 
سیستم‌عاملی که بر خلاف سیستم‌عامل‌های دیگر به شرکت خاصی وابسته نیست و 
کسی برای استفاده کردن از آن ملزم به پرداخت هزینه‌ای نمی‌باشد. 
سیستم‌عاملی قدرتمند که تمام قوانین دست و پاگیر و انحصار طلبانه‌ی 
شرکت‌های تجاری را حذف کرده و به شما اجازه‌ی هرگونه تغییر و تکثیر 
نرم‌افزارهایش را می‌دهد. سیستم‌عاملی آزاد، بازمتن و رایگان به نام 
لینوکس.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;

&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;

لینوکس فقط یک سیستم‌عامل قدرتمند نیست. یک تفکر بزرگ است که توسط 
میلیون‌ها نفر در سراسر دنیا حمایت می‌شود. حتی اگر تا به حال چیزی راجع به
 لینوکس نشنیده‌اید، اگر به آزادی خود و دیگران اهمیت می‌دهید، استفاده از 
لینوکس را شروع کنید و قدم به دنیای آزادی نرم‌افزارها بگذارید تا با همان 
چند قدم اول، غرق در این دنیای تازه شوید.&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;

&lt;/div&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right;&quot;&gt;

من علی موسوی هستم و اینجا نوشته‌ها و تجربیات خودم را از این دنیای بزرگ 
می‌نویسم. برای ارتباط با من می‌توانید از هر یک از لینک‌های سمت راست صفحه
 استفاده کنید و یا برای من به ali.mousavi در جی‌میل ای‌میل بفرستید.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freepassage.blogspot.com/feeds/8562229840987300332/comments/default' title='نظرات پیام'/><link rel='replies' type='text/html' href='http://freepassage.blogspot.com/2009/09/blog-post.html#comment-form' title='0 نظر'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/8562229840987300332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4623421911381139355/posts/default/8562229840987300332'/><link rel='alternate' type='text/html' href='http://freepassage.blogspot.com/2009/09/blog-post.html' title='گذرگاه آزاد'/><author><name>Ali</name><uri>http://www.blogger.com/profile/04934005069608694297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXovyzlp__Mela6MGGSZ1gAOX1grFn9YdgEexKG_r6MdspF8OdB-QK9jny9j858ZUdEVS9cdIRBqmcQbSDf0Si7perIEess_ZMuDNw_gIeC-4zNHIZczP_cq6pJ0-F4uw/s220/Me.jpg'/></author><thr:total>0</thr:total></entry></feed>