<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های خشایار پنبه ئیان</title>
        <link>https://virgool.io/feed/@kpanbeian</link>
        <description>عضو تیم مدیریتی سمی لرن</description>
        <language>fa</language>
        <pubDate>2026-06-16 23:34:26</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/56554/avatar/avatar.png?height=120&amp;width=120</url>
            <title>خشایار پنبه ئیان</title>
            <link>https://virgool.io/@kpanbeian</link>
        </image>

                    <item>
                <title>آموزش دستورات مهم گیت در 15 دقیقه !</title>
                <link>https://virgool.io/@kpanbeian/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-%D9%85%D9%87%D9%85-%DA%AF%DB%8C%D8%AA-%D8%AF%D8%B1-15-%D8%AF%D9%82%DB%8C%D9%82%D9%87-zbv02sdternh</link>
                <description>گیت در یک نگاه چیست ؟در حال حاضر گیت یکی از محبوب‌ترین سیستم‌های کنترل ورژن در بین توسعه‌دهندگان است. می‌توانید با استفاده از گیت تغییرات را دنبال کنید و پروژه‌ها را با چندین توسعه‌دهنده دیگر هماهنگ نمایید. پروژه‌های متن باز هم اکثرا از گیت استفاده می‌کنند، می‌توانید آن‌ها را روی گیت‌هاب، گیت‌لب و یا Bitbucket مشاهده کنید. اگر می‌خواهید از گیت در پروژه‌های‌تان استفاده کنید، باید دستورات مربوط به گیت که از طریق CLI اجرا می‌شوند را یاد بگیرید. گیت مستندات بسیار خوبی را تهیه ساخته و همچنین روند یادگیری منعطفی دارد.اما در این مقاله قصد داریم که خیلی کاربردی و ساده دستورات گیت را یادبگیریم.نصب گیتدر ابتدا باید گیت را از سایت خود گیت نصب کنید (لینک دانلود)بعد از نصب گیت نوبت به پیکربندی گیت به وسیبه خط فرمان آن می شود.پیکر بندی اولیه گیتبرای یک پیکربندی اولیه، دو دستور گیت وجود دارد که باید بدانید. اولین دستور مربوط به ثبت نام نویسنده و دومین ثبت ایمیل نویسنده است. از آن به بعد گیت تمام تغییرات را با استفاده از این مشخصات ثبت می‌کند.git config --global user.name &quot;khpcde&quot;  git config --global user.email test@gmail.comایجاد مخزن گیتبعد از اینکه گیت را پیکربندی کردید، به دایرکتوری که قصد پیاده‌سازی پروژه گیت در آن را دارید بروید. وقتی که در آن دایرکتوری قرار گرفتید، دستور زیر را اجرا کنید:git initحالا مخزن گیت شما ایجاد شد. از این به بعد گیت تمام تغییرات مربوط به این دایرکتوری را ثبت خواهد کرد. اگر با دقت تمام دایرکتوری‌های موجود در مخزن‌تان را بررسی نمایید، مشاهده می‌کنید که یک پوشه .git ایجاد شده که پیکربندی‌های مربوط به گیت شما در آن قرار می‌گیرد.بررسی وضعیت مخزنبا استفاده از این دستور میتوانید وضعیت مخزن مورد نظر را مشاهده کنید :git statusلازم از است اینجا این موضوع را مطرح کنیم که در گیت به صورت کلی سه وضعیت وجود دارد :۱- staged۲- commited۳- modifiedبه این عکس با دقت نگاه کنید!به صورت کلی در فرآیند های گیت، فایل‌ها بعد از اینکه ذخیره و آماده کامیت کردن شدند، در مرحله staged قرار می‌گیرد. بعد از اینکه فایل‌ها در یک دیتابیس محلی واقع در پوشه .git قرار گرفتند به وضعیت committed تغییر پیدا می‌کنند. و وقتی که تغییراتی در آن‌ها قرار دادید اما آن‌ها(تغییرات) را هنوز کامیت نکرده‌اید، به وضعیت modified در می‌آیند.این تنها فرآیند اصلی و مهم گیت است که می بایست آن را درک کنید!فایل های Stageبا استفاده دستور git add می توانید فایل ها را به دایرکتوری مربوط به پروژه یا همان مکان stage انتقال دهید : git add home.html style.css fontsاین دستور فایل‌های home.html و style.css و پوشه fonts را به وضعیت Stage در می‌‌آورد. اگر می‌خواهید تمام موارد قرار گرفته در پوشه‌ای که در حال کار هستید را به حالت stage در بیاورید، کافی است دستور زیر را وارد کنید: git add  .کامیت فایل های Stage با استفاده از این دستور می توانید از ناحیه stage مربوط به پروژه‌تان هر زمان که خواستید یک ذخیره مانند بگیرید. این حالت را کامیت کردن است و فایل‌ها را به بانک اطلاعاتی ارسال می‌کنند.git commit -m &quot;new version&quot;روش استفاده از این دستور به این صورت است که با ارسال فایل‌های stage یک پیغام نیز نوشته می‌شود. در دستور بالا پیغام new version نوشته شده است. به یاد داشته باشید حتما برای کامیت هایتان کامنت یا پیغامی را بگذارید.مشاهده تمامی تغییرات در مخزنبا استفاده از دستور diff میتوانید کلیه تغییراتی که در مخزن گیت شما انجام شده را ببینید. در این دستور نام تمام فایل ها و تغییرات هر کدام از فایل ها را به شما نمایش می دهدبه یاد داشته باشید در git diff موارد حذف شده را با --- و موارد اضافی را با +++ نمایش میدهد:git diffدستور git cloneبرای اینکه یک کپی محلی از یک مخزن گیت آنلاین داشته باشید می‌توانید به صورت زیر این کار را انجام دهید. دقت داشته باشید قبل از اینکه این دستور را انجام دهید، به دایرکتوری که قرار است مخزن در آن قرار بگیرد، بروید:git clone https://www.github.com/sample-repoدستور git remoteجدای از اینکه می‌توانید یک مخزن را دریافت کنید، می‌توانید به صورت برعکس نیز عمل نمایید. برای کپی کردن یک مخزن محلی در یک سرور آنلاین مانند گیت‌هاب، ابتدا نیاز است که یک ارتباط را با مخزن آنلاین داشته باشید، پس از آن مخزن محلی را به سرور push کنید.با استفاده از دستور پایین، می‌توانید مخزن آنلاین را به پروژه محلی‌تان متصل کنید. در آینده دیگر نیازی ندارید که URL را به صورت کامل بنویسید، می‌توانید از طریق نام origin ارتباط را برقرار کنید.git remote add origin https://www.github.com/sample-repoعملیات Push‌ کردن تغییرات Local به مخزنبعد از اینکه ارتباط بین مخازن آنلاین و محلی را ایجاد کردید، می‌توانید تغییرات را با استفاده از دستور زیر push کنید:git push origin masterکلمه کلیدی origin برای اشاره به مخزن آنلاین استفاده می‌شود، در حالیکه master برای مخزن محلی است.تا اینجای کار با دستورات اصلی و پرکاربرد گیت آشنا شدید اما گیت شامل صد ها دستور است که البته تمام آن ها دستورات پر کاربردی نیستند و طبیعتا در قالب این مقاله نمی گنجدبرای یادگیری تمامی دستورات پر کاربرد علاوه بر دستورات ذکر شده در این مقاله میتوانید از دوره آموزش رایگان گیت که در سایت سمی لرن برگزار شده رفته و آموزش را مشاهد کنید.+ لینک نمایش و دانلود دوره آموزش رایگان گیت</description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Tue, 12 Apr 2022 14:41:59 +0430</pubDate>
            </item>
                    <item>
                <title>۶ دستور پرکاربر داکر</title>
                <link>https://virgool.io/@kpanbeian/%DB%B6-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-%D9%BE%D8%B1%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1-%D8%AF%D8%A7%DA%A9%D8%B1-jjthgquzwoqm</link>
                <description>در این مقاله قصد داریم به چند دستور مهم داکر اشاره کرده و نحوه کارکرد آن ها را با ذکر مثال توضیح دهیم.دستور PSمهم ترین کاربرد این دستور این است که کانتینر هایی که در حال اجرا هستند را نمایش می دهند ولی علاوه بر این نام کانتینر ها - Image ها - شناسه container ها - تاریخ ساخت آن ها و... اطلاعاتی از این قبیل را به شما ارائه می کنند.همچنین اگر از پارامتر -a استفاده کنید میتوانید کانتینرهای متوقف شده را نیز مشاهده کنید.docker psدستور pullبرای دانلود کردن یک image جدید میتوانید از دستور pull استفاده کنید. این دستور تمام لایه های یک تصویر را، در صورتی که قبلا روی ماشین شما دانلود نشده باشند، از کتابخانه داکر دانلود میکند:docker pull centosدستور runبرای ایجاد یک کانتینر جدید و اجرای یک shell که به شما یک خط فرمان (command line) تازه در داخل همان کانتینر میدهد، میتوانید دستور زیر را اجرا کنید:docker rm my_server دستور execاگر کانتینری در حال اجرا باشد میتوانید با دستور زیر یک shell در داخل آن اجرا کنید که به شما یک خط فرمان در داخل همان کانتینر برای اجرای دستورات جدید میدهد.این کار معمولا برای خطایابی در زمان تست استفاده میشود و برای سیستمهای production توصیه نمیشود. docker exec my_server/bin/sh دستور stopاگر کانتینری در حال اجرا باشد میتوانید با دستور زیر آن را متوقف کنید. دقت کنید که در این حالت اجرای کانتینر متوقف میشود ولی فایلهای آن همچنان روی سیستم باقی میمانند و قابل بازیابی هستند. با استفاده از دستور docker ps -a میتوانید کانتینر متوقف شده را نیز مشاهده کنید. docker stop my_container دستور rmاین دستور فایلهای یک کانتینر متوقف شده را از روی سیستم پاک میکند. این دستور فایلهای یک کانتینر متوقف شده را از روی سیستم پاک میکند: docker rm my_server در مقالات بعدی به دستورات بیشتری اشاره کرده و یک سناریوی عملی را هم بررسی خواهیم کرد.برای خواندن مقالات بیشتر میتوانید به لینک وبسایت ما مراجعه بفرمائید : www.semilearn.com</description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Wed, 17 Nov 2021 11:52:05 +0330</pubDate>
            </item>
                    <item>
                <title>CI / CD در گیت لب چیست ؟</title>
                <link>https://virgool.io/@kpanbeian/ci-cd-%D8%AF%D8%B1-%DA%AF%DB%8C%D8%AA-%D9%84%D8%A8-%DA%86%DB%8C%D8%B3%D8%AA-vxmk0hlaeiwa</link>
                <description>ویژگی CI-CD گیتلب چیست ؟CI/CD گیت لب، ابزاری ست که در گیت لب ساخته شده و از طریق یک سری روش های مداوم نرم افزار ها را توسعه می دهد.۱- Continuous Integration یا (CI)۲- Continuous Deployment یا (CD)CI مخفف عبارت Continuous Integration، به معنی یکپارچه سازی مداوم میباشد. CI ها، با انتقال قطعه کدهای کوچک به پایگاه کد برنامه های میزبانی یا هاست شده در یک مخزن Git، کار میکنند و در هر بار انتقال یکPipeline از اسکریپت ها برای ساخت، تست و معتبرسازی تغییرات کد قبل از merge کردن آنها به branch اصلی، راه اندازی و اجرا میشود.این متدها به شما اجازه می دهند که باگ و ارور های مربوطه در چرخه توسعه را شناسایی کنید. و بعد اطمینان حاصل پیدا کنید که تمام کدهای توسعه یافته با کدهای استاندارد ایجاد شده در برنامه، مطابقت داشته باشند.چند مورد از اصطلاحاتی که برای اجرا و توسعه محصولات کاربران در گیت لب CI/CD استفاده می شود به شرح زیر می باشد :Pipelines : ساختار دهی پروسه های CI/CD از طریق Pipeline ها.CI/CD variables : استفاده مجدد از متغیرهای مبتنی بر یک جفت کلید variable/value.Environments : توسعه برنامه های ساخته شده در محیط های مختلفی مثل staging و production.Job artifacts : خروجی، کاربرد و استفاده مجدد از job artifact ها.Cache dependencies : کش کردن dependency ها برای داشتن اجرای سریع تر برنامه.Test cases : پیکربندی PipeLine ها برای اجرای سریع برنامه.گزینه های پیکربندی گیت لب CI/CDگیت لب CI/CD، از آپشن و گزینه های پیکربندی زیادی پشتیبانی می کند که به چند مورد از آنها را به طور کلی اشاره می کنیم:Schedule Pipelines : زمان بندی PipeLine ها برای اجرا در زمان های مورد نیاز.Git submodules for CI/CD : پیکربندی Job ها برای استفاده از زیر ماژول های گیت.Custom path for gitlab-ci.yml : تعریف یک مسیر سفارشی برای فایل پیکربندی CI/CD.Pipeline triggers : همگام کردن PipeLine ها از طریق API.SSH keys for CI/CD : استفاده از کلیدهای SSH در pipelineهای CI.Integrate with Kubernetes clusters : اتصال پروژه به موتور kubernetes گوگل (GKE) یا یک kubernetes cluster موجود.Pipelines for Merge Requests : طراحی یک ساختار pipeline برای اجرای یک pipeline در merge request ها.مجموعه ویژگی های گیت لب CI/CDبرای پیکربندی راحت تر ویژگی ها برای یک سری اهداف خاص، از گیت لب CI/CD گسترده استفاده میشود که در ادامه این ویژگی ها را بر اساس مراحل DevOps به طور خلاصه بررسی میکنیم:ویژگیConfigure یا پیکربندیAuto DevOps : تنظیم تمام مراحل برنامه.ویژگیVerify یا تایید کردنBrowser Performance Testing : تعیین سریع تاثیر عملکرد مرورگر در تغییرات کد در حال انتظار.CI services: پیوند یا لینک Docker container ها با تصاویر اصلی.Code Quality : آنالیز کیفیت سورس کد های برنامه نویسی شدهویژگیRelease یا انتشارAuto Deploy : توسعه برنامه به یک محیط تولید درون یک دسته Kubernetes.Deploy Boards : بررسی سلامت و وضعیت هر محیط CI/CD در حال اجرا در Kubernetes.GitLab Pages : گسترش وب سایت های استاتیک.Building Docker images : حفظ پروژه های مبتنی بر داکر با استفاده از گیت لب CI/CDویژگیsecure یا امنیتDependency Scanning : تحلیل و بررسی dependency ها برای شناسایی نقاط ضعف.Container Scanning : بررسی Docker container ها برای شناسایی نقاط ضعف.Security Test reports : بررسی نقاط ضعف برنامه.License Compliance : جست و جوی مجوزهای dependency ها.در نهایت به صورت کلی ویژگی CI/CD در گیتلب قابلیت های زیادی را به یک فرد DevOps کار می دهد تا بتواند پروژه های نرم افزاری را بهتر و اصولی تر مدیریت کند.به همین جهت یادگیری و داشتن آگاهی نسبی از ویژگی CI/CD برای افراد DevOps کار از جمله واحبات می باشد.برای یادگیری این ویژگی بهتر آن است که ابتدا به سراغ یادگیری سیستم کنترل ورژن گیت رفته و بعد از آن به سراغ یادگیری ویژگی CI/CD بروید.برای دسترسی به آموزش گیت میتوانید از لینک زیر در وبسایت سمی لرن استفاده کنید :https://b2n.ir/d82616</description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Sun, 24 Oct 2021 20:13:02 +0330</pubDate>
            </item>
                    <item>
                <title>رمزنگاری در دنیای شبکه های کامپیوتری چیست ؟</title>
                <link>https://virgool.io/@kpanbeian/%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-%D8%AF%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%B4%D8%A8%DA%A9%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA-pbtm1qwawmdq</link>
                <description>برای پرداختن به این موضوع ابتدا باید بررسی کنیم که تعریف رمز نگاری چه مفهومی می باشد ؟تعریف رمزنگاری : الگوی (الگوریتمی) که به صورت ریاضی / منطقی می باشد و جهت تبدیل اطلاعات آشکار(plain text) به اطلاعاتی نا مفهوم و بی معنی (cipher text) ولی بازگشت پذیر به کار می رود.حالا که با تعریف کلی رمز نگاری آشنا شدیم این سوال پیش می آید که تفاوت بین رمز نگاری و کد گذاری چه می باشد ؟ جواب این سوال خیلی ساده ست !بزرگ ترین تفاوت آنها در این است که کدگذاری ساده تر از رمز نگاری است و معمولا به کلید وابسته نیست (کلید ندارد).در کد گذاری کلمات را با کلمات دیگر جایگذاری می کنیم ولی در رمزنگاری حروف و بایت ها و یا بیت ها بدون توجه به ساختار زبان شناسی آن، درهم و برهم و رمز می شوند. در کد گذاری میتوان توسط آزمون و خطا بالاخره به کد دست یافت.به عبارت دیگر کشف رمز در کدگذاری آسان تر از رمزنگاری است.دو رده کلی سیستم های رمزنگاری 1- رمز نگاری کلید متقارن (symmetric key encryption) : که نام های دیگر آن کلید خصوصی (private key) یا کلید منفرد (single key)می باشد.2- رمز نگاری کلید عمومی (Public key encryption) : که نام دیگر آن کلید نامتقارن یا (asymmetric key) می باشد.ویژگی های رمز نگاری نامتقارن (systematic key encryption) : به عنوان نمونه: RC6 , Serpent , IDEA , (Rijndael) AES , 3-DES , DES الگوریتم های معروف اند.در این روش رمزنگاری هم رمز گذاری و هم رمز گشایی با کلیدی مشابه که بین طرفین توافق شده است انجام می گیرد.(تبادل کلید از طریق شخصی معتمد یا شیوه ای مطمئن انجام می شود). از لحاظ عملکرد سریع است بنابراین در ارتباطات گیگا بیتی مناسب است و معمولا رمز گذاری و رمز گشایی مشابه هم هستند.اما عیب هایی هم دارد : اگر بخواهیم با تعدادی کاربر ارتباط امن داشته باشیم، باید برای هر کدام به طور جداگانه کلید در نظر بگیریم یا توافق کنیم.از روش های متقارن، گاه با نام سیستم رمز بلوکی (Block Cipher) یاد می شود. پس اگر پیامی که قرار است رمز شود، ضریبی از طول یک بلوک نباشد، باید با افزودن داده های اضافی مشکل راحل کرد.رمز نگاری کلیدی (Public key encryption) : به عنوان نمونه: Diffie_Hellman , Elgamal , RSA الگوریتم های معروف اند.قفلی را تجسم کنید که دو کلید سبز و قرمز دارد. کلید سبز فقط ساعتگرد می چرخد و قفل می کند و امکان پادساعتگرد چرخیدن و باز کردن ندارد. پس می توانیم کلید سبز را به دوست و دشمن بدهیم تا هرچه می خواهند قفل کنند. ولی کلید قرمز را بسیار محرمانه نگاه داریم چرا که قابلیت چرخش پادساعتگرد و باز کردن قفل را دارد.در رمز نگاری کلید عمومی 2 کلید داریم: یک کلید عمومی که فقط می تواند رمز کند، پس می توان آن را به راحتی در اختیار همگان گذاشت و یا از طریق کانالی نا امن به صورت فراگیر پخش کرد. ولی کلید خصوصی فقط نزد صاحب کلید است و می تواند متن رمز شده را رمز گشایی کند.عیب: این نوع رمزنگاری به دلیل آنکه کلید های طولانی تری برایش در نظر می گیرند معمولا کندتر از رمزگذاری متقارن است)سرعت کمی دارد( ولی استفاده از هر کدام بستگی به شرایط و کاربردشان دارد و نمی توان گفت کدامیک بهتر است و گاهی می توان از آنها به صورت ترکیبی نیز استفاده کرد). به عنوان مثال: در گواهینامه های دیجیتالی، کارت های هوشمند و عملیات احراز هویت معمولا از رمزگذاری کلید عمومی استفاده می شود.اهمیت کلید در رمز نگاری : سری ماندن پیام ها در گرو مراقبت ویژه از کلید است. پس طول کلید مهم است. مثلا اگر رمز ما سه رقمی باشد نهایتا 1000 حالت باید چک شود تا رمز شکسته شود و معمولا در نصف این اعداد )یعنی 500 عددش( به جواب می رسیم. ولی هرچه طول کلید بیشتر باشد احتمال موفقیت جستجو گر کاهش می یابد.بیایید با دو مفهوم آشنا بشیم :1- Work Factor : حجم عملیات لازم برای جستجوی کلید از طریق آزمون تمام کلید های ممکن.2- Key Space : تمام حالات مختلفی که یک کلید می تواند اتخاذ کند.برای روش های متقارن یک کلید 128 بیتی کاملا کفایت می کند چون 2 به توان 128 را اگر حتی با 1 میلیون تست در ثانیه پیش برویم، به اندازه طول عمر خورشید باید صبر کنیم تا رمز شکسته شود. ولی برای روش های کلید عمومی، گاهی کلید های 1024 بیتی نیز با تردید مواجه هستند. چرا؟ زیرا ما دو کلید داریم که یکی رمز می کند و دیگری باز می کند قاعدتا باید یک ارتباطی میان این دو برقرار شود بنابراین برای تنظیم این کلید نمیتوانیم خیلی راحت عمل کنیم و مجبوریم رابطه ها را حفظ کنیم پس کسی که قصد حمله دارد می تواند دامنه را با دانستن این روابط برای خود کوچک کند.انتخاب کلیدها تابع ضوابط خاصی است. پس لازم نیست کل فضای کلید چک شود. مثلا ممکن است کلید عددی صحیح و حاصلضرب دو عدد اول باشد. پس اعداد زوج و بخش پذیر بر 3 و 5 و .... حذف می شوند.تا اینجای مقاله سعی کردیم که به موارد مهم و کاربری مبحث رمز نگاری اشار کنیم , اگر این مقاله برای شما جالب بوده حتما نظراتتون را با ما در میان گذارید تا مطالب بیشتری در این حوزه برای شما منتشر کنیم.برای مطالعه باقی مقالات میتوانید به سایت رسمی ما مراجعه کنید www.semilearn.com</description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Sat, 06 Mar 2021 00:18:30 +0330</pubDate>
            </item>
                    <item>
                <title>تشخیص حساب کاربری فعال در لینوکس</title>
                <link>https://virgool.io/@kpanbeian/%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D8%AD%D8%B3%D8%A7%D8%A8-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C-%D9%81%D8%B9%D8%A7%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-wfmzkltclzmp</link>
                <description>اصلا چرا نیاز به تشخیص حساب کاربری فعال در لینوکس داریم ؟در موارد زیادی مالک رایانه تنها کاربر آن است اما در برخی موارد افراد حساب های کاربری زیادی را ایجاد می کنند  تا اعضای خانواده به رایانه دسترسی داشته باشند. همچنین ممکن است در برخی موارد به یک shell ریموت وصل شوید که احتمالا نیاز به لاگین هست که باید رمز عبور خود را وارد کنید .اگر یک نشست لاگین شده را بدون وجود نام کاربری ببینید , چگونه میتوانید کاربر جاری را از طریق خط فرمان تشخیص دهید ؟اگر کاربری قالب‌بندی اعلان خود را به وضعیت دیگری تغییر داده باشد، باید به روش دیگری هویت کاربر فعال را تشخیص دهیم. در این موارد، دستور who اطلاعاتی را که به دنبالش هستیم به ما ارائه می‌کند :دستور who خروجی این دستور نام کاربری فعالی که در ترمینال لاگین کرده را به همراه تاریخ و زمان لاگین کاربر نمایش می دهد .از طرف دیگر دستور دیگری تحت عنوان whoami داریم که اطلاعاتی با جزئیات بیشتری در اختیار ما قرار می دهد اما دستور تک‌ کلمه‌ای w نیازمند وارد کردن و ارائه اطلاعات بیشتری است : دستور w دستور w نام کاربری را در اختیار ما قرار می‌دهد که مطابق خواست ما می باشد. این دستور مجموعه داده‌های دیگری نیز ارائه می‌کند. توجه داشته باشید که اگر چند کاربر در سیستم لینوکس لاگین کرده باشند، دستور w همه آن‌ها را فهرست می‌کند. ممکن است بخواهید بدانید که کاربری که مورد نظر شما است، در کدام ترمینال لاگین کرده است. اگر آن‌ها مستقیماً در خود رایانه لاگین کرده باشند به صورت pts/o نمایش پیدا می‌کنند. بنابراین باید در خروجی دستور w به دنبال شکلی از 0: باشید.دستور w اطلاعاتی از قبیل مدت زمانِ بوت شدن، مدت زمانِ روشن بودن و میانگین بار پردازنده را برای پنج دقیقه، ده دقیقه و پانزده دقیقه اخیر ارائه می‌کند. همچنین اطلاعاتی به شرح زیر در رابطه با کاربر جاری توسط این دستور ارائه می‌شود:مورد اول user : نام کاربر مورد دوم TTY :  نوع ترمینالی که کاربر در آن لاگین کرده است. این مورد معمولاً به صورت pts است. pts اختصاری برای عبارت «pseudo-teletype» (شبه تله‌تایپ) است. مقدار 0: نیز به این معنی است که یک کیبورد و صفحه فیزیکی به این رایانه اتصال یافته‌اند.مورد سوم  FROM : نام میزبان ریموتی است که اتصال ریموت از آن وارد شده است.مورد چهارم @Login : زمانی است که کاربر لاگین شده است.مورد پنجم IDLE : مدت زمان بیکاری سیستم را نشان می‌دهد. دلیل این که این مقدار روی صفحه به صورت ?xdm? نمایش یافته، این است که ما سیستم را تحت یک «X-windows Display Manager» اجرا کرده‌ایم که این اطلاعات را ارائه نمی‌کند.مورد ششم JCPU : کل مدت زمانی است که تسک‌های ایجاد شده توسط کاربر در سشن پس از لاگین او، پردازنده را مورد استفاده قرار داده و آن را مشغول نگه داشته‌اند.مورد هفتم PCPU : زمان صرف شده برای یک «پراسس» (Process) یا فرایند کاری توسط پردازند؛ در اصل در این ستون مدت زمانی که فرآیند کاری فعال کنونی، پردازنده را مشغول کرده قابل مشاهده است. نام این فرآیند را نیز می‌توانید در ستون WHAT مشاهده کنید.حالا میدانیم که کاربر فعال کدام است و میتوانیم اطلاعات بیشتری از آن بدست بیاوریم.دستور id نقطه خوبی برای شروع به حساب می‌آید. دستور id را وارد کنید و سپس با یک فاصله نام کاربر را وارد کرده و اینتر کنید. برای نمونه: دستور id بدین ترتیب شناسه کاربر (uid)، شناسه گروه (gid) و گروه‌هایی که کاربر عضو آن‌ها است ارائه می‌شود. با استفاده از دستور groups به صورت زیر می‌توانید نمایش تمیزتری از گروه‌ها داشته باشید: دستور groupsامیدوارم که این مطلب مورد توجه شما قرار گرفته باشد. برای مطلعه مقالات بیشتر می توانید به سایت ما هم سری بزنید : www.semilearn.com</description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Fri, 26 Feb 2021 18:06:51 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه یک رمز عبور امن بسازیم ؟</title>
                <link>https://virgool.io/@kpanbeian/%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D8%B1%D9%85%D8%B2-%D8%B9%D8%A8%D9%88%D8%B1-%D8%A7%D9%85%D9%86-%D8%A8%D8%B3%D8%A7%D8%B2%DB%8C%D9%85-no4rr3kd408j</link>
                <description>انتخاب رمز عبور امن و قوی نقش مهمی در حفظ امنیت حساب‌های کاربری شما داردٰ؛ چراکه هرچه قوی‌تر باشد کار هکرها و افراد ناشناس برای پیداکردن آن سخت‌تر می‌شود. در این مقاله سایت‌های معتبر و امنی را برای ساخت رمز عبور مطمئن معرفی می‌کنیم.پسورد‌ی قوی و امن است که تصادفی انتخاب شود و ترکیبی از حروف کوچک و بزرگ، اعداد و علامت‌ها باشد. تحقیقات در این باره نشان داده است که رمز عبور قوی نباید از ۱۲ کاراکتر کم‌تر باشد. همچنین به هیچ عنوان نباید از مشخصات فردی برای ساخت پسورد استفاده شود.سایت‌های زیادی هستند که به صورت آنلاین و بدون نیاز به نصب برنامه روی سیستم، می‌توانند برای شما پسورد قوی و امن بسازند. به این نوع سرویس‌ها Password Generator گفته می‌شود. در این سرویس‌های آنلاین شما می‌توانید مشخص کنید که رمزعبورتان ترکیبی از حروف، اعداد و کاراکترها باشد و همچنین طول پسوردتان چقدر باشد.چند نمونه امن و معتبر از این دست سایت‌ها:1passwordNortonLastpassDashlaneKeepassStrong password generatorNordPassامیدوارم که این مقاله کوتاه برای شما عزیزان مفید و جالب بوده باشد . برای دسترسی به مقالات بیشتر به سایت ما مراجعه کنید : www.semilearn.com</description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Sat, 16 Jan 2021 18:52:30 +0330</pubDate>
            </item>
                    <item>
                <title>3 دستور پر کاربرد و رایج در لینوکس !!</title>
                <link>https://virgool.io/@kpanbeian/3-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-%D9%BE%D8%B1-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1-%D9%88-%D8%B1%D8%A7%DB%8C%D8%AC-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-nykwvrbh8reb</link>
                <description>امروز میخواهیم خیلی مختصر و مفید به 3 تا از دستورات مهم و کاربردی در لینوکس اشاره کنیم !1- دستور sort : این دستور به منظور مرتب سازی خطوط یک فایل حاوی متن استفاده می شود همچنین با استفاده از این دستور می توان بر اساس فیلد های یک فایل , محتویات را مرتب سازی کرد .برای درک بهتر موضوع با هم مثالی را بررسی میکنیم . پس ابتدا یک فایل tmp ایجاد کرده و و چند خط محتوا داخل این فایل می نویسیمحالا دستور sort را به شکل زیر اجرا می کنیم و خروجی دستور به شکل زیر خواهد بود : همانطور که می بینید محتویات داخل فایل ما بر اساس حروف انگلیسی از A  تا Z مرتب شده اند 2- دستور uniq : این دستور برای حذف محتویات تکراری داخل یک فایل کاربرد دارد البته اگر خطوط تکراری پشت سر هم قرار بگیرند . اجازه بدید که این دستور را با هم بررسی کنیم !فرض کنید که محتویات فایل ما به شکل زیر می باشد همانطور که مشاهده می کنید با اینکه خطوط اول و سوم و چهارم تکراری هستند اما دستور uniq صرفاً خطوط سوم و چهارم را تکراری میداند و به همین خاطر خط چهارم را حذف می کند برای اینکار دستور uniq tmp را در ترمینال لینوکس وارد می کنیم و به عنوان خروجی دستور فوق چنین نتیجه ای را خواهیم داشت : با توجه به این ویژگی دستور uniq، بهتر آن است که ابتدا با استفاده از دستور sort خطوط را مرتب سازی کنیم تا خطوط تکراری پشت سر هم قرار گیرند سپس دستور uniq را با استفاده از علامت | اعمال کنیم. در همین راستا، ابتدا دستور sort tmp | uniq را در کامند لاین وارد می سازیم. به عنوان خروجی این دستور داریم:به عنوان راه‌کار جایگزین، می‌توانیم با در نظر گرفتن آپشن u- در دستور sort هر دو گام را در یک مرحله انجام داد:و به عنوان خروجی دستور فوق داریم : همانطور که مشاهده می کنید نتیجه این است که هر دو دستور کار واحدی را انجام می‌دهند!3- دستور join : کاربرد این دستور به این شکل است که ابتدا هر ۲ فایل را مورد بررسی قرار می‌دهد تا ببیند که آیا دارای ستون مشترکی هستند یا خیر؛ سپس هر ۲ فایل را بر اساس ستونی که در هر دو فایل وجود دارد به یکدیگر الحاق می‌کند. برای روشن‌تر شدن این مسئله، ابتدا فایلی می‌سازیم تحت عنوان file1 که دارای محتویات زیر است:و فایل دیگری هم می سازیم تحت عنوان file2 که محتویات آن به شکل زیر است :همان‌طور که می‌بینیم، فیلد شناسه در هر دو فایل یکسان است. حال دستور join file1 file2 را در ترمینال وارد می سازیم و خروجی به شکل زیر خواهد شد : به همین سادگی !!امیدوارم که این مقاله برای شما عزیزان مفید واقع بوده باشه و برای مطالعه مقالات بیشتر وارد آدرس سایت ما بشوید : www.semilearn.com </description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Thu, 07 Jan 2021 19:23:40 +0330</pubDate>
            </item>
                    <item>
                <title>تیم ورک در برنامه نویسی و حوزه IT</title>
                <link>https://virgool.io/@kpanbeian/%D8%AA%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88-%D8%AD%D9%88%D8%B2%D9%87-IT-lefrjktbaqxn</link>
                <description>امروز قصد داریم در رابطه با تیم ورک یا همان کار گروهی و تیمی در یک تیم برنامه نویسی صحبت کنیم . خیلی سریع به بحثمون می پردازیم .در گام نخست باید به این موضوع دقت کرد که کار گروهی همیشه هم حسن ها و هم معایبی دارد پس به هر دو وجه این موضوع می پردازیم .فرض کنید که شما یک برنامه نویس فرانت اند هستین و همکار شما در یک تیم برنامه نویس بک اند و همکار دیگر شما در تیم UI Designer یا به اصطلاح طراح ui پروژه ها می باشند . اولین گام این هست که شما بتوانید با افراد گروه ارتباط خوبی برقرار کنید . طبیعتا اگر روحیات و اخلاق شما 3 نفر در یک تیم با هم هیچ گونه همخوانی نداشته باشند هیچ پروژه ای را به صورت کامل و حرفه ای نمیتوانید پیاده سازی و اجرایی کنید !پس اولین گام ارتباط گرفتن با افراد گروه هست حالا سوالی که مطرح هست اینه که چطور اینکار را اینجام بدهیم؟ خیلی ساده هست !در ابتدای آشنایی با افراد گروه میتوانید با پرسیدن سوالات معمولی مثل اینکه : چه مدت هست که به این کار مشغولی ؟ , آیا از کارت راضی هستی ؟ , چه نوع علاقه مندی هایی به غیر از تخصص اصلیت داری ؟ و... سعی کنید که با پرسش چنین سوالاتی با افراد گروه بیشتر آشنا شده و به قول معروف رفیق بشوید ! مطمئن باشید که این موضوع خیلی در خروجی پروژه های کاری به تمام اعضای گروه کمک میکند.دومین گام این هست که سعی کنید هر چند وقت یکبار جلسه کاری برگزار کنید . در جلسات کاری به موضوعات مختلف بپردازید در مورد مسائل مهمی که مربوط به کار گروهی می شود بحث کنید مثل اینکه : چه پروژه هایی را قبول کنیم ؟ , ساعت کاری مخصوصی را برای گروه تعیین کنیم , چه ترفند هایی را به کار ببریم تا خروجی کار گروه بهبود پیدا کرده و رو به رشد باشد و... همین موضوع باعث می شود هم ارتباط نزدیکی با افرادگروه پیدا کنید و هم به راه حل های جدید و خوبی برای حل مسائل مختلف کاری برسید.اما آخرین گام و مهم ترین نکات در کار گروهی که به صورت موردی در پایین ذکر می کنم !1- همیشه یادتان باشد در کار تیمی تمامی افراد تیم برای یک هدف معین و مشخص در تلاشند تا نتیجه خوبی بگیرند پس اگر هم گروهی شما نیاز به کمک دارد حتما او را کمک کنید .2- اگر باید قسمتی از وظایف هم گروهی تان را به هر علتی مدتی شما انجام بدهید دریغ نکنید و حتما سعی کنید او را کمک کنید. 3- در زمان هایی که گروه با بحران خاصی مواجه می شوند همه افراد گروه در مقال بحران به وجود آمده مسئول هستند و باید به فکر راه چاره باشند .4- در کار تیمی هیچ یک از دیگری برتری ندارند و هیچ نگاه از بالا به پایین به دیگری قابل قبول نیست !5- در کار تیمی باید منظم و مسئولیت پذیر باشید ! یعنی اگر باید قسمتی از پروژه را راس تاریخی تحویل بدهید حتما حتما سعی کنید که راس تاریخ مربوطه پروژه را آماده کنید . چرا که اگر در کار گروهی قرار باشد همه به صورت نامنظم کار کنند خروجی پروژه بسیار بد و بی ارزش می شود  و جدای از این موضوع , این حس بی مسئولیتی و بی ارزش بودن کار را ناخواسته به بقیه افراد گروه هم منتقل می کنید !6 - بعد از بدست آوردن موفقیت خاصی در گروه سعی کنید این حس خوب را با تمامی اعضای گروه به اشتراک بگذارید و ارتباط نزدیک تر و بهتری با همکارانتان در گروه برقرار کنید .7- سعی کنید سیستم خاصی برای بهتر و دقیق تر و منظم کار کردن با هم پیدا و طراحی کنید که کار کردن با همدیگر لذت بخش تر و ساده تر بشود .8 - اگر قرار هست تصمیم خاصی در گروه برای هر موضوعی گرفته شود نظر تمامی اعضا رو بپرسید حتما کممنده خواهد بود !مواردی که ذکر شد را به خوبی مرور کنید و سعی کنید در تیم خود اجرایی کنید مطمئنا نتیجه خوبی خواهید گرفت !برای مطالعه مقالات بیشتر به آدرس سایت ما میتوانید مراجعه کنید آدرس سایت :www.semilearn.com </description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Fri, 01 Jan 2021 18:59:52 +0330</pubDate>
            </item>
                    <item>
                <title>تفاوت DNS vs DHCP</title>
                <link>https://virgool.io/@kpanbeian/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-dns-vs-dhcp-ktv2rkamp3zw</link>
                <description>سلام دوستان امیدوارم حالتون خوب باشهخب دوستان , امروز میخوایم خیلی مختصر و مفید تفاوت DNS server ها و DHCP server ها رو با هم بررسی کنیم .خیلی ساده ست !!اول از همه تنها وجه مشترکی که با هم دارند این هست که هر دو سرویس هایی هستند که در لایه 7 مدل OSI یعنی لایه (Application) وجود دارند.اما به تفاوت ها می پردازیم : اول DHCP server  ها :سرویس هایی هستند که تنظیمات TCP/IP رو به صورت خودکار روی شبکه مون انجام میده .مثلا یکی از این تنظیمات IP Config ها هست که دیگر لازم نیست دستی انجام بشوند و به صورت خودکار به سیستم هایی که در شبکه مون داریم IP دهی می کنه.یکی دیگه از ویژگی های DHCP server این هست که تمام بسته ها رو در پروسه دریافت و انتقال به صورت Broadcast انجام میده .در ضمن یکی دیگه از ویژگی های DHCP server اینه که اگر پشت یک روتر قرار بگیره کار نمیکنه مگر اینکه برای اون روتر تنظیم بشه که بسته های DHCP server رو عبور بده حالا چرا به صورت پیش فرض روتر اینکارو میکنه ؟خیلی ساده ست چون به طور کلی روتر ها بسته ها رو به صورت Broadcast عبور نمیده !یکی دیگه از ویژگی های DHCP server از دو تا پورت 67 و 68 در بستر UDP استفاده میکنه که پورت (67 برای سمت سرور) و (پورت 68 برای کلاینت ) مورد استفاده قرار می گیره.اما DNS server ها : سرویس هایی هستند که وظیفه اصلی اونها تبدیل name به ip  و تبدیل ip به name هست .سوال اینجاست که منظور از name ها چیه ؟ببینید ما در دنیای شبکه به طور کل از دو نوع name استفاده میکنیم : (FLAT , FQDN) که در واقع DNS server میاد name هایی که تحت عنوان FQDN هستند رو تبدیل به ip میکنه .اسم ها یا name ها همیشه به صورت دو بخشی است به مثال زیر توجه کنید :بخش اول Host name و بخش دوم Domain name هست , همیشه!!!بعد از com  در مثال بالا یک (.) یا (دات) وجود داره که ما اون رو در عمل نمی بینیم که بهش Root گفته میشه . این Root مدعی هست که کل پروتکل ها رو بخوبی میشناسه پس از com می پرسه که فرضا آدرس ip گوگل رو برام پیدا کن و این طوری میشه که شما وقتی سرچ میکنید google.com برای شما نتیجه جستجو رو نمایش داده میشه . یعنی اون Root می گرده می بینه کدوم آدرس که به شما نزدیک تر هست و خلوت تر هست همون آدرس رو به شما اختصاص میده و نتیجه رو به شما نمایش میده .خب دوستان تا جایی که میشد سعی کردیم خیلی خلاصه و مفید به دو مبحث بسیار بزرگ و گسترده DNS &amp; DHCP بپردازیم که طبیعتا برای شناسایی دقیق اون ها باید به دوره های پیشرفته شبکه رجوع کرد .امیدوارم این مقاله برای شما مفید بوده باشه .تا مطلب بعدی خدانگهدار </description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Mon, 06 Apr 2020 21:18:52 +0430</pubDate>
            </item>
                    <item>
                <title>شاید مهم ترین موضوع برای شروع شبکه !!</title>
                <link>https://virgool.io/@kpanbeian/%D8%B4%D8%A7%DB%8C%D8%AF-%D9%85%D9%87%D9%85-%D8%AA%D8%B1%DB%8C%D9%86-%D9%85%D9%88%D8%B6%D9%88%D8%B9-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B4%D8%B1%D9%88%D8%B9-%D8%B4%D8%A8%DA%A9%D9%87-h9fugirz9uve</link>
                <description>سلام امروز میخوام با یک مطلب مهم از شبکه آشناتون کنم که آگاهی ازش برای کسانی که میخوان شبکه رو شروع کنند و یا اصولا کارشون به وب مربوط میشه حتما لازم هست .خب بریم سر اصل مطلب !در شبکه ما چیزی داریم به نام مدل OSI , حالا دقیقا چی هست ؟ببینید همانطور که برای ساخت یک ساختمان شما نیاز به یک نقشه دارید تا بدونید جای هر چیزی کجاست مثلا مسیر برق ساختمان از کجا میگذره , درها کجا هستن , راه ورود و خروج کجاست و...در شبکه هم لازم هست که بدونید ارتباط شبکه شما در چ مسیری قرار گرفته و در هر مسیر چه اتفاقاتی داره برای شبکه شما در حال افتادن هست.حالا خوبی دونستن مدل OSI اینه که اگر در شبکه شما اختلالی رخ بده خیلی سریع میتونید تشخیص بدین که مشکل دقیقا از کجاست بررسی ساختار مدل OSIمدل OSI از 7 لایه تشکیل شده که به ترتیب : 7) Application
