‏نمایش پست‌ها با برچسب لینوکس. نمایش همه پست‌ها
‏نمایش پست‌ها با برچسب لینوکس. نمایش همه پست‌ها

۱۳۸۹ دی ۸, چهارشنبه

ترفند 9 - خاموش کردن خودکار کامپیوتر بعد از تمام شدن کار یک برنامه

تا حالا شده که بخواین وقتی اجرای فلان برنامه تمام شد کامپیوتر خودبخود خاموش بشه؟ مثلا وقتی که برنامه‌ی محاسبه‌ی عدد پی که نوشته‌اید خاتمه پیدا کرد، یا نصب برنامه‌ای تمام شد، یا وقتی که فرمت کردن هارد دیسک خاتمه یافت یا ...
در این ترفند، یاد می‌گیرید که چطور این کار را خودتون و بدون ابزارهای اضافی انجام بدین: به کمک خط فرمان (command-prompt) ویندوز، یا ترمینال (terminal) لینوکس.
اول روش ویندوزی رو بگم، بعد بریم سراغ لینوکس.

۱۳۸۹ شهریور ۱۱, پنجشنبه

ترفند 6 » ISP شما هم با https مشکل پیدا کرده؟

از دیشب سرویس‌دهنده اینترنت (ISP) من با SSL مشکل پیدا کرده و صفحات https را باز نمی‌کند. طبیعتا راه حل چنین مشکلی این است که بتوان به طریقی از یک محل دیگر متصل شد. به چنین ابزارهایی proxy (واسط) گفته می‌شود که متاسفانه این واژه در ایران بار منفی پیدا کرده است.
توجه: این پست به کار کسی که دنبال دور زدن چیزی(!) باشد نمی‌خورد. فقط برای وقتی که ISP مشکل پیدا می‌کند و https را رد نمی‌کند به کار می‌آید.
برای این ترفند باید از قبل یک «واسط» آماده داشته باشید.
نکته این پست ساده است: لازم نیست کل ترافیکتان را از «واسط» عبور دهید که گاهی سرعتش کم است. احتمالا می‌دانید که می‌شود به مرورگر گفت فقط روی HTTPS از «واسط» استفاده کند، ولی مثل من حواستان نبوده :)

راه حل FireFox

بخش تنظیمات واسط در فایرفاکس: Options\Advanced\Network\Settings
کافیست تیک Use this server for all protocols را بردارید، و آدرس ip و port کادر HTTP (و سایر پروتکل‌ها) را حذف کنید و فقط در کادر جلوی SSL، همان ip و port را قرار دهید.

راه حل Internet Explorer

بخش تنظیمات واسط در اینترنت اکسپلورر: Options\Connections\Lan Settings
باید اول گزینه Advanced را انتخاب کنید. سپس کادر مربوط به همه‌ی پروتکل‌ها را پاک کنید و فقط در کادر Secure مقدار ip و port مناسب را بنویسید.

۱۳۸۹ شهریور ۸, دوشنبه

ترفند 5 » رنگ آمیزی خط فرمان لینوکس

در پست قبلی در مورد تاکید خط فرمان لینوکس بر رنگی بودن گفتم و نحوه رنگ آمیزی دستور grep را نوشتم. این بار جالبتر است!
دوست دارید رنگ سطری که دستور را در آن می‌نویسید با بقیه ترمینال متفاوت باشد؟
این کار چند فایده دارد:
اول) وقتی دستوری مثل cat یا grep خروجی زیادی تولیدی می‌کند، خود دستور گم نمی‌شود. راحت معلوم است که ابتدای خروجی کجاست و آخرش کجا.
دوم) با کمی سلیفه می‌توانید کاری کنید که حالت‌های مختلف رنگ‌های مختلف داشته باشد: مثلا من برای کاربر عادیم رنگ آبی، برای کاربر root (یا sudo) رنگ قرمز و برای کاربری راه دور (با ssh) رنگ سبز گذاشته‌ام.

روش انجام

کافیست خطوط زیر را در محل مناسبی از فایل .bashrc در شاخه home کاربری‌تان اضافه کنید: (بگردید و آن را بعد از تمام خطوطی که PS1 در آن به کار رفته بگذارید)
#!/bin/bash
promptcolor="2;34"
if [[ $EUID -eq 0 ]]; then
    promptcolor="2;31"
