دلیل برای دوست داشتن گنو/لینوکس خیلی زیاده که در یک پست نمی شه بیانش کرد. اما دلایل مهم من با چندتا نمونه مثال.
۱- تنوع زیاد و آزادی در انتخاب: توی گنو/لینوکس شما اجباری در استفاده در یک ابزار، محیط کاربری یا حتی نوع توزیع ندارید و همه چیز به سلیقه شما بر می گرده که کدوم رو انتخاب کنید. در بدترین حالت اگه شما از چیزی خوشتون نیومد میتونید چیزی رو که دوست دارید بسازید چون شما در انجام تغییرات در تمامی سیستم عامل و ابزارهای اون آزاد هستید. و این تنوع ها در توسعه و بهتر شدن ابزارهای مختلف خیلی مفیده چون باعث رقابت میشه.
۲- مشکل از کمبود اطلاعات شماست: اگر کاری رو نمی تونید انجام بدید اشکال از کمی اطلاعات شماست. در سیستم عامل گنو/لینوکس به خاطر آزاد بودن سیستم عامل شما تقریبا توانایی انجام هر کاری رو دارید و اگه نمی تونید انجام بدید اشکال از کمی اطلاعات شماست و دونستن این امر به شما در بالا بردن اطلاعاتتون خیلی کمک کنه.
۳- هیچ چیز رو از صفر شروع نمی کنید: تقریبا برای تولید هر ابزاری و یا پیاده سازی هر ایده ای نیازی به شروع از صفر ندارید. و با کمی جستجو میتونید ابزارها و کدهای نزدیک به چیزی رو که نیاز دارید رو در نرم افزارهای آزاد پیدا کنید.
۴- بهترین مکان برای گیک ها: ابزار های گنو/لینوکس برای کارهای گیکی و جالب و عجیب و در بیشتر اوقات غیر ممکن در سیستم عامل های دیگه بهترین گزینه محسوب میشه.
یک روز معمولی:
دانلود شبانه رایگان:
آی اس پی اینترنتی من ساعت ۲ تا ۷ صبح به من اینترنت مجانی میده. و من با cron توی گنو/لینوکس تقریبا هر شب چیزی حدود ۲ گیگ دانلود می کنم. خیلی ساده فایل های تورنت رو توی نرم افزار ترانسمیشن میزارم و توی cron میگم ساعت ۲ ترانسمیشن رو اجرا کن و ساعت ۷ هم اون رو ببند.
O 2 * * * export DISPLAY=:0 && /usr/bin/transmission-gtk
O 7 * * * killall transmission-gtk
یادآوری:
توی گنو/لینوکس نرم افزار زیاد هست برای یادآوری کردن کارها، اما من از bash استفاده می کنم. خیلی ساده و سریع کافیه توی دایرکتوری home فایل bash_profile. رو ادیت کنید و اگر نیست بسازیدش و توش یک تابع تعریف کنید اینجوری
()rme
{
echo "notify-send $1 -t 10000" |at $2
}
قبل از اینکه دستوری اجرا کنید باید bash_profile. رو با کامند زیر reload کنید.
bash_profile./~ .
با این کار شما یک کامند جدید میسازید به نام rme به معنی remind me که توی ورودی دوتا چیز رو میگیره اولی متنی که قراره توی نوتیفیکیشن بیاد و دومی زمانی که قراره نوتیفیکیشن اجرا بشه. و مثالش میشه.
rme update-your-blog 20:22
دستور بالا باعث میشه ساعت ۸:۲۲ شب یک نوتیفیکیشن بیاد روی صفحه مثل عکس زیر.
میتونید فارسی هم تایپ کنید. توی ترمینال خراب نشون میده ولی توی نوتیفیکیشن درسته. فقط یادتون باشه که همه کلمات روبا خط فاصله به هم بچسبونید چون تمامی جمله شما یک متغییر در ورودی محسوب میشه و اگه یک اسپیس بزنید تبدیل میشه به دوتا متغییر و دستور اجرا نمیشه.
کنترل اتفاقات سرور و ارسال sms برای تمامی ادمین ها:
اگر سرور لینوکسی داشته باشید و چندتا ادمین، و سرور هم مهم باشه خیلی ساده می تونید روی سرور اسکریپت بنویسید که چیزهایی که روی سرور مهم هست رو چک کنه و اگر اتفاقی بحرانی افتاد توی یک فایل تکست یک جایی که بشه دانلودش کرد بریزه. و با گوشی n900 یک اسکریپت ساده دیگه بنویسید که اون فایل رو مثلا ۱۵ دقیقه یکبار چک کنه و اگر چیز غیر عادی داخلش بود اون اتفاق رو برای تمامی ادمین های sms کنه.
بسته به سروری که دارید و اینکه چه کاری می کنه اسکریپت سرور تغییر می کنه ولی مهم کاریه که گوشی n900 داره انجام میده. خیلی ساده یک اسکریپ مینویسید که یک فایلی رو ۱۵ دقیقه یک بار دانلود کنه و محتویات رو مقایسه کنه و اگر از رنج شما بالا تر بود اون تغییر رو برای چند نفر sms کنه. پس من اسکریپت اتفاقات سرور رو نمی نویسم ولی با گوشی n900 خیلی ساده میتونید با bash به هر گوشی ای که خواستید به صورت زیر sms ارسال کنید.
پکیج smssend رو روی گوش n900 نصب کنید.
sudo apt-get install smssend
و با دستور زیر sms ارسال کنید.
smssend -n 0913xxxxxx:0912xxxxxx:0935xxxxx -m "Text"
خوب دستور بالا میتونه قسمتی از یک اسکریپ باشه و به جای تکست هم میتونید اطلاعات مربوط به سرور و کدوم سرور رو ارسال کنید. و همچنین میتونید چند سرور رو با ادمین های مختلف با اسکریپت های ساده از وضعیت سرور با خبر کنید و یا توی اسکریپت بگید اگر این اتفاق افتاد برای شخص خاصی sms رو ارسال کن.
گوشی n900 و جاسوسی:
توی یکی از پست های وبلاگم اینجا گفته بودم چطوری از سنسور ژیروسکوپ گوشی n900 استفاده کنیم. در ادامه توی همون اسکریپت میتونید به جای اجرای موزیک از ارسال sms استفاده کنید. در صورتی که گوشی شما حرکت کنه به یک شماره sms ارسال کنه.
یا اینکه گوشی خودتون رو یک جایی قرار بدید مثلا پشت یک در یا زیر میز و اگر گوشی به هر دلیلی حرکت کنه گوشی شما با شماره شما تماس بگیره و در اون حالت شما می تونید صداهایی که داره اونجا میاد رو گوش کنید.
خیلی ساده دستور زیر با اجرا شدن شماره مورد نظر رو میگره.
dbus-send –system –type=method_call –print-reply –dest=com.nokia.csd.Call /com/nokia/csd/call com.nokia.csd.Call.CreateWith string:”۰۹xxxxxxx” uint32:0
یا اینکه یک اسکریپت بنویسید که راس یک ساعتی با شماره شما تماس بگیره. یا در صورت گرفتن sms از یک شماره ای با اون شماره تماس بگیره.
کنترل دمای کامپیوتر و فن:
من آدم سرمایی ای هستم و بخاری اتاقم معمولا هر چقدر هم دمای اتاق رو گرم کنه من مشکلی ندارم اما CPU ی کامپیوترم خیلی مشکل داره
. پس من وقتی خوابم باید یک جوری آگاه بشم که دمای اتاقم زیادی رفته بالا و دمای CPU در بحران به سر میبره نه به خاطر برنامه های در حال اجراست بلکه به خاطر بخاری اتاق. این کار با یک اسکریپ ساده انجام میشه. توی یک پستی اینجا در مورد دیدن سنسور های کامپیوتر توضیح دادم. کافیه lm-sensors رو نصب کنید و نسبت به خروجی اون یک اسکریپت بنویسید. مثل زیر
#!/bin/sh
#temp control notify-send and alarm
crit=50
: while
do
temp=`sensors |grep temp1|awk {‘print$2′}|cut -c2-3`
if [ $crit -lt $temp ];then
notify-send “temp is: “$temp
beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 230 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460
fi
sleep 30
done
توی اسکریپ بالا مهم ترین قسمت این کده sensors |grep temp1|awk {‘print$2′}|cut -c2-3 که در حقیقت دمای cpu رو از دستور sensors خارج میکنه. و با یک مقایسه اگر بالای ۵۰ درجه بود یک نوتیفیکیشن میفرسته که دمای CPU رو میگه و همچنین چون من ممکنه خواب باشم یک آهنگی رو از اسپیکر خود کیس پخش می کنه. روی اسپیکر هم میشد ولی چون من احتمالا موقع خواب بخاطر نویز اسپیکر اون رو خاموش می کنم بهتر بود از اسپیکر خود کیس استفاده کنم.
برای استفاده از دستور beep که توی اسکریپت بالا اومده باید پکیج اون رو نصب کنید.
sudo apt-get install beep
و احتمالا اگر بعد از نصب و اجرای دستور beep هیچ صدایی از کیس نشنیدید توزیعتون pcspicker رو از ماژول کرنل غیر فعال کرده و شما با دستور زیر فعالش کنید.
sudo modprobe pcspkr
در اسکریپت بالا با دستور beep و سوییچ های ( f فرکانس ) و( l مدت زمان ) ، یک آهنگ ساخته شده که پخش میشه. ( آهنگ رو من نساختم و از اینجا کپی کردم ) شما میتونید هر آهنگی بسازید.
من اسکریپت رو برپایه دمای CPU نوشتم ولی میتونید بر مبنای سرعت فن CPU هم بنویسید شاید بهتر هم باشه. چون فن CPU به خاطر بالا رفتن دمای محیط سرعتش رو بیشتر میکنه که دمای CPU رو پایین نگه داره. پس میتونید چک کنید که حالت طبیعی سرعت فن شما چیه و اسکریپت رو بر مبنای سرعت فن بنویسید. اسکریپ رو هم میتونید به یک سرویس تبدیلش کنید که در یک فرصت دیگه کامل توضیحش میدم.
اجرای موزیک از طریق ترمینال:
و در آخر من از moc به عنوان موزیک پلیر استفاده می کنم که یک پلیر ترمینالی است. چه خوبی ای داره؟ اینکه من وقتی خسته و ویران روی تخت اتاقم می افتم و دیگه توان حرکت کردن ندارم هوس می کنم یک موزیک از اسپیکر ها پخش بشه. در این حالت به گوشی n900 دسترسی دارم و توسط اون روی دسکتاپ ssh می کنم و میون ۴۰ گیگابایت آهنگ با سرعتی عالی میگردم و آهنگ دلخواه خودم رو پیدا می کنم و اجرا می کنم.
راستش من در نوشتن بلاگ خیلی تنبل هستم. امیدوارم این تنبلی رو کنار بزارم و بیشتر بنویسم.
واقعا کارهایی که با سیستم عامل گنو/لینوکس میشه کرد و لذت برد خیلی خیلی زیادن و دنیای است بی انتها برای یادگیری. و خیلی از کارهای جالب رو به ساده ترین راه ممکن و با اسکریپت ها و دستورات ساده bash میشه توش انجام داد و لذت برد.
و در آخر شاید این سوال مطرح بشه چرا بقیه گنو/لینوکس رو دوست ندارن ؟؟؟









