‏نمایش پست‌ها با برچسب معرفی ابزارها. نمایش همه پست‌ها
‏نمایش پست‌ها با برچسب معرفی ابزارها. نمایش همه پست‌ها

استفاده از سرویس‌های مختلف گوگل از طریق ترمینال

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

نرم‌افزار googleCL نرم‌افزاریه که به زبان پایتون و با استفاده از Gdata APIs که خود گوگل اون‌ها رو ارائه داده نوشته شده و در هر سه پلتفرم لینوکس، ویندوز و MacOS قابل استفاده ‌است. این نرم‌افزار در حال حاضر تنها برای بعضی سرویس‌های گوگل که API اونها در دسترس قرار داره، قابل استفاده است. این سرویس‌ها شامل بلاگر، Calendar، Contacts، Docs، Picasa و یوتیوب می‌شه. شاید اگر گوگل API سرویس‌های دیگه‌اش رو هم ارائه بده این نرم‌افزار کاربرد بیشتری داشته باشه.

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

۱- دانلود کتابخانه gdata-python-client
۲- دانلود نرم‌افزار googleCL
۳- خارج‌کردن فایل‌ها از حالت فشرده و نصب اون‌ها با استفاده از فرمان‌های زیر:

cd gdata
python setup.py install
cd ../googleCL
python setup.py install
و اما جهت استفاده از این نرم‌افزار بد نیست نگاهی به دستورالعمل استفاده از این نرم افزار و همچین این مثال‌ها بیاندازید. البته می‌تونید با استفاده از فرمان زیر صفحه‌ی راهنمای این نرم‌افزار رو هم بخونید.
man google
به عنوان مثال برای دانلود لیست کانتکت‌های موجود در Google Contacts خودتون می‌تونید از فرمان زیر استفاده کنید:
google contacts list name, email
اگر برای اولین بار از یکی از سرویس‌های این نرم‌افزار استفاده کنید پس از وارد کردن اکانت گوگل‌تون ازتون می‌خواد از طریق یک مرورگر اجازه‌ی دسترسی به اطلاعاتتون رو بهش بدید و سپس کلید Enter رو بزنید.

همچنین بدیهیه که با ادغام فرمان‌های مختلف لینوکس و قابلیت‌های مختلف ترمینال می‌تونید به نتایج جالب‌تری برسید. مثلا فرمان زیرکه لیست نام و ای‌میل تمام افرادی رو که نام اون‌ها ثبت شده رو در قالب فایل contacts.scv به ما می‌ده:
google contacts list name,email --title ".*." > contacts.csv
امیدوارم از این نرم‌افزار لذت ببرید.

MD5 چیست و با آن چه می‌توان کرد؟

در ابتدا، Hash چیست؟

hash خروجی تابعی یک‌طرفه است، برای تولید نوعی اثر انگشت از یک سری داده. منظور از یک‌طرفه بودن تابع Hash این است که نمی‌توان با داشتن خروجی تابع به اصل داده دست یافت (همان‌طور که با داشتن اثر انگشت یک انسان، نمی‌توان آن انسان را از نو تولید کرد!). احتمال اینکه دو داده‌ی متفاوت دو خروجی یکسان از این تابع بگیرند بسیار پایین است، به همین دلیل از الگوریتم‌های متفات این تابع معمولا برای تشخیص درستی داده‌ها استفاده می‌شود. به عنوان مثال اگر از الگوریتم معروف MD5 برای محاسبه‌ی خروجی تابع Hash استفاده کنیم، و کلمه‌ی 'Cat' را به آن بدهیم، خروجی ما همیشه مقدار زیر است:

d077f244def8a70e5ea758bd8352fcd8
چنانچه کلمه‌ی 'Cat'  را به 'Cats' تغییر دهیم، خروجی تابع به شکل زیر تغییر پیدا می‌کند:

0832c1202da8d382318e329a7c133ea0
مقدار داده‌ای که به تابع می‌دهیم، ربطی به سایز خروجی آن ندارد. همچنین تغییر در داده‌، هر چقدر هم که کوچک باشد، خروجی کاملا متفاوتی ارائه خواهد کرد.

