ایمان ریحانیان

دست خط یک برنامه نویس

ایمان ریحانیان

دست خط یک برنامه نویس

ایمان ریحانیان

زکات علم یاد دادن آن به دیگران است، کمک کنیم که علم گسترش یابد.

طبقه بندی موضوعی

۸ مطلب با کلمه‌ی کلیدی «لینوکس» ثبت شده است

سلام

 

بالاخره امروز بعد از چندین روز کار سخت تونستم مطلبی بنویسم، مطلب امروز مربوط به یک عکس بسیار زیبا که اصطلاحا به آن Infographic (داده نمایی) میگویند مربوط میشه، حتما تا الان با سیستم های مختلفی کار کرده ایم و هرکس تجربه خاصی در این زمینه داره بعضی ها ویندوز را بهترین سیستم عامل از لحاظ تعامل با کاربر میدانند و بعضی ها لینوکس را از لحاظ کارایی و قدرت سیستم عامل بهتری میدانند ولی تعامل کاربری آنرا پایین تر میدانند و  کسانی که Mac کار کرده اند تجربه متفاوت تری دارند و Mac را هم از لحاظ زیبایی و تعامل با کاربر و هم از لحاظ قدرت از سیستم عامل های دیگر بالاتر میدانند.

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

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

 

۰ موافقین ۰ مخالفین ۰ ۲۸ شهریور ۹۱ ، ۱۸:۳۸
ایمان ریحانیان

به نام خدا

 

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

  • استفاده از دستور top :

# top

 

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

این ابزار شامل چندین کلید بسیار مفید میباشد که استفاده از آنها بسیار پرکاربرد است.

کلید t : این کلید اطلاعاتی در مورد سیتم در حال اجرا به کاربر میدهد.

کلید m : این کلید اطلاعاتی در مورد حافظه سیستم به کاربر میدهد.

کلید a : این کلید نرم افزارها را بر اساس میزان منابع مرتب میکند.( مناسب برای شناسایی سریع نرم افزارهایی که منابع زیاد استفاده میکنند.)

کلید z : این کلید رنگ اطلاعات ثابت را از اطلاعات متغیر تغیر میدهد.

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

  • استفاده از دستور vmstat :

این دستور اطلاعاتی را در مورد پروسس ها، حافظه، block IO، paging traps و فعالیت های پردازنده گزارش میکند.

  • استفاده از دستور w :

دستور w اطلاعاتی در مورد کاربرانی که در حال حاضر Login in هستند و درحال انجام چه فعالیتی هستند میدهد.

  • استفاده از دستور uptime :

این دستور مقدار زمان روشن بودن سرور و اطلاعاتی مانند تعداد کاربران و load average را میدهد.

  • استفاده از دستور ps :

دستور ps اطلاعاتی در مورد پروسس های درحال اجرا میدهد، برای نمایش همه پروسس ها میتوان از دستور های زیر استفاده کرد :

# ps  -A

# ps  -e

 

دستور ps مانند top است ولی اطلاعات بیشتری را در اختیار کاربر میگذارد و ازجمله این اطلاعات میتوان به موارد زیر اشاره کرد :

نمایش دادن درخت پروسس ها :

# ps -ejH

# ps axjf

# pstree

 

گزارش کردن اطلاعات امنیتی :

 

# ps -eo euser,ruser,suser,fuser,f,comm,label

# ps axZ

# ps -eM

نمایش تمام پروسس ها که از طریق کاربر خاصی متلا iman در حال اجرا است :

 

# ps -U iman -u iman u

 

  • استفاده از دستور free :

این دستور مقدار آزاد و مصرف شده حافظه فیزیکی و swap و اطلاعات مفیدی مانند مقدار buffer و cache را نمایش میدهد.

# free

 

 

۰ موافقین ۰ مخالفین ۰ ۲۳ مرداد ۹۱ ، ۱۶:۵۶
ایمان ریحانیان

به نام خدا

 

اکثر نسخه های توزیع لینوکس پشتیبانی خوبی از زبان فارسی دارند بطوریکه میتوان پس از نصب سیستم عامل به راحتی در صفحات فارسی گشت و گذار کرد و فارسی نوشت، برای نصب قلم های فارسی بیشتر میتوان به دو راه عمده اشاره کرد:

  1. استفاده از مخازن برای نصب قلم.
  2. نصب کردن قلم ها به روش معمولی.

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

  • استفاده از مخازن برای نصب قلم:

در این روش که بسیار ساده است کافی است که ما بسته های پشتیبانی زبان فارسی موجود در مخزن را نصب کنبم. بدین ترتیب میتوانیم از طریق Terminal لینوکس یا از طریق Synaptic اقدام به نصب بسته ها بکنیم،

از طریق Terminal میتوانید از دستورهای زیر را برای نصب بسته های ttf-farsiweb و language-support-fonts-fa استفاده کنید.

sudo apt-get install ttf-farsiweb

sudo apt-get install language-support-fonts-fa

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

  • نصب کردن قلم ها به روش معمولی:

در این روش شما ابتدا نیاز به قلمهایی برای نصب دارید که قلمهای آزاد زیادی وجود دارند که شما میتوانید از طریق وبسایت های مختلف آنها را دانلود کنید، من در اینجا چند تا لینک دانلود قرار میدم:

http://hezardastan.sourceforge.net/persianfonts/tahoma.tar.gz

http://hezardastan.sourceforge.net/persianfonts/bfonts.tar.gz

http://www.farsiweb.ir/font/farsifonts-0.4.zip

پس از دانلود کردن این قلم ها کافی است که آنهارا از حالت فشرده خارج سازید، که من نحوه ی نصب قلم tahoma را که از لینک بالا دانلود کرده ایم توضیح میدهم:

tar zxvf tahoma.tar.gz

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

sudo mkdir /usr/share/fonts/truetype/ttf-persian-fonts

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

