لینوکس و من

۴ مطلب در دی ۱۳۸۸ ثبت شده است

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

یک فایل متنی داریم. آت و آشغال زیاد داره. اما کلی ایمیل توش هست که ما به اونها نیاز داریم. (حالا به چه دلیل بماند! نیاز داریم دیگه آقا جان! نیاز هم که مادر اختراع است!) البته ما اختراع نمیکنیم. ما کشف میکنیم!! ما یعنی من!

perl -wne’while(/[\w\.]+@[\w\.]+/g){print “$&\n”}’ ‘/textfile.txt’ > /email-list.txt

دستور بالا یک فایل به شما میده که در هر خط یک ایمیل وجود داره. حالا میخوایم بعد از هرایمیل، یه کاما بذاره که بشه اونارو توی compose گذاشت و ایمیل زد بهشون. با این دستور:

awk -F”,” ‘{ if( NR == 3 ) { val=$2 }  if( NR <= 3 ) { print } else {print val”,”$0} }’ /email-list.txt > /new-email-list.txt

والله بنده اصلا نمیدونم این دستورات چی هستن! من فقط search کردم پیداشون کردم و استفاده کردم دیدم کار میکنه. پس اینجا نوشتم تا شما هم اگه نیاز داشتین ببینین. فلسفه ی این دستور ها باشد برای کسانی مثل جادی که اینکاره هستن! ما سر در نمی آوریم! ما یعنی من!

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

تا حالا خواستین یه کلمه یا یه جمله رو بدونید تو کدوم فایل شما است بعد یکی یکی فایل ها رو باز کنید و بگردید دنبالش؟! خیلی زمان میگیره. مگه نه؟ خب با این دستور، هر عبارتی رو که بخواید توی هر فایلی براتون جست و جو میکنه. اگه در مسیری باشید که این دستور رو اجرا میکنید میره همون جا رو میگرده.

find -type f -exec grep -H ‘YOUR STATEMENT’ {} \;

اما اگه بخواید در کل کامپیوتر بگرده، اینجوری میشه:

find / -type f -exec grep -H ‘YOUR STATEMENT’ {} \;

میتونید آخرش هم بنویسید > /home/resault.txt که نتایج رو براتون تو یه فایل ذخیره کنه.

اشتراک گذاری فولدر ها در دو لینوکس

سلام! قبلا گفتم که چه جوری بین دو تا اوبونتو اینترنت رو به اشتراک بذاریم. خیلی دوست داشتم تا فایل ها و فولدرها رو هم به اشتراک بذارم. اما نمیشد. بنا بر اعتقاد من که کار نشد نداره، بالاخره شد! حالا بیاید ببینیم چه طوری…

اولا که این بسته ها رو توی هردو تا کامپیوتر نصب کنید: nfs-kernel-server و nfs-common.

مسئله: میخواهیم فولدر /home/user1/share را در کامپیوتر  ۱۹۲.۱۶۸.۰.۱ با کامپیوتر  ۱۹۲.۱۶۸.۰.۲ به اشتراک بذاریم.

راه حل: از کامپیوتر ۱ که اون فولدر توش هست، این دستور را به اجرا در آورید: sudo gedit /etc/exports و یک عدد فایل متنی برایتان باز میشود که داخلش چیز هایی نوشته است. شما این خط را (با احتساب تغییرت IP لازم) به آخر این فایل اضافه کنید:

/home/user1/share 192.168.0.2(rw,sync,no_subtree_check)

و بعد از اینکه save کردید، دستور زیر را در کامپیوتر اول به اجرا درآورید:

sudo /etc/init.d/nfs-kernel-server restart

سپس در کامپیوتر دوم، یک فولدر (که میتواند هر جای دلخواه دیگری باشد) بسازید. من اینو ساختم:

sudo mkdir /mnt/share

حالا باید اون فولدرِ به اشتراک گذاشته شده رو توی کامپیوتر دوم mount کنیم. پس در کامپیوتر دوم:

sudo mount 192.168.0.1:/home/user1/share /mnt/share

تموم شد! حالا اون فولدر به اشتراک گذاشته شده. خیلی زیبا است نه؟!! اگه به مشکلی در مورد nfs بر خوردید اول به این سایت یه سری بزنید.

اشتراک گذاری اینترنت در اوبونتو

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

چند بار تلاش کردیم و نشد و کار را رها کردیم. اما دیشب تصمیم گرفتم تا مشکل رو حل نکردم از جام بلند نشم… که بالاخره حل شد و من بسیار راضی و خوش حال هستم. خواستم همون دیشب توی وبلاگ هم بنویسم که باز یه نفر پاشو گذاشت روی سیم، اینترنت مملکت از عرش به مرکز هسته ی زمین سقوط نمود…

و اما اصل ماجرا

هدف: به اشتراک گذاشتن اینترنت ADSL بین دو کامپیوتر دارای اوبونتو

over view! : یک مودم ADSL داریم که یه پورت usb داره و یه پورتی که به کارت شبکه وصل میشه. یک pc داریم که با usb به این مودم وصله و به اینترنت دست رسی داره و یک کارت شبکه ی onboard هم داره. یک لپتاپ داریم که اونو بوسیله کابل شبکه ای که همراه مودم بود، به کارت شبکه ی pc وصل کردیم.

خب، بسم الله الرحمن الرحیم… firestarter رو توی هر دو کامپیوتر نصب بفرمایید. و آن را اجرا بفرمایید. این تنظیماتی است که بنده در pc به ایشان وارد کرده ام:

و در لپ تاپ هم تنظیماتش به گونه ایست که به جای ۱۹۲.۱۶۸.۰.۱ مقدار ۱۹۲.۱۶۸.۰.۲ داده شده و و اون بالا برای device ها هردو یکی هستند eth0 چون هم اینترنت (که قراره بیاد) و هم شبکه ی داخلی از کارت شبکه هه هستند دیگه!

این network manager مال pc رو باز می کنیم و یک wired connecion با تنظیمات زیر می سازیم:

اون DNS severs رو میبینید؟ از اینجا میتونید پیداش کنید که چنده: فایل /etc/resolv.conf

و پر واضحه که توی لپتاپ هم همین کارو بکنید و  اون توضیح درمورد IP رو هم اینجا باید اعمال بفرمایید.

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

sudo /etc/init.d/networking restart

طبق منابع حاضر در اینترنت الآن دو تا کامپیوتر باید به هم وصل باشن و باید لذت ببریم. اما در عمل برای من این جوری نبود! ping نمیشدن به هم. تا این که این تنظیمات رو

iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255

در فایل /etc/network/interfaces گنجاندم و دستور قبلی رو اجرا کردم و دیدم که اه چه جالب! ping شدن و اینترنت هم کار کرد!

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

آهان یه نکته، بعد از اینکه اینترنت share شد، هی این یارو firestarter میگفت از فلان IP درخواست شده حال ندارم جواب بدم و اینترنت لپتاپ رو قطع میکرد! بهش دستور دادیم از این IP ها به گرمی استقبال کن مردک! (توی قسمت policy اون IP ها رو به عنوان چیز معرفی کنید… یعنی مجاز…)

حالا سوال بنده این است که اگر یک folder را share کردیم، چه جوری از اون یکی کامپیوتر بهش دسترسی پیدا کنیم؟! چون share که میشه، امانمیدونم از اون ور چه جوری پیداش کنم!