MD5 چیست؟

MD5 یا Message-Digest algorithm 5
پر استفاده‌ترین، تابع رمزنگاری Hash است. از این تابع در بسیاری از نرم‌افزارهای حفاظت اطلاعت استفاده می‌شود و همچنین کاربرد زیادی در تشخیص درستی داده‌ها دارد. خروجی این تابع مقداری 128 بیتی‌است که معمولا به صورت یک عدد هگزادسیمال ۳۲ رقمی ارائه می‌شود. به خروجی تابع MD5 Hash یک داده، MD5 Checksum آن داده گفته می‌شود.

چگونه MD5 Checksum یک عبارت را محاسبه کنیم؟

ساده‌ترین راه برای این کار مراجعه به این آدرس، نوشتن عبارت مورد نظر و فشردن دکمه‌ی Calculate MD5 است، اما نرم‌افزار‌های زیادی هم برای محاسبه‌ی این مقدار نوشته شده است. همچنین اگر شما برنامه‌نویس هستید، توابع متفاوتی برای استفاده در زبان‌های مختلف برنامه‌نویسی وجود دارد. با این حال شبه‌کد محاسبه‌ی این مقدار را می‌توان در ویکیپدیا یافت.

MD5 Hash و فایل‌ها:

محاسبه‌ و مقایسه‌ی خروجی تابع MD5 Hash فایل‌ها روشی است برای تعیین دست نخورده بودن، و یا سالم بودن یک فایل. همچنین از MD5 Checksum می‌توان برای یافتن فایل‌های مشابه استفاده کرد. به عنوان مثال تصور کنید که قصد دارید مقداری از اطلاعات خود را برای یکی از دوستان خود کپی کنید. برای اینکار می‌توانید ابتدا MD5 Checksum فایل‌های خود و فایل‌های دوستتان را محاسبه کرده، و سپس فایل‌هایی را که مقدار MD5 Checksum آنها متفاوت است، کپی کنید. با این کار از کپی کردن فایل‌هایی که از قبل در هارد دیسک دوستتان وجود داشته‌ است جلوگیری می‌کنید. همچنین بار دیگر بعد از کپی کردن فایل‌ها می‌توانید با مقایسه‌ی مقدار MD5 Checksum فایل‌های کپی شده با فایل‌های موجود در هارد دیسک خود،‌ از این که فایل‌ها به درستی کپی شده‌اند، مطمئن شوید.
به هنگام دانلود یک فایل‌، در بسیاری از سایت‌های اینترنتی مقدار MD5 Checksum فایل هم ذکر می‌شود تا پس دانلود، بتوان از سلامت فایل مطمئن شد. به عنوان مثال اغلب سایت‌های ارائه دهنده‌ی توزیع‌های لینوکس، مقدار MD5 Checksum فایل‌های ایزوی توزیعشان را نیز ذکر می‌کنند تا پیش از رایت آنها بر روی سی‌دی، بتوان از سلامت فایل دانلود شده مطمئن شد.

چگونه MD5 Checksum یک فایل را (در لینوکس) محاسبه کنیم؟

برای محاسبه‌ی MD5 Checksum یک فایل از ابزار md5sum استفاده می‌شود. این برنامه به صورت پیش‌فرض در اکثر توزیع‌های لینوکس موجود است. تصور کنید قصد محاسبه‌ی این مقدار برای فایلی به نام file.txt را دارید. برای این کار یک ترمینال باز کنید و دستور زیر را وارد کنید:

md5sum file.txt

همه چیز در مورد md5sum:

ابزار md5sum چند قابلیت دیگر هم دارد. برای محاسبه‌ی md5sum چند فایل به صورت همزمان، می‌توانید نام فایل‌ها را یکی پس از دیگری به عنوان آرگومان‌های دستور md5sum بنویسید:

md5sum text1.txt text2.txt
خروجی این دستور چیزی شبیه به این است:
9ff460edc32f6a59fd0e612162c8d7e7  text1.txt
bbee0ebbbb53235666b515c5d0c2c3ab  text2.txt
ستون اول مقدار MD5 Checksum و ستون دوم نام فایل‌هاست.
بدیهی است می‌توان MD5 Checksum فایل‌ها را با استفاده از دستور زیر در یک فایل جداگانه ذخیره کرد:

md5sum text1.txt text2.txt > mymd5sums
با این کار فایلی به نام mymd5sums با محتوایی برابر خروجی دستور در فولدر جاری ایجاد می‌شود. از این فایل می‌توان بعدا برای چک کردن تطابق مقدار MD5 Checksum‌های موجود در این فایل، با مقدار به دست آمده از فایل‌ها استفاده کرد. برای این کار از دستور زیر استفاده می‌شود:
md5sum -c mymd5sums
خروجی دستور بالا چیزی شبیه به این است:
text1.txt: OK
text1.txt: OK
چنانچه مقدار به دست آمده از یکی از فایل‌ها با عدد موجود در فایل mymd5sums تطابق نداشته باشد، خروجی به شکل زیر می‌باشد:
one.txt: FAILED
two.txt: OK
md5sum: WARNING: 1 of 2 computed checksums did NOT match
می‌توان به صورت دستی نیز فایلی مشابه فایل mymd5sums ایجاد نمود و از آن فایل برای مقایسه‌ی مقدار MD5 Checksumهای فایل‌های متفاوت ایجاد کرد. فقط دقت کنید که هر سطون باید با دو بار فشردن کلید Space از هم جدا شوند.
همچنین می‌توان به جای استفاده از یک فایل، از خروجی استاندارد یک دستور دیگر برای مقایسه‌ استفاده کرد. به عنوان مثال:

echo '9ff460edc32f6a59fd0e612162c8d7e7  text1.txt' | md5sum -c -
دستور بالا، مقدار md5checksum فایل text.txt را با مقدار پایپ شده از دستور echo مقایسه می‌کند. دقت کنید که به جای نام فایل، این بار از -(خط تیره) استفاده شده است.

و در انتها...

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

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

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

اینجا قصد دارم دو تا تابع جالب گوگلی رو برای استفاده در کنسول لینوکس معرفی کنم. اولین تابع، برای تصحیح املای یک کلمه یا همون spell checking با استفاده از موتور جستجوی گوگله. حتما دیدید که در هنگام استفاده از موتور جستجوی گوگل در صورت اینکه کلمه‌ای رو اشتباه تایپ کرده باشید، گوگل کلمه درست رو بهتون پیشنهاد می‌کنه. ما می‌خوایم کاری کنیم که با اجرای یک دستور ساده در کنسول، بتونیم املای صحیح یک کلمه رو چک کنیم. برای اینکار کافیه کد زیر رو در کنسول وارد کنید:

spellcheck(){ typeset y=$@;curl -sd "<spellrequest><text>$y</text></spellrequest>" https://www.google.com/tbproxy/spell|sed -n '/s="[0-9]"/{s/<[^>]*>/ /g;s/\t/ /g;s/ *\(.*\)/Suggestions: \1\n/g;p}'|tee >(grep -Eq '.*'||echo -e "OK");}
(اگر دوست دارید همیشه این تابع دم دستتون باشه، می‌تونید کد بالا رو به bashrc./~ اضافه کنید.)

پس از وارد کردن دستور بالا به راحتی می‌تونید با استفاده از دستور زیر املای صحیح یک کلمه رو چک کنید:

spellcheck some_word

تابع دوم، می تونه برای تشخیص زبان یک نوشته، با استفاده از مترجم گوگل استفاده بشه. مشابه کد بالا، کد زیر رو هم میتونید به فایل bashrc./~ اضافه کنید تا بتونید همیشه ازش استفاده کنید.

detectlanguage(){ curl -s "http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&amp;q=$(echo "$@" | sed 's/ /%20/g')" | sed 's/{"responseData": {"language":"\([^"]*\)".*/\1\n/'; }

پس از وارد کردن دستور بالا، با استفاده از دستور زیر زبان یک عبارت رو چک کنید:

detectlanguage text_in_an_unknown_language

امیدوارم مفید بوده باشه.

منبع کد اول - منبع کد دوم