چرا گنو/لینوکس رو دوست دارم ؟ یک روز معمولی.

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

۱- تنوع زیاد و آزادی در انتخاب: توی گنو/لینوکس شما اجباری در استفاده در یک ابزار، محیط کاربری  یا حتی نوع توزیع ندارید و همه چیز به سلیقه شما بر می گرده که کدوم رو انتخاب کنید. در بدترین حالت اگه شما از چیزی خوشتون نیومد میتونید چیزی رو که دوست دارید بسازید چون شما در انجام تغییرات در تمامی سیستم عامل و ابزارهای اون آزاد هستید. و این تنوع ها در توسعه و بهتر شدن ابزارهای مختلف خیلی مفیده چون باعث رقابت میشه.

۲- مشکل از کمبود اطلاعات شماست:  اگر کاری رو نمی تونید انجام بدید اشکال از کمی اطلاعات شماست. در سیستم عامل گنو/لینوکس به خاطر آزاد بودن سیستم عامل شما تقریبا توانایی انجام هر کاری رو دارید و اگه نمی تونید انجام بدید اشکال از کمی اطلاعات شماست و دونستن این امر به شما در بالا بردن اطلاعاتتون خیلی  کمک کنه.

۳- هیچ چیز رو از صفر شروع نمی کنید: تقریبا برای تولید هر ابزاری و یا پیاده سازی هر ایده ای نیازی به شروع از صفر ندارید. و با کمی جستجو میتونید ابزارها و کدهای نزدیک به چیزی رو که نیاز دارید رو در نرم افزارهای آزاد پیدا کنید.

۴- بهترین مکان برای گیک ها: ابزار های گنو/لینوکس برای کارهای گیکی و جالب و عجیب و در بیشتر اوقات غیر ممکن در سیستم عامل های دیگه بهترین گزینه محسوب میشه.

یک روز معمولی:

دانلود شبانه رایگان:

آی اس پی اینترنتی من ساعت ۲ تا ۷ صبح به من اینترنت مجانی میده. و من با 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 میشه توش انجام داد و لذت برد.

و در آخر شاید این سوال مطرح بشه چرا بقیه گنو/لینوکس رو دوست ندارن ؟؟؟ :)

آپدیت سیستم عامل بدون بوت کردن آن

خیلی مواقع کارهای عجیبی که من در سیستم عامل گنو/لینوکس انجام میدم اینقدر برای من عادی شده که فکر نمی کنم این کار برای کاربرای سیستم عامل های دیگر کاری بسیار مشکل یا در بسیاری از موارد غیر ممکن است. پس برای درک بهتر باید از دید کاربر یک سیستم عامل دیگه مثل ماکروسافت ویندوز به مشکل نگاه کرد.

سناریو:

دوست شما یک ویندوز ۷ داره و شما از ویندوز ایکس پی استفاده می کنید. دوست شما اینترنت نداره و هارد خودش رو از کیس خارج کرده به منزل شما اومده و هارد رو با یک مبدل USB به کامپیوتر شما وصل می کنه.

شما: موزیک بریزم یا فیلم؟

دوستتون: هیچ کدوم. لطفا نگاه کن ببین ویندوز ۷ من نسبت به آپدیت قبلی ای که انجام دادم آپدیت جدید براش اومده ؟

شما: ( اسمایلی شاخ در آوردن ) ببین مشخصات سخت افزاری کامپیوتر تو چیه ؟

دوستتون: سی پی یو م ۳۲ بیتیه اینتله کارت گرافیکم هم انویدیاست.

شما: خوب من سی پی یوم ۶۴ بیتی ای ام دی و کارت گرافیکم هم ای تی آی هست. یک کم دردسر دارم برای بوت کردن ویندوز ۷ تو.

دوست شما: من نگفتم بوتش کن!

شما: ( اسمایلی کندن موها ).

خوب شاید این سناریو برای شما خنده دار باشه و شاید غیر ممکن. ولی انجام چنین کاری توی سیستم عامل گنو/لینوکس نه تنها غیر ممکن نیست کار سختی هم نیست.

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