sudo cp /tahoma/* /usr/share/fonts/truetype/ttf-persian-fonts/

و در پایان دستور زیر را اجرا کنید:

sudo fc-cache -f -v

و چند لحظه صبر کنید.

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

 

۰ موافقین ۰ مخالفین ۰ ۰۴ مرداد ۹۱ ، ۱۶:۵۵
ایمان ریحانیان

به نام خدا

 

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

برای مثال،

tee file1

با استفاده از دستور فوق میتوانید متنی را به فایل file1 اضافه کنید ولی متن قبلی فایل پاک میشود.

tee -a file1

در دستور بالا میتوانید با استفاده از سوییچ (a-) اطلاعات متنی رو به آخر فایل file1 اضافه کنید، بدون پاک شدن اطلاعات قبلی (append)، همچنین میتوان یک ورودی را همزمان در چندین فایل ذخیره کرد.

tee  -a file1 file2 file3

در اینجا خروجی دستور ps با کمک دستور tee در فایل های file1 file2 file3 دخیره میشود.

ps | tee file1 file2 file3

به همین روش میتوان خروجی دستور های مختلف را در یک یا چند فایل ذخیره کرد.

 

 

دریافت فایل تصویری با کیفیت اصلی

 

 

۰ موافقین ۰ مخالفین ۰ ۲۷ تیر ۹۱ ، ۰۹:۴۷
ایمان ریحانیان

به نام خدا

 

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

find /home/iman/ -type f -mtime 0

سوئیچ mtime- مقداری برحسب روز میگیرد که به همان مقدار به روزهای قبل میرود.
 

 

 

دریافت فایل تصویری با کیفیت اصلی
 

۰ موافقین ۰ مخالفین ۰ ۲۲ تیر ۹۱ ، ۱۷:۰۲
ایمان ریحانیان

به نام خدا

 

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

یکی از ویژگیهای مهم در لینوکس این است میتوان یک از چندین راه مختلف یک کار را انجام داد و به هدف رسید مانند تولید تصادفی کلمه عبور، که میخواهم به ۱۰ روش مختلف اشاره کنم.

(شما میتوانید درهریک از روشهای زیر مقادیر ورودی مانند تعداد کاراکتر را تغییر بدهید)

  • در این روش شما از طریق نگاشت الگوریتم SHA میتوانید یک کلمه عبور تولید کنید.

date +%s | sha256sum | base64 | head -c 32 ; echo

  • در این روش از ویژگی/dev/urandom/  لینوکس استفاده میکنیم و مقدار کاراکتر خروجی دلخواه را فیلتر میکنیم.

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;

  • در این روش از openssl استفاده میکنیم که البته مکن است روی سیستم شما نصب نباشد.
  • openssl rand -base64 32
  • این روش هم برعکس urandom عمل میکند.
  • tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1
  •  
  • استفاده از از دستور strings که نیاز به یک فایل ورودی داره که در اینجا dev/urandom/ استفاده میکنیم.
  • strings /dev/urandom | grep -o ':alnum:' | head -n 30 | tr -d '\n'; echo
  • یک روش ساده تر با استفاده از urandom.
  • < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6
  • این روش با استفاده از دستور dd است.
  • dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
  • این روش هم با استفاده از urandom است که کاراکترهای ورودی را وارد میکنیم که در اینجا کاراکترهای قسمت چپ صفحه کلید وارد شده است که کلمه عبوری را بسازد که کاملا با دست چپ وارد بشود.
  • </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c8; echo ""
  •  
  • اگز شما به ساختن کلمه عبور زیاد احتیاج دارید میتوانید آنرا به یک تابع تبدیل کنید و در نهایت آنرا در جایی مثل فایل bashrc./~ ذخیره کنید.
  • randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}
  •  
  •  و یکی از ساده ترین دستور های ساختن کلمه عبور تصادفی که کاملا تصادفی بوده و هم در لینوکس و هم Mac OS جواب میده.
  • date | md5sum

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

 
 

۰ موافقین ۰ مخالفین ۰ ۱۹ تیر ۹۱ ، ۱۰:۱۱
ایمان ریحانیان

به نام خدا

شاید تا حالا بارها به این مسئله برخورد کرده باشیم که سیستم عامل لینوکس نصب شده ۳۲ بیت است یا ۶۴ بیت ؟

یک روش بسیار ساده و کوتاه برای فهمیدن این موضوع وجود داره که برای اینکار باید وارد ترمینال شده و دستور uname -m را اجرا کنید.

اگر خروجی i686 بود یعنی نسخه لینوکس شما ۳۲ بیت است

اگر خروجی x86_64 بود یعنی نسخه لینوکس شما ۶۴ بیت است.

همچنین شما میتوانید با استفاده از دستور uname -a اطلاعات جزئی تری از سیستم عامل خود بدست آورید، مانند نسخه کرنل لینوکس و نوع توزیع شده لینوکس،

که خروجی به این شکل است:

Linux iman 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

همچنین میتوانید با اجرای دستور uname --help اطلاعات بیشتری در مورد دستور uname بدست آورید.

 

 

 

دریافت ویدیو آموزشی با کیفیت اصلی

 

 

۰ موافقین ۰ مخالفین ۰ ۱۷ تیر ۹۱ ، ۰۹:۴۰
ایمان ریحانیان

به نام خدا

امروز با مسئله ای جالب روبرو شدم که حل این مسئله موجب شد که اولین پست وبلاگ خودم را ثبت کنم، تا کنون با مسئله تقسیم کردن فایل ها به حجم های کوچمتر روبرو شده ایم، برای مثال در ویندوز از قابلیت نرم افزار WinRAR برای فشرده کردن و تقسیم کردن فایلی حجیم به فایل های فشرده کوچکتر استفاده کرده ایم، من در لینوکس دنبال همچین ویژگی بودم که متوجه فرآیندی شدم که یتوان در لینوکس به راحتی هر نوع فایل را به حجم دلخواه ذخیره کرد، سپس آنها را به هم ملحق کرد، نحوه ی انجام کار بدین روش میباشد که در Terminal از دستور split استفاده میکنیم:

split -b fileSize  fileName

شدر قسمت FileSize حجم فایلهای ایجاد شده خروجی مشخص میشود که میتواند بایت، مگابایت، گیگابایت باشد.

در قسمت FileName اسم فایل مرد نظر برای تقسیم نوشته میشود.

توجه داشته باشید که در میتوانید به وسیله دستور man split یا split --help  میتوانید توضیحات بیشتری در مورد قابلیت های این دستور بدانید.

و در نتیجه در همان دایرکتوری فایل های خروجی تقسیم شده ایجاد میشود.

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

cat xaa xab xac > FileName

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

و xaa xab xac نام فایلهای تقسیم شده میباشد که تعداد آنها به حجم فایل اولیه و حجم تقسیم بندی بستگی دارد.

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

 

دریافت فایل
توضیحات: ویدیو آموزشی این پست

۰ موافقین ۰ مخالفین ۰ ۱۴ تیر ۹۱ ، ۱۴:۳۶
ایمان ریحانیان