fi
PS1="\[\e[${promptcolor}m\]$PS1\[\e[0m\]"
یادتان باشد که لازم است یکبار دیگر ترمینال را باز کنید تا (.bashrc اجرا شده و) تغییرات را در پنجره جدید ببینید.
عدد 34 رنگ آبی و عدد 31 رنگ قرمز را مشخص می‌کند. (جدول رنگ) عدد 2 هم تاثیراتی بر میزان روشن بودن یا حتی درشت (bold) شدن متن دارد که بهتر است تغییر دهید و ببینید.
شرح کامل اینکه PS1 چیست و معنی این دستورات اجق وجق را در همان لینک جدول رنگ پی بگیرید.

کلمات کلیدی: ،shell ،terminal رنگی، رنگ آمیزی، لینوکس، اسکریپت، ترفند، پوسته، حط فرمان.

۱۳۸۹ شهریور ۷, یکشنبه

ترفند 4 » رنگ آمیزی دستور grep در لینوکس

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

grep رنگی

اولین بار به طور اتفاقی با لینوکسی مواجه شدم که هنگام استفاده از grep، عبارات پیدا شده را با رنگ متفاوت نشان می‌داد.
این کار ساده و کم‌شناخته است. کافیست از سوییچ --color=auto استفاده کنید:
grep --color=auto {بقیه خط فرمان}
دوست داشتید؟ خب پس خطوط زیر را به محل مناسبی از فایل .bashrc در شاخه home کاربری‌تان اضافه کنید تا همیشه grep این کار را خودبخود انجام دهد و لازم نباشد هربار سوییچ را تایپ کنید: (این فایل پنهان است و برای دیدنش شاید لازم باشد گزینه نمایش فایل‌های پنهان را فعال کنید Ctrl+H)
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
با این کار یک alias برای grep و مشتقاتش تعریف کردید تا هر بار آنها را صدا می‌زنید این سوییچ فعال شود.

بروزرسانی: پست بعدی در مورد رنگ آمیزی خط فرمان لینوکس

کلمات کلیدی: shell، terminal، grep، رنگی، رنگ آمیزی، لینوکس، اسکریپت، ترفند، پوسته، حط فرمان.

۱۳۸۹ مرداد ۱۷, یکشنبه

ترفند 3 » تحریم ایران در SourceForge و راه حلی برای دانلود آسان!

برای: هر مرورگر مدرن و هر سیستم‌عاملی
سطح: مبتدیمواد لازم: سی ثانیه وقت!

مدتی است که سایت سورس فورج (Sourceforge.net) ایران را تحریم کرده است. بسیاری از پروژه‌های متن‌باز (opensource) در این سایت توسعه می‌یابند و منبع خوبی برای برنامه‌های رایگان به شمار می‌رود. البته مدیر هر پروژه در سورس فورج می‌تواند انتخاب کند که دسترسی به آن پروژه برای کشورهای تحریم شده مسدود باشد یا خیر.

راه حل

راه ساده دور زدن این تحریم - بدون استفاده از پروکسی و ... - را در زیر می‌خوانید:
  1. این لینک تصحیح SourceForge را بکشید و در نوار Bookmarks مرورگرتون اضافه کنید. (برای اینترنت اکسپلورر کلیک راست و Add to Favorites)
  2. هر وقت خواستید از سورس فورج چیزی دانلود کنید، کافیه قبل از کلیک کردن روی لینک دانلود، این بوک‌مارک رو کلیک کنید تا لینک دانلود رو به صورت مستقیم در بیاره.
  3. این بوک‌مارک بیشتر جاها باید جواب بده. ولی اگر به صفحه اول پروژه در خود سایت سورس فورج، یا صفحه دانلود آن بروید قطعا جواب خواهد داد. :)
  4. گاهی اولین تلاش نتیجه نمی‌دهد و با کلیک روی لینک تصحیح شده پیغام 404 Not Found می‌گیرید. این مشکل به خاطر اینه که گاهی همه سرویس‌دهنده‌های سورس فورج بروز نیستند و فایل را ندارند. در این صورت کافیست یکبار دیگه بوک‌مارک را کلیک کنید تا سرویس‌دهنده دیگری انتخاب بشه.

آزمایش

برای تست به این صفحه بروید. در حالت عادی کلیک روی دکمه Download به صفحه تحریم منجر می‌شود. اما اگر قبل از کلیک کردن روی آن از بوک‌مارک «تصحیح SourceForge» استفاده کنید و سپس دکمه Download را کلیک کنید مستقیما فایل را دریافت خواهید کرد.