در حال حاضر من از اوبونتو نسخه ۱۱.۱۰ استفاده می کنم و روی همین سیستم اوبوتو ۱۲.۰۴ را هم نصب کرده ام ( به صورت چند بوت ). اما در اوبوتو ۱۲.۰۴ چند تا باگ آزار دهنده ( از نظر من ) وجود داره که من تمایل به استفاده از اون رو ندارم و منتظر هستم تا این باگ ها فیکس شوند.

برای اینکه بفهم این باگ ها کی آپدیت میشن چند تا راه وجود داره.

- یکی اینکه من از داخل سایت اوبونتو چک کنم چه پکیج هایی آپدیت میشن ( راه سخت ).

- یک راه دیگه اینه که من هر بار سیستم رو ریست کنم و با اوبوتو ۱۲.۰۴ لاگین کنم و ببینم چه آپدیت های جدید اومده و آپدیت هایی که من منتظر اونها هستم اومدند یا نه. ( راه بهتر )

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

- راه سوم: بدون اینکه ریست کنم سیستم اوبوتوی جدیدی که روی یک پارتیشن دیگه نصب شده را آپدیت کنم و ببینم چه آپدیت هایی اومده ( بهترین راه ).

فرض بر اینه که من یک اوبوتو ۱۲.۰۴ توی یک پارتیشن دیگه مثلا dev/sda8/ نصب شده دارم که میخام لیست آپدیت هاش رو ببینم بدون اینکه ریست کنم و با اون بوت بشم.

خوب اول باید اون پارتیشن رو mount کنید. بهتره یک دایرکتوری یک جا بسازید مثلا mnt/ بعد اون پارتیشن رو داخلش mount کنید.

sudo mkdir /mnt/ubuntu1204

sudo mount /dev/sda8 /mnt/ubuntu1204

الان پارتیشن اوبونتوی ۱۲.۰۴ شما در شاخه mnt/ و در دایرکتوری ubuntu1204 مونت شده. خوب الان باید chroot کنیم.

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

sudo chroot /mnt/ubuntu1204

اما اگر قصد آپدیت کردن و نصب پکیج ها را هم دارید پس نیاز به دسترسی به سخت افزار هم دارید پس سیستم فایل های زیر رو هم باید قبل از دستور بالا  mount می کنید.

sudo mount –bind /dev /mnt/ubuntu1204/dev

sudo mount –bind /proc /mnt/ubuntu1204/proc

sudo mount –bind /sys /mnt/ubuntu1204/sys

پس از اجرای دستور chroot ترمینال شما تبدیل میشه به روت سیستم عامل اوبونتو ۱۲.۰۴ که قصد دیدن لیست  آپدیت اون رو دارید.

الان هر دستوری اجرا کنید مثل این میمونه که دارید روی سیستم عامل اوبوتو ۱۲.۰۴ اجرا می کنید.

ولی شما یک کمبود دارید و اون هم نداشتن اینترنت در ترمینال اوبونتو ۱۲.۰۴ هست. در حقیقت dns های شما تخصیص داده نشده اند عمل تخصیص dns پس از بوت به صورت اتومات انجام میشه ولی شما در حقیقت اوبونتو رو بوت نکردید. پس باید به صورت دستی dns ها را ست کنید.

متونید هر dns که سیستم عامل کنونی شما گرفته رو برای سیستم عامل ۱۲.۰۴ هم ست کنید. برای دیدن dns های کنونی خود در ترمینال این دستور رو اجرا کنید.

cat /etc/resolv.conf

خروجی این دستور دی dns رو به شما نشون میده. برای ادیت هم میتوانید از vi یا nano استفاده کنید.

خوب پس از این کار شما در اوبوتو ۱۲.۰۴ هم اینترنت خواهید داشت. پس

sudo apt-get update

sudo apt-get dist-upgrade

دستور اول لیست مخازن شما را آپدیت می کنه. و دستور دوم لیست پکیج هایی که آپدیت برای آنها اومده رو به شما نشون میده و از شما سوال می کنه که تمایل دارید آپدیت شوند؟

و من فقط نیاز به دیدن این لیست دارم.

گوشی n900 و سنسور ژیروسکوپ

