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

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

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

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

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

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

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

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

به نام خدا

 

اگر تابحال با این مسئله مواجه شده باشید که چطوری میشه که داده های متنی رو به آخر یک فایل اضافه کرد یا اینکه چطوری میشه یک فایل 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

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

 

 

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

 

 

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

به نام خدا

 

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

 

 

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

 

البته مطالب جالبی هم در این مورد در این وبسایت نوشته شده است.

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

جاوا چیست:

جاوا یک زبان برنامه نویسی فوق العاده قدرتمند و شی گرا هست، که به نظر من بیش از یک زبان برنامه نویسی و یک طرز تفکر هست. که میتوان از ویژگیهای آن به :

  • متن باز بوده (Open Source) و نیازی به خریداری ندارد.
  • وابسته به معماری کامپیوتر نبوده و قابل انتقال باشد و مبتوان برنامه نوشته شده جاوا را بدون تغییر در هر پلتفرم اجرا کرد.
  • زبانی ساده و شی گرا دارد.
  • مطمئن و بدون خطا باشد با سیستم کنترل خطا قدرتمند.
  • IDE هاای بسیار قوی و کارآمد آزاد و تجاری دارد.
  • کنترل حافظه جاوا بر عهده پلتفرم آن میباشد و برنامه نویسی را درگیر نمیکند.
  • API ها و Framework های بسیار زیادی دارد که از این لحاظ در میان زبانهای برنامه نویسی مشهور میباشد و میتوان گفت تقریبا برای هر مسئله ای چندیدن انتخاب برای برنامه نویس وجود دارد.
  • کاربردهای بسیار زیادی دارد مثل : Desktop Application ، برنامه نویسی تحت وب ، برنامه نویسی تلفن همراه، در لوازم خانگی و ....
  • بسیار امن میباشد و موجب آسیب سخت افزار نمیشود.
  • و ...

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

 

 

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

به نام خدا

 

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

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

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

 

 

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

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

به نام خدا

 

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

IDE که مخفف Integrated Development Environment است و به فارسی به محیط یکپارچه توسعه نرم افزار ترجمه میشود برنامه ای است برای توسعه نرم افزار یعنی میتوان تحت یک زبان برنامه نویسی خاص برنامه ای را در آن نوشت و تولید کرد، این محیط ها یا برنامه ها عموما همه یا قسمت زیادی از اشیا مورد نیاز برای ساخت یک برنامه را تحت زبان برنامه نویسی خاص دارا میباشند و مراحل تولید یک برنامه نرم افزاری را ساده تر و سریع تر میکنند، بعضی از این محیط ها اشیا های زیادی در مراحل ساخت نرم افزار مانند طراحی، پیاده سازی، تست، اشکال زدایی و گسترش را دارند. میتوان گفت که در بعضی از زبان های برنامه نویسی چندین نوع IDE وجود دارد که هم رایگان میباشد و هم تجاری. تقریبا یک IDE نزدیکترین دوست یک برنامه نویس است که اکثر ساعات عمر یک برنامه نویس با آن میگذرد. عموما این IDE ها گزینه های مختلفی یرای تغییر دادن شکل ظاهری برنامه و نحوه ی استفاده از آن طبق سلیقه کاربر دارند، همچنین مبتوان برنامه های (Plugin) زیادی را با کاربردهای مختلف به آنها اضافه کرد.

بعضی از این IDE ها چند زبانه میباشند و از زبان های مختلفی پشتیبانی میکنند مانند : Eclipse ،IntelliJ IDEA ،MyEclipse یا NetBeans.

 

 

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

به نام خدا

 

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

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

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

  • در این روش شما از طریق نگاشت الگوریتم 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

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

 
 

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

به نام خدا

Hello World!!!

شاید تابحال بارها با این جمله روبرو شده باشیم، مخصوصا در کتابهای آموزش برنامه نویسی این جمله دیگه به یک سمبل تبدیل شده که سمبل اولین و ساده ترین خروجی که میتوان از یک برنامه رایانه ای گرفت  که معمولا یکی از نخستین فصل های کتابهای آموزشی رو به خودش اختصاص میده، البته همیشه هم ساده نیست مثلا در برنامه های گرافیکی رسیدن به خروجی Hello World  نیازمند پیش نیازهای زیادی است.

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

هستند.

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

به نام خدا

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

یک روش بسیار ساده و کوتاه برای فهمیدن این موضوع وجود داره که برای اینکار باید وارد ترمینال شده و دستور 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 نام فایلهای تقسیم شده میباشد که تعداد آنها به حجم فایل اولیه و حجم تقسیم بندی بستگی دارد.

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

 

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

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