6)presentation
5)session
4)Transportation
3)Network
2)DataLink
1)Physical
هستش.خیلی مختصر و مفید هر کدوم رو یه بررسی میکنیم با هم :(لایه کاربردی یا Application) در این لایه ارتباط بین کاربران با شبکه برقرار می شود .یعنی چی ؟بطور مثال اگر بخواهیم از مرورگر استفاده کنیم یا ارتباط از راه دور برقرار کنیم باید از این لایه استفاده کنیم .بعضی از پروتکل های این لایه : HTTP,HTTPS,FTP,SMTP و...(لایه نمایش یا presentation)در این لایه اطلاعات از لایه بالاتر دریافت میشه و طوری رمز نگاری میشه که برای لایه های پایین تر قابل فهم باشه. در واقع وظیفه اصلی این لایه رمز نگاری و بسته بندی (اصطلاحا Formatting) هستش.(لایه نشست یا session)این لایه وظیفه اصلیش ایجاد ارتباط است و حکم منشی یک شرکت رو داره که 3 کار مهم رو انجام میده :1)ایجاد ارتباط2)مدیریت ارتباط3)قطع ارتباط(لایه انتقال یا Transportation)این لایه وظیفه ارتباط منطقی و همچنین کنترل اطلاعات رو بر عهده داره.اینجا مبحث TCP,UDP مطرح میشه که من تو مقاله بعدی حتما در موردش صحبت میکنم !(لایه شبکه یا Network)این لایه وظیفه مسیریابی بسته ها در شبکه رو بر عهده داره و مشخص میکنه که بسته ها چگونه به مقصد برسند. برخی از پروتکل های این لایه عبارتند از :BGP,OSPF,RIP,ARP و...(لایه ارتباط داده یا DataLink) در این لایه توپولوژی و نحوه اتصال ها مشخص میشه و وظیفه اصلی این لایه آدرس دهی فیزیکی دستگاه های شبکه هستش. همچنین تو این لایه عملیات خطایابی و کنترل سر ریز داده صورت میگیره .(لایه فیزیکی یا همون Physical)بخوام خیلی ساده بگم این جا اطلاعات تبدیل به 0 و 1 و رهسپار کابل های شبکه می شن.تا اینجا سعی کردم مختصر و مفید یه ایده کلی از مدل OSI که خیلی خیلی در مبانی شبکه مهم هست رو براتون توضیح بدم امیدوارم براتون مفید بوده باشه تو قسمت بعدی مقاله مدل OSI رو بیشتر می شکفایم و اگر شد از پروتکل TCP/IP هم صحبت خواهیم کرد تو این روزای کرونایی مراقب خودتون باشین و تو خونه بمونید و از این فرصت برای بالا بردن مهارت هاتون استفاده مفید بکنید .تا مقاله بعدی              خدانگهدار</description>
                <category>خشایار پنبه ئیان</category>
                <author>خشایار پنبه ئیان</author>
                <pubDate>Sun, 22 Mar 2020 16:53:57 +0430</pubDate>
            </item>
            </channel>
</rss>