تفاوت داشتن یک گوشی لینوکسی و یک گوشی گنو/لینوکسی در چیه؟ گوشی های بر مبنای اندروید در حقیقت لینوکسی هستند تا گنو/لینوکسی. و گوشی n900 نوکیا یک گوشی گنو/لینوکسی است. در گوشی های گنو/لینوکسی شما آزادی های عمل بسیار بالاتری دارید در انجام کارهای مختلف بر روی گوشی و دست شما برای هک های مختلف بیشتر باز است. و خیلی راحت تر می تواند کارهای جالبی نسبت به نیازتون انجام دهید.

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

در گوشی n900 خیلی ساده شما می توانید به خروجی این سنسور دسترسی پیدا کنید و همچنین توسط شل اسکریپت برنامه های جالبی برای اون بنویسید.

برای دیدن خروجی این سنسور در ترمینال گوشی n900 این دستور را تایپ کنید.

cat /sys/class/i2c-adapter/i2c-3/3-001d/coord

خروجی این دستور به شما سه عدد را نمایش می دهد که این سه عدد موقعیت تغییرات کنونی گوشی شما نسبت به نمودار x ، y ، z  می باشد.

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

while :; do cat /sys/class/i2c-adapter//i2c-3/3-001d/coord; done

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

به عنوان مثال من یک اسکریپت ساده نوشتم که پس از اجرا، ۵ ثانه صبر می کنه و پس از اون اگر گوشی حرکت کنه یک آهنگ رو اجرا می کنه. با این اسکریپ می توانید بفهمید کسی به گوشی شما دست زده. ;)

#!/bin/sh
sleep 5

a=`cat /sys/class/i2c-adapter/i2c-3/3-001d/coord |awk ‘{print$1}’`#finish
b=`cat /sys/class/i2c-adapter/i2c-3/3-001d/coord |awk ‘{print$2}’`#finish
c=`cat /sys/class/i2c-adapter/i2c-3/3-001d/coord |awk ‘{print$3}’`#finish

while :
do
aa=`cat /sys/class/i2c-adapter/i2c-3/3-001d/coord |awk ‘{print$1}’`#finish
bb=`cat /sys/class/i2c-adapter/i2c-3/3-001d/coord |awk ‘{print$2}’`#finish
cc=`cat /sys/class/i2c-adapter/i2c-3/3-001d/coord |awk ‘{print$3}’`#finish

if [ $a != $aa ] && [ $b != $bb ] && [ $c != $cc ] ;then
play-sound /usr/share/sounds/ui-wake_up_tune.wav

fi
sleep 1

done

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

یک اسکریپ دیگه که اگر گوشی را برعکس کنیم یعنی در حالتی که پشت گوشی را نگاه کنید یک موزیک اجرا می شود و اگر  صفحه آن را نگاه کنید یک موزیک دیگه.

#!/bin/sh
while :
do
cc=`cat /sys/class/i2c-adapter/i2c-3/3-001d/coord |awk ‘{print$3}’` #finish
ze=0
if [ "$cc" -gt "$ze" ]
then
play-sound /usr/share/sounds/ui-connection_lost.wav
elif [ "$cc" -le "$ze" ]
then
play-sound /usr/share/sounds/ui-charging_started.wav
else
echo “you have problem.”
fi
sleep 1
done

این دو اسکریپ با اجرای یک موزیک صرفا آموزشی بود و شما می توانید نسبت به حرکت گوشی هر کاری انجام دهید. مثلا ارسال یک اس ام اس به یک شماره خاص اجرای یک برنامه خاص و یا رکورد کردن صدا و هزار تا کار دیگه.

متاسفانه توسعه سیستم عامل maemo متوقف شده و به نظر من maemo  سیستم عامل فوق العاده خوبی بود. البته امیدوارم در آینده سیستم عاملهای گنو/لینوکسی بیشتری توسعه داده شود.

بازکردن ترمینال جدید در یک دستاپ با ازستفاده از ساید بار یونیتی

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

- دسکتاب را عوش کنید و یک ترمینال جدید باز کنید.

- روی ترمینال در سایدبار راست کلیک کنید و new terminal را انتخاب کنید.

که این دو راه پشنهاد نمی شود. :D

راه آخر و ساده ترین راه:

- با کلیک وسط موس بر روی ترمینال در ساید بار کلیک کنید.

پاک کردن ویروس های فلش، سایز ویروسها وجه اشتراک

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

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

کافیه اول تمامی فایل هایی که اون سایز مورد نظر رو دارند با دستور find پیدا کنید و بعد توسط rm خروجی find  رو پاک کنید.