این بوک‌مارک با فایرفاکس 3.6 و اینترنت اکسپلورر 8 تست شده است. اگر مشکلی داشتید خبر بدهید.

تاریخچه

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

توضیح بیشتر رو می‌توانید در ادامه مطلب بخوانید:

۱۳۸۹ تیر ۱۳, یکشنبه

ترفند 2 » جابجا کردن فایل در SVN به شیوه صحیح

تعریف مساله

اگر نمی‌دانید SVN چیست بی‌خیال این پست بشوید و در عوض اینجا یا اینجا را بخوانید.

اگر تا به حال برای مدیریت فایل‌های پروژه از نرم‌افزار SVN (SubVersioN) استفاده کرده باشید، احتمالا به این موضوع برخورد داشته‌اید که یک فایل را جابجا کرده‌اید یا نامش را تغییر داده‌اید و سپس هنگامیکه می‌خواستید تغییرات را ارسال (commit) کنید، متوجه شده‌اید که به جای اینکه از دستورات svn برای جابجا کردن فایل استفاده کنید، از دستورات سیستم فایل استفاده کرده‌اید.

در این حالت SVN به مشکل برمی‌خورد: SVN نمی‌تواند بفهمد که شما فایل را جابجا کرده‌اید، بنابراین این جابجایی را به صورت دو تغییر می‌بیند: اولا فایل اصلی گم‌شده است. دوما فایل جدیدی اضافه شده است که تحت مدیریت نسخ قرار ندارد.

شما می‌توانید این تغییرات را ارسال کنید که معادل یک حذف/اضافه شدن یک فایل جدید به مخزن (Repository) است. اما این وضعیت با یک جابجایی(move) متفاوت است، چرا که در جابجایی سابقه تغییرات فایل حفظ می‌شود ولی در یک حذف/اضافه دو فایل به همدیگر هیچ ارتباطی ندارند و سابقه آنها از همدیگر مستقل است.

راه‌حل ویندوزی

این وضعیت به کمک TortoiseSVN در ویندوز به سادگی قابل حل است:
کافیست در پنجره ارسال، دو فایل قدیم و جدید را انتخاب کنید و از منوی کلیک راست، گزینه Repair Move را انتخاب کنید. شرح بیشتر

راه‌حل لینوکسی

در لینوکس اما وضعیت اندکی متفاوت است. حقیقتش من هیچ رابط کاربری دلچسبی برای SVN در لینوکس سراغ ندارم. با اینکه در حال حاضر SVN جزء لاینفک برنامه‌نویسی متن‌باز است و خودش نیز زاده این فرهنگ است و طبیعتا انتظار می‌رود برنامه‌های مناسبی برای آن در لینوکس موجود باشد؛ و با اینکه برنامه‌های بیشماری در این رابطه برای لینوکس نوشته شده‌اند، به نظر من هیچ یک کارایی TortoiseSVN را ندارند. برنامه‌هایی مثل: RabbitVCS, RapidSVN, SmartSVN, Subclipse و …

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

فراخوانی اسکریپت بسیار شبیه استفاده از دستور svn move است. مثلا اگر اسکریپت را در فولدر خانه (home) خود قرار دهید:

~/svnfixmove oldfile newfile

اول بررسی می‌کند که فایل oldfile در وضعیت Missing باشد و فایل newfile نیز در وضعیت Unversioned قرار داشته باشد و فقط در این صورت، وضعیت فایل را «تصحیح» می‌کند.

برای استفاده از اسکریپت کافیست متن آن را از کادر زیر کپی کنید و در یک فایل ذخیره کنید. سپس فایل را به عنوان فایل قابل اجرا علامت بزنید:

#!/bin/sh
#
# By: Sajjad Naficy (2010/Jul/4)
#
# This work is in public domain. You may use/modify/redistribute 
# it anyway you want. However a mention of the original creator 
# is appreciated.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#

(svn st $1|grep "^\!") >/dev/null
if [ $? -ne 0 ]; then
  echo "$1 must be missing." 
  exit 1
fi
(svn st $2|grep "^\?") >/dev/null
if [ $? -ne 0 ]; then
  echo "$2 must be unversioned." 
  exit 2
fi

mv $2 $1
svn move $1 $2
کلمات کلیدی: Linux, script, subversion, svn, svn move, TortoiseSVN, Windows, اسکریپت, ترفند, لینوکس, ویندوز