لینوکس و من

لینوکس و من

لینوکس و من

حاصل تجربیات ما از سر و کله زدن ها با لینوکس

بایگانی

۲۱۳ مطلب با موضوع «ترفند» ثبت شده است

یک VLC

از اینکه با هر بار کلیک کردن روی فایل های موزیک یه دونه VLC باز میشد خوشم نمیومد. مجبور بودم قبلی رو ببندم یا اینکه فایل موزیک رو بکشونم توی همون VLC.این مورد با یه تیک توی قسمت interface از prefrences حل میشه: Allow only one instance

ایمیج فلاپی!

یه سری کارا هست که اتفاق میفته که لازم میشه شما یه ایمیج رو که مخصوص فلاپی است روش رایت کنید!!! این فایل ها img هستن و با WinImage میشه توی ویندوز این کارو کرد. اما توی لینوکس (در اینجا اوبونتو) با این دستور میشه اینگارو کرد:dd if=/home/amin/Desktop/super_grub_disk_english_floppy_0.9799.img  of=/dev/fd0 bs=1024 conv=sync ; syncفایل ایمیج رو میبینید؟ یه چیزیه که گراب رو روی فلاپی نصب میکنه. (دارم سعی میکنم برای اون نسخه ای که روی هارد اکسترنال از اوبونتوی خودم نصب کردم یه فلاپی یا cd از گراب درست کنم تا توی هر کامپیوتر دیگه ای که نمیشه به BIOS دسترسی داشت بشه ازش استفاده کرد. اگه شما راهی بلدید بگید خوش حال میشم.این هم دستور ساخت ایمیج از فلاپی:dd if=/dev/fd0 of=imageاین میدونید به درد کیا میتونه بخوره؟! به درد کسایی که نرم افزاری خریدن که قفلش روی فلاپیه و برای هر بار استفاده باید قفل رو از فلاپی به سیستم انتقال بدن. پس با تعویض سیستم عامل قفل هم هوتوتو! میشه اینجوری قفل رو هم روی فلاپی داشت. چون اینجور چیزا رو نمیشه با یه کپی پیست ساده انجام داد. نمیدونم چرا!

استخراج ایمیل از یک فایل متنی

یک فایل متنی داریم. آت و آشغال زیاد داره. اما کلی ایمیل توش هست که ما به اونها نیاز داریم. (حالا به چه دلیل بماند! نیاز داریم دیگه آقا جان! نیاز هم که مادر اختراع است!) البته ما اختراع نمیکنیم. ما کشف میکنیم!! ما یعنی من!perl -wne’while(/[\w\.]+@[\w\.]+/g){print “$&\n”}’ ‘/textfile.txt’ > /email-list.txtدستور بالا یک فایل به شما میده که در هر خط یک ایمیل وجود داره. حالا میخوایم بعد از هرایمیل، یه کاما بذاره که بشه اونارو توی compose گذاشت و ایمیل زد بهشون. با این دستور:awk -F”,” ‘{ if( NR == 3 ) { val=$2 }  if( NR /new-email-list.txtوالله بنده اصلا نمیدونم این دستورات چی هستن! من فقط search کردم پیداشون کردم و استفاده کردم دیدم کار میکنه. پس اینجا نوشتم تا شما هم اگه نیاز داشتین ببینین. فلسفه ی این دستور ها باشد برای کسانی مثل جادی که اینکاره هستن! ما سر در نمی آوریم! ما یعنی من!

یافتن یک عبارت

تا حالا خواستین یه کلمه یا یه جمله رو بدونید تو کدوم فایل شما است بعد یکی یکی فایل ها رو باز کنید و بگردید دنبالش؟! خیلی زمان میگیره. مگه نه؟ خب با این دستور، هر عبارتی رو که بخواید توی هر فایلی براتون جست و جو میکنه. اگه در مسیری باشید که این دستور رو اجرا میکنید میره همون جا رو میگرده.find -type f -exec grep -H ‘YOUR STATEMENT’ {} \;اما اگه بخواید در کل کامپیوتر بگرده، اینجوری میشه:find / -type f -exec grep -H ‘YOUR STATEMENT’ {} \;میتونید آخرش هم بنویسید > /home/resault.txt که نتایج رو براتون تو یه فایل ذخیره کنه.

رویای دیرین من!

یکی از خواسته های من در سیستم عامل لینوکس، بعد از اینکه فهمیدم چی به چیه، این بود که بتونم پکیج یا نرمافزاری رو که نصب کردم بتونم دوباره برش گردونم! من سر در نمیاوردم که چرا نمیشه این کارو کرد، چرا راهی براش نیست… آخه در نصب شدن یه بسته به نظرم اصلی ترین کاری که میشه کپی شدن محتویات اون بسته است. و مثل ویندوز رجیستری ای چیزی نداره که تنظیماتی غیر قابل بازگشت اعمال بشه! (این نظر منه، ممکنه درست هم نباشه)گذشت و گذشت … تا این که یه چیزی به نام dpkg-repack پیدا شد که میتونست این کارو انجام بده. و دوست خوبم یه انقلابی معرفیش کرده بود. اما من بیشتر از این میخواستم! میخواستم کل بسته هایی که توی سیستم عاملم نصب کردم برگردونم. که این خوبیش از این جهاته:۱- خب یه پشتیبان از تمام نرم افزار هاتون دارین!۲- وقتی با dpkg-repack یه بسته ای رو برگردوندید، نمیتونید بفهمید dependencies اون بسته چیه تا اونا رو هم همراهش برگردونید (تا در آینده که لازمشون داشتید حضور داشته باشن). یا اگر هم بشه dependencies یک بسته رو فهمید (که حتما میشه) ممکنه صد تا بسته ی مختلف باشه که هر کدوم ده تا واسه خودشون dependencies دارن و … پس ما یه چیزی میخوایم تمام عیار که هر چی که هست برداره بیاره!۳- میتونم از این بسته های برگردونده شده، یه local repository درست کنم، روی CD یا DVD رایتشون کنم و اونو توی کامپیوتر های دیگه استفاده کنم. یعنی یه چیزی شبیه Homa که برای اوبونتو ساخته شده!۴- میتونم از این local repository وقتی که یه fresh install انجام میدم استفاده کنم و ظرف چند دقیقه هر چیزی که لازم دارم دوباره توی نسخه ی تمیزم داشته باشم! این برای کسی که نمیخواد upgrade کنه و بیشتر دوست داره fresh install داشته باشه خوبه!خب… برای نیل به این اهداف (!) که مدت ها توی سر من بودن چه کاری باید کرد؟ طبیعتا باید یه لیست از تمامی بسته های نصب شده داشته باشیم. مگه نه؟ و بعد بدیمش به این dpkg-repack که هر چی که توی این لیست هست برگردونه! تهیه ی لیست ساده است. با این دستور:sudo dpkg --get-selections > /your-home-directory/list.txtخب. این لیستی از بسته های داخل سیستم شما رو توی فایل list.txt ذخیره میکنه. اما متاسفانه این لیست همینجوری به درد ما نمیخوره! چرا؟ چون محتویاتش طوری نوشته شده که برای dpkg-repack غیر قابل استفاده است. پس باید یه کاری کنیم قابل استفاده بشه. یعنی یه لیستی داشته باشیم که اسم تک تک بسته ها، کنار هم بیان و فقط به اندازه یه space از هم فاصله داشته باشن. که ما بتونیم اونو کپی کنیم و جلوی dpkg-repack بذاریم!خب من بلد نبودم! توی پستای قبلی این موضوع رو عنوان کردم. تا این که آقای جادی روزنه های امیدی رو در بنده بوجود آوردند… (واقعا جای بسی افتخار است که کسی مثل جادی بیاد وبلاگت کامنت بذاره و بگه بیا کمکت کنم!) خلاصه… با راهنمایی جادی عزیز و یکم کلنجار رفتن خودم، تونستم اون لیست رو به چیزی تبدیل کنم که لازم داشتم. با این دستورات:cut --f 1 /my-home-directory/list.txt | xargs sudo dpkg-repackاین یک خطی که میبینید با اون لیست کاری میکنه واسه dpkg-repack قابل استفاده میشه و xargs هم این اطلاعات جدید رو تقدیم جناب dpkg-repack میکنه و ایشون هم مثل بچه های خوب و حرف گوش کن کاریو که باید انجام بده میده! و من قریب به ۱۹۷۶ تا پکیج به حجم ۱.۲ گیگابایت در عرض تقریبا نیم ساعت، تحویل گرفتم!حالا نوبت این میرسه که یه local repository از این گنج داشته باشم.من پکیج ها رو توی فولدر packages توی home ریختم. پس:sudo dpkg-scanpackages /my-home-directopry/packages /dev/null > /my-home-directopry/packages/Packagesسپس بروید داخل این فولدر packages و فایل Packages رو باز کنید. این فایلیه که لیستی از مشخصات بسته های اونجا رو برای فهموندن به synaptic در خودش داره و توسط دستور بالا آماده شده. فایل رو با یه ادیتور متن باز کنید و به قسمت replace برید و اونجا شما میبینید که جلوی Filename یه چیزی اضافه هم نوشته که نباید باشه. یعنی آدرس محل اون پکیج رو نوشته. در صورتی که ما فقط اسمشو میخوایم نه آدرسشو. چون توی نصب کردن بعدا مشکل ایجاد میکنه. (من امتحان کردم، دارم میگم انجام بدین تا به اون مشکل بر نخورین). بله، پس /my-home-directory/packages رو کپی میکنم و در قسمت search for میذارم و دکمه ی replace رو میذارم و اونا ناپدید میشن…حالا میتونم اینارو رایت کنم روی DVD و توی هر کامپیوتری که خواستم این پکیج ها رو به لیست پکیج هاش اضافه کنم:echo “deb file:/my-DVD-ROM/packages ./” > /tmp/my-local.listو بعد:sudo mv /tmp/my-local.list /etc/apt/sources.list.d/my-local.listو بعد تر:sudo apt-get updateکه این مرحله ی آخر روش های دیگه ای هم داره که میتونید بگردید پیدا کنید و به ما هم بگید…فکر میکنم باید انگلیسی این مطلب رو هم منتشر کنم. چون خیلی از ملت ها خواستار این کار هستند!من که خیلی خوش حالم. شما چه طور؟

Matrix Style در ترمینال

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

آپدیت در خواب

از اون جایی که قبلا شرح دادم چه طوری برنامه ریزی کنیم تا سیستم یه کار خاصی رو در زمان خاصی انجام بده، میخوام این دفعه بهش بگم ساعت ۳ که روشن شدی و کانکت شدی، بی زحمت آپدیت هم بشو قربون دستت. (نیست ADSL از ۳ تا ۷ رایگانه واسه ما…)خب، دستور آپدیت اینه:sudo apt-get updatesudo apt-get upgradeولی وقتی اینو میزنیم از ما میپرسه که آیا مطمئنید میخواید فلان قدر دانلود کنید و … y/n هم؟پس برای دستور دوم این option ها رو وارد می کنیم که دیگه هیچچچچی از ما نپرسه و مثل بچه ی آدم آپدیتشو بکنه:sudo apt-get upgrade -y --force-yesحالا این دستورها رو داخل scheduled task قرار میدیم.امیدوارم صبح که بلند شدم کارش تموم شده باشه. یه خوبی هم که داره اینه که اگه وقت کم اومد برای دانلود، فردا صبح از ادامش میره. خدا لینوکس رو از ما نگیره.

checkdisk اجباری

سلام. دیدید بعضی موقع ها اوبونتو که داره بوت میشه یه check disk میکنه؟ممکنه بعضیا بخوان این عمل رو یه بار به اختیار خودشون انجام بدن. آیا باید صبر کنن تا زمانش فرا برسه؟!این دستور کاری میکنه که در بوت بعدی این کار انجام شه:sudo touch /forcefsck

کانکت شدن اتوماتیک، بعد از دیسکانکتی

خیلی وقت بود که دنبال این میگشتم که توی لینوکس بشه وقتی disconnect میشی، خودش connect بشه. تا این که اسکریپت جالبی را یافتم.درمورد دستور sudo هم دقت کنید. اگه شما نیازی بهش ندارین از توی متن برش دارین. بعد میتونین اینو توی startup بذارین، یا هرکاری میخواین باهاش بکنین!آو، راستی، شاید کسی ندونه چه طور میشه چند تا کانکشن مختلف با اسمای مختلف ساخت. چون دستور sudo pppoeconf یه کانکشن میسازه به نام dsl-provider که با pon dsl-provider وصل میشیم.واسه این کار، با کاربر root به این محل عزیمت بفرمایید:/usr/etc/peersخب، حالا اون فایل dsl-provider رو تغییر نام بدین. مثلا night . از این به بعد با دستور pon night وصل میشین. حالا میتونین یه کانکشن دیگه هم بسازین و اسمشو تغییر بدین.درمورد اینترنت  dialup نمیدونم دستور ها چیه. کسی میدونه لطفا بگه.برای دیدن اسکریپت به ادامه مطلب برید:

تبدیل دیکشنری های Babylon با فرمت BGL به دیکشنری های Stardict!

خب خب خب!تبدیل دیکشنری های Babylon با فرمت BGL به دیکشنری های Stardict! قبلنا دنبال این کار بودم، اما دیدم راهی براش نیست بی خیال شدم. تا این که….dictconv رو از synaptic نصب کنید. dictzip رو هم همین طور. خب. یه فایل BGL آماده کنید و در ترمینال تایپ بفرمایید:dictconv DICTIONARY.bgl -o DICTIONARY.ifoمنظور از DICTIONARY.bgl فایل مورد نظر شما است.سپس مرقوم بفرمایید این را:dictzip DICTIONARY.dictحالا فایل هایی را که تولید شده اند بذارید توی فولدر و بعد کپیش کنید این جا:/usr/share/stardict/dicو لذت ببرید. برای مثال، من چیزی رو که مدت ها میخواستمش با این روش تبدیلش کردم:دیکشنری فارسی به انگلیسی…! هیپ هیپ هورا… از این جا دانلودش کنید!