نتیجه میشه دستور زیر

find -size 20c -exec rm {} \;                 #finished

اندازه فایل های ویروس ۲۰ بایت در نظر گرفته شده.

ماشین حساب در ترمینال

در ماشین حساب های گرافیگی معمولا یک محدودیت خروجی وجود داره که اگه خروجی شما بیش از مثلا ۳۲ عدد باشد نمایش داده نمی شود و یا به صورت یک ضریب نمایش داده می شود.

در گنو/لینوکس برای اینکه بتوانید سریع به ماشین حساب دسترسی داشته باشید و محاسبات شما تا رقم آخر به نمایش درآید می توانید از ماشین حساب bc در ترمینال استفاده کنید.

برای اینکه در ترمینال یک جمع را انجام دهید به صورت زیر عمل می کنید.

 echo ’55+456′ | bc$
511

تفریق:

echo ’430-230′ | bc$
200

ضرب

echo ’5*5′ | bc$
25

تقسیم

echo ’55/34′ | bc$
1

اگر بخواهید تقسیم شما به صورت اعشاری نمایش داده شود می تواند با دستور scale مقدار آن را مشخص کنید مثلا در دستور زیر تا ۲۰ رقم اعشار را نمایش می دهد.

echo ‘scale=20;55/34′ | bc$
1.61764705882352941176

توان

echo ’3^3′ | bc$
27

سرعت محاسبه با bc بسیار بالا است و همچنین تمامی اعداد خروجی نیز نمایش داده میشود برای مثال عدد ۲ را به توان ۱۲۳۴۵ برسانید و زمان انجام عملیات را هم ببیند دستور زیر.

time echo ’2^12345′ | bc$
16417101068825821635602074166390650141012723553073588127211610308792\
50941713901442801590345364394577348704191271404016671955103310856571\
85332721089236401193044493457116299768844344303479235489462436380672\
11701512328329913139190417928767825917330853673876198113995865488085\
22349084483388172890141667741698692513393798285997484929187754378647\
39032217778051333882990074116246281269364933724892342134504702491040\
01663755742981089378076519741858947758471654348099572253331786235214\
14592177813162662111864861570192620804140776702646427360184269981135\
23445732680856144329876972273300703392584997729207197971083945700345\
49409240014718699730701206945406848958903567697944816984806083692494\
58241977064933061082585119360303413932215864235232644524494037819933\
52421885094664052270795527632721896121424813173522474674395886155092\
20340403673074847478171071574544613546809813983182408325964791917527\
35036815611726846242833844385047765030004322416045504543741163208222\
27191911322123484085063926350606342197146407841178028071147192533942\
51727055351398814292597609076969545622115969905258353301133165207934\
70930981730869754835392744640233574564844654829274795694373203685922\
22760278170306076733438801098370797675711274671054970711442158930561\
68434313577411874159450670283314739675882501585004298334369034518599\
59562351438257716205435460306645626478546564313026445741198738202155\
95718618624485232422006575550007068883734241454686368856734496265385\
90880940397249468513774112286689671967805393728581840975167032014050\
18430392240407358700968895962734191063891036620953189379906259801367\
11988237421962315266686856089505981438440850638067589321141759499017\
02383959685845554819200014008514229416698706349902479268133484315979\
09363213519198597586695692005415076120997809097051989021760262198722\
01715422096090343686272984351441594569506778041062663266799342793856\
31380154095981584578858475903324882824856158645027117277724097179565\
60820018481158152609305216631674801738860640191185727782815167351577\
79555888167787064432558595410843987446497881666288423233170060413025\
92462995047730334218014939892607361858271535874225038895823128169475\
79805237912636994507329523257276642099477860639825617753276385045169\
18570101319391698412388607603742484414748268389669129118026878969735\
78228684111684265641057464760752441890072032804537799338627980876899\
03762894247573510523693939771378719981191688984930379387566356215576\
23138404459266598837784229325799838782026060481496865561757031839002\
25709180287694924839274417566911224208843988324833631059700125738598\
07769615293511988777471935310549568818083321779467514040382287185679\
11769630971553915410012677600002457982207465176670752102117002773980\
54808969653097247643969459988128181297321726585388472790653547974585\
40853388511051445854819941562064974367458999448777325314125412790143\
00324594890623941145509856940982863769834430048120562966797907114102\
68987936494568986049347495453842236771950788251316605100735299406831\
92514506666766483682005643293829987588757604142596540049772613099882\
67319806354856051784553990936610634733375984159028722378614984450255\
38631558563199450335000214291049319025482561070740058997636498574846\
79551310779716418826728958545712363682828113362207691747847201133312\
69084746524204124263475054112841630933586166195036115696469686075600\
48042056355756761683563325262232717281100214639275444505118216980528\
46302597035426339551261795201130596299142298336885359257296767780284\
06897316106101038469119090984567152591962365415039646394591503830797\
62633924698605707775861141366491416874537526678629814117149657394161\
43877441258436856770636197829187598231060210540377578577615874722408\
35040580447360544029064930412569943169729238102162312218687930203068\
055400275795180972382856696655279408212344832

real 0m0.022s
user 0m0.008s
sys 0m0.004s

همانطور که میبیند ۸ هزارم ثانیه زمانی بود که از یوزر اشغال شد.

از دستور bc نیز می توانید استفاده کنید که با اجرای آن وارد ماشین حساب bc می شود و می توانید محاسبات خود را انجام داده و با دستور quit از آن خارج شوید.

کارهای محاسباتی زیادی می توانید با bc انجام دهید که منوال کامل آن را می توانید از اینجا مطالعه کنید.

ارسال اتوماتیک موزیک در حال پخش در استاتوس

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

برای این منظور شما نیاز به pidgin دارید که یک چت کلاینت  همه کاره است و می تواند به سرورهای بزرگ چت متصل شود و شما اگر چندین اکانت های مختلف در سرورهای مختلف داشته باشید، تغییر استاتوس شما بر تمامی سرورها اعمال خواهد شد.

لیست چت سرورهایی که pidgin به آنها متصل میشه.

پس از نصب پیدجن شما نیاز دارید پلاگین pidgin-musictracker رو نصب کنید. برای نصب در توزیع های دبیانی

sudo apt-get install pidgin-musictracker

پس از نصب باید pidgin رو اجرا کنید و از داخل تب tools به قسمت plugins رفته و پلاگین musictracker رو با زدن تیک فعال کنید.

همچنین میتواند کانفیگ های پیش فرض رو تغیییر بدید. در قسمت Configure Plugin وقتی که MusicTracker انتخاب شده است.

در پنجره کانفیگ میتوانید موزیک پلیر رو انتخاب کنید که در حالت پیش فرض Auto-detect است که معمولا به صورت اتوماتیک پلیر شما را شناسایی می کند. و شما می توانید لیست کامل پلیرهایی که این پلاگین ساپورت می کند رو ببیند.

در قسمت Status Format می توانید مشخصاتی را که تمایل دارید درحالت های مختلف به استاتوس برود را تعیین کنید. کافیست بر روی Add کلیک کنید توضیحات کامل داخل آن هست به عنوان مثال %d زمان آهنگ را نمایش می دهد.

تنظیمات دیگری هم هست که برای مواقعی هست که شما استاتوس را در حالت away قرار می دهید و همچنین فیلتر کردن کلماتی که ممکنه توی مشخصات آهنگ باشه که زیاد جالب نیست و شما تمایل ندارید به استاتوستون برود را میتونید اضافه کنید که فیلتر بشه.

بسیار عالی همه چیز آماده است. شما میتوانید موزیک درحال شنیدن رو با دوستانتون به اشتراک بزارید و همچنین ببینید که دوستان شما در حال حاضر در حال شنید چه موزیکی هستند.

 

 

تغییر مجوزهای دایرکتوری های داخل یک دایرکتوری

وقتی از ماژول های فارسی شده دروپال استفاده می کردم متوجه شدم  کسانی که اونها رو فارسی کردن و آپلود کردن احتمالا از طریق ویندوز این کار رو انجام دادن و باعث تغییر مجوزهای دایرکتوری ها شده اند،‌ که موقع نصب به تمامی این مجوزها روی سرور اخطار مجوز داده میشد.

برای  درست کردن این مجوز های میشه برای هر دایرکتوری دستور تغییر مجوز رو اجرا کرد که کار عاقلانه ای نیست. پس چطور میشه مجوز دسترسی تمامی دایرکتوری های داخل یک دایرکتوری را عوض کرد بدون تغییر دادن مجوز فایلهای داخل اون دایرکتوری. و برعکس تغییر تمام مجوز های فایلها بدون تغییر مجوز دایرکتوری ها.

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

 find . -type d -exec chmod 755 {} \; # finish

و اگر در شاخه دایرکتوری نیستید بجای (.) بعد از find مسیر شاخه رو بدید.

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

find . -type f -exec chmod 755 {} \; # finish

راه های دسترسی سریع به ترمینال در گنوم

ترمینال در سیستم عامل گنو/لینوکس همیشه مورد استفاده است و دسترسی سریع به آن موجب سرعت در استفاده از سیستم عامل است.

یکی از راه های دسترسی سریع به ترمینال استفاده از Shortcut key است. برای این منظور keyboard را اجرا کرده و در قسمت Shortcuts و Launch Terminal ترکیب دلخواه خود را وارد کنید. به صورت پیش فرض در اوبونتو از ترکیب Ctrl + Alt + T استفاده شده است.

بعضی اوقات نیاز هست که شما در ترمینال در شاخه مورد نظر باشید و باید از دستور cd استفاده کنید تا به شاخه مورد نظر بروید. برای استفاده نکردن از دستور cd میتوانید ازnautilus-open-terminal استفاده کنید.

برای نصب از دستور زیر استفاده کنید.

sudo apt-get install nautilus-open-terminal

پس از نصب باید nautilus را یک بار ریست کنید. پس کلید های Alt + F2  و دستور killall nautilus

پس از نصب وقتی داخل فولدری راست کلیک کنید گزینه Open in Terminal با عث می شود که ترمینال در آن شاخه باز شود و دیگر نیاز به استفاده از دستور cd برای رسیدن به شاخه مورد نظر نیست.

یکی دیگر از ابزار های خوب استفاده از  nautilus-terminal است. این پکیج یک ترمینال در بالای تمامی پنجره های ناتلیوس به شما می دهد که به همان شاخه اشاره می کند و شما می توانید دستورات خود را در همانجا وارد کنید. برای نصب از دستور زیر استفاده کنید.

sudo apt-get install nautilus-terminal

پس از نصب باید nautilus را یک بار ریست کنید.

و  راه دیگه برای دسترسی به ترمینال استفاده از guake است. guake به صورت پیش فرض از کلید F12 برای باز و بسته شدن استفاده می کند که قابل تغییر است. با فشار دادن کلید F12 یک ترمینال از بالای صفحه کامپیوتر به سمت پایین باز شده و شما می توانید دستورات را در آن اجرا کرده و مجددا با F12 آن را به بالا ببرید با توجه به اینکه ترمینال هیچ وقت بسته نمی شود. این ترمینال برای مواقعی که شما از ssh بر روی سرور استفاده می کنید بسیار مفید است و می توانید چندین tab در آن ایجاد کنید و پس از اجرای دستورات آن را مخفی کنید.

برای نصب از دستور زیر استفاده کنید.

sudo apt-get install guake

و پس از نصب آن را اجرا کنید. در تنظیمات آن می توانید مقدار کشیده شدن آن به پایین صفحه مانیتور و همچنین مقدار شفافیت ( Transparency ) و غیره را تغییر دهید.

نمایشگر منابع سیستم در اوبونتو ۱۱.۱۰

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

sudo add-apt-repository ppa:indicator-multiload/stable-daily

sudo apt-get update

sudo apt-get install indicator-multiload

پس از نصب از ترکیب کلیدهای Alt+F2 استفاده کنید و تایپ کنید indicator-multiload و اجرا.

برای تنظیمات هم روی پنل بالایی بر روی indicator-multiload که هم اکنون در پنل بالایی وجود داره راست کلیک کرده و گزینه Preferences رو کلیک کنید و در قسمت Monitored Resources گزینه هایی که تمایل دارید در پنل نمایش داده بشه رو تیک بزنید.

اگر هم مایل هستید لیست پروسه های سیستم و یا منابع سیستم رو به صورت نمودار زمانی ببینید کافیه بر روی indicator-multiload راست کلیک کنید و گزینه Open System Monitor رو انتخاب کنید.