<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>لینوکس آرشیو - بلاگ هم‌روش</title>
	<atom:link href="https://hamravesh.com/blog/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://hamravesh.com/blog/category/linux/</link>
	<description>وبلاگ رسمی هم‌روش</description>
	<lastBuildDate>Tue, 26 Aug 2025 10:08:27 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://hamravesh.com/blog/wp-content/uploads/2022/07/cropped-fav1-32x32.png</url>
	<title>لینوکس آرشیو - بلاگ هم‌روش</title>
	<link>https://hamravesh.com/blog/category/linux/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>نصب گیت در اوبونتو – راهنمای سریع و جامع</title>
		<link>https://hamravesh.com/blog/install-git-on-ubuntu/</link>
					<comments>https://hamravesh.com/blog/install-git-on-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Tue, 19 Nov 2024 09:11:13 +0000</pubDate>
				<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3635</guid>

					<description><![CDATA[<p>در این راهنما، به ۲ روش مختلف برای نحوه پیکربندی و نصب گیت در اوبونتو سرور می‌پردازیم.</p>
<p>The post <a href="https://hamravesh.com/blog/install-git-on-ubuntu/">نصب گیت در اوبونتو – راهنمای سریع و جامع</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>در این راهنما، به ۲ روش مختلف برای نحوه پیکربندی و نصب گیت در اوبونتو سرور می‌پردازیم. ابتدا نصب گیت روی اوبونتو از طریق مدیر بسته داخلی سیستم را بررسی می‌کنیم و سپس به نصب گیت در اوبونتو به‌وسیله سورس (کُدِ منبع) خواهیم پرداخت.</p>



<h2 class="wp-block-heading" id="h-مقدمه">مقدمه</h2>



<p>استفاده از سیستم‌های کنترل نسخه مانند گیت (<a href="https://hamravesh.com/blog/10-git-command/">Git</a>)، برای پیاده‌سازی بهترین روش‌های توسعه نرم‌افزارهای مُدرن ضروری است. نسخه‌بندی (Versioning) به ما اجازه می‌دهد تا وضعیت نرم‌افزار خود را در سطح سورس ره‌گیری و پیگیری کنیم. </p>



<p>می‌توانیم تغییرات را دنبال کنیم، به مراحل قبلی برگردیم و شاخه‌های (Branch) جدیدی را برای ایجاد نسخه‌های مختلف از فایل‌ها و پوشه‌ها بسازیم. فایل‌های بسیاری از پروژه‌های نرم‌افزاری در مخازن گیت نگهداری می‌شوند و پلتفرم‌هایی مانند گیت‌هاب، گیت‌لب و بیت‌باکت به اشتراک‌گذاری و همکاری در پروژه‌های توسعه نرم‌افزار کمک می‌کنند.</p>



<h2 class="wp-block-heading" id="h-پیش-نیازهای-نصب-گیت-در-اوبونتو">پیش‌نیازهای نصب گیت در اوبونتو</h2>



<p>برای نصب گیت در اوبونتو ما به سرور اوبونتو با حساب کاربری غیرِ روت (non-root) نیاز داریم که دسترسی سوپریوزر دارد. برای راه‌اندازی این مورد، می‌توان از یک راهنمای تنظیمات اولیه سرور <a href="https://hamravesh.com/blog/install-linux-ubuntu/">لینوکس اوبونتو</a> استفاده کرد.</p>



<h2 class="wp-block-heading" id="h-نصب-گیت-در-اوبونتو-با-پکیج-های-پیش-فرض">نصب گیت در اوبونتو با پکیج‌های پیش‌فرض</h2>



<p>اگر بخواهیم سریعاً گیت را راه‌اندازی کنیم، نسخه پایدار و پرکاربرد را ترجیح می‌دهیم یا به جدیدترین امکانات نیاز نداریم، نصب با بسته‌های پیش‌فرض بهترین گزینه است. اگر به دنبال آخرین نسخه هستید، باید به بخش نصب از طریق سورس بروید تا بتوانید نسخه مورد نظر خود را انتخاب کنید. احتمال دارد گیت از قبل روی سرور اوبونتوی ما نصب شده باشد. می‌توانیم این موضوع را با دستور زیر بررسی کنیم:</p>



<pre class="wp-block-code"><code>git --version</code></pre>



<p>اگر خروجی مشابه زیر دریافت کردیم، یعنی گیت از قبل نصب شده است:</p>



<pre class="wp-block-code"><code>Output
git version 2.25.1</code></pre>



<p>در این صورت، اگر نسخه گیت قدیمی باشد، ممکن است نیاز به بروزرسانی آن داشته باشیم و سپس می‌توانیم به انجام تنظیمات Git بپردازیم که در بخش‌های بعدی این نوشته شرح داده شده است. حالا برای نصب گیت روی اوبونتو، ابتدا با استفاده از ابزارهای مدیریت بسته apt، فهرست بسته‌های محلی خود را به‌روز می‌کنیم:</p>



<pre class="wp-block-code"><code>sudo apt update</code></pre>



<p>پس از اتمام بروزرسانی، می‌توانیم نصب گیت در اوبونتو را انجام دهیم:</p>



<pre class="wp-block-code"><code>sudo apt install git</code></pre>



<p>می‌توانیم با اجرای دستور زیر و بررسی خروجی مربوطه، از نصب صحیح گیت اطمینان حاصل کنیم:</p>



<pre class="wp-block-code"><code>git --version</code></pre>



<p>خروجی:</p>



<pre class="wp-block-code"><code>Output
git version 2.45.2</code></pre>



<p>حالا که گیت با موفقیت نصب شده، می‌توانیم به بخش «تنظیمات گیت» در این آموزش مراجعه کنیم تا تنظیمات لازم را انجام بدهیم.</p>



<h2 class="wp-block-heading" id="h-آموزش-نصب-گیت-روی-اوبونتو-از-طریق-سورس">آموزش نصب گیت روی اوبونتو از طریق سورس</h2>



<p>اگر به دنبال روشی انعطاف‌پذیرتر برای نصب گیت هستید، ممکن است بخواهید نرم‌افزار را از سورس کامپایل کنید که در این بخش به آن می‌پردازیم. این روش زمان بیشتری می‌برد و از طریق پکیج منیجر مدیریت نمی‌شود، اما به شما امکان می‌دهد تا آخرین نسخه را دانلود کنید و اگر مایل به سفارشی‌سازی هستید، کنترل بیشتری روی گزینه‌های مورد نظر خواهید داشت. ابتدا نسخه فعلی گیت نصب شده روی سرور را بررسی کنید:</p>



<pre class="wp-block-code"><code>git --version</code></pre>



<p>اگر گیت نصب شده باشد، خروجی مشابه زیر را دریافت خواهید کرد:</p>



<pre class="wp-block-code"><code>Output
git version 2.25.1</code></pre>



<p>قبل از شروع، باید نرم‌افزارهایی را نصب کنید که گیت به آن‌ها وابستگی دارد. همه این‌ها در مخازن پیش‌فرض موجود هستند، پس می‌توانیم فهرست پکیج‌های محلی را به‌روز کرده و سپس بسته‌های مربوطه را نصب کنیم:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install libz-dev libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext cmake gcc</code></pre>



<p>پس از نصب وابستگی‌های لازم، پوشه‌ای موقت ایجاد کرده و وارد آن شوید. اینجا جایی است که فایل فشرده گیت یا به اصطلاح «tarball» گیت را دانلود خواهیم کرد:</p>



<pre class="wp-block-code"><code>mkdir tmp
cd /tmp</code></pre>



<p>از وب‌سایت پروژه گیت [<a href="https://git-scm.com/">+</a>]، می‌توانیم به صفحه فهرست فایل‌های فشرده موجود در [<a href="https://mirrors.edge.kernel.org/pub/software/scm/git/">+</a>] برویم و نسخه مورد نظرمان را دانلود کنیم. در زمان نگارش این متن، آخرین نسخه ۲.۹.۵ است، پس ما آن را برای نمایش دانلود می‌کنیم. از <code>curl</code> استفاده می‌کنیم و فایل دانلود شده را <code>git.tar.gz</code> می‌نامیم:</p>



<pre class="wp-block-code"><code>curl -o git.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.2.tar.gz</code></pre>



<p>فایل را از حالت فشرده خارج می‌کنیم:</p>



<pre class="wp-block-code"><code>tar -zxf git.tar.gz</code></pre>



<p>سپس وارد پوشه جدید گیت می‌شویم:</p>



<pre class="wp-block-code"><code>cd git-*</code></pre>



<p>حالا می‌توانیم پکیج را بسازیم و با تایپ این ۲ دستور آن را نصب کنیم:</p>



<pre class="wp-block-code"><code>make prefix=/usr/local all
sudo make prefix=/usr/local install</code></pre>



<p>اکنون، پراسس shell را جایگزین می‌کنیم تا نسخه گیتی که همین الان نصب کردیم استفاده شود:</p>



<pre class="wp-block-code"><code>exec bash</code></pre>



<p>با تکمیل این مراحل، می‌توانیم با بررسی نسخه، از موفقیت نصب گیت در اوبونتو مطمئن شویم:</p>



<pre class="wp-block-code"><code>git --version</code></pre>



<p>خروجی:</p>



<pre class="wp-block-code"><code>Output
git version 2.26.2</code></pre>



<p>حالا که گیت با موفقیت نصب شده، می‌توانیم تنظیمات مورد نیاز را هم انجام بدهیم.</p>



<h2 class="wp-block-heading" id="h-به-روزرسانی-گیت-در-اوبونتو">به‌روزرسانی گیت در اوبونتو</h2>



<p>قبل از تنظیم گیت، باید اطمینان حاصل کنیم که از آخرین نسخه پایدار استفاده می‌کنیم، چون نسخه‌ها می‌توانند به سرعت قدیمی شوند. برای به‌روزرسانی گیت در اوبونتو، ابتدا فهرست بسته‌های یا همان پکیج‌های خود را بروز می‌کنیم:</p>



<pre class="wp-block-code"><code>sudo apt update</code></pre>



<p>حالا گیت را به‌روزرسانی کنید:</p>



<pre class="wp-block-code"><code>sudo apt install git</code></pre>



<p>در نهایت، بررسی کنید که آخرین نسخه پایدار گیت را نصب دارید:</p>



<pre class="wp-block-code"><code>git --version</code></pre>



<h2 class="wp-block-heading" id="h-تنظیمات-گیت-پس-از-نصب-در-اوبونتو">تنظیمات گیت پس از نصب در اوبونتو</h2>



<p>پس از موفقیت در نصب نسخه گیت مورد نظرمان، باید گیت را پیکربندی و کانفیگ کنیم تا کامیت مسیج‌هایی که ایجاد می‌کنیم حاوی اطلاعات صحیح مورد نظر ما باشند فرایند ساخت پروژه نرم‌افزاری ما تا حد امکان تسهیل شود.</p>



<p>پیکربندی را می‌توان با استفاده از دستور <code>git config</code> انجام داد. به‌طور خاص، ما باید نام و آدرس ایمیل خود را ارائه دهیم، زیرا گیت این اطلاعات را در هر کامیتی که انجام می‌دهیم، جاسازی می‌کند. می‌توانیم این اطلاعات را با وارد کردن دستورات زیر اضافه کنیم:</p>



<pre class="wp-block-code"><code>git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"</code></pre>



<p>می‌توانیم تمام موارد کانفیگ که تنظیم شده‌اند را با تایپ دستور زیر نمایش دهیم:</p>



<pre class="wp-block-code"><code>git config --list</code></pre>



<p>خروجی:</p>



<pre class="wp-block-code"><code>Output
user.name=Your Name
user.email=youremail@domain.com
...</code></pre>



<p>اطلاعاتی که وارد می‌کنیم در فایل پیکربندی گیت ذخیره می‌شود، که می‌توانیم به صورت اختیاری آن را با یک ویرایشگر متن به انتخاب خودمان ویرایش کنیم (ما از نانو استفاده می‌کنیم):</p>



<pre class="wp-block-code"><code>nano ~/.gitconfig</code></pre>



<p>محتوای فایل کانفیگ:</p>



<pre class="wp-block-code"><code>&#91;user]
  name = Your Name
  email = youremail@domain.com</code></pre>



<p>برای خروج از ویرایشگر متن، <code>CTRL</code> و <code>X</code>، سپس <code>Y</code> و در نهایت <code>ENTER</code> را می‌زنیم. گزینه‌های بسیار زیاد دیگری هم وجود دارد که می‌توانیم تنظیم کنیم، اما این ۲ مورد، ضروری‌ترین مواردی هستند که نیاز داریم. اگر این مرحله را نادیده بگیرید، احتمالاً هنگام کامیت در گیت هشدارهایی خواهید دید. این باعث می‌شود کار بیشتری برای شما ایجاد شود، زیرا سپس باید کامیت‌هایی را که انجام داده‌اید با اطلاعات صحیح اصلاح کنید.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>در این مقاله روش‌های مختلف پیکربندی و نصب گیت در اوبونتو سرور را بررسی کردیم و یاد گرفتیم. ۲ روش اصلی نصب شامل استفاده از مدیر بسته داخلی (apt) و نصب از طریق کد منبع (سورس) بود. پس از نصب، بر اهمیت به‌روزرسانی گیت و انجام تنظیمات اولیه مانند تعیین نام و ایمیل کاربر تأکید شد. این مراحل برای استفاده صحیح و کارآمد از گیت در پروژه‌های نرم‌افزاری ضروری هستند و به توسعه‌دهندگان کمک می‌کنند تا از مزایای کامل این سیستم کنترل نسخه بهره‌مند شوند.</p>
<p>The post <a href="https://hamravesh.com/blog/install-git-on-ubuntu/">نصب گیت در اوبونتو – راهنمای سریع و جامع</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/install-git-on-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>راه‌اندازی و اتصال به ssh در لینوکس با کلید ssh</title>
		<link>https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/</link>
					<comments>https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Mon, 28 Oct 2024 12:13:25 +0000</pubDate>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3199</guid>

					<description><![CDATA[<p>در این مقاله با نحوه ایجاد جفت کلید ssh  و اتصال به آن در لینوکس آشنا می‌شوید.</p>
<p>The post <a href="https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/">راه‌اندازی و اتصال به ssh در لینوکس با کلید ssh</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>SSH یا Secure Shell، پروتکل رمزنگاری‌شده‌ای است که برای مدیریت و ارتباط با سرورها استفاده می‌شود. هنگام کار با سرور اوبونتو، معمولاً بیشتر وقت خود را در سِشِن ترمینالی سپری می‌کنیم که از طریق SSH به آن متصل شده‌ایم. در این راهنما، ما بر اتصال به ssh در لینوکس از طریق راه‌اندازی کلیدهای SSH بر روی Ubuntu 20.04 تمرکز خواهیم کرد. کلیدهای SSH روشی امن برای ورود به سرور فراهم می‌کنند و استفاده از آن‌ها به جای پسورد به تمام کاربران توصیه می‌شود.</p>



<h2 class="wp-block-heading" id="h-گام-اول-اتصال-به-ssh-در-لینوکس-ایجاد-جفت-کلیدها">گام اول اتصال به ssh در لینوکس — ایجاد جفت کلیدها</h2>



<p>مرحله اول، ایجاد یک جفت کلید روی دستگاه کلاینت (معمولاً رایانه شخصی شما) است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * 1rem);line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="کپی" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ssh-keygen</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ssh-keygen</span></span></code></pre></div>



<p>به طور پیش‌فرض، نسخه‌های اخیر <code>ssh-keygen</code> یک جفت کلید RSA با طول ۳۰۷۲ بیت ایجاد می‌کنند که برای بیشتر کاربردها، امنیت کافی را فراهم می‌کند (در صورت تمایل، می‌توانید با استفاده از پرچم <code>-b 4096</code> یک کلید بزرگ‌تر ۴۰۹۶ بیتی ایجاد کنید). پس از وارد کردن دستور، باید خروجی زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">Generating</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">public/private</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">rsa</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">pair.</span></span>
<span class="line"><span style="color: #F69D50">Enter</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">file</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">in</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">which</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">save</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7"> (/your_home/.ssh/id_rsa):</span></span></code></pre></div>



<p>برای ذخیره کردن جفت کلید در زیردایرکتوری <code>.ssh/</code> در دایرکتوری home اینتر بزنید، یا مسیر دیگری مشخص کنید. اگر قبلاً یک جفت کلید SSH تولید کرده‌اید، ممکن است پرسش زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">/home/your_home/.ssh/id_rsa</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">already</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">exists.</span></span>
<span class="line"><span style="color: #F69D50">Overwrite</span><span style="color: #ADBAC7"> (y/n)</span><span style="color: #F47067">?</span></span></code></pre></div>



<p>اگر تصمیم به بازنویسی کلید روی دیسک بگیرید، دیگر نخواهید توانست با استفاده از کلید قبلی احراز هویت کنید. هنگام انتخاب بله، بسیار محتاط باشید، زیرا این یک فرایند مخرب است که قابل برگشت نیست. سپس باید خروجی زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
Enter passphrase (empty for no passphrase):</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">Enter</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">passphrase</span><span style="color: #ADBAC7"> (empty </span><span style="color: #96D0FF">for</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">no</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">passphrase</span><span style="color: #ADBAC7">):</span></span></code></pre></div>



<p>در اینجا می‌توانید به صورت اختیاری یک عبارت عبور امن وارد کنید، که به شدت توصیه می‌شود. عبارت عبور یک لایه امنیتی اضافی ایجاد می‌کند تا از ورود کاربران غیرمجاز جلوگیری کند. برای آموختن بیشتر درباره امنیت، می‌توانید به آموزش پیرامون چگونگی پیکربندی احراز هویت مبتنی بر کلید SSH در یک سرور <a href="https://hamravesh.com/blog/what-are-linux-distributions/">لینوکس</a> [<a href="https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server">+</a>] مراجعه کنید. سپس باید خروجی مشابه زیر را ببینید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
Your identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
The key's randomart image is:
+---&#91;RSA 3072&#93;----+
|                .|
|               + |
|              +  |
| .           o . |
|o       S   . o  |
| + o. .oo. ..  .o|
|o = oooooEo+ ...o|
|.. o *o+=.*+o....|
|    =+=ooB=o.... |
+----&#91;SHA256&#93;-----+</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">Your</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">identification</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">has</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">been</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">saved</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">in</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">/your_home/.ssh/id_rsa</span></span>
<span class="line"><span style="color: #F69D50">Your</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">public</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">has</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">been</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">saved</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">in</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">/your_home/.ssh/id_rsa.pub</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">fingerprint</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">is:</span></span>
<span class="line"><span style="color: #F69D50">SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">user@host</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key&#39;s randomart image is:</span></span>
<span class="line"><span style="color: #96D0FF">+---&#91;RSA 3072&#93;----+</span></span>
<span class="line"><span style="color: #96D0FF">|                .|</span></span>
<span class="line"><span style="color: #96D0FF">|               + |</span></span>
<span class="line"><span style="color: #96D0FF">|              +  |</span></span>
<span class="line"><span style="color: #96D0FF">| .           o . |</span></span>
<span class="line"><span style="color: #96D0FF">|o       S   . o  |</span></span>
<span class="line"><span style="color: #96D0FF">| + o. .oo. ..  .o|</span></span>
<span class="line"><span style="color: #96D0FF">|o = oooooEo+ ...o|</span></span>
<span class="line"><span style="color: #96D0FF">|.. o *o+=.*+o....|</span></span>
<span class="line"><span style="color: #96D0FF">|    =+=ooB=o.... |</span></span>
<span class="line"><span style="color: #96D0FF">+----&#91;SHA256&#93;-----+</span></span></code></pre></div>



<p>شما اکنون یک کلید عمومی و خصوصی دارید که می‌توانید برای احراز هویت استفاده کنید. مرحله بعدی، قرار دادن کلید عمومی بر روی سرور شما است تا بتوانید با استفاده از احراز هویت مبتنی بر کلید SSH وارد شوید.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="450" height="450" src="https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux.png" alt="اتصال به ssh در لینوکس" class="wp-image-3211" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux.png 450w, https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux-300x300.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux-150x150.png 150w, https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux-250x250.png 250w, https://hamravesh.com/blog/wp-content/uploads/2024/06/how-to-ssh-to-linux-with-ssh-key-from-linux-100x100.png 100w" sizes="(max-width: 450px) 100vw, 450px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-مرحله-۲-کپی-کردن-کلید-عمومی-به-سرور-لینوکس">مرحله ۲ — کپی کردن کلید عمومی به سرور لینوکس</h2>



<p>سریع‌ترین راه برای انتقال کلید عمومی به میزبان Ubuntu، استفاده از ابزاری به نام <code>ssh-copy-id</code> است. به دلیل سادگی استفاده، این روش در صورت در دسترس بودن، به شدت توصیه می‌شود. اگر ابزار <code>ssh-copy-id</code> در دستگاه کلاینت شما موجود نیست، می‌توانید از یکی از ۲ روش جایگزین ارائه‌شده در این بخش استفاده کنید (کپی کردن از طریق SSH مبتنی بر رمز عبور یا کپی دستی کلید).</p>



<h3 class="wp-block-heading" id="h-کپی-کردن-کلید-عمومی-با-استفاده-از-ssh-copy-id">کپی کردن کلید عمومی با استفاده از <code>ssh-copy-id</code></h3>



<p>ابزار <code>ssh-copy-id</code> به طور پیش‌فرض در بسیاری از سیستم‌های عامل گنجانده شده است، بنابراین ممکن است در سیستم محلی شما در دسترس باشد. برای اینکه این روش کار کند، باید قبلاً دسترسی SSH مبتنی بر رمز عبور را به سرور خود داشته باشید.</p>



<p>برای استفاده از این ابزار، میزبان دوردستی (ریموتی) که می‌خواهیم به آن متصل شویم و حساب کاربری که دسترسی SSH مبتنی بر رمز عبور به آن داریم را مشخص می‌کنیم. این حساب کاربری همان حسابی است که کلید SSH عمومی شما به آن کپی خواهد شد. دستور به شکل زیر است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ssh-copy-id username@remote_host</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ssh-copy-id</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">username@remote_host</span></span></code></pre></div>



<p>ممکن است پیام زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">authenticity</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">of</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">host</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&#39;203.0.113.1 (203.0.113.1)&#39;</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">can&#39;t be established.</span></span>
<span class="line"><span style="color: #96D0FF">ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.</span></span>
<span class="line"><span style="color: #96D0FF">Are you sure you want to continue connecting (yes/no)? yes</span></span></code></pre></div>



<p>این یعنی رایانه محلی شما میزبان دوردست را نمی‌شناسد. این اتفاق در اولین اتصال شما به یک میزبان جدید رخ می‌دهد. «yes» را تایپ کرده و ENTER را فشار دهید تا ادامه کار انجام شود. سپس، ابزار مربوطه کلید <code>id_rsa.pub</code> را که قبلاً ایجاد کردیم در حساب محلی ما جستجو می‌کند. وقتی کلید را پیدا کند، رمز عبور حساب کاربری ریموت را از ما درخواست می‌کند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
username@203.0.113.1's password:</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">/usr/bin/ssh-copy-id:</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">INFO:</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">attempting</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">log</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">in</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">with</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">new</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">s</span><span style="color: #ADBAC7">)</span><span style="color: #96D0FF">,</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">filter</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">out</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">any</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">that</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">are</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">already</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">installed</span></span>
<span class="line"><span style="color: #F69D50">/usr/bin/ssh-copy-id:</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">INFO:</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">s</span><span style="color: #ADBAC7">) </span><span style="color: #96D0FF">remain</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">be</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">installed</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">--</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">if</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">you</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">are</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">prompted</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">now</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">it</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">is</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">install</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">new</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">keys</span></span>
<span class="line"><span style="color: #F69D50">username@203.0.113.1</span><span style="color: #F69D50">&#39;s password:</span></span></code></pre></div>



<p>رمز عبور را تایپ می‌کنیم (چیزی که تایپ کرده‌ایم به دلایل امنیتی نمایش داده نمی‌شود) و سپس ENTER را فشار می‌دهیم. ابزار مربوطه به حساب کاربری روی میزبان دوردست با استفاده از رمز عبوری که فراهم کردیم، متصل می‌شود. سپس محتویات کلید <code>~/.ssh/id_rsa.pub</code> ما را درون فایلی در دایرکتوری هوم <code>~/.ssh</code> حساب دوردست به نام <code>authorized_keys</code> کپی می‌کند. حالا باید خروجی زیر را مشاهده کنیم:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'username@203.0.113.1'"
and check to make sure that only the key(s) you wanted were added.</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">Number</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">of</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">s</span><span style="color: #ADBAC7">) </span><span style="color: #96D0FF">added:</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F69D50">Now</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">try</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">logging</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">into</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">machine,</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">with:</span><span style="color: #ADBAC7">   </span><span style="color: #96D0FF">&quot;ssh &#39;username@203.0.113.1&#39;&quot;</span></span>
<span class="line"><span style="color: #F69D50">and</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">check</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">to</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">make</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">sure</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">that</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">only</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">the</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">key</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">s</span><span style="color: #ADBAC7">) </span><span style="color: #96D0FF">you</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">wanted</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">were</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">added.</span></span></code></pre></div>



<p>در این مرحله، کلید <code>id_rsa.pub</code> ما به حساب دوردست آپلود شده است. حالا می‌توانیم برای ادامه به مرحله ۳ برویم.</p>



<h3 class="wp-block-heading" id="h-کپی-کردن-کلید-عمومی-با-استفاده-از-ssh">کپی کردن کلید عمومی با استفاده از SSH</h3>



<p>اگر به ابزار <code>ssh-copy-id</code> دسترسی ندارید، اما به حسابی در سرورتان دسترسی SSH مبتنی بر رمز عبور دارید، می‌توانید کلیدهای خود را با استفاده از روش معمول SSH بارگذاری کنید. این کار را با استفاده از دستور <code>cat</code> برای خواندن محتوای کلید SSH عمومی در رایانه محلی‌مان و انتقال آن از طریق اتصال SSH به سرور ریموت انجام می‌دهیم.</p>



<p>در سمت دیگر، می‌توانیم مطمئن شویم که دایرکتوری <code>~/.ssh</code> وجود دارد و دارای مجوزهای صحیح تحت حسابی است که از آن استفاده می‌کنیم. سپس می‌توانیم محتوایی را که درون فایلی به نام <code>authorized_keys</code> پایپ کردیم را در این دایرکتوری خروجی دهیم. از نماد تغییرمسیر <code>&gt;&gt;</code> برای افزودن محتوا به جای بازنویسی آن استفاده می‌کنیم. این امکان را به ما می‌دهد تا کلیدها را بدون از بین بردن کلیدهای قبلاً افزوده شده، اضافه کنیم. دستور کامل به این شکل است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh &amp;&amp; touch ~/.ssh/authorized_keys &amp;&amp; chmod -R go= ~/.ssh &amp;&amp; cat >> ~/.ssh/authorized_keys"</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">cat</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh/id_rsa.pub</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">|</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">ssh</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">username@remote_host</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;mkdir -p ~/.ssh &amp;&amp; touch ~/.ssh/authorized_keys &amp;&amp; chmod -R go= ~/.ssh &amp;&amp; cat &gt;&gt; ~/.ssh/authorized_keys&quot;</span></span></code></pre></div>



<p>ممکن است با پیام زیر مواجه شوید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">authenticity</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">of</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">host</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&#39;203.0.113.1 (203.0.113.1)&#39;</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">can&#39;t be established.</span></span>
<span class="line"><span style="color: #96D0FF">ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.</span></span>
<span class="line"><span style="color: #96D0FF">Are you sure you want to continue connecting (yes/no)? yes</span></span></code></pre></div>



<p>این یعنی رایانه محلی شما میزبان دوردست را نمی‌شناسد. این اتفاق در اولین اتصال شما به میزبان جدید رخ می‌دهد. «yes» را تایپ کنید و ENTER را فشار دهید تا کار ادامه یابد. سپس، باید برای وارد کردن رمز عبور حساب کاربری دوردست از شما درخواست شود:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
username@203.0.113.1's password:</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">username@203.0.113.1</span><span style="color: #F69D50">&#39;s password:</span></span></code></pre></div>



<p>پس از وارد کردن رمز عبور، محتوای کلید <code>id_rsa.pub</code> شما به انتهای فایل <code>authorized_keys</code> حساب کاربر دوردست کپی خواهد شد. پس از آنکه این کار با موفقیت انجام شد، به مرحله ۳ بروید.</p>



<h3 class="wp-block-heading" id="h-کپی-کردن-کلید-عمومی-به-صورت-دستی">کپی کردن کلید عمومی به صورت دستی</h3>



<p>اگر دسترسی SSH مبتنی بر رمز عبور به سرور خود ندارید، باید فرایند فوق را به صورت دستی انجام دهید. پس به صورت دستی محتوای فایل <code>id_rsa.pub</code> را به فایل <code>~/.ssh/authorized_keys</code> در دستگاه دوردست اضافه می‌کنیم. برای نمایش محتوای کلید <code>id_rsa.pub</code> خود، این دستور را در کامپیوتر محلی خود تایپ کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>cat ~/.ssh/id_rsa.pub</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">cat</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh/id_rsa.pub</span></span></code></pre></div>



<p>محتوای کلید نمایش داده می‌شود، که باید شبیه به خروجی زیر باشد:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">ssh-rsa</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ==</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">demo@test</span></span></code></pre></div>



<p>با استفاده از هر روشی که در دسترس دارید، به میزبان دوردست دسترسی پیدا کنید. پس از دسترسی به حساب خود در سرور دوردست، باید مطمئن شوید که دایرکتوری <code>~/.ssh</code> وجود دارد. این دستور، در صورت نیاز دایرکتوری را ایجاد می‌کند و اگر از قبل وجود داشته باشد، کاری انجام نمی‌دهد:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>mkdir -p ~/.ssh</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">mkdir</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">-p</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh</span></span></code></pre></div>



<p>اکنون، می‌توانید فایل <code>authorized_keys</code> را در این دایرکتوری ایجاد یا ویرایش کنید. می‌توانید محتویات فایل <code>id_rsa.pub</code> خود را در انتهای فایل <code>authorized_keys</code> اضافه کنید، و در صورت نیاز آن را با استفاده از این دستور ایجاد کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>echo public_key_string >> ~/.ssh/authorized_keys
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #6CB6FF">echo</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">public_key_string</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">&gt;&gt;</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh/authorized_keys</span></span>
<span class="line"></span></code></pre></div>



<p>در دستور فوق، به جای <code>public_key_string</code>، خروجی دستور <code>cat ~/.ssh/id_rsa.pub</code> که در سیستم محلی خود اجرا کرده‌اید را قرار دهید. این خروجی باید با <code>ssh-rsa AAAA…</code> شروع شود. در نهایت، مطمئن می‌شویم که دایرکتوری <code>~/.ssh</code> و فایل <code>authorized_keys</code> دارای مجوزهای مناسب هستند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>chmod -R go= ~/.ssh</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">chmod</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">-R</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">go=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh</span></span></code></pre></div>



<p>این دستور به‌طور بازگشتی تمام مجوزهای «group» و «other» را برای دایرکتوری <code>~/.ssh</code> حذف می‌کند. اگر از حساب <strong>روت</strong> برای تنظیم کلیدها برای حساب کاربری استفاده می‌کنید، مهم است که دایرکتوری <code>~/.ssh</code> متعلق به یوزر باشد و نه متعلق به <strong>روت</strong>:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>chown -R sammy:sammy ~/.ssh</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">chown</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">-R</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">sammy:sammy</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">~/.ssh</span></span></code></pre></div>



<p>در این آموزش، کاربر ما «sammy» نام دارد اما شما باید نام کاربری مناسب را در دستور فوق جایگزین کنید. اکنون می‌توانیم احراز هویت بدون رمز عبور با سرور Ubuntu خود را انجام دهیم.</p>



<h2 class="wp-block-heading" id="h-گام-سوم-اتصال-به-ssh-در-لینوکس-احراز-هویت-در-سرور-ubuntu-با-استفاده-از-کلیدهای-ssh">گام سوم اتصال به ssh در لینوکس — احراز هویت در سرور Ubuntu با استفاده از کلیدهای SSH</h2>



<p>اگر یکی از روش‌های بالا را با موفقیت به پایان رسانده‌اید، حالا باید قادر به ورود به میزبان دوردست بدون ارائه رمز عبور حساب دوردست باشید. فرایند کلی یکسان است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ssh username@remote_host</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ssh</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">username@remote_host</span></span></code></pre></div>



<p>اگر این اولین بار است که به این میزبان متصل می‌شوید (اگر از آخرین روش بالا استفاده کرده‌اید)، ممکن است چیزی شبیه به خروجی زیر را مشاهده کنید:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">Output</span></span>
<span class="line"><span style="color: #F69D50">The</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">authenticity</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">of</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">host</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&#39;203.0.113.1 (203.0.113.1)&#39;</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">can&#39;t be established.</span></span>
<span class="line"><span style="color: #96D0FF">ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.</span></span>
<span class="line"><span style="color: #96D0FF">Are you sure you want to continue connecting (yes/no)? yes</span></span></code></pre></div>



<p>این یعنی رایانه محلی شما میزبان دوردست را نمی‌شناسد و این اولین بار است که به آن متصل می‌شوید. «yes» را تایپ کنید و سپس ENTER را فشار دهید ادامه کار انجام شود.</p>



<p>اگر برای کلید خصوصی خود عبارت عبوری (Passphrase) تعیین نکرده‌اید، بلافاصله وارد می‌شوید. اگر هنگام ایجاد کلید، عبارت عبوری برای کلید خصوصی تعیین کرده‌اید، اکنون از شما خواسته می‌شود که آن را وارد کنید (توجه داشته باشید که حروف وارد شده در سِشِن ترمینال به دلایل امنیتی نمایش داده نمی‌شوند). پس از احراز هویت، یک سشن شل جدید برای شما با حساب پیکربندی شده در سرور Ubuntu باز می‌شود.</p>



<p>اگر احراز هویت مبتنی بر کلید موفقیت‌آمیز بوده است، مطالعه این مطلب را ادامه دهید تا یاد بگیرید چگونه با غیرفعال کردن احراز هویت رمز عبور، سیستم خود را بیشتر ایمن کنید.</p>



<h2 class="wp-block-heading" id="h-گام-چهارم-غیرفعال-کردن-احراز-هویت-با-پسورد-برای-اتصال-به-سرور">گام چهارم — غیرفعال کردن احراز هویت با پسورد برای اتصال به سرور</h2>



<p>اگر توانستید بدون استفاده از رمز عبور با استفاده از SSH به حساب خود وارد شوید، به این معناست که احراز هویت مبتنی بر کلید SSH را برای حساب خود به درستی پیکربندی کرده‌اید. با این حال، مکانیزم احراز هویت بر پایه رمز عبور همچنان فعال است، به این معنی که سرور شما هنوز در معرض حملات نیرومند (Brute-Force) قرار دارد.</p>



<p>پیش از انجام مراحل این بخش، اطمینان حاصل کنید که یا احراز هویت مبتنی بر کلید SSH را برای حساب روت در این سرور پیکربندی کرده‌اید، یا بهتر اینکه، احراز هویت مبتنی بر کلید SSH را برای حساب غیر root در این سرور با امتیازات sudo پیکربندی کرده‌اید. این مرحله ورود‌های مبتنی بر رمز عبور را محدود می‌کند، بنابراین تضمین اینکه همچنان قادر به دسترسی مدیریتی خواهید بود، حیاتی است.</p>



<p>پس از تأیید اینکه حساب دوردست شما دارای امتیازات مدیریتی است، با استفاده از کلیدهای SSH، به سرور دوردست خود وارد شوید، چه به عنوان روت و چه با حسابی که دارای امتیازات سودو است. سپس، فایل پیکربندی دیمون SSH را باز کنید:</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>sudo nano /etc/ssh/sshd_config</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">sudo</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">nano</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">/etc/ssh/sshd_config</span></span></code></pre></div>



<p>در داخل فایل، به دنبال دستورالعملی به نام <code>PasswordAuthentication</code> بگردید. این خط ممکن است با علامت <code>#</code> به صورت کامنت در آنده باشد. خط را با حذف #، Uncomment کنید و مقدار آن را به <code>no</code> تغییر دهید. این کار قابلیت ورود شما از طریق SSH با استفاده از رمزهای عبور حساب را غیرفعال می‌کند:</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>. . .
PasswordAuthentication no
. . .</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #6CB6FF">.</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">.</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">.</span></span>
<span class="line"><span style="color: #F69D50">PasswordAuthentication</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">no</span></span>
<span class="line"><span style="color: #6CB6FF">.</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">.</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">.</span></span></code></pre></div>



<p></p>



<p>پس از اتمام کار، فایل را با فشار دادن CTRL+X و سپس Y برای تأیید ذخیره‌سازی فایل و در نهایت با زدن ENTER برای خروج از nano ببندید. برای فعال کردن این تغییرات، باید سرویس <code>sshd</code> را مجدداً راه‌اندازی کنیم:</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>sudo systemctl restart ssh</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">sudo</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">systemctl</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">restart</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">ssh</span></span></code></pre></div>



<p>برای احتیاط، یک پنجره ترمینال جدید باز کنید و قبل از بستن سشن فعلی خود، تست کنید که سرویس SSH به درستی کار می‌کند یا خیر:</p>



<p></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(16px, 1rem, 24px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(24px, 1.5rem, 36px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd">Bash</span><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ssh username@remote_host
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ssh</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">username@remote_host</span></span>
<span class="line"></span></code></pre></div>



<p>پس از تأیید اینکه سرویس SSH شما به درستی کار می‌کند، می‌توانید تمام جلسات فعلی سرور را با خیال راحت ببندید. دیمون SSH در سرور اوبونتو شما اکنون فقط به احراز هویت مبتنی بر کلید SSH پاسخ می‌دهد و ورود‌های مبتنی بر رمز عبور غیرفعال شده‌اند.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>احراز هویت مبتنی بر کلید SSH یک رویکرد امنیتی استاندارد است که امکان دسترسی ایمن به سرورها را بدون نیاز به رمز عبور فراهم می‌آورد. با پیروی از دستورالعمل‌های ارائه شده، شما قادر به راه‌اندازی و مدیریت کلیدهای SSH برای ورود به سرور اوبونتو خود هستید. این روش نه تنها امنیت دسترسی به سرور را تقویت می‌کند، بلکه با کاهش خطر حملات نیرومند و سایر تهدیدات امنیتی، آرامش خاطر بیشتری را برای مدیران سیستم فراهم می‌آورد. پس از آنکه که احراز هویت مبتنی بر کلید پیکربندی شد، توصیه می‌شود اقدامات بعدی برای بهبود امنیت سیستم، مانند غیرفعال سازی احراز هویت مبتنی بر رمز عبور، انجام شود تا در برابر دسترسی‌های ناخواسته از سرور حفاظت بیشتری داشته باشیم.</p>
<p>The post <a href="https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/">راه‌اندازی و اتصال به ssh در لینوکس با کلید ssh</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/how-to-set-up-ssh-keys-on-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>نرم‌افزار متن‌باز یا Open Source چیست؟</title>
		<link>https://hamravesh.com/blog/what-is-opensource/</link>
					<comments>https://hamravesh.com/blog/what-is-opensource/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Tue, 27 Aug 2024 12:49:00 +0000</pubDate>
				<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3456</guid>

					<description><![CDATA[<p>در این مطلب، به معرفی مفهوم متن‌باز، تاریخچه، مزایا و معایب آن، و همچنین نمونه‌های معروفی از نرم‌افزارهای متن‌باز خواهیم پرداخت.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-opensource/">نرم‌افزار متن‌باز یا Open Source چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>ٖنرم‌افزارهای اوپن سورس یا متن‌باز به نرم‌افزارهایی گفته می‌شود که کد منبع آن‌ها برای عموم مردم قابل دسترسی و استفاده است. این مفهوم از اهمیت بالایی در دنیای فناوری اطلاعات و برنامه‌نویسی برخوردار بوده و تاثیرات زیادی بر روی توسعه نرم‌افزارها و فناوری‌های نوین گذاشته است. در این مطلب از وبلاگ هم‌روش، به معرفی مفهوم متن‌باز، تاریخچه، مزایا و معایب آن، و همچنین نمونه‌های معروفی از نرم‌افزارهای متن‌باز خواهیم پرداخت.</p>



<h2 class="wp-block-heading" id="h-تاریخچه-open-source">تاریخچه Open Source</h2>



<p>مفهوم اوپن سورس به دهه ۱۹۸۰ برمی‌گردد. در آن زمان، ریچارد استالمن با ایجاد پروژه GNU و بنیاد نرم‌افزارهای آزاد (FSF) به ترویج ایده‌های نرم‌افزارهای آزاد پرداخت. هدف استالمن از این پروژه، ایجاد یک سیستم عامل کاملاً آزاد بود که همگان بتوانند از آن استفاده کنند و آن را تغییر دهند. یکی از اولین موفقیت‌های این جنبش، ایجاد <a href="https://hamravesh.com/blog/what-are-linux-distributions/" target="_blank" rel="noreferrer noopener">کرنل لینوکس</a> توسط لینوس توروالدز در سال ۱۹۹۱ بود.</p>



<h2 class="wp-block-heading" id="h-مفهوم-اوپن-سورس">مفهوم اوپن سورس</h2>



<p>نرم‌افزار اوپن سورس به نرم‌افزاری گفته می‌شود که کد منبع (Source Code) آن در دسترس عموم قرار دارد و هر کسی می‌تواند آن را مشاهده، تغییر و توزیع کند. این نوع نرم‌افزارها معمولاً تحت مجوزهایی مانند GPL ،Apache و MIT منتشر می‌شوند که شرایط استفاده، توزیع و تغییرات در کد منبع را مشخص می‌کنند. هدف اصلی اوپن سورس، ترویج همکاری و اشتراک دانش در بین برنامه‌نویسان و کاربران است.</p>



<h2 class="wp-block-heading" id="h-مزایای-اوپن-سورس">مزایای اوپن سورس</h2>



<ol class="wp-block-list">
<li><strong>شفافیت</strong>: یکی از بزرگترین مزایای نرم‌افزارهای اوپن سورس، شفافیت در کد منبع است. کاربران می‌توانند کد را مشاهده کرده و از عملکرد دقیق نرم‌افزار مطلع شوند.</li>



<li><strong>امنیت</strong>: به دلیل اینکه کد منبع در دسترس همه است، بسیاری از افراد می‌توانند کد را بررسی و آسیب‌پذیری‌های احتمالی را شناسایی و رفع کنند. این موضوع باعث می‌شود که نرم‌افزارهای اوپن سورس معمولاً امنیت بالاتری داشته باشند.</li>



<li><strong>انعطاف‌پذیری</strong>: کاربران می‌توانند کد منبع را تغییر دهند و نرم‌افزار را بر اساس نیازهای خود سفارشی کنند. این امکان به ویژه برای سازمان‌ها و شرکت‌ها بسیار مفید است.</li>



<li><strong>کاهش هزینه‌ها</strong>: نرم‌افزارهای اوپن سورس معمولاً رایگان هستند و این موضوع می‌تواند به کاهش هزینه‌های نرم‌افزاری سازمان‌ها و افراد کمک کند.</li>



<li><strong>پشتیبانی گسترده</strong>: جامعه بزرگی از توسعه‌دهندگان و کاربران نرم‌افزارهای اوپن سورس وجود دارد که می‌توانند به یکدیگر کمک کنند و مشکلات را حل کنند. این جامعه معمولاً در انجمن‌ها و سایت‌های مختلف فعالیت می‌کنند.</li>
</ol>



<h2 class="wp-block-heading" id="h-معایب-اوپن-سورس">معایب اوپن سورس</h2>



<ol class="wp-block-list">
<li><strong>پشتیبانی حرفه‌ای کمتر</strong>: برخلاف نرم‌افزارهای تجاری، نرم‌افزارهای اوپن سورس معمولاً پشتیبانی حرفه‌ای ندارند. اگرچه جامعه کاربران می‌تواند کمک کند، اما ممکن است نیاز به پشتیبانی فوری و حرفه‌ای داشته باشید که در این صورت مشکل‌ساز می‌شود.</li>



<li><strong>پیچیدگی</strong>: برای استفاده از نرم‌افزارهای اوپن سورس، ممکن است نیاز به دانش فنی بیشتری داشته باشید. برخی از این نرم‌افزارها پیچیده هستند و نصب و پیکربندی آن‌ها ممکن است زمان‌بر باشد.</li>



<li><strong>کمبود امکانات</strong>: بعضی از نرم‌افزارهای اوپن سورس ممکن است همه ویژگی‌ها و امکانات مورد نیاز شما را نداشته باشند. در این صورت باید یا خودتان آن‌ها را توسعه دهید یا به دنبال نرم‌افزارهای تجاری بگردید.</li>
</ol>



<h2 class="wp-block-heading" id="h-نمونه-های-معروف-نرم-افزارهای-اوپن-سورس">نمونه‌های معروف نرم‌افزارهای اوپن سورس</h2>



<ol class="wp-block-list">
<li><strong>گنو</strong>/<strong>لینوکس</strong>: یکی از معروف‌ترین سیستم‌عامل‌های اوپن سورس است که در سرورها، دسکتاپ‌ها و دستگاه‌های مختلف مورد استفاده قرار می‌گیرد. توزیع‌های معروف لینوکس شامل اوبونتو، دبیان و فدورا می‌شوند.</li>



<li><strong>آپاچی</strong>: یک وب سرور قدرتمند و محبوب است که بیشترین سهم بازار را در بین وب سرورها دارد. آپاچی تحت مجوز اوپن سورس منتشر شده و بسیاری از وب‌سایت‌ها از آن استفاده می‌کنند.</li>



<li><strong>فایرفاکس</strong>: مرورگر وب محبوبی است که توسط بنیاد موزیلا توسعه یافته و کد منبع آن برای عموم در دسترس است.</li>



<li><strong>وردپرس</strong>: یک سیستم مدیریت محتوا (CMS) اوپن سورس است که برای ساخت و مدیریت وب‌سایت‌ها استفاده می‌شود. وردپرس یکی از محبوب‌ترین ابزارها برای وبلاگ‌نویسان و صاحبان وب‌سایت‌ها است.</li>



<li><strong><a href="https://hamravesh.com/blog/10-git-command/">گیت</a></strong>: یک سیستم کنترل نسخه است که توسط لینوس توروالدز ایجاد شده و برای مدیریت و ردیابی تغییرات در کد منبع استفاده می‌شود. گیت به ویژه در پروژه‌های اوپن سورس و توسعه نرم‌افزارها به‌صورت تیمی بسیار کاربرد دارد.</li>
</ol>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="361" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/open-source-projects-1024x361.webp" alt="نمونه‌هایی از پروژه‌های متن باز یا اوپن سورس" class="wp-image-3465" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/open-source-projects-1024x361.webp 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/07/open-source-projects-300x106.webp 300w, https://hamravesh.com/blog/wp-content/uploads/2024/07/open-source-projects-768x271.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/open-source-projects.webp 1120w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="h-فارغ-از-دنیای-نرم-افزار-مفهوم-متن-باز-در-کجا-وجود-دارد">فارغ از دنیای نرم‌افزار، مفهوم متن‌باز در کجا وجود دارد؟</h2>



<p>اوپن سورس فراتر از دنیای نرم‌افزار نیز گسترش یافته و در حوزه‌های مختلفی از جمله علم، هنر، آموزش، و حتی سخت‌افزار به کار می‌رود. در ادامه به برخی از این حوزه‌ها اشاره می‌کنیم:</p>



<h3 class="wp-block-heading">1. <strong>اوپن سورس در علم</strong></h3>



<p>در علوم مختلف، بسیاری از پروژه‌ها و تحقیقات به صورت اوپن سورس پیش می‌روند. داده‌های علمی اوپن سورس به محققان این امکان را می‌دهد تا به داده‌های دیگران دسترسی داشته باشند، آن‌ها را تحلیل کنند و از نتایج آن‌ها برای تحقیقات خود بهره ببرند.</p>



<p>پروژه‌های علمی مانند «پروژه ژنوم انسان» (<a href="https://www.genome.gov/human-genome-project"><strong>Human Genome Project</strong></a>) که با هدف نقشه‌برداری از ژنوم انسان انجام شد، از نمونه‌های موفق اوپن سورس در علم هستند. این پروژه‌ها با اشتراک‌گذاری داده‌ها و نتایج، به سرعت بیشتری پیشرفت می‌کنند.</p>



<h3 class="wp-block-heading">2. <strong>اوپن سورس در آموزش</strong></h3>



<p>منابع آموزشی اوپن سورس، مانند کتاب‌های درسی، مقالات و دوره‌های آموزشی آنلاین، به صورت رایگان در دسترس همگان قرار دارند. این منابع می‌توانند به بهبود کیفیت آموزش و افزایش دسترسی به منابع آموزشی برای افراد در سراسر جهان کمک کنند.</p>



<p>پلتفرم‌هایی مانند Coursera ،edX و Khan Academy دوره‌های آموزشی را به صورت رایگان یا با هزینه کم ارائه می‌دهند. این پلتفرم‌ها از مدل اوپن سورس برای ارائه محتوای آموزشی استفاده می‌کنند.</p>



<h3 class="wp-block-heading">3. <strong>اوپن سورس در هنر و فرهنگ</strong></h3>



<p>هنرمندان می‌توانند آثار هنری خود را به صورت اوپن سورس منتشر کنند تا دیگران بتوانند از آن‌ها استفاده کنند و الهام بگیرند. این شامل موسیقی، فیلم، تصاویر و دیگر آثار هنری می‌شود.</p>



<p>پروژه‌های مشترک هنری که در آن‌ها هنرمندان از سراسر جهان با یکدیگر همکاری می‌کنند، به کمک اوپن سورس شکل می‌گیرند. این پروژه‌ها می‌توانند شامل ایجاد آثار هنری جمعی، نمایشگاه‌ها و فستیوال‌های هنری باشند.</p>



<h3 class="wp-block-heading">4. <strong>اوپن سورس در سخت‌افزار</strong></h3>



<p>سخت‌افزار اوپن سورس به طراحی‌ها و پروژه‌هایی اطلاق می‌شود که نقشه‌ها و مشخصات سخت‌افزاری آن‌ها به صورت عمومی منتشر شده و در دسترس همگان قرار دارند. نمونه‌هایی از این نوع سخت‌افزارها شامل Arduino و Raspberry Pi هستند.</p>



<p>در حوزه مهندسی، پروژه‌های اوپن سورس می‌توانند شامل طراحی و ساخت ابزارها و دستگاه‌های مختلفی باشند که نقشه‌ها و مستندات آن‌ها به صورت عمومی منتشر می‌شود. این پروژه‌ها می‌توانند به توسعه فناوری‌های جدید و کاهش هزینه‌های تولید کمک کنند.</p>



<h3 class="wp-block-heading">5. <strong>اوپن سورس در کشاورزی</strong></h3>



<p>در کشاورزی، داده‌ها و روش‌های اوپن سورس می‌توانند شامل اطلاعات مربوط به روش‌های بهبود بهره‌وری، کنترل آفات و بیماری‌ها، و بهبود کیفیت محصولات کشاورزی باشند. این اطلاعات می‌توانند به اشتراک گذاشته شده و توسط کشاورزان در سراسر جهان مورد استفاده قرار گیرند.</p>



<p>پروژه‌های مشترک در کشاورزی که شامل توسعه ابزارها و تکنیک‌های جدید کشاورزی هستند نیز می‌توانند از مدل اوپن سورس استفاده کنند. این پروژه‌ها می‌توانند به افزایش بهره‌وری و کاهش هزینه‌ها در کشاورزی کمک کنند.</p>



<h2 class="wp-block-heading" id="h-در-پایان">در پایان</h2>



<p>اوپن سورس یکی از مهم‌ترین مفاهیم در دنیای فناوری اطلاعات و برنامه‌نویسی است که تاثیرات زیادی بر توسعه نرم‌افزارها و فناوری‌های نوین گذاشته است. نرم‌افزارهای اوپن سورس با ارائه کد منبع برای عموم، امکان شفافیت، امنیت، انعطاف‌پذیری و کاهش هزینه‌ها را فراهم می‌کنند. هرچند که ممکن است معایبی مانند پشتیبانی حرفه‌ای کمتر و پیچیدگی در استفاده داشته باشند، اما مزایای آن‌ها به وضوح بر معایب‌شان می‌چربد. با توجه به نمونه‌های موفق و معروفی مانند لینوکس، آپاچی، فایرفاکس و وردپرس، می‌توان گفت که اوپن سورس آینده روشن و پایداری در دنیای فناوری دارد.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-opensource/">نرم‌افزار متن‌باز یا Open Source چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-opensource/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>vim چیست ؟ + آموزش نصب و دستورات</title>
		<link>https://hamravesh.com/blog/what-is-vim/</link>
					<comments>https://hamravesh.com/blog/what-is-vim/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Sat, 17 Aug 2024 19:24:02 +0000</pubDate>
				<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3442</guid>

					<description><![CDATA[<p>«ویم» (Vim) جدیدترین و رایج‌ترین نسخه بازسازی شده از ویرایشگر «Vi» است که در تمام پلتفرم‌های شناخته‌شده پشتیبانی می‌شود. در این مقاله به این پرسش پاسخ می‌دهیم که vim چیست و سپس به آموزش نصب و دستورات آن می‌پردازیم. در این آموزش، توابع و دستورات پایه‌ای Vim‌ را توضیح می‌دهیم که برای انجام کارهای ساده [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-vim/">vim چیست ؟ + آموزش نصب و دستورات</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>«ویم» (Vim) جدیدترین و رایج‌ترین نسخه بازسازی شده از ویرایشگر «Vi» است که در تمام پلتفرم‌های شناخته‌شده پشتیبانی می‌شود. در این مقاله به این پرسش پاسخ می‌دهیم که vim چیست و سپس به آموزش نصب و دستورات آن می‌پردازیم. در این آموزش، توابع و دستورات پایه‌ای Vim‌ را توضیح می‌دهیم که برای انجام کارهای ساده استفاده می‌شوند. با ما همراه باشید تا برخی نکات مقدماتی درباره‌ نحوه‌ نصب و استفاده از ویم در <a href="https://hamravesh.com/blog/linux-basic-commands/">لینوکس</a> را بیاموزید.</p>



<h2 class="wp-block-heading" id="h-vim-چیست">vim چیست ؟</h2>



<p>ویم یک ویرایشگر متن برای سیستم‌عامل‌های یونیکس است که همراه با <a href="https://hamravesh.com/blog/what-are-linux-distributions/">لینوکس</a>، BSD و macOS ارائه می‌شود. این ابزار به سرعت و قدرت بالا شهرت دارد. دلیل این امر تا حدی به خاطر حجم کم برنامه است که می‌تواند در محیط ترمینال اجرا شود (هرچند که رابط گرافیکی هم دارد). اما دلیل اصلی این است که می‌توان آن را کاملاً بدون نیاز به منو یا ماوس و تنها با استفاده از صفحه‌کلید مدیریت کرد. می‌توان گفت که ۵ دلیل اصلی برای استفاده از vim وجود دارد:</p>



<ul class="wp-block-list">
<li>همه‌جا حاضر است: نیازی نیست نگران یادگیری ویرایشگرهای متفاوت برای سیستم‌های مختلف باشید.</li>



<li>مقیاس‌پذیری بالایی دارد: می‌توانید از آن فقط برای ویرایش فایل‌های پیکربندی استفاده کنید یا آن را به محیط کامل نوشتاری خود تبدیل کنید.</li>



<li>مصرف حافظه‌ی بسیار کمی دارد.</li>



<li>مبتنی بر دستور است: می‌توانید با استفاده از چند دستور ساده، کارهای پیچیده‌ی مرتبط با متن را انجام دهید.</li>



<li>قابلیت پیکربندی بالایی دارد و تنظیمات را در فایل‌های متنی ساده ذخیره می‌کند.</li>
</ul>



<h2 class="wp-block-heading" id="h-چرا-از-vim-استفاده-کنیم">چرا از vim استفاده کنیم؟</h2>



<p>ویرایشگرهای متن، بخش مهمی از مدیریت سیستم‌های لینوکس هستند. مدیران سیستم برای تغییر فایل‌های پیکربندی، مانند فایل سرور SSH با نام «sshd_config»، از ویرایشگر متن استفاده می‌کنند. علاوه بر این، آن‌ها اغلب برای نگه‌داری یا پشتیبان‌گیری از سیستم، یا مدیریت فایل‌های خودکارسازی و هماهنگ‌سازی مانند فایل‌های YAML در Ansible، اسکریپت‌هایی می‌نویسند.</p>



<p>اگرچه پیکربندی سیستم‌عامل‌های macOS یا ویندوز با استفاده از فایل‌ها کمتر رایج است، اما کاربران این پلتفرم‌ها نیز به‌طور منظم با فایل‌های متنی سروکار دارند. باید توجه داشت که بین ویرایشگر متن و پردازشگر واژه تفاوت وجود دارد. ویرایشگرهای متن فقط برای وارد کردن متن در فایل‌ها استفاده می‌شوند و برای کارهای ساده و خلاقانه مناسب‌تر هستند. در مقابل، پردازشگرهای واژه با ویژگی‌های متنوع، منوهای پویا و تصحیح خودکار همراه هستند.</p>



<h2 class="wp-block-heading" id="h-نصب-vim">نصب vim</h2>



<p>اگر از لینوکس استفاده می‌کنید و می‌خواهید vim‌ را نصب کنید، می‌توانید از مدیر بسته‌ سیستم خود استفاده کنید. در سیستم‌های مبتنی بر Red Hat، دستور زیر را وارد کنید:</p>



<pre class="wp-block-code"><code>$ sudo dnf install vim</code></pre>



<p>اگر از سیستم‌های مبتنی بر Debian استفاده می‌کنید، کد زیر را وارد کنید:</p>



<pre class="wp-block-code"><code>$ sudo apt-get install vim</code></pre>



<p>برای نصب vim‌ با استفاده از Brew، دستور زیر را تایپ کنید:</p>



<pre class="wp-block-code"><code>$ sudo brew install vim</code></pre>



<p>برای نصب vim‌ در ویندوز، می‌توانید فایل Installer را از وب‌سایت رسمی vim دانلود کنید. پس از دانلود، کافی است روی فایل Installer دوبار کلیک کنید تا فرآیند نصب آغاز شود.</p>



<h2 class="wp-block-heading" id="h-حالت-ها-modes-در-vim">حالت‌ها (modes) در vim</h2>



<p>بسیاری از سرورهای لینوکس از رابط گرافیکی کاربری (GUI) استفاده نمی‌کنند. در این سرورها، منوهای کشویی برای ذخیره‌ی فایل یا شروع فرآیند بررسی املایی وجود ندارد. در عوض، کاربران برای دستکاری فایل‌ها به صفحه‌کلید متکی هستند.</p>



<p>ویم با استفاده از «حالت‌ها» (modes)، عملیات دستکاری فایل را انجام می‌دهد. می‌توانید حالت‌ها را نوعی نگاشت صفحه‌کلید در نظر بگیرید. بسته به حالتی که ویم در آن قرار دارد، صفحه‌کلید به فشردن کلیدها واکنش متفاوتی نشان می‌دهد. به عنوان مثال، در حالت فرمان ویم، کلید x یک کاراکتر را حذف می‌کند، اما در حالت درج، همین کلید کاراکتر x را در متن فایل قرار می‌دهد. ویم دارای چهار حالت اصلی است:</p>



<ul class="wp-block-list">
<li><strong>حالت فرمان</strong> (<strong>Command Mode</strong>): در این حالت، صفحه‌کلید دستورات را به vim ارسال می‌کند. گاهی به این حالت، حالت عادی (Normal Mode) نیز گفته می‌شود.</li>



<li><strong>حالت درج</strong> (<strong>Insert Mode</strong>): در این حالت، صفحه‌کلید متن را وارد فایل می‌کند.</li>



<li><strong>حالت اجرا</strong> (<strong>Execute Mode</strong>): با تایپ کردن دو نقطه (:) وارد این حالت می‌شوید و می‌توانید دستورات را در یک خط فرمان وارد کنید. برای مثال، دستور <code>:wq</code> فایل را ذخیره می‌کند و از ویم خارج می‌شود.</li>



<li><strong>حالت بصری</strong> (<strong>Visual Mode</strong>): این حالت گزینه‌های اضافی برای انتخاب متن فراهم می‌کند.</li>
</ul>



<h2 class="wp-block-heading" id="h-آموزش-شروع-کار-با-vim">آموزش شروع کار با vim</h2>



<p>در ادامه، با ایجاد یک اسکریپت ساده، نحوه‌ استفاده از vim را آموزش می‌دهیم. ابتدا ویم را روی سیستم خود نصب کنید و سپس مثال‌های زیر را دنبال کنید تا با این ویرایشگر قدرتمند آشنا شوید.</p>



<h3 class="wp-block-heading" id="h-باز-کردن-فایل-برای-ویرایش-در-vim">باز کردن فایل برای ویرایش در vim</h3>



<p>ابتدا فایل جدیدی را ایجاد کنید. برای این کار، دستور vim را همراه با نام فایل مورد نظر تایپ کنید. اگر فایل در پوشه‌ی فعلی وجود داشته باشد، ویم آن را باز می‌کند. در غیر این صورت، ویم فایل جدیدی را با آن نام ایجاد خواهد کرد.</p>



<pre class="wp-block-code"><code>$ vim simplescript.sh</code></pre>



<p>ویم در حالت فرمان (Command mode) باز می‌شود، بنابراین فشردن هر کلید، دستوری را به ویم ارسال می‌کند. برای ورود به حالت درج (Insert mode)، کلید <code>i</code> را فشار دهید. در این حالت، عبارت «INSERT» در گوشه پایین سمت چپ صفحه نمایان می‌شود. حالا می‌توانید متن مورد نظر خود را در فایل وارد کنید.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="950" height="333" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/image.png" alt="حالت درج (Insert Mode) در vim چیست" class="wp-image-3444" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/image.png 950w, https://hamravesh.com/blog/wp-content/uploads/2024/07/image-300x105.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/07/image-768x269.png 768w" sizes="(max-width: 950px) 100vw, 950px" /></figure>
</div>


<h3 class="wp-block-heading" id="h-ویرایش-فایل-در-vim">ویرایش فایل در vim</h3>



<p>حالا که با vim آشنا شده‌ایم، وقت آن رسیده که یک اسکریپت بنویسیم. برای شروع، در خط اول فایل یک «shebang» (شیبنگ) قرار می‌دهیم. سپس Enter را فشار داده و توضیح مختصری درباره‌ اسکریپت خود می‌نویسیم. به این مثال توجه کنید:</p>



<pre class="wp-block-code"><code>#!/bin/bash
#This is a sample script</code></pre>



<p>در ادامه، بدنه‌ اصلی اسکریپت را می‌نویسیم که شامل یک توضیح و ۲ دستور است:</p>



<pre class="wp-block-code"><code>"Greet the user and provide today's date
echo "Hello $USER"
echo "Today's date is $(date)"</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="950" height="403" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/image-1.png" alt="اسکریپت در vim چیست" class="wp-image-3446" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/image-1.png 950w, https://hamravesh.com/blog/wp-content/uploads/2024/07/image-1-300x127.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/07/image-1-768x326.png 768w" sizes="auto, (max-width: 950px) 100vw, 950px" /></figure>



<h3 class="wp-block-heading" id="h-ذخیره-سازی-و-بستن-فایل-در-ویم">ذخیره‌سازی و بستن فایل در ویم</h3>



<p>حالا که محتوای اسکریپت را نوشته‌ایم، وقت آن رسیده است که تغییرات را ذخیره کنیم و از ویم خارج شویم. برای این منظور، ابتدا کلید «ESC» را فشار دهید تا از حالت «درج» (Insert) خارج شده و وارد حالت «فرمان» (Command) شوید.</p>



<p>سپس، برای صدور دستور ذخیره‌سازی، به گوشه پایین سمت چپ ویم توجه کنید و کلید «:» را فشار دهید. یک خط فرمان ظاهر می‌شود. حرف «w» را تایپ کنید که به معنای «write» یا نوشتن است تا تغییرات ذخیره شوند. توصیه می‌شود برای حفظ تغییرات، از این دستور به طور مکرر استفاده کنید.</p>



<p>برای خروج از ویم و بازگشت به محیط Shell، از دستور «<code>q:</code>» استفاده کنید. می‌توانید این ۲ دستور را با هم ترکیب کرده و از «<code>wq:</code>» استفاده کنید تا هم ذخیره‌سازی انجام شود و هم از برنامه خارج شوید. اگر می‌خواهید بدون ذخیره‌سازی تغییرات خارج شوید، «<code>q!:</code>» را تایپ کنید.</p>



<p>در سیستم‌عامل‌های لینوکس یا مک‌او‌اس، با تایپ دستور «<code>ls</code>» می‌توانید محتویات پوشه را مشاهده کنید. در ویندوز، برای دیدن همین اطلاعات از دستور «<code>dir</code>» استفاده می‌کنیم. اسکریپت شما باید در این لیست قابل مشاهده باشد. در این مثال، کارکردهای اساسی ویم پوشش داده شد. در ادامه، به بررسی برخی ویژگی‌های اضافی خواهیم پرداخت.</p>



<h3 class="wp-block-heading" id="h-تکمیل-اسکریپت">تکمیل اسکریپت</h3>



<p>برای تکمیل اسکریپت، می‌توانید آن را آزمایش کنید. این کار با تنظیم مجوز اجرایی و اجرای اسکریپت از پوشه محلی امکان‌پذیر است. در سیستم‌عامل‌های لینوکس یا مک‌او‌اس، ۲ دستور زیر را وارد کنید:</p>



<pre class="wp-block-code"><code>$ chmod 755 myscript.sh
$ ./myscript.sh</code></pre>



<p>دستور «chmod» برای تنظیم مجوزها استفاده می‌شود. عدد «755» به این معناست که مالک فایل می‌تواند آن را بخواند، بنویسد و اجرا کند، در حالی که سایر کاربران فقط می‌توانند آن را بخوانند و اجرا کنند.</p>



<p>علامت «<code>./</code>» قبل از نام اسکریپت به لینوکس می‌گوید که فایل را از پوشه‌ جاری اجرا کند، نه از مسیرهای سیستمی. این روش برای اجرای اسکریپت‌های محلی که در مسیر سیستم قرار ندارند، استفاده می‌شود.</p>



<p>با اجرای این دستورات، اسکریپت شما قابل اجرا می‌شود و می‌توانید نتیجه کار خود را مشاهده کنید. این مرحله برای اطمینان از صحت عملکرد اسکریپت بسیار مهم است.</p>



<h2 class="wp-block-heading" id="h-استفاده-پیشرفته-تر-از-vim">استفاده پیشرفته‌تر از vim</h2>



<p>کاربران حرفه‌ای vim با استفاده از تنظیمات سفارشی گسترده در فایل «<code>.vimrc</code>» و افزونه‌های متعدد، این ویرایشگر را به ابزاری قدرتمند برای ویرایش و برنامه‌نویسی تبدیل می‌کنند. در اینجا، ۲ تنظیم ساده را برای شروع کار معرفی می‌کنیم:</p>



<p>شما می‌توانید پیکربندی ویم را با استفاده از فایل «<code>.vimrc~</code>» سفارشی کنید. فایل‌هایی که با نقطه شروع می‌شوند، مخفی هستند. برای نمایش این فایل‌ها در لینوکس یا مک‌او‌اس از دستور «<code>ls -a</code>» استفاده کنید. برای نمایش شماره خطوط در تمام فایل‌ها، فایل «<code>.vimrc</code>» را ایجاد یا باز کنید و دستورات زیر را در دو خط اول وارد کنید:</p>



<pre class="wp-block-code"><code>"The following line displays line numbers in all Vim documents
set number</code></pre>



<p>برای غیرفعال کردن صدای خطا، این دستور را در «<code>.vimrc</code>» وارد کنید:</p>



<pre class="wp-block-code"><code>"Remove the error chime
set noerrorbells</code></pre>



<p>فایل «<code>.vimrc</code>» ویم از علامت «&#8221;» برای فیلدهای توضیحات استفاده می‌کند، اما بسیاری از فایل‌های دیگر از «#» برای توضیحات استفاده می‌کنند.</p>



<p>این تنظیمات ساده می‌توانند تجربه‌ کار با ویم را بهبود بخشند. با افزایش مهارت، می‌توانید تنظیمات پیشرفته‌تر و افزونه‌های مفید دیگری را نیز به «.vimrc» خود اضافه کنید تا ویم را کاملاً مطابق با نیازهای خود شخصی‌سازی کنید.</p>



<h3 class="wp-block-heading" id="h-بررسی-املا-در-vim">بررسی املا در vim</h3>



<p>ویم دارای غلط‌یاب املایی است که می‌تواند برای بهبود کیفیت نوشتار شما بسیار مفید باشد. پس از ایجاد محتوا در فایل خود، می‌توانید از این ویژگی استفاده کنید. برای فعال کردن غلط‌یاب، به حالت فرمان بروید و دستور زیر را وارد کنید:</p>



<pre class="wp-block-code"><code>:set spell</code></pre>



<p>با اجرای این دستور، ویم کلمات اشتباه را با رنگ قرمز نمایش می‌دهد. این امکان به شما کمک می‌کند تا اشتباهات املایی را سریع‌تر تشخیص داده و اصلاح کنید. اگر می‌خواهید غلط‌یاب را غیرفعال کنید، می‌توانید از دستور زیر استفاده کنید:</p>



<pre class="wp-block-code"><code>:set nospell</code></pre>



<p>برای راحتی بیشتر، می‌توانید غلط‌یاب را در فایل «.vimrc» فعال کنید تا ویم به طور مداوم املای متن را بررسی کند. با این کار، هر بار که ویم را باز می‌کنید، غلط‌یاب به طور خودکار فعال خواهد بود.</p>



<p>توجه داشته باشید که غلط‌یاب ویم ممکن است برای زبان فارسی به خوبی زبان انگلیسی عمل نکند، اما برای متون انگلیسی بسیار مفید است. همچنین، می‌توانید زبان غلط‌یاب را تغییر دهید تا با زبان مورد نظر شما مطابقت داشته باشد. استفاده از این ویژگی می‌تواند به بهبود کیفیت نوشتار شما کمک کند و از بروز اشتباهات املایی در متون مهم جلوگیری کند.</p>



<h3 class="wp-block-heading" id="h-بررسی-سینتکس-در-vim">بررسی سینتکس در vim</h3>



<p>می‌توانید با استفاده از فایل .vimrc، ویم را طوری تنظیم کنید که کلمات را بر اساس نحو زبان برنامه‌نویسی برجسته کند. برای مثال، فرض کنید در حال نوشتن یک اسکریپت بش یا یک برنامه پایتون هستید. بررسی نحو به شما کمک می‌کند تا کلمات کلیدی، متغیرها و سایر اجزای برنامه را به راحتی از هم تشخیص دهید. علاوه بر این، این قابلیت می‌تواند اشتباهات تایپی یا خطاهای نحوی احتمالی را نیز شناسایی کند و به این ترتیب، عیب‌یابی برنامه را برای شما آسان‌تر می‌سازد. اگر نسخه ویم شما از قبل دارای قابلیت بررسی نحو نیست، می‌توانید خط زیر را به فایل .vimrc خود اضافه کنید:</p>



<pre class="wp-block-code"><code>"Enable syntax checking for common languages
syntax on</code></pre>



<p>این دستور باعث می‌شود بررسی نحو برای زبان‌های برنامه‌نویسی رایج فعال شود. برای غیرفعال کردن بررسی نحو، کافی است دستور زیر را در ویم تایپ کنید:</p>



<pre class="wp-block-code"><code>:syntax off</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="950" height="313" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/image-2.png" alt="" class="wp-image-3449" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/image-2.png 950w, https://hamravesh.com/blog/wp-content/uploads/2024/07/image-2-300x99.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/07/image-2-768x253.png 768w" sizes="auto, (max-width: 950px) 100vw, 950px" /></figure>



<h2 class="wp-block-heading" id="h-vim-tutor-چیست">vim tutor چیست؟</h2>



<p>برای بهره‌برداری حداکثری از ویم، پیشنهاد می‌شود از آموزش داخلی این ابزار یعنی «Vim tutor» استفاده کنید. این آموزش عملی، قابلیت‌ها و ویژگی‌های ویم را به خوبی نمایش می‌دهد. برای شروع آموزش، کافی است در خط فرمان، دستور «vimtutor» را تایپ کنید. این آموزش حدود ۳۰ دقیقه طول می‌کشد و به شما کمک می‌کند تا با مهم‌ترین دستورات و قابلیت‌های ویم آشنا شوید.</p>



<p>این آموزش به صورت تعاملی طراحی شده و به شما اجازه می‌دهد تا دستورات را در محیطی امن تمرین کنید. با گذراندن این دوره، می‌توانید پایه‌های لازم برای استفاده مؤثر از ویم را به دست آورید. این روش یادگیری برای افرادی که تازه با ویم آشنا شده‌اند، بسیار مفید است و می‌تواند شروع خوبی برای تسلط بر این ویرایشگر قدرتمند باشد.</p>



<h2 class="wp-block-heading" id="h-مزایای-روزمره-استفاده-از-vim-چیست">مزایای روزمره استفاده از vim چیست؟</h2>



<p>اگرچه ویم برای ایجاد فایل‌های مستندسازی بزرگ ابزار مناسبی نیست، اما برای ویرایش‌های سریع، ایده‌پردازی اولیه و ساخت اسکریپت‌ها یا فایل‌های خودکارسازی بسیار کارآمد است. توصیه می‌شود حتماً افزونه‌های موجود برای سفارشی‌سازی ویم را بررسی کنید. در ادامه، فهرستی مختصر از مزایای روزانه‌ای که مدیران سیستم از استفاده مؤثر ویم بهره‌مند می‌شوند، آورده شده است:</p>



<ul class="wp-block-list">
<li><strong>ساده و بدون شلوغی</strong>: ویم دارای خودکارسازی‌های کمی است و محیطی ساده دارد.</li>



<li><strong>سرعت</strong>: ویم با استفاده از صفحه کلید کار می‌کند و نیازی به پیمایش منوها نیست.</li>



<li><strong>آسان</strong>: توابع ضروری شامل باز کردن، ویرایش، ذخیره و بستن فایل است. هر چیز دیگری که یاد بگیرید، صرفاً کارایی شما را افزایش می‌دهد.</li>



<li><strong>کارآمدی</strong>: ویم منابع سیستمی کمی مصرف می‌کند، که آن را برای دستگاه‌های اینترنت اشیا، تجهیزات شبکه و سایر سیستم‌های کوچک‌مقیاس ایده‌آل می‌سازد.</li>



<li><strong>بدون قالب‌بندی پس‌زمینه</strong>: برخلاف پردازشگرهای متن، کپی کردن متن از یک فایل به فایل دیگر، قالب‌بندی پنهان به همراه نخواهد داشت.</li>



<li><strong>قابلیت گسترش</strong>: ویم با استفاده از فایل‌های پیکربندی و افزونه‌ها، بسیار قابل سفارشی‌سازی است.</li>



<li><strong>پشتیبانی از زبان‌های مختلف</strong>: ویم صدها زبان برنامه‌نویسی و نشانه‌گذاری از جمله پایتون، مارک‌داون، YAML و HTML را تشخیص می‌دهد.</li>
</ul>



<p>تا سال ۲۰۲۲، ویم در نسخه ۹.۰ قرار داشت. برای اطلاع از آخرین نسخه ویم و مستندات آن، به <a href="https://www.vim.org/download.php">وب‌سایت رسمی آن</a> مراجعه کنید.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>ویم (Vim) یک ویرایشگر متن قدرتمند و همه‌جا حاضر برای سیستم‌های یونیکس است که به دلیل سرعت، کارایی و قابلیت پیکربندی بالا محبوبیت زیادی دارد. این ابزار با حالت‌های مختلف کار می‌کند و می‌تواند کاملاً با صفحه‌کلید کنترل شود. ویم برای ویرایش‌های سریع، ایجاد اسکریپت‌ها و مدیریت فایل‌های پیکربندی بسیار مناسب است. با قابلیت‌هایی مانند بررسی املا، بررسی سینتکس و امکان شخصی‌سازی گسترده، ویم ابزاری کارآمد برای برنامه‌نویسان و مدیران سیستم است. یادگیری اصول اولیه ویم می‌تواند به افزایش بهره‌وری در کارهای روزمره منجر شود.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-vim/">vim چیست ؟ + آموزش نصب و دستورات</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-vim/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Shell چیست؟</title>
		<link>https://hamravesh.com/blog/what-is-shell/</link>
					<comments>https://hamravesh.com/blog/what-is-shell/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Tue, 13 Aug 2024 13:15:56 +0000</pubDate>
				<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3396</guid>

					<description><![CDATA[<p> Shell به عنوان واسطی قدرتمند و انعطاف‌پذیر بین کاربر و سیستم‌عامل، نقش بسیار مهمی در مدیریت سیستم، اسکریپت‌نویسی، پردازش داده‌ها، و توسعه نرم‌افزار ایفا می‌کند.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-shell/">Shell چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Shell (شِل) در علوم کامپیوتر و به خصوص در سیستم‌عامل‌ها، واسطی است که بین کاربر و هسته سیستم‌عامل قرار می‌گیرد. این واسط به کاربران اجازه می‌دهد که دستورات خود را به سیستم‌عامل منتقل کنند و نتایج را دریافت کنند.</p>



<p>Shell به عنوان یکی از ابزارهای اساسی در مدیریت سیستم (sysadmin) و همچنین برنامه‌نویسی نقش بسیار مهمی دارد. این ابزار به کاربران اجازه می‌دهد تا به راحتی وظایف پیچیده را با استفاده از دستورات ساده انجام دهند، که این امر باعث افزایش کارایی و بهره‌وری می‌شود.</p>



<p>هدف از این مطلب وبلاگ هم‌روش، ارائه‌ توضیحاتی جامع درباره‌ی مفهوم Shell، انواع و کاربردهای آن، و نحوه‌ استفاده از آن است. ما تلاش می‌کنیم تا با ارائه‌ی مثال‌ها و توضیحات روشن، مخاطبان را با این ابزار قدرتمند آشنا کنیم.</p>



<h2 class="wp-block-heading" id="h-تاریخچه-shell">تاریخچه Shell</h2>



<h3 class="wp-block-heading" id="h-پیدایش-اولیه"><strong>پیدایش اولیه</strong></h3>



<p>Shell به عنوان واسطی بین کاربر و سیستم‌عامل از ابتدا تا کنون تحولاتی بسیاری را پشت سر گذاشته است. اولین Shellها در سیستم‌عامل‌های اولیه مانند یونیکس (Unix) به وجود آمدند. این Shellها به کاربران اجازه می‌دادند تا با استفاده از دستورات متنی با سیستم‌عامل تعامل داشته باشند.</p>



<h3 class="wp-block-heading" id="h-توسعه-و-تکامل-در-طول-زمان"><strong>توسعه و تکامل در طول زمان</strong></h3>



<p>با گذر زمان، Shellها بهبود یافتند و انواع مختلفی از آن‌ها ساخته شدند. برای مثال، Bourne Shell (sh) که توسط استیون بورن در دهه 1970 توسعه یافت، یکی از اولین Shellهای محبوب بود. سپس Shellهای دیگری مانند C Shell (csh) و Korn Shell (ksh) توسعه یافتند.</p>



<h3 class="wp-block-heading" id="h-نقش-کلیدی-در-سیستم-عامل-های-مختلف"><strong>نقش کلیدی در سیستم‌عامل‌های مختلف</strong></h3>



<p>Shell در سیستم‌عامل‌های مختلف نقش بسیار مهمی ایفا کرده است. از سیستم‌عامل‌های مبتنی بر یونیکس مانند لینوکس و macOS گرفته تا سیستم‌عامل‌های ویندوزی که از Windows PowerShell استفاده می‌کنند، همه از Shell برای مدیریت سیستم و انجام وظایف مختلف بهره می‌برند.</p>



<h2 class="wp-block-heading" id="h-انواع-shell">انواع Shell</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="352" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/unix-shell.webp" alt="دیاگرامی از انواع shell" class="wp-image-3402" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/unix-shell.webp 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/07/unix-shell-300x103.webp 300w, https://hamravesh.com/blog/wp-content/uploads/2024/07/unix-shell-768x264.webp 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>برخی از معروف‌ترین Shellها عبارتند از:</p>



<ul class="wp-block-list">
<li><strong>Bash</strong> (Bourne Again Shell): یکی از محبوب‌ترین و پرکاربردترین Shellها که در بسیاری از سیستم‌عامل‌های یونیکس و لینوکس به‌صورت پیشفرض وجود دارد.</li>



<li><strong>Zsh</strong> (Z Shell): یکی دیگر از انواع شِل، زی‌شل نام دارد که ابزاری قدرتمند و انعطاف‌پذیر بوده و قابلیت‌های بیشتری نسبت به Bash دارد.</li>



<li><strong>Fish</strong> (Friendly Interactive Shell): شِلی کاربرپسند و دارای قابلیت‌های تعاملی پیشرفته که در سیستم‌عامل‌های لینوکس و مک مورد استفاده قرار می‌گیرد. </li>
</ul>



<p>در بین انواع مختلف Shell، برخی از آن‌ها به دلیل قابلیت‌ها و کاربرپسندی بیشتر، محبوبیت بیشتری دارند. برای مثال، Bash به دلیل گستردگی استفاده و پشتیبانی از اسکریپت‌های پیچیده، یکی از پرکاربردترین Shellها در دنیا است.</p>



<h2 class="wp-block-heading" id="h-کاربردهای-shell">کاربردهای Shell</h2>



<h3 class="wp-block-heading" id="h-مدیریت-سیستم"><strong>مدیریت سیستم</strong></h3>



<p>Shell ابزاری قدرتمند برای مدیریت سیستم‌عامل‌ها است. از طریق دستورات Shell، کاربران می‌توانند وظایفی مانند نصب و حذف نرم‌افزارها، مدیریت فایل‌ها و دایرکتوری‌ها، <strong><a href="https://hamravesh.com/blog/what-is-monitoring/">مانیتورینگ سیستم</a></strong>، و انجام تنظیمات شبکه را انجام دهند.</p>



<h3 class="wp-block-heading"><strong>اسکریپت‌نویسی و اتوماسیون</strong></h3>



<p>یکی از کاربردهای اصلی Shell، اسکریپت‌نویسی است. با نوشتن اسکریپت‌های Shell، می‌توان وظایف تکراری و زمان‌بر را اتوماتیک کرد. این قابلیت به خصوص برای مدیران سیستم و توسعه‌دهندگان بسیار مفید است.</p>



<h3 class="wp-block-heading"><strong>پردازش داده‌ها</strong></h3>



<p>Shell ابزارهای قدرتمندی برای پردازش داده‌ها دارد. با استفاده از دستورات مختلف، می‌توان داده‌ها را تجزیه و تحلیل کرد، فایل‌ها را جستجو و فیلتر کرد، و اطلاعات مورد نیاز را استخراج کرد.</p>



<h3 class="wp-block-heading"><strong>برنامه‌نویسی و توسعه نرم‌افزار</strong></h3>



<p>Shell نه تنها برای مدیریت سیستم و پردازش داده‌ها کاربرد دارد، بلکه ابزاری مفید برای برنامه‌نویسی و توسعه نرم‌افزار نیز هست. توسعه‌دهندگان می‌توانند از Shell برای تست و اجرای کدهای خود، مدیریت پروژه‌های نرم‌افزاری، و تعامل با سیستم‌های کنترل نسخه مانند <a href="https://hamravesh.com/blog/10-git-command/"><strong>Git</strong></a> استفاده کنند.</p>



<h2 class="wp-block-heading" id="h-مزایای-استفاده-از-shell">مزایای استفاده از Shell</h2>



<ul class="wp-block-list">
<li><strong>انعطاف‌پذیری و قدرت</strong>: یکی از مهم‌ترین مزایای Shell، انعطاف‌پذیری و قدرت بالای آن است. کاربران می‌توانند با استفاده از دستورات مختلف و ترکیب آن‌ها، وظایف پیچیده‌ای را به سادگی انجام دهند.</li>



<li><strong>سرعت و کارایی</strong>: Shell به کاربران اجازه می‌دهد تا وظایف خود را به سرعت و با کارایی بالا انجام دهند. با استفاده از دستورات متنی، می‌توان بسیاری از کارها را سریع‌تر از روش‌های گرافیکی انجام داد.</li>



<li><strong>قابلیت اتوماسیون</strong>: یکی از بزرگترین مزایای Shell، قابلیت خودکارسازی وظایف است. با نوشتن اسکریپت‌های Shell، کاربران می‌توانند وظایف تکراری را اتوماتیک کنند و در زمان صرفه‌جویی کنند.</li>
</ul>



<h2 class="wp-block-heading" id="h-نحوه-استفاده-از-shell">نحوه استفاده از Shell</h2>



<h3 class="wp-block-heading"><strong>نصب و راه‌اندازی</strong></h3>



<p>برای استفاده از Shell، ابتدا باید آن را نصب و راه‌اندازی کنید. در بسیاری از سیستم‌عامل‌های یونیکس و لینوکس، Shell به صورت پیش‌فرض نصب شده است. برای مثال، در سیستم‌عامل‌های مبتنی بر لینوکس، Bash به عنوان Shell پیش‌فرض قرار دارد. در سیستم‌عامل ویندوز، می‌توانید از Windows PowerShell یا Git Bash استفاده کنید.</p>



<h3 class="wp-block-heading"><strong>دستورات پایه و مفاهیم اولیه</strong></h3>



<p>برای شروع کار با Shell، باید با دستورات پایه و مفاهیم اولیه آشنا شوید. برخی از دستورات پایه عبارتند از:</p>



<ul class="wp-block-list">
<li><code>ls</code>: نمایش محتوای دایرکتوری</li>



<li><code>cd</code>: تغییر دایرکتوری</li>



<li><code>pwd</code>: نمایش مسیر دایرکتوری فعلی</li>



<li><code>cp</code>: کپی کردن فایل‌ها و دایرکتوری‌ها</li>



<li><code>mv</code>: جابجایی یا تغییر نام فایل‌ها و دایرکتوری‌ها</li>



<li><code>rm</code>: حذف فایل‌ها و دایرکتوری‌ها</li>
</ul>



<h3 class="wp-block-heading"><strong>مثال‌هایی از دستورات رایج</strong></h3>



<p>برای درک بهتر نحوه کار با Shell، در اینجا چند مثال از دستورات رایج آورده شده است:</p>



<p>نمایش محتوای یک دایرکتوری:</p>



<pre class="wp-block-code"><code>ls -l</code></pre>



<p>کپی کردن یک فایل:</p>



<pre class="wp-block-code"><code>cp file1.txt file2.txt</code></pre>



<p>جابجایی یک فایل:</p>



<pre class="wp-block-code"><code>mv file1.txt /path/to/destination/</code></pre>



<p>حذف یک فایل:</p>



<pre class="wp-block-code"><code>rm file1.txt</code></pre>



<h2 class="wp-block-heading" id="h-نکات-و-ترفندها">نکات و ترفندها</h2>



<h3 class="wp-block-heading"><strong>میانبرهای مفید</strong></h3>



<p>استفاده از میانبرهای کیبورد می‌تواند کار با Shell را سریع‌تر و آسان‌تر کند. برخی از میانبرهای مفید عبارتند از:</p>



<ul class="wp-block-list">
<li><code>Ctrl + C</code>: متوقف کردن اجرای دستور فعلی</li>



<li><code>Ctrl + L</code>: پاک کردن صفحه نمایش</li>



<li><code>Ctrl + R</code>: جستجو در تاریخچه دستورات</li>
</ul>



<h3 class="wp-block-heading"><strong>نکات مهم</strong></h3>



<p>برای بهره‌وری بیشتر از Shell، بهتر است به برخی از نکات مهم توجه کنید:</p>



<ul class="wp-block-list">
<li>همیشه قبل از اجرای دستورات حساس، مطمئن شوید که دستور صحیح است.</li>



<li>از تاریخچه دستورات استفاده کنید تا دستورات قبلی را مجدداً اجرا کنید. با استفاده‌ از کلیدهای ⬆️ و ⬇️ روی کیبورد می‌توانید بین دستورات اجرا شده قبلی جابجا شوید. </li>



<li>اسکریپت‌های Shell خود را مستند کنید تا در آینده بتوانید به راحتی آن‌ها را درک کنید.</li>
</ul>



<h2 class="wp-block-heading" id="h-منابع-آموزشی-و-ابزارهای-کمکی"><strong>منابع آموزشی و ابزارهای کمکی</strong></h2>



<p>برای یادگیری بیشتر درباره Shell و دستورات آن، منابع آموزشی و ابزارهای کمکی مختلفی وجود دارند. برخی از این منابع عبارتند از:</p>



<ul class="wp-block-list">
<li>مستندات رسمی Shell (مانند <a href="https://www.gnu.org/software/bash/manual/bash.html" target="_blank" rel="noreferrer noopener">Bash Reference Manual</a>)</li>



<li>دوره‌های آموزشی آنلاین (مانند دوره‌های موجود در سایت‌های <a href="https://www.coursera.org/projects/use-bash-scripting-linux-execute-common-commands" target="_blank" rel="noreferrer noopener">Coursera</a> و <a href="https://www.udemy.com/course/bash-scripting-on-linux/" target="_blank" rel="noreferrer noopener">Udemy</a>)</li>



<li>انجمن‌های آنلاین و گروه‌های گفتگو (مانند Stack Overflow و Reddit)</li>
</ul>



<h2 class="wp-block-heading" id="h-در-پایان">در پایان</h2>



<p>در این مطلب از وبلاگ هم‌روش به معرفی Shell، تاریخچه، انواع، کاربردها، مزایا، و نحوه استفاده از آن پرداختیم. Shell به عنوان واسطی قدرتمند و انعطاف‌پذیر بین کاربر و سیستم‌عامل، نقش بسیار مهمی در مدیریت سیستم، اسکریپت‌نویسی، پردازش داده‌ها، و توسعه نرم‌افزار ایفا می‌کند.</p>



<p>با توجه به نقش حیاتی Shell در سیستم‌عامل‌ها و برنامه‌نویسی، یادگیری و استفاده از آن برای هر کسی که به دنیای فناوری علاقه‌مند است، اهمیت زیادی دارد. این ابزار قدرتمند می‌تواند به افزایش بهره‌وری و کارایی شما کمک کند.</p>



<p>اگر علاقه‌مند به یادگیری بیشتر درباره Shell و دستورات آن هستید، پیشنهاد می‌کنیم منابع آموزشی معرفی‌شده را مطالعه کنید و با تمرین و تجربه، مهارت‌های خود را در این زمینه ارتقا دهید.</p>
<p>The post <a href="https://hamravesh.com/blog/what-is-shell/">Shell چیست؟</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-is-shell/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>آموزش ساده نصب لینوکس (اوبونتو)</title>
		<link>https://hamravesh.com/blog/install-linux-ubuntu/</link>
					<comments>https://hamravesh.com/blog/install-linux-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Thu, 01 Aug 2024 10:39:26 +0000</pubDate>
				<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=3340</guid>

					<description><![CDATA[<p>در این مطلب از وبلاگ هم‌روش قصد داریم به زبان ساده، شیوه نصب لینوکس (توزیع اوبونتو) روی کامپیوتر شخصی‌تان را آموزش دهیم.</p>
<p>The post <a href="https://hamravesh.com/blog/install-linux-ubuntu/">آموزش ساده نصب لینوکس (اوبونتو)</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>بسیاری از افراد وقتی نام لینوکس را می‌شنوند، می‌ترسند و از استفاده کردن از آن هراس دارند. اما این تنها به دلیل دور بودن از فضای لینوکس و استفاده بسیار زیاد از سیستم‌عامل ویندوز است. با در نظر گرفتن این موضوع، در این مطلب از وبلاگ هم‌روش قصد داریم به زبان ساده، شیوه نصب لینوکس (توزیع اوبونتو) روی کامپیوتر شخصی‌تان را آموزش دهیم. </p>



<h2 class="wp-block-heading" id="h-دلیل-انتخاب-توزیع-اوبونتو">دلیل انتخاب توزیع اوبونتو</h2>



<p>لینوکس شامل صدها <a href="https://hamravesh.com/blog/what-are-linux-distributions/"><strong>توزیع</strong></a> مختلف می‌شود و هر کدام از این توزیع‌ها کاربردها و استفاده‌های خاص خود را دارند. در این بین اوبونتو از جمله محبوب‌ترین توزیع‌های لینوکس بوده و برای بسیاری از افراد مبتدی انتخاب مناسبی است. به همین دلیل در این مطلب قصد داریم شیوه نصب اوبونتو را آموزش دهیم.</p>



<p>در ادامه با چند دلیل دیگر برای انتخاب توزیع اوبونتو برای نصب و استفاده روی کامپیوتر شخصی آشنا خواهیم شد:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="538" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/ubuntu-1024x538.webp" alt="لوگو توزیع اوبونتو" class="wp-image-3354" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/ubuntu-1024x538.webp 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/07/ubuntu-300x158.webp 300w, https://hamravesh.com/blog/wp-content/uploads/2024/07/ubuntu-768x403.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/ubuntu.webp 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li><strong>رایگان بودن</strong>: اوبونتو کاملاً رایگان است و نیازی به پرداخت هزینه برای استفاده یا به‌روزرسانی‌های آن ندارید.</li>



<li><strong>ساده و کاربرپسند</strong>: رابط کاربری اوبونتو به گونه‌ای طراحی شده که حتی برای کاربرانی که تازه به دنیای لینوکس وارد شده‌اند، بسیار کاربرپسند و آسان است.</li>



<li><strong>جامعه‌ی پشتیبان قوی</strong>: اوبونتو دارای یک جامعه بزرگ و فعال است که می‌توانید در صورت بروز مشکل یا نیاز به راهنمایی از آن‌ها کمک بگیرید.</li>



<li><strong>امنیت بالا</strong>: اوبونتو به دلیل ساختار لینوکس، امنیت بالایی دارد و کمتر در معرض ویروس‌ها و بدافزارها قرار می‌گیرد.</li>



<li><strong>به‌روزرسانی‌های منظم</strong>: اوبونتو به طور منظم به‌روزرسانی می‌شود و شامل به‌روزرسانی‌های امنیتی و بهبودهای عملکردی است.</li>



<li><strong>پشتیبانی از طیف وسیعی از نرم‌افزارها</strong>: اوبونتو با مجموعه‌ای گسترده از نرم‌افزارهای رایگان و متن‌باز سازگار است و اکثر نرم‌افزارهای محبوب مانند مرورگرها، ویرایشگرهای متن، ابزارهای توسعه و غیره برای آن موجود است.</li>



<li><strong>پشتیبانی از سخت‌افزارهای مختلف</strong>: اوبونتو از طیف وسیعی از سخت‌افزارها پشتیبانی می‌کند و اغلب درایورها و نیازهای سخت‌افزاری را به خوبی برطرف می‌کند.</li>



<li><strong>قابلیت شخصی‌سازی بالا</strong>: کاربران اوبونتو می‌توانند محیط کاری خود را به شکل دلخواه شخصی‌سازی کنند و افزونه‌ها و تم‌های مختلفی را برای تغییر ظاهر و عملکرد سیستم استفاده کنند.</li>



<li><strong>مناسب برای توسعه‌دهندگان</strong>: اوبونتو یک پلتفرم عالی برای توسعه‌دهندگان نرم‌افزار است و شامل ابزارهای توسعه مختلف، محیط‌های برنامه‌نویسی و پشتیبانی از زبان‌های برنامه‌نویسی متعدد است.</li>



<li><strong>پایداری و کارایی بالا</strong>: اوبونتو به دلیل پایداری و کارایی بالایش شناخته شده است و می‌تواند به صورت مستمر و بدون مشکلات عمده کار کند.</li>
</ul>



<h2 class="wp-block-heading" id="h-آموزش-مرحله-به-مرحله-نصب-اوبونتو">آموزش مرحله به مرحله نصب اوبونتو</h2>



<p>برای نصب اوبونتو در قدم اول ابتدا نیاز است که فایل ISO آن را دانلود کرده و روی یک USB Drive (فلش) آن را نصب کنید. برای این‌کار ابتدا وارد این <a href="https://cdimage.ubuntu.com/daily-live/current/">لینک</a> شده و براساس معماری CPU خود نسخه AMD64 یا ARMv8 را دانلود کنید. بیشتر کامپیوترها و لپ‌تاپ‌های ما از معماری AMD64 بهره می‌برد.  </p>



<p>پس از دانلود حال نیاز است که فایل ISO را روی فلش درایو‌ Bootable کنیم. برای این‌کار ابزارهای مختلفی از جمله UNetbootin و rufus وجود دارد. ما از ابزار UNetbootin در این مطلب استفاده می‌کنیم. </p>



<h3 class="wp-block-heading" id="h-۱-بوتیبل-کردن-با-unetbootin">۱. بوتیبل کردن با UNetbootin </h3>



<p>ابتدا <strong><a href="https://unetbootin.github.io/">UNetbootin</a></strong> را دانلود و نصب کنید. سپس فلش را وارد کرده و فایل ISO را به نرم‌افزار معرفی کنید. برای این‌کار روی دکمه &#8230; کلیک کرده و فایل ISO را انتخاب کنید. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="575" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/unetbootin.webp" alt="صفحه اول برنامه unetbootin" class="wp-image-3356" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/unetbootin.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/unetbootin-300x225.webp 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p>از قسمت پایین برنامه، در بخش Drive، فلش خود را از لیست انتخاب کرده و در نهایت روی OK کلیک کنید.</p>



<h3 class="wp-block-heading" id="h-۲-بوت-کردن-از-usb"> ۲. بوت کردن از USB</h3>



<p>بعد از بوت شدن UNetbootin، بدون خارج کردن فلش، کامپیوتر را ریبوت کرده و منتظر باز شدن صفحه‌ای مانند زیر شوید:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="645" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-b.webp" alt="صفحه اول نصب اوبونتو" class="wp-image-3359" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-b.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-b-300x252.webp 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p>اگر چنین صفحه‌ای برای شما باز نشد و مجددا وارد سیستم عامل ویندوز شد، باید یکبار دیگر سیستم را ریبوت کنید و وارد منو Boot شوید. در آن‌جا می‌توانید اولویت بوت را به USB Drive بدهید.</p>



<p>در بین دو گزینه بالا می‌توانید Try Ubuntu را برای کار با اوبونتو بدون نصب کردن آن (Live) انتخاب کرده و یا مستقیما با استفاده از Install Ubuntu وارد فرایند نصب آن شوید. این نکته را در نظر داشته باشید که در حالت Live یا همان Try Ubuntu هر تغییری که اعمال کنید بعد از ریبوت کردن سیستم از بین خواهد رفت. </p>



<h3 class="wp-block-heading" id="h-۳-انتخاب-زبان-کیبورد">۳. انتخاب زبان کیبورد</h3>



<p>در مرحله بعد نوبت انتخاب زبان کیبورد می‌شود. براساس ترجیحات خود می‌توانید هر زبانی که دوست دارید را به کیبورد اضافه کنید. پیشفرض اوبونتو در این مرحله English (US) است. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="625" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-c.webp" alt="انتخاب زبان کیبورد در مرحله دوم نصب اوبونتو" class="wp-image-3360" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-c.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-c-300x244.webp 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<h3 class="wp-block-heading" id="h-۴-نصب-نرم-افزارهای-third-party">۴. نصب نرم‌افزارهای Third-party</h3>



<p>در مرحله بعد شما با دو حالت از نصب مواجه هستید: Normal و Minimal. در حالت نرمال، تمام ابزارهای کاربردی در کنار اوبونتو نصب خواهد شد. مرورگر، آفیس، مدیا پلیر و&#8230; جزو این ابزارهای کاربردی هستند. اما در حالت Minimal تنها کتابخانه‌ها و ابزارهای ضروری نصب خواهد شد. البته شما می‌توانید بعد از نصب نسخه Minimal، ابزارهای کاربردی گفته شده را نیز به‌صورت جداگانه نصب کنید. </p>



<p>در بخش بعدی گزینه Install third-party software&#8230; وجود دارد که برای نصب ابزارهای غیر-آزاد استفاده می‌شود. اگر به نصب درایورهای سخت‌افزاری و همچنین کدکس‌های رسانه‌ای غیر-آزاد نیاز دارید می‌توانید تیک این گزینه را فعال کنید. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="622" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-d.webp" alt="نصب کامل یا مینیمال در اوبونتو و همچنین نصب ابزارهای Third-party" class="wp-image-3361" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-d.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-d-300x243.webp 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<h3 class="wp-block-heading" id="h-۵-نصب">۵. نصب</h3>



<p>بعد از انجام تمام موارد بالا، نوبت به نصب نهایی می‌رسد. در این حالت شما دو گزینه پیش رو خواهید داشت. یا نصب اوبونتو به‌صورت تنها و حذف همه اطلاعات قبلی و یا نصب اوبونتو در کنار ویندوز. </p>



<p>ما گزینه اول را انتخاب می‌کنیم و برای این‌کار گزینه اول یعنی Erase Disk and Install Ubuntu را فعال می‌کنیم. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="655" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-e.webp" alt="نصب اوبونتو و حذف دیسک" class="wp-image-3362" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-e.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-e-300x256.webp 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p>بعد از کلیک روی گزینه Install Now، باکس تائیدیه برای شما باز خواهد شد. در این باکس به‌عنوان آخرین هشدار، تمام تغییرات سطح هارد دیسک را به شما تذکر خواهد داد.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="655" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-f.webp" alt="باکس تاییدیه نصب اوبونتو" class="wp-image-3363" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-f.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-f-300x256.webp 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p>با کلیک روی Continue وارد مرحله بعدی می‌شویم. </p>



<h3 class="wp-block-heading" id="h-۶-پیکربندی-موقعیت-مکانی">۶. پیکربندی موقعیت مکانی</h3>



<p>در مرحله بعد نوبت آن است که براساس نقشه داده شده، موقعیت مکانی/زمانی خود را انتخاب کنید. با انتخاب هر موقعیت، تاریخ و زمان توزیع شما براساس آن تنظیم خواهد شد و همچنین Mirrorها نیز در نزدیک‌ترین مکان ممکن نسبت به موقعیت جغرافیایی شما انتخاب می‌شود. </p>



<p>منظور از Mirror در جمله بالا، سرورهایی‌ست که اوبونتو برای آپدیت شدن یا نصب پکیج یا ابزاری خاص به آن‌ها مراجعه می‌کند. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="657" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-g.webp" alt="پیکربندی موقعیت مکانی در اوبونتو" class="wp-image-3364" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-g.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-g-300x257.webp 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<h3 class="wp-block-heading" id="h-۷-تنظیمات-کاربر">۷. تنظیمات کاربر</h3>



<p>برای وارد شدن به سیستم نیاز است که یک کاربر را تعریف کنید. برای این‌کار در مرحله بعد مشخصات کاربر مورد نظر (احتمالا خودتان) را وارد کنید:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="659" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-h.webp" alt="مشخصات کاربر اوبونتو" class="wp-image-3365" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-h.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-h-300x257.webp 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<h3 class="wp-block-heading" id="h-۸-ریبوت">۸. ریبوت</h3>



<p>بعد از نصب شدن کامل اوبونتو، توزیع شما آماده استفاده است. زمانی که با پیام Installation Complete مواجه شدید، روی دکمه Restart Now کلیک کنید. بعد از این‌کار قبل از خاموش شدن کامپیوتر فلش درایوتان را خارج کنید تا دوباره وارد فرایند نصب اوبونتو نشوید. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="267" src="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-i.webp" alt="پایان نصب اوبونتو" class="wp-image-3366" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-i.webp 768w, https://hamravesh.com/blog/wp-content/uploads/2024/07/install-ubuntu-i-300x104.webp 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p>حال می‌توانید وارد سیستم عامل‌تان شده و از آن استفاده کنید. </p>



<h2 class="wp-block-heading" id="h-در-پایان">در پایان</h2>



<p>در این مطلب از وبلاگ هم‌روش ما با شیوه نصب ساده اوبونتو روی کامپیوترهای شخصی آشنا شدیم. استفاده از اوبونتو مطمئنا سفر لذت‌بخش و جذابی خواهد بود. بنابراین اگر فرد کنجکاوی هستید و دوست دارید با دنیای جدیدی آشنا شوید، مطمئنا لینوکس و اوبونتو انتخاب‌های مناسبی برای‌تان خواهند بود. </p>
<p>The post <a href="https://hamravesh.com/blog/install-linux-ubuntu/">آموزش ساده نصب لینوکس (اوبونتو)</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/install-linux-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>نصب پستگرس PostgreSQL در اوبونتو Ubuntu </title>
		<link>https://hamravesh.com/blog/install-postgrsql-ubuntu/</link>
					<comments>https://hamravesh.com/blog/install-postgrsql-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Mon, 27 May 2024 07:28:12 +0000</pubDate>
				<category><![CDATA[دیتابیس]]></category>
		<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=2428</guid>

					<description><![CDATA[<p>در این راهنما نشان خواهیم دید که چگونه به‌سرعت پستگرس را روی یک سرور اوبونتو ۲۰.۰۴ اجرا کنیم. در این مطلب از نصب پستگرس‌اسکیوال گرفته تا ایجاد یک کاربر و پایگاه‌داده جدید را مرور خواهیم کرد. «پستگرس‌اس‌کیوال» (PostgreSQL) یا «پستگرس» (Postgres)، یک سیستم مدیریت پایگاه‌داده رابطه‌ای است که پیاده‌سازی‌ای از زبان کوئری «اس‌کیو‌ال» (SQL) محسوب [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/install-postgrsql-ubuntu/">نصب پستگرس PostgreSQL در اوبونتو Ubuntu </a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>در این راهنما نشان خواهیم دید که چگونه به‌سرعت پستگرس را روی یک سرور اوبونتو ۲۰.۰۴ اجرا کنیم. در این مطلب از نصب پستگرس‌اسکیوال گرفته تا ایجاد یک کاربر و پایگاه‌داده جدید را مرور خواهیم کرد.</p>



<p>«پستگرس‌اس‌کیوال» (PostgreSQL) یا «<a href="https://hamravesh.com/blog/what-is-postgresql/">پستگرس</a>» (Postgres)، یک سیستم مدیریت پایگاه‌داده رابطه‌ای است که پیاده‌سازی‌ای از زبان کوئری «اس‌کیو‌ال» (SQL) محسوب می‌شود.</p>



<p> پستگرس منطبق با استانداردهاست و دارای ویژگی‌های پیشرفته‌ای مثل تراکنش‌های معتبر و «همروندی» (اجرای چند عمل هم زمان | Concurrency) بدون «قفل خواندن» (Read Lock) است.</p>



<h2 class="wp-block-heading" id="h-پیش-نیازهای-نصب-پستگرس-در-اوبونتو-۲۰-۰۴">پیش‌نیازهای نصب پستگرس در اوبونتو ۲۰.۰۴</h2>



<p>برای پیروی از این آموزش، نیاز به راه‌اندازی، نصب و انجام تنظیمات اولیه یک سرور اوبونتو ۲۰.۰۴ وجود دارد که برای این منظور می‌توانید از این راهنما [<a href="https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04">+</a>] استفاده کنید. پس از انجام این موارد پیش‌نیاز، سرور شما باید یک کاربر غیر root با مجوزهای sudo و یک فایروال پایه‌ای داشته باشد.</p>



<h2 class="wp-block-heading" id="h-گام-اول-نصب-پستگرس-postgresql-روی-سرور-لینوکس-اوبونتو-۲۰-۰۴">گام اول: نصب پستگرس PostgreSQL روی سرور لینوکس اوبونتو ۲۰.۰۴</h2>



<p>برای نصب پستگرس‌اسکیوال، ابتدا فهرست بسته‌های محلی سرور خود را به‌روزرسانی کنید:</p>



<pre class="wp-block-code"><code>sudo apt update</code></pre>



<p>سپس، بسته پستگرس را همراه با بسته <code>‎-contrib‎</code> که برخی ابزارها و قابلیت‌های اضافی را اضافه می‌کند، نصب کنید:</p>



<pre class="wp-block-code"><code>sudo apt install postgresql postgresql-contrib</code></pre>



<p>اطمینان حاصل کنید که سرویس استارت خورده است:</p>



<pre class="wp-block-code"><code>sudo systemctl start postgresql.service</code></pre>



<h2 class="wp-block-heading" id="h-گام-دوم-استفاده-از-roleها-و-دیتابیس-های-پستگرس">گام دوم: استفاده از Roleها و دیتابیس‌های پستگرس</h2>



<p>پستگرس (PostgreSQL) به‌طور پیش‌فرض از مفهومی به نام «Roleها» (نقش‌ها) برای مدیریت احراز هویت و کنترل دسترسی استفاده می‌کند. Roleها تا حدودی شبیه به همان مفهوم کاربران و گروه‌ها در سیستم‌عامل‌های یونیکس هستند.<br><br>در هنگام نصب، پستگرس به گونه‌ای پیکربندی می‌شود که از احراز هویت «ident» استفاده کند. به این معنا که Roleهای پستگرس را با حساب‌های کاربری سیستم عامل یونیکس/لینوکس مطابقت می‌دهد. اگر Roleی در پستگرس وجود داشته باشد، یک نام کاربری یونیکس/لینوکس با همان نام می‌تواند با آن Role وارد (Sign In) شود.</p>



<p>هنگام نصب، یک حساب کاربری به نام پستگرس ایجاد شد که با نقش پیش‌فرض پستگرس مرتبط است. چند روش برای استفاده از این حساب برای دسترسی به پستگرس وجود دارد. یکی از روش‌ها این است که با اجرای دستور زیر، به حساب پستگرس در سرور خود منتقل شوید:</p>



<pre class="wp-block-code"><code>sudo -i -u postgres</code></pre>



<p>سپس می‌توانید با اجرای دستور زیر به پرامپت پستگرس دسترسی پیدا کنید:</p>



<pre class="wp-block-code"><code>psql</code></pre>



<p>این کار شما را به پرامپت پستگرس وارد می‌کند و از این پس می‌توانید بلافاصله با سیستم مدیریت پایگاه داده تعامل داشته باشید. برای خروج از پرامپت پستگرس، دستور <code>\q</code> را اجرا کنید. این کار شما را به پرامپت لینوکس حساب پستگرس باز می‌گرداند. برای بازگشت به حساب کاربری معمول خود، دستور <code>exit</code> را اجرا کنید.</p>



<p>روش دیگر برای اتصال به پرامپت پستگرس، اجرای مستقیم دستور psql با حساب پستگرس از طریق سودو است:</p>



<pre class="wp-block-code"><code>sudo -u postgres psql</code></pre>



<p>این کار شما را بدون مرحله میانی شل bash، مستقیماً به پستگرس وارد می‌کند. دوباره، با اجرای دستور <code>\q</code> می‌توانید از جلسه تعاملی پستگرس خارج شوید.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="380" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/05/Install-Postgresql-on-ubuntu-1024x380.png" alt="نصب پستگرس PostgreSQL در ابونتو Ubuntu " class="wp-image-2743" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/05/Install-Postgresql-on-ubuntu-1024x380.png 1024w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Install-Postgresql-on-ubuntu-300x111.png 300w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Install-Postgresql-on-ubuntu-768x285.png 768w, https://hamravesh.com/blog/wp-content/uploads/2024/05/Install-Postgresql-on-ubuntu.png 1078w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-گام-سوم-ایجاد-role-جدید">گام سوم: ایجاد Role جدید</h2>



<p>اگر با حساب پستگرس وارد شده‌اید، می‌توانید با اجرای دستور زیر یک نقش جدید ایجاد کنید:</p>



<pre class="wp-block-code"><code>createuser --interactive</code></pre>



<p>اگر ترجیح می‌دهید بدون تغییر حساب، از <code>sudo</code> برای هر دستور استفاده کنید، دستور زیر را اجرا کنید:</p>



<pre class="wp-block-code"><code>sudo -u postgres createuser --interactive</code></pre>



<p>در هر صورت، اسکریپت برخی گزینه‌ها را از شما می‌پرسد و بر اساس پاسخ‌هایتان، دستورات پستگرس مناسب را برای ایجاد یک کاربر با مشخصات دلخواهتان اجرا می‌کند. خروجی:</p>



<pre class="wp-block-code"><code>Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y</code></pre>



<h2 class="wp-block-heading" id="h-گام-چهارم-ساخت-دیتابیس-جدید">گام چهارم: ساخت دیتابیس جدید</h2>



<p>یکی دیگر از پیش فرض های سیستم احراز هویت پستگرس این است که برای هر Roleی که برای ورود استفاده می‌شود، آن Role به پایگاه‌داده‌ای با همان نام که می تواند به آن دسترسی داشته باشد، متصل خواهد شد. این بدان معنی است که اگر کاربری که در بخش قبل ایجاد کردید sammy نام دارد، به‌طور پیش فرض آن Role سعی خواهد کرد به پایگاه داده‌ای به نام «sammy» نیز متصل شود. شما می‌توانید پایگاه داده مناسب را با دستور <code>createdb</code> ایجاد کنید.</p>



<p>اگر با حساب پستگرس وارد شده‌اید، می‌توانید دستوری مانند این را تایپ کنید:</p>



<pre class="wp-block-code"><code>createdb sammy</code></pre>



<p>اگر ترجیح می‌دهید بدون تغییر حساب، از <code>sudo</code> برای هر دستور استفاده کنید، باید دستور زیر را اجرا کنید:</p>



<pre class="wp-block-code"><code>sudo -u postgres createdb sammy</code></pre>



<h2 class="wp-block-heading" id="h-گام-پنجم-باز-کردن-پرامپت-پستگرس-با-role-جدید">گام پنجم: باز کردن پرامپت پستگرس با Role جدید</h2>



<p>برای ورود با احراز هویت مبتنی بر ident، به یک کاربر لینوکس با همان نام Role و پایگاه‌داده پستگرس خود نیاز خواهید داشت. اگر کاربر لینوکس مطابقی در دسترس ندارید، می‌توان با دستور <code>adduser</code> آن را ایجاد کرد. باید این کار را از حساب غیر root‌ با امتیازات سودو (یعنی بدون ورود به حساب پستگرس) انجام دهید:</p>



<pre class="wp-block-code"><code>sudo adduser sammy</code></pre>



<p>پس از اینکه این حساب کاربری جدید در دسترس قرار گرفت، می‌توانید با انجام موارد زیر به آن سوئیچ کنید و به پایگاه‌داده متصل شوید:</p>



<pre class="wp-block-code"><code>sudo -i -u sammy
psql</code></pre>



<p>یا می‌توان این کار را در یک خط اینگونه انجام داد:</p>



<pre class="wp-block-code"><code>sudo -u sammy psql</code></pre>



<p>این دستور با فرض اینکه تمام اجزا به درستی پیکربندی شده باشند، شما را به صورت خودکار لاگین می‌کند. اگر می‌خواهید کاربر شما به پایگاه داده دیگری متصل شود، می‌توانید آن را به صورت زیر مشخص کنید:</p>



<pre class="wp-block-code"><code>psql -d postgres</code></pre>



<p>پس از لاگین شدن، می‌توانید با اجرای دستور <code>\conninfo</code> اطلاعات اتصال فعلی خود را بررسی کنید. خروجی:</p>



<pre class="wp-block-code"><code>You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".</code></pre>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>در این مطلب، نحوه نصب و راه‌اندازی سریع PostgreSQL بر روی سرور اوبونتو ۲۰.۰۴، از جمله ایجاد کاربر و پایگاه‌داده جدید آموزش داده شد. پستگرس یک سیستم مدیریت پایگاه‌داده رابطه‌ای است که پیاده‌سازی از زبان پرس‌وجوی SQL را ارائه می‌دهد. این سیستم دارای ویژگی‌های پیشرفته‌ای مانند تراکنش‌های قابل اعتماد و همگام‌سازی بدون نیاز به قفل خواندن است. برای استفاده از پستگرس، ابتدا باید آن را بر روی سرور لینوکس نصب و سپس با ایجاد «نقش‌ها» (Role) و پایگاه‌داده می‌توان به آن دسترسی پیدا کرد.</p>
<p>The post <a href="https://hamravesh.com/blog/install-postgrsql-ubuntu/">نصب پستگرس PostgreSQL در اوبونتو Ubuntu </a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/install-postgrsql-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>مدیریت دسترسی کاربران و گروه‌ها در لینوکس</title>
		<link>https://hamravesh.com/blog/user-group-management-linux/</link>
					<comments>https://hamravesh.com/blog/user-group-management-linux/#respond</comments>
		
		<dc:creator><![CDATA[بابک خوش‌نویس]]></dc:creator>
		<pubDate>Sun, 12 May 2024 11:47:35 +0000</pubDate>
				<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=2265</guid>

					<description><![CDATA[<p>در این مطلب به مرور انواع حساب کاربری و گروه‌ها در لینوکس، سطوح دسترسی و کاربرد آن‌ها می‌پردازیم. </p>
<p>The post <a href="https://hamravesh.com/blog/user-group-management-linux/">مدیریت دسترسی کاربران و گروه‌ها در لینوکس</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>لینوکس یک سیستم عامل رایگان و قدرتمند است که توسط بسیاری از افراد و شرکت‌ها استفاده می‌شود. برای استفاده ایمن از این سیستم عامل، تنظیمات دسترسی کاربران به فایل‌ها، پوشه‌ها و سایر منابع بسیار مهم است. اگر این تنظیمات درست انجام نشوند، امنیت سیستم در معرض خطر قرار گرفته و ممکن است حتی امکان استفاده از سیستم هم وجود نداشته باشد. بنابراین مدیریت دسترسی‌ها یک وظیفه حیاتی برای ادمین‌های لینوکس محسوب می‌شود. </p>



<p>با مطالعه این مطلب خواهیم آموخت که چطور کاربران و حساب‌ها را در لینوکس مدیریت و یکپارچگی و امنیت سیستم را تضمین کنیم.</p>



<h2 class="wp-block-heading" id="h-انواع-حساب-کاربری-در-لینوکس">انواع حساب کاربری در لینوکس</h2>



<p>در این بخش به مرور انواع حساب کاربری در لینوکس، سطوح دسترسی و کاربرد آن‌ها می‌پردازیم. ابتدا کاربر Root‌ را بررسی می‌کنیم.</p>



<h3 class="wp-block-heading" id="h-کاربر-روت-root-در-لینوکس">کاربر روت root‌ در لینوکس</h3>



<p>در لینوکس، کاربر root یک کاربر ویژه و قدرتمند است که همه دسترسی‌های سیستمی را در اختیار دارد. این کاربر به عنوان سرپرست سیستم شناخته می‌شود و می‌تواند هرگونه تغییر و عملیاتی را در سراسر سیستم عامل لینوکس انجام دهد. به همین دلیل باید با دقت و احتیاط با این کاربر کار کرد، زیرا تغییرات اشتباه با دسترسی روت می‌تواند به آسیب رساندن به سیستم و اختلال در عملکرد آن منجر شود. بنابراین در بیشتر موارد، استفاده از سایر کاربران با دسترسی محدودتر به‌جای کاربر root توصیه می‌شود.</p>



<h4 class="wp-block-heading" id="h-سطح-دسترسی-کاربر-root-در-لینوکس">سطح دسترسی کاربر root در لینوکس</h4>



<p>کاربر روت در لینوکس به تمام سیستم عامل لینوکس به‌طور کامل دسترسی دارد. کاربران root می‌توانند هر دستوری را اجرا کنند، تنظیمات سیستمی را تغییر دهند،‌ فایل‌ها را ویرایش کنند یا بدون هیچ محدودیتی هر نرم‌افزاری را نصب کنند.</p>



<h4 class="wp-block-heading" id="h-کاربرد-یوزر-root-در-لینوکس">کاربرد یوزر root‌ در لینوکس</h4>



<p>کاربر روت در لینوکس به‌طور عمده برای انجام وظایف مدیریت سیستم مورد استفاده قرار می‌گیرد. کاربر &#8220;root&#8221; در لینوکس کاربر ویژه‌ای است که همه دسترسی‌ها و اختیارات را دارد. یعنی می‌تواند هر کاری که بخواهد را در سیستم انجام دهد. این کاربر به‌عنوان سرپرست سیستم شناخته می‌شود و برای انجام کارهای مهم و حساس سیستمی استفاده می‌شود. اما باید با احتیاط و دقت با آن کار کرد چون هرگونه اشتباه یا تغییر نادرست توسط root ممکن است به آسیب رساندن به سیستم بینجامد.</p>



<h3 class="wp-block-heading" id="h-کاربر-عادی-یا-استاندارد-در-لینوکس">کاربر عادی یا استاندارد در لینوکس</h3>



<p>کاربر عادی یا &#8220;Standard User&#8221; در لینوکس، یک کاربر معمولی است که دسترسی و اختیارات محدودتری نسبت به کاربر ویژه &#8220;root&#8221; دارد. این کاربران برای انجام کارهای روزمره و غیرحساس سیستم استفاده می‌شوند. آن‌ها نمی‌توانند تغییرات اساسی در سیستم ایجاد کنند و دسترسی محدودتری به بخش‌های حساس سیستم دارند. این محدودیت دسترسی باعث می‌شود تا سیستم لینوکس امن‌تر و پایدارتر باشد.</p>



<h4 class="wp-block-heading" id="h-سطح-دسترسی-کاربر-معمولی-در-لینوکس">سطح دسترسی کاربر معمولی در لینوکس</h4>



<p>دسترسی‌های کاربران معمولی محدود است. این کاربران نمی‌توانند اقداماتی انجام دهند که تنظیمات اصلی سیستم یا حساب‌های کاربری دیگران را تحت تأثیر قرار دهد. به عبارت دیگر، کاربران عادی دسترسی‌های محدودتری نسبت به کاربر مدیر (root) دارند و نمی‌توانند تغییرات اساسی و گسترده‌ای در سیستم ایجاد کنند.</p>



<h4 class="wp-block-heading" id="h-کاربرد-کاربر-استاندارد-در-لینوکس">کاربرد کاربر استاندارد در لینوکس</h4>



<p>در لینوکس، کاربران استاندارد یا عادی دسترسی ابتدایی برای استفاده از منابع مختلف سیستم دارند. در واقع این نوع یوزرها دسترسی محدودتری در مقایسه با کاربر ریشه (root) دارند. آن‌ها فقط می‌توانند از منابع و امکانات معمول سیستم، مانند اجرای برنامه‌ها، مدیریت فایل‌ها و پوشه‌ها در محدوده خودشان استفاده کنند. اما اجازه ندارند تغییرات گسترده‌ای در تنظیمات اصلی سیستم یا دسترسی به حساب‌های دیگر کاربران ایجاد کنند. این محدودیت دسترسی موجب می‌شود سیستم عامل لینوکس امن‌تر و پایدارتر باشد.</p>



<h3 class="wp-block-heading" id="h-کاربر-sudo-در-لینوکس">کاربر sudo در لینوکس</h3>



<p>«کاربر Sudo» در لینوکس، کاربری است که دسترسی بیشتری نسبت به کاربران عادی دارد، اما سطح پایین‌تری را نسبت به کاربر root دارا است. این نوع کاربران می‌توانند برخی از دستورات مهم سیستم را با استفاده از دستور «sudo» اجرا کنند. اما برخلاف کاربر root که همه کارها را می‌تواند انجام دهد، دسترسی یوزرهای sudo محدودتر است و فقط به تعدادی از عملیات خاص محدود می‌شود. یعنی آن‌ها دسترسی بیشتری نسبت به کاربران معمولی دارند، اما همچنان محدودیت‌هایی برای آن‌ها وجود دارد.</p>



<h4 class="wp-block-heading" id="h-سطح-دسترسی-کاربر-sudo-در-لینوکس">سطح دسترسی کاربر sudo‌ در لینوکس</h4>



<p>کاربر sudo در لینوکس در واقع یک کاربر معمولی است که به او اجازه داده شده تا برخی دستورات را به‌عنوان کاربر ریشه (root) اجرا کند. به عبارت دیگر، کاربر sudo نوعی کاربر ویژه است که دسترسی بیشتری نسبت به کاربران عادی دارد. این کاربران می‌توانند بعضی از دستورات مهم و حساس سیستم را با استفاده از دستور sudo اجرا کنند. در واقع آن‌ها نمی‌توانند همه کارها را مانند کاربر root انجام دهند، اما دسترسی محدودتری نسبت به کاربران معمولی دارند. وجود کاربر sudo در لینوکس این امکان را فراهم می‌کند که بتوان وظایف خاصی را انجام دهیم، بدون اینکه دسترسی بی‌رویه به سراسر سیستم داشته باشیم.</p>



<h4 class="wp-block-heading" id="h-کاربرد-کاربر-sudo-در-لینوکس">کاربرد کاربر sudo در لینوکس</h4>



<p>هر دستوری که نیاز به مجوزهای root داشته باشد، باید قبل از آن عبارت «sudo» را بنویسیم و در واقع از دستور sudo‌ استفاده کنیم. در لینوکس، کاربر sudo به کاربران معمولی این امکان را می‌دهد که بتوانند برخی از دستورات مهم و حساس سیستم را اجرا کنند، بدون اینکه از سطح دسترسی کاربر root برخوردار شوند. این کمک می‌کند تا سیستم امن‌تر و پایدارتر بماند، زیرا کاربران عادی فقط به مقدار محدودی از عملیات ویژه دسترسی دارند. پیش از اجرای چنین دستوراتی، باید دستور sudo را قبل از دستور مورد نظر بنویسیم تا مجوزهای لازم را دریافت کنیم. این قابلیت، کنترل بهتری را بر روی تغییرات سیستمی ایجاد می‌کند.</p>



<h3 class="wp-block-heading" id="h-کاربر-سیستمی-در-لینوکس">کاربر سیستمی در لینوکس</h3>



<p>«حساب‌های سیستمی» (System Account) در لینوکس، حساب‌هایی هستند که به منظور اجرای برخی سرویس‌های ضروری سیستم ایجاد می‌شوند. این حساب‌ها معمولاً به‌صورت خودکار توسط سیستم عامل ایجاد می‌شوند و در ظاهر قابل مشاهده نیستند. آن‌ها به‌جای استفاده از حساب‌های کاربری واقعی، برای اجرای فرایندهای سیستمی مورد استفاده قرار می‌گیرند. این حساب‌ها دسترسی‌های محدودی داشته و تنها برای انجام وظایف خاص خود استفاده می‌شوند.</p>



<h4 class="wp-block-heading" id="h-سطح-دسترسی-کاربر-سیستمی-در-لینوکس">سطح دسترسی کاربر سیستمی در لینوکس</h4>



<p>حساب‌های کاربری برای برنامه‌ها یا خدمات خودکار که باید وظایف خاصی را در سیستم لینوکس انجام دهند. در لینوکس، حساب‌های سیستمی به جای استفاده از حساب‌های کاربری عادی، برای انجام وظایف خاص و ضروری سیستم استفاده می‌شوند. این حساب‌ها دارای دسترسی‌های محدودی هستند و تنها به مقدار لازم برای انجام کارکردهای خود، به منابع و تنظیمات سیستمی دسترسی دارند. این محدودیت دسترسی باعث افزایش امنیت و کنترل بهتر بر روی عملیات سیستم می‌شود و از سوءاستفاده احتمالی جلوگیری می‌کند.</p>



<h4 class="wp-block-heading" id="h-کاربرد-حساب-سیستمی-در-لینوکس">کاربرد حساب سیستمی در لینوکس</h4>



<p>حساب‌های سیستمی با مجوزهای محدود عمل می‌کنند تا امنیت و کنترل بر عملیات سیستم را افزایش دهند. در لینوکس، حساب‌های سیستمی به برنامه‌ها و خدماتی اختصاص داده می‌شوند که به طور خودکار و پنهان در پس‌زمینه فعالیت می‌کنند. این حساب‌ها به جای استفاده از حساب‌های کاربران واقعی، برای انجام وظایف خاص و محدود در سیستم مورد استفاده قرار می‌گیرند. این امر به افزایش امنیت سیستم کمک می‌کند، زیرا احتمال سوءاستفاده از این حساب‌ها توسط کاربران کاهش پیدا می‌کند. حساب‌های سیستمی به نوعی جدا از حساب‌های کاربری عادی هستند و نقش مهمی در عملکرد پایدار سیستم لینوکس ایفا می‌کنند.</p>



<h3 class="wp-block-heading" id="h-کاربر-مهمان-guest-در-لینوکس">کاربر مهمان Guest در لینوکس</h3>



<p>«کاربر مهمان» (Guest User) در لینوکس، نوعی کاربر محدود است که دسترسی خیلی محدودی به سیستم دارد. این کاربران معمولاً برای استفاده موقت یا محدود از لینوکس، مثلاً برای نمایش یا آزمایش سیستم ایجاد می‌شوند.</p>



<h4 class="wp-block-heading" id="h-سطح-دسترسی-کاربر-مهمان-در-لینوکس">سطح دسترسی کاربر مهمان در لینوکس</h4>



<p>کاربران مهمان در لینوکس حساب‌های موقتی با مجوزهای محدود و کنترل شده هستند. در لینوکس، کاربر مهمان نوعی حساب کاربری موقتی است که دسترسی‌های محدودی دارد. دسترسی آن‌ها محدود به انجام کارهای خاص و معدود است. این محدودیت دسترسی باعث می‌شود تا از هرگونه سوءاستفاده احتمالی جلوگیری شده و امنیت سیستم حفظ شود. در واقع، کاربران مهمان برای استفاده موقت و کنترل شده از لینوکس در نظر گرفته می‌شوند.</p>



<h4 class="wp-block-heading" id="h-کاربرد-یوزر-مهمان-در-لینوکس">کاربرد یوزر مهمان در لینوکس</h4>



<p>کاربرد این نوع سطح کاربری در لینوکس مربوط به کاربرانی می‌شود که به دسترسی برای زمان محدود نیاز دارند و به فایل‌ها و تنظیمات شخصی خود نیازی ندارند. </p>



<h3 class="wp-block-heading" id="h-نوع-اکانت-گروه-های-کاربری-در-لینوکس">نوع اکانت گروه‌های کاربری در لینوکس</h3>



<p>«گروه‌های کاربری» (User Groups) در لینوکس مجموعه‌ای از کاربران هستند که به طور مشترک اجازه دسترسی به فایل‌ها، پوشه‌ها و سایر منابع سیستم را دارند. این گروه‌ها به کاربران امکان می‌دهند تا به صورت گروهی به منابع دسترسی داشته باشند و حقوق دسترسی خود را با سایر اعضای گروه به اشتراک بگذارند. این قابلیت باعث می‌شود که مدیریت دسترسی‌ها آسان‌تر شود و کاربران بتوانند به طور موثرتری با یکدیگر همکاری کنند.</p>



<h4 class="wp-block-heading" id="h-سطح-دسترسی-گروه-های-کاربری-در-لینوکس">سطح دسترسی گروه‌های کاربری در لینوکس</h4>



<p>دسترسی‌ها به مجموعه‌ای از کاربران اختصاص داده می‌شوند که در گروه‌های منطقی با دسترسی‌های یکسان سازمان‌دهی شده‌اند. در لینوکس، گروه‌های کاربری به کاربران اجازه می‌دهند تا به صورت دسته‌جمعی به مجموعه‌ای از فایل‌ها، پوشه‌ها و سایر منابع سیستم دسترسی داشته باشند. این گروه‌ها می‌توانند مجوزهای خاصی را برای اعضای خود، مانند دسترسی به خواندن، نوشتن و اجرا تعریف کنند. این امکان به مدیریت دسترسی‌ها در محیط لینوکس کمک می‌کند و به کاربران امکان همکاری در انجام وظایف را می‌دهد.</p>



<h4 class="wp-block-heading" id="h-کاربرد-user-groups-در-لینوکس">کاربرد User Groups در لینوکس</h4>



<p>ادمین‌ها می‌توانند به جای مدیریت حساب‌های کاربری فردی، مجوزها را برای کل گروه کاربری مدیریت کنند. گروه‌های کاربری در لینوکس به مدیران سیستم کمک می‌کنند تا به صورت موثرتری مجوزهای دسترسی را مدیریت کنند. به جای اینکه برای هر کاربر به طور جداگانه تنظیمات دسترسی را انجام دهند، می‌توانند یک گروه کاربری تعریف کرده و همه اعضای آن گروه را با یک سری مجوزهای مشترک تعریف کنند. این امر باعث می‌شود که مدیریت دسترسی‌ها، به ویژه در سازمان‌ها و محیط‌های کاری با تعداد زیادی کاربر ساده‌تر و کاربردی‌تر شود.</p>



<h2 class="wp-block-heading" id="h-فایل-های-مدیریت-کاربران-در-لینوکس">فایل‌های مدیریت کاربران در لینوکس</h2>



<p>لینوکس اطلاعات مربوط به کاربران و گروه‌ها را در فایل‌ها و دایرکتوری‌های خاصی نگهداری می‌کند. این فایل‌ها شامل اطلاعات حساب‌های کاربری، گذرواژه‌ها و پیکربندی گروه‌ها می‌شود. مدیران سیستم می‌توانند با این فایل‌ها کار کنند تا تنظیمات مربوط به کاربران و گروه‌ها را در لینوکس کنترل کنند و تغییر دهند. </p>



<p>در لینوکس، فایل‌ها و دایرکتوری‌های اصلی برای ذخیره اطلاعات کاربری شامل موارد زیر می‌شود:</p>



<ul class="wp-block-list">
<li><strong>/etc/passwd</strong>: این فایل لیستی از حساب‌های کاربری را شامل می‌شود و برای هر کاربر، اطلاعاتی مانند شناسه کاربری، شناسه گروه، دایرکتوری خانگی و shell پیش‌فرض را نگهداری می‌کند. اکثر کاربران می‌توانند این فایل را مشاهده کنند، اما فقط کاربر root و حساب‌های دارای دسترسی sudo می‌توانند کاربران جدید اضافه کنند یا داده‌های کاربری موجود را حذف و ویرایش کنند.</li>



<li><strong>/etc/group</strong>: این فایل لیستی از گروه‌های کاربری را نگهداری می‌کند. هر خط در این فایل نمایانگر یک گروه و شامل نام گروه، شناسه گروه و اعضای آن گروه است. مدیران می‌توانند با این فایل تعامل داشته باشند تا تنظیمات را برای مجموعه‌ای از کاربران مدیریت کنند.</li>



<li><strong>/etc/sudoers</strong>: در لینوکس، فایل /etc/sudoers مشخص می‌کند کدام کاربران چه سطح دسترسی‌های بالایی در چه ماشین‌هایی و برای چه دایرکتوری‌هایی دارند. مدیران می‌توانند از این فایل برای پیکربندی دسترسی‌های کاربران و گروه‌ها برای استفاده از دستور sudo استفاده کنند.</li>



<li><strong>/etc/shadow</strong>: اطلاعات رمزگذاری‌شده گذرواژه کاربران و سایر داده‌های مربوط به گذرواژه‌ها مانند تاریخ انقضا، آخرین تغییر و تاریخ انقضای حساب را ذخیره می‌کند. این فایل فقط در دسترس کاربر root یا کاربرانی با دسترسی‌های مناسب است. محدودیت دسترسی و رمزگذاری در این فایل، لایه امنیتی دیگری را نسبت به فایل /etc/passwd فراهم می‌کند.</li>



<li><strong>/etc/gshadow</strong>: اطلاعات رمزگذاری‌شده گذرواژه گروه‌های کاربری و سایر داده‌های مربوط به گذرواژه‌ها مانند تاریخ انقضا، آخرین تغییر و تاریخ انقضای حساب را ذخیره می‌کند. مانند فایل shadow، این فایل نیز فقط در دسترس کاربر root یا کاربرانی با دسترسی‌های مناسب است. در مقایسه با فایل /etc/passwd، محدودیت دسترسی و رمزگذاری در این فایل‌ها لایه امنیتی دیگری را به سیستم اضافه می‌کند.</li>



<li><strong>/etc/skel</strong>: شامل اسکریپت‌های پیکربندی پیش‌فرض و قالب‌هایی مانند ‎.‎bashrc‎‎ و bash_profile است. این قالب‌ها هنگام ایجاد یک کاربر جدید به دایرکتوری home آن کاربر کپی می‌شوند، که باعث تسهیل در ایجاد حساب‌های کاربری جدید می‌شود.</li>



<li><strong>/etc/login.defs</strong>: شامل تنظیمات سیاست‌های حساب‌های کاربری در سطح سیستم است، مانند سیاست منقضی شدن گذرواژه. مدیران سیستم می‌توانند به این فایل مراجعه کرده و آن را تغییر دهند تا قوانین امنیتی و مدیریت کاربران خاصی را اعمال کنند.</li>
</ul>



<h2 class="wp-block-heading" id="h-دستورات-مربوط-به-مدیریت-کاربران-در-لینوکس">دستورات مربوط به مدیریت کاربران در لینوکس</h2>



<p>در لینوکس، ابزارهای خط فرمان روش ترجیحی برای مدیریت کاربران و گروه‌ها هستند. این ابزارها دارای کنترل‌ها و موازنه‌های داخلی هستند که باعث تضمین امنیت و یکپارچگی سیستم می‌شوند. در این بخش مثال‌هایی از دستورات مربوط به مدیریت کاربران در لینوکس ارائه شده است.</p>



<h3 class="wp-block-heading" id="h-بررسی-کاربران-لاگین-شده-فعلی">بررسی کاربران لاگین شده فعلی</h3>



<p>برای پیدا کردن کاربرانی که در حال حاضر در سیستم لینوکس لاگین شده‌اند، بهترین و کارآمدترین روش، استفاده از دستور who است. برای مشاهده لیست کاربران فعلی لاگین شده، از دستور who‌ استفاده می‌شود.</p>


<p>who</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="739" height="124" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/who-command.png" alt="دستور who در لینوکس" class="wp-image-2287" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/who-command.png 739w, https://hamravesh.com/blog/wp-content/uploads/2024/04/who-command-300x50.png 300w" sizes="auto, (max-width: 739px) 100vw, 739px" /></figure>



<p>اینجا به شما توضیح می‌دهیم که چگونه می‌توانید اطلاعات مربوط به نشست کاربر را در ستون‌های مختلف مشاهده کنید. برای نمایش عنوان هر ستون، می‌توانید از گزینه <code>-H</code> استفاده کنید:</p>


<p>who -H</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="740" height="142" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/who-H-command.png" alt="" class="wp-image-2288" style="width:839px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/who-H-command.png 740w, https://hamravesh.com/blog/wp-content/uploads/2024/04/who-H-command-300x58.png 300w" sizes="auto, (max-width: 740px) 100vw, 740px" /></figure>



<p>عنوان‌های ستون‌ها، مفهوم داده‌های هر ستون را نشان می‌دهند.</p>



<h3 class="wp-block-heading" id="h-نحوه-لیست-کردن-تمام-یوزرها">نحوه لیست کردن تمام یوزرها</h3>



<p>فایل <code>/etc/passwd</code> در سیستم‌عامل لینوکس اطلاعات همه کاربران این سیستم را نگهداری می‌کند. برای نمایش اطلاعات کاربران در ترمینال می‌توان از چند دستور لینوکسی مانند <code>cat</code> ،<code>awk</code> و <code>getent</code> استفاده کرد. برای لیست کردن کاربران لینوکس دستور زیر را وارد کنید:</p>


<p>cat /etc/passwd</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="740" height="395" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/cat-etc-passwd.png" alt="" class="wp-image-2291" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/cat-etc-passwd.png 740w, https://hamravesh.com/blog/wp-content/uploads/2024/04/cat-etc-passwd-300x160.png 300w" sizes="auto, (max-width: 740px) 100vw, 740px" /></figure>



<p>سیستم تمام کاربران لینوکس را لیست می‌کند و اطلاعات اضافی مانند پوسته پیش‌فرض و دایرکتوری home هر کاربر را هم نمایش می‌دهد.</p>



<p>همچنین می‌توانید از دستورهای <code>more</code> و <code>less</code> برای نمایش محتویات فایل در چند صفحه استفاده کنید؛ به این ترتیب می‌توانید فهرست کاربران را جستجو و در آن پیمایش کنید.</p>



<h3 class="wp-block-heading" id="h-ایجاد-یوزر-با-دستورات-useradd-یا-adduser">ایجاد یوزر با دستورات useradd یا adduser</h3>



<p>برای ایجاد یک کاربر یا همان یوزر جدید در لینوکس از دستور <code>useradd</code> استفاده می‌شود. این دستور نیاز به دسترسی <code>root</code> یا <code>sudo</code> دارد.</p>



<p>برای افزودن یک کاربر جدید از دستور زیر استفاده کنید:</p>


<p>sudo useradd test_account</p>



<p>این دستور کاربر جدیدی با نام <code>test_account</code> ایجاد می‌کند. سیستم هیچ خروجی نمایش نمی‌دهد.</p>



<p>برای اطمینان از ایجاد شدن کاربر جدید، می‌توانید از دستور <code>cat</code> برای بررسی محتوای فایل <code>/etc/passwd</code> استفاده کنید.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="740" height="395" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/cat-etc-passwd-useradd.png" alt="" class="wp-image-2292" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/cat-etc-passwd-useradd.png 740w, https://hamravesh.com/blog/wp-content/uploads/2024/04/cat-etc-passwd-useradd-300x160.png 300w" sizes="auto, (max-width: 740px) 100vw, 740px" /></figure>



<p>برای افزودن کاربر به روش تعاملی، می‌توانید از دستور <code>adduser</code> استفاده کنید. این دستور به صورت خودکار یک دایرکتوری home برای کاربر ایجاد می‌کند، یک پوسته پیش‌فرض تنظیم می‌کند و از کاربر می‌خواهد رمز عبور برای خود ایجاد کند. برای ایجاد یک حساب کاربری فعال در لینوکس، دستور زیر را اجرا کنید:</p>


<p>sudo adduser test_account2</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="740" height="399" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/sudo-adduser-test_account2.png" alt="" class="wp-image-2293" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/sudo-adduser-test_account2.png 740w, https://hamravesh.com/blog/wp-content/uploads/2024/04/sudo-adduser-test_account2-300x162.png 300w" sizes="auto, (max-width: 740px) 100vw, 740px" /></figure>



<p>این دستور شما را وارد یک رابط تعاملی می‌کند و در طی فرآیند ایجاد حساب کاربری جدید، راهنمایی‌های لازم را ارائه می‌دهد.</p>



<h3 class="wp-block-heading" id="h-ایجاد-تغییر-در-تنظیمات-کاربر-با-دستور-usermod">ایجاد تغییر در تنظیمات کاربر با دستور usermod</h3>



<p>در لینوکس از دستور <code>usermod</code> برای تغییر مشخصات حساب کاربری استفاده می‌شود. ادمین‌ها می‌توانند با استفاده از آپشن‌های مختلف این دستور، اطلاعات کاربر را به روز کنند:</p>



<ul class="wp-block-list">
<li><code>-d</code> : تغییر دایرکتوری home کاربر</li>



<li><code>-s</code> : تغییر پوسته پیشفرض کاربر</li>



<li><code>-e</code> : تنظیم تاریخ انقضای حساب کاربری</li>



<li><code>-c</code> : افزودن توضیحات به ورودی کاربر</li>



<li><code>-u</code> : تغییر شناسه کاربری (UID)</li>



<li><code>-aG</code> : افزودن کاربر به گروه‌های تکمیلی بدون حذف عضویت‌های قبلی</li>
</ul>



<p>این دستور به شما امکان می‌دهد تا محل دایرکتوری home یک کاربر را تغییر دهید. در اینجا گزینه <code>-d</code> برای تغییر محل دایرکتوری home کاربر به <code>/var/test_account</code> استفاده شده است:</p>


<p>sudo usermod -d /var/test_account test_account</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="740" height="485" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/sudo-usermod-d-var-test_account-test_account.png" alt="" class="wp-image-2294" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/sudo-usermod-d-var-test_account-test_account.png 740w, https://hamravesh.com/blog/wp-content/uploads/2024/04/sudo-usermod-d-var-test_account-test_account-300x197.png 300w" sizes="auto, (max-width: 740px) 100vw, 740px" /></figure>



<p>در این مثال، دایرکتوری خانگی کاربر <code>test_account</code> از <code>/home/test_account</code> به <code>/var/test_account</code> تغییر داده شده است.</p>



<h3 class="wp-block-heading" id="h-حذف-کردن-حساب-کاربری-در-لینوکس-با-userdel">حذف کردن حساب کاربری در لینوکس با userdel</h3>



<p>دستور userdel برای حذف یک کاربر از فایل <code>/etc/passwd</code> استفاده می‌شود. به عنوان مثال، برای حذف کاربر <code>test_account2</code>، دستور زیر را وارد کنید:</p>


<p>sudo userdel test_account2</p>



<p>می‌توان عبارت <code>test_account2</code> را با نام کاربری واقعی جایگزین کنیم که می‌خواهیم حذف شود. دستور <code>userdel</code> فقط کاربر را از فایل‌های سیستمی حذف می‌کند، اما پوشه خانگی و سایر فایل‌های مربوط به آن کاربر را به صورت خودکار پاک نمی‌کند. شما باید به صورت دستی این فایل‌ها را حذف کنید.</p>



<p>برای پاک کردن کامل یک کاربر، از گزینه <code>-r</code> (یعنی recursive) در دستور <code>userdel</code> استفاده کنید. این گزینه علاوه بر حذف کاربر از فایل‌های سیستمی، پوشه خانگی و صندوق پستی آن کاربر را نیز پاک می‌کند. به عنوان مثال، برای پاک کردن کامل کاربر <code>test_account2</code>، دستور زیر را اجرا می‌کنیم:</p>


<p>sudo userdel -r test_account2</p>



<p>معمولاً سیستم عامل لینوکس هنگام حذف کاردن یک کاربر، خروجی یا پیغامی مبنی بر انجام شدن این عملیات نمایش نمی‌دهد. این کار به صورت خاموش انجام می‌شود و شما باید خودتان اطمینان حاصل کنید که کاربر مورد نظر حذف شده است.</p>



<h2 class="wp-block-heading" id="h-دستورات-مدیریت-گروه-های-کاربری-در-لینوکس">دستورات مدیریت گروه‌های کاربری در لینوکس</h2>



<p>در لینوکس، گروه‌های کاربری به مدیریت آسان‌تر مجوزها و قوانین دسترسی برای مجموعه‌ای از حساب‌های کاربری کمک می‌کنند. تغییر در مجوزها یا حقوق دسترسی یک گروه، این تغییرات را برای همه کاربران عضو آن گروه اعمال می‌کند.</p>



<h3 class="wp-block-heading" id="h-ایجاد-گروه-کاربری">ایجاد گروه کاربری</h3>



<p>ایجاد یک گروه کاربری جدید در لینوکس به صورت زیر انجام می‌شود:</p>


<p>sudo groupadd test_group</p>



<p>به جای <code>test_group</code>، نام گروهی که می‌خواهید ایجاد کنید را وارد کنید. سپس برای اطمینان از ایجاد شدن گروه جدید در فایل <code>/etc/group</code>، دستور زیر را اجرا کنید.</p>


<p>getent group test_group</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="747" height="89" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/groupadd.png" alt="" class="wp-image-2305" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/groupadd.png 747w, https://hamravesh.com/blog/wp-content/uploads/2024/04/groupadd-300x36.png 300w" sizes="auto, (max-width: 747px) 100vw, 747px" /></figure>



<p>دستور <code>getent group test_group</code> به شما اطلاعات مربوط به گروه <code>test_group</code> مانند نام و شناسه (ID) این گروه را نشان می‌دهد.</p>



<h3 class="wp-block-heading" id="h-چطور-اعضا-را-به-گروه-اضافه-یا-از-گروه-حذف-کنیم">چطور اعضا را به گروه اضافه یا از گروه حذف کنیم؟</h3>



<p>در لینوکس، وقتی یک کاربر را به یک گروه اضافه می‌کنیم، به طور خودکار تمام مجوزهای مرتبط با آن گروه نیز به کاربر اعطا می‌شود. در سیستم‌های مبتنی بر Debian، می‌توانیم از دستور <code>adduser</code> برای اضافه کردن یک کاربر به یک گروه موجود استفاده کنیم:</p>


<p>sudo adduser test_account test_group</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="742" height="125" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/adduser-to-group.png" alt="" class="wp-image-2306" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/adduser-to-group.png 742w, https://hamravesh.com/blog/wp-content/uploads/2024/04/adduser-to-group-300x51.png 300w" sizes="auto, (max-width: 742px) 100vw, 742px" /></figure>



<p>سیستم عامل لینوکس پس از اجرای دستور اضافه کردن کاربر به گروه، تأیید انجام این عملیات را نشان می‌دهد.</p>



<p>برای افزودن یک کاربر به یک گروه موجود بدون اینکه آن را از گروه‌های فعلی خود خارج کنیم، می‌توانیم از گزینه‌های <code>-a</code> (append) و <code>-G</code> (groups) در دستور <code>usermod</code> استفاده کنیم:</p>


<p>sudo usermod –aG test_group test_account2</p>



<p>برای بررسی اینکه آیا کاربر به گروه مورد نظر اضافه شده است یا خیر، می‌توان از دستور <code>groups</code> استفاده کرد:</p>


<p>groups test_account</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="746" height="91" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/confirm-usedadded-to-group.png" alt="" class="wp-image-2308" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/confirm-usedadded-to-group.png 746w, https://hamravesh.com/blog/wp-content/uploads/2024/04/confirm-usedadded-to-group-300x37.png 300w" sizes="auto, (max-width: 746px) 100vw, 746px" /></figure>



<p>برای حذف یک کاربر از یک گروه خاص در لینوکس، می‌توان از دستور <code>deluser</code> استفاده کرد:</p>


<p>sudo deluser test_account test_group</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="742" height="108" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/deluser.png" alt="" class="wp-image-2309" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/deluser.png 742w, https://hamravesh.com/blog/wp-content/uploads/2024/04/deluser-300x44.png 300w" sizes="auto, (max-width: 742px) 100vw, 742px" /></figure>



<p>سیستم عامل پس از اجرای دستور حذف کاربر از گروه، تأیید انجام این عملیات را نشان می‌دهد.</p>



<h3 class="wp-block-heading" id="h-چطور-تمام-گروه-هایی-که-کاربر-در-آن-ها-عضو-است-را-نمایش-دهیم">چطور تمام گروه‌هایی که کاربر در آن‌ها عضو است را نمایش دهیم؟</h3>



<p>برای مشاهده لیست گروه‌هایی که یک کاربر خاص در آن‌ها عضویت دارد، از دستور <code>id</code> استفاده می‌کنیم:</p>


<p>id test_account</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="742" height="92" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/member-of-groups.png" alt="" class="wp-image-2311" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/member-of-groups.png 742w, https://hamravesh.com/blog/wp-content/uploads/2024/04/member-of-groups-300x37.png 300w" sizes="auto, (max-width: 742px) 100vw, 742px" /></figure>



<p>برای اینکه دستور <code>id</code> فقط نام گروه‌ها را به جای شناسه‌های عددی آن‌ها نمایش دهد، از گزینه‌های <code>-n</code> و <code>-G</code> استفاده می‌کنیم:</p>


<p>id -nG test_account</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="739" height="91" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/see-which-groups-user-is-member-of.png" alt="" class="wp-image-2312" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/see-which-groups-user-is-member-of.png 739w, https://hamravesh.com/blog/wp-content/uploads/2024/04/see-which-groups-user-is-member-of-300x37.png 300w" sizes="auto, (max-width: 739px) 100vw, 739px" /></figure>



<p>این دستور همه گروه‌هایی که یک کاربر عضو آن‌ها است را شامل گروه اصلی و گروه‌های اضافی (تکمیلی) کاربر نمایش می‌دهد.</p>



<h3 class="wp-block-heading" id="h-لیست-کردن-تمام-گروه-ها-و-اعضا">لیست کردن تمام گروه‌ها و اعضا</h3>



<p>اطلاعات مربوط به گروه‌های کاربران در فایل <code>/etc/group</code> لینوکس ذخیره شده است. برای مشاهده نام تمام گروه‌های کاربری، شناسه‌های گروه و اعضای هر گروه، می‌توانید دستور زیر را اجرا کنید:</p>


<p>getent group</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="737" height="515" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/getent-group.png" alt="" class="wp-image-2313" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/getent-group.png 737w, https://hamravesh.com/blog/wp-content/uploads/2024/04/getent-group-300x210.png 300w" sizes="auto, (max-width: 737px) 100vw, 737px" /></figure>



<p>می‌توان از ابزارهایی مثل <code>awk</code> برای پردازش خروجی دستور <code>getent group</code> و استخراج اعضای گروه‌های مختلف استفاده کرد.</p>


<p>getent group | awk -F: &#8216;$4 != &#8220;&#8221; {print $1 &#8220;: &#8221; $4}&#8217;</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="738" height="271" src="https://blog.hamravesh.com/blog/wp-content/uploads/2024/04/awk.png" alt="" class="wp-image-2314" style="width:840px;height:auto" srcset="https://hamravesh.com/blog/wp-content/uploads/2024/04/awk.png 738w, https://hamravesh.com/blog/wp-content/uploads/2024/04/awk-300x110.png 300w" sizes="auto, (max-width: 738px) 100vw, 738px" /></figure>



<p>این دستور فقط گروه‌هایی که دارای اعضا هستند را نمایش می‌دهد و اسامی اعضای هر گروه را با جدا کننده ویرگول (,) به همراه نام گروه چاپ می‌کند. در اینجا <code>awk</code> برای تجزیه و تحلیل خروجی دستور <code>getent group</code> استفاده شده است. پارامتر <code>-F:</code> به <code>awk</code> می‌گوید که از کاراکتر <code>:</code> به عنوان جداکننده فیلدها استفاده کند. شرط <code>$4 != ""</code> باعث می‌شود که فقط گروه‌هایی با اعضا نمایش داده شوند.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>شما اکنون انواع حساب‌های کاربری در لینوکس را درک کرده‌اید، از جمله نقش‌ها، سطوح دسترسی و مجوزهای مربوطه. با استفاده از این اطلاعات، می‌توانید کاربران و گروه‌ها را به طور موثر مدیریت کرده و از بروز مشکلات امنیتی و عملیاتی جلوگیری کنید. همچنین می‌توانید به راهنمای جامع فرمان‌های لینوکس ما مراجعه کنید که شامل یک فایل چک لیست مفید جهت کمک به شما در انجام وظایف روزانه است.</p>
<p>The post <a href="https://hamravesh.com/blog/user-group-management-linux/">مدیریت دسترسی کاربران و گروه‌ها در لینوکس</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/user-group-management-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>آشنایی با دستورات پایه‌ای در لینوکس</title>
		<link>https://hamravesh.com/blog/linux-basic-commands/</link>
					<comments>https://hamravesh.com/blog/linux-basic-commands/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Sun, 04 Feb 2024 14:30:00 +0000</pubDate>
				<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=1968</guid>

					<description><![CDATA[<p>دستورات پایه‌ای و مهم لینوکس کدام‌ها هستند؟ چرا باید از لینوکس استفاده کنیم؟ تمام این پرسش‌ها را در این مطلب از وبلاگ هم‌روش جواب می‌دهیم. </p>
<p>The post <a href="https://hamravesh.com/blog/linux-basic-commands/">آشنایی با دستورات پایه‌ای در لینوکس</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>بسیاری از ما با سیستم عامل‌های مختلف آشنایی داریم و مرسوم‌ترین شیوه برای تعامل با آن‌ها را نیز تجربه کرده‌ایم: رابط کاربری گرافیکی (GUI). ویندوز، مک و لینوکس از جمله سیستم عامل‌هایی هستند که از یک رابط کاربری گرافیکی قدرتمند بهره می‌برند.</p>



<p>اما یکی دیگر از اصلی‌ترین رابط‌های کاربری که برای تعامل با سیستم عامل استفاده می‌شود، CLI یا رابط خط فرمان یا همان ترمینال است. افرادی که بیشتر از این رابط استفاده می‌کنند توسعه دهندگان، مدیران شبکه، متخصصین DevOps و&#8230; هستند. دلیل این موضوع نیز ویژگی‌هایی است که CLI به ما ارائه می‌دهد.</p>



<p>دسترسی مدیریتی کامل‌تر، انجام سریع‌تر تسک‌های زیرساختی، در دسترس بودن در هر شرایطی و&#8230; از جمله مزیت‌های اصلی CLI به نسبت رابط گرافیکی است.</p>



<p>در این مطلب از وبلاگ هم‌روش قصد داریم شما را با لینوکس آشنا کنیم و سپس ساختار دستورات متنی در ترمینال را بررسی کنیم. همچنین در پایان برخی از کاربردی‌ترین دستورات پایه‌ای در لینوکس را به شما معرفی خواهیم کرد.</p>



<h2 class="wp-block-heading" id="h-لینوکس-چیست"><strong>لینوکس چیست؟</strong></h2>



<p>برای اینکه به‌صورت مختصر و مفید با <strong><a href="https://hamravesh.com/blog/category/linux/" target="_blank" rel="noreferrer noopener">لینوکس </a></strong>آشنا شویم، مطالب مربوطه را به‌صورت یک لیست کوتاه درآورده‌ایم تا شما بتوانید با موضوعات اصلی به‌سرعت آشنا شوید:</p>



<ul class="wp-block-list">
<li>لینوکس در سال ۱۹۹۱ توسط<a href="https://en.wikipedia.org/wiki/Linus_Torvalds"> <strong>لینوس توروالدز</strong></a> منتشر شد.</li>



<li>لینوکس به‌تنهایی یک سیستم عامل مستقل نیست، بلکه به‌عنوان یک هسته یا Kernel توسعه داده شده که با قرارگیری در کنار مجموعه‌ای از ابزارهای مختلف، می‌تواند یک سیستم عامل را تشکیل دهد.</li>



<li>لینوکس شامل نسخه‌ها (توزیع‌ یا Distribution) مختلفی می‌شود که هر کدام برای استفاده خاصی توسعه یافته‌اند. برای مثال اوبونتو، دبیان، فدورا، آرچ و&#8230; .</li>



<li>بیشتر کاربرانی که از لینوکس استفاده می‌کنند، افراد حرفه‌ای در حوزه نرم افزار، شبکه و امنیت هستند که کمتر از رابط‌های گرافیکی استفاده کرده و بیشتر زمان کاری خودشان را به استفاده از ترمینال (محیط خط فرمان) مشغول هستند.</li>
</ul>



<p>حال که به‌صورت کلی با چیستی لینوکس آشنا شدید، نیاز است که با اهمیت لینوکس و دلایل محبوبیت آن آشنا شویم.</p>



<h2 class="wp-block-heading" id="h-اهمیت-و-جایگاه-لینوکس-در-دنیای-سیستم-عامل-ها"><strong>اهمیت و جایگاه لینوکس در دنیای سیستم عامل‌ها</strong></h2>



<p>دلایل بسیار زیادی وجود دارد که باعث می‌شود لینوکس از جایگاه ویژه‌ای در بین سیستم عامل‌های مختلف برخوردار باشد. بیایید با چند مورد از اصلی‌ترین این موارد آشنا شویم:</p>



<ul class="wp-block-list">
<li><strong>رایگان و متن باز بودن</strong>: لینوکس یک سیستم عامل رایگان و متن باز (Open Source) است. برای دسترسی به لینوکس نیازی به پرداخت هیچ هزینه‌ای ندارید و همچنین اگر به استفاده کردن از سورس اصلی لینوکس علاقه دارید، می‌توانید از طریق <a href="https://github.com/torvalds/linux"><strong>گیت‌هاب</strong></a> به‌صورت مستقیم به سورس کد لینوکس دسترسی داشته باشید.</li>



<li><strong>سازگاری بالا با DevOps</strong>: لینوکس شامل مجموعه‌ای از ابزارها می‌شود که می‌تواند در فرایند DevOps بیشترین کمک را به شما بکند. همچنین تکنولوژی که داکر براساس آن اجرا می‌شود به‌صورت کامل برپایه لینوکس است. برای مدیریت سرور و اپلیکیشن‌های دیپلوی شده نیز استفاده از ترمینال لینوکس می‌تواند بهره‌وری شما را افزایش دهد.</li>



<li><strong>از توسعه‌دهنده به توسعه‌دهنده</strong>: اغلب کاربرانی که سراغ لینوکس می‌روند توسعه‌دهندگان و برنامه‌نویس‌ها هستند. لینوکس سازوکار‌های بسیاری برای سهولت استفاده برنامه‌نویس‌ها داشته و به همین دلیل اغلب متخصصین این حوزه ترجیح می‌دهند که از لینوکس استفاده کنند.</li>



<li>&nbsp;<strong>در دسترس بودن</strong>: سازگاری بالا با سخت‌افزارهای مختلف و حجم سبک لینوکس باعث شده تا بتوان به‌راحتی از لینوکس در دستگاه‌ها و حالت‌های مختلف استفاده کرد. برای مثال سیستم عامل اندروید از جمله موارد محبوبی‌ است که به صورت کامل از هسته لینوکس استفاده می‌کند.</li>



<li><strong>جامعه کاربری بزرگ و منابع آموزشی کامل: </strong>لینوکس از جمله سیستم عامل‌هایی است که جامعه کاربری فنی بسیار بزرگی داشته و منابع آموزشی کاملی برای یادگیری آن نیز وجود دارد. در نتیجه اگر بخواهید فرایند یادگیری و استفاده از آن را شروع کنید، منابع جامعی برای اینکار پیدا خواهید کرد.</li>
</ul>



<h2 class="wp-block-heading" id="h-آشنایی-با-صفحه-اصلی-ترمینال"><strong>آشنایی با صفحه اصلی ترمینال</strong></h2>



<p>قبل از اینکه دستورات پایه‌ای لینوکس را معرفی کنیم، نیاز است که ابتدا با صفحه اصلی ترمینال آشنا شویم و ساختار آن را بررسی نماییم.</p>



<p>به‌صورت پیشفرض زمانی که پنجره ترمینال را باز می‌کنید با متن زیر روبه‌رو می‌شوید که به آن Prompt می‌گویند:</p>



<pre class="wp-block-code"><code>cjb@Test-Rig:/home$</code></pre>



<p>برای آشنایی با این خط نیاز است که آن را به قسمت‌های مختلفی تقسیم کنیم تا بهتر با آن آشنا شویم:</p>



<ul class="wp-block-list">
<li><strong>cjb</strong>: نام کاربری فردی که وارد لینوکس شده است.</li>



<li>&nbsp;<strong>Test-Rig</strong>: نام کامپیوتر یا هاستی که ترمینال روی آن اجرا می‌شود.</li>



<li>&nbsp;<strong>/home/</strong>: دایرکتوری یا آدرس کنونی که در آن قرار دارید. به‌صورت پیش‌فرض ترمینال در مسیر دایرکتوری home باز می‌شود.</li>



<li><strong>$</strong>: علامت نوع کاربری؛ در این حالت شما کاربر استاندارد هستید و دسترسی‌های root را ندارید. اگر دسترسی روت داشته باشید این علامت به‌صورت # خواهد بود.</li>
</ul>



<p>در ارتباط با دایرکتوری کنونی یا Current Directory منظور همان آدرسی است که در آن حضور دارید. اگر دستوری را در ترمینال وارد کنید، روی این دایرکتوری اعمال می‌شود. برای مثال اگر قصد داشته باشید یک فایل جدید را از طریق ترمینال ایجاد کنید، این فایل درون دایرکتوری کنونی شما ایجاد خواهد شد.</p>



<h2 class="wp-block-heading" id="h-ساختار-دستورات-در-ترمینال-لینوکس"><strong>ساختار دستورات در ترمینال لینوکس</strong></h2>



<p>دستورات لینوکس معمولا براساس یک ساختار استاندارد نوشته می‌شوند، اما در حالت‌هایی ممکن است تغییراتی نیز وجود داشته باشد.</p>



<p>برای اینکه درک درستی از ساختار هر دستور داشته باشیم، ما استانداردترین حالت ممکن را در نظر می‌گیریم:</p>



<pre class="wp-block-code"><code>command &#91;-flag(s)] &#91;-option(s) &#91;value]] &#91;argument(s)]</code></pre>



<ul class="wp-block-list">
<li>&nbsp;<strong>Command</strong>: دستور اصلی که هدف اصلی ما را اجرا می‌کند، در ابتدای این ساختار وارد می‌شود.</li>



<li>&nbsp;<strong>Flag</strong>: شامل گزینه‌هایی می‌شود که روش‌های مختلفی برای اجرا دستورات را در خود دارد. بیشتر اوقات flagها ضروری نبوده و می‌توان بدون آن‌ها نیز دستور مورد نظر را اجرا کرد.</li>



<li>&nbsp;<strong>Option و Argument</strong>: برخی از دستورات برای اینکه به درستی اجرا شوند نیاز به وارد کردن یکسری آرگومان دارند. در بیشتر اوقات این آرگومان، یک آدرس یا Path است که دستور در آن قسمت اجرا می‌شود. برخی از دستورات برای اجرا شدن به آرگومان نیاز ندارند.</li>



<li>یک مثال از این ساختار را در ادامه خواهیم آورد تا به صورت بهتری با این موضوع آشنا شوید:</li>
</ul>



<pre class="wp-block-code"><code>mkdir -v Hello /home/arastoo</code></pre>



<ul class="wp-block-list">
<li>&nbsp;<strong>mkdir</strong>: دستور یا Command اصلی که برای ایجاد دایرکتوری جدید از آن استفاده می‌کنیم.</li>



<li> <strong><code>-v</code></strong>: فلگ <code>-v</code> فلگی غیر ضروری است که بعد از اجرا دستور باعث می‌شود تا یک پیام در ترمینال لینوکس به نمایش گذاشته شود. (بدون استفاده از این فلگ نیز دستور به خوبی کار می‌کند).</li>



<li>&nbsp;<strong>Hello:</strong> نام دایرکتوری (پوشه) که می‌خواهیم آن را ایجاد کنیم.</li>



<li><strong>/home/arastoo</strong>: آدرسی که می‌خواهیم دایرکتوری مورد نظر در آن ایجاد شود. (آرگومان)</li>
</ul>



<h2 class="wp-block-heading" id="h-۱۰-دستور-پایه-ای-در-لینوکس"><strong>۱۰ دستور پایه‌ای در لینوکس</strong></h2>



<p>یک‌سری دستورات پایه‌ای در ترمینال لینوکس وجود دارد که ممکن است به‌صورت روزانه از آن‌ها استفاده کنیم. در ادامه این مطلب قصد داریم راجع به ۱۰ دستور پایه‌ای مورد نظر صحبت کنیم.</p>



<h3 class="wp-block-heading" id="h-دستور-اول-ls"><strong>دستور اول: ls</strong></h3>



<p>یکی از دستوراتی که به‌صورت مرتب به کار گرفته می‌شود، دستور <code>ls</code> است که برای لیست کردن محتوای دایرکتوری کنونی یا همان Current Directory استفاده می‌شود. برای استفاده از این دستور، کافی‌ست عبارت <code>ls</code> را در ترمینال وارد کنید.</p>



<p>همچنین اگر از فلگ <code>-l</code> استفاده کنید می‌توانید لیست محتویات دایرکتوری را همراه با مجوز‌های دسترسی آن مشاهده کنید.</p>



<p>مجموعه دیگری از فلگ‌ها وجود دارد که می‌توانید آن‌ها را با استفاده از <code>--help</code> پیدا کنید:</p>



<pre class="wp-block-code"><code>ls --help</code></pre>



<p><br><strong><em>نکته</em></strong>: برای آشنا شدن با ویژگی‌های هر دستوری، می‌توانید از این ساختار استفاده کنید.</p>



<h3 class="wp-block-heading"><strong>دستور دوم: cd</strong></h3>



<p>زمانی که ترمینال لینوکس را باز می‌کنید، به‌صورت پیش‌فرض در دایرکتوری <code>/home</code> قرار خواهید گرفت. این دایرکتوری فایل‌های مربوط به کاربر لاگین شده (یعنی شما) را در خود جای می‌دهد. بنابراین هر دستوری را که وارد کنید روی این دایرکتوری اعمال می‌شود.</p>



<p>برای اینکه وارد دایرکتوری‌های دیگر شوید و روی آن‌ها دستورات را اعمال کنید، نیاز است که از دستور <code>cd</code> استفاده نمایید.</p>



<p>cd مخفف کلمات Change Directory به معنای تغییر دایرکتوری است و از جمله دستوراتی است که کاربران به‌صورت مداوم از آن استفاده می‌کنند.</p>



<p>برای استفاده از این دستور ابتدا نام دستور و سپس مسیر مورد نظر را وارد می‌کنید:</p>



<pre class="wp-block-code"><code>cd /Documents/docs/</code></pre>



<h3 class="wp-block-heading"><strong>دستور سوم: pwd</strong></h3>



<p>pwd مخفف کلمات Print Working Directory است و یک وظیفه ساده را برعهده دارد: نمایش مسیر دایرکتوری که در آن حضور دارید. برای مثال تصور کنید که نام کاربری شما <code>arastoo</code> بوده و در حال حاضر در دایرکتوری <code>/Documents</code> مشغول کار هستید. در این حالت اگر دستور <code>pwd</code> را وارد کنید به شکل زیر نتیجه نهایی به شما نمایش داده خواهد شد:</p>



<pre class="wp-block-code"><code>/home/arastoo/Documents</code></pre>



<p>برای استفاده از این دستور تنها کافی‌ست عبارت <code>pwd</code> را وارد کنید. به‌صورت پیش‌فرض نیازی به آرگومان یا فلگ خاصی ندارید.</p>



<h3 class="wp-block-heading"><strong>دستور چهارم:&nbsp; mkdir</strong></h3>



<p>برای ایجاد دایرکتوری جدید در مسیر کنونی‌تان می‌توانید از دستور <code>mkdir</code> استفاده کنید. روش استفاده از این دستور بسیار ساده است. تنها کافی‌ست دستور مربوطه را وارد کنید و سپس یک نام برای دایرکتوری مورد نظرتان انتخاب کنید:</p>



<pre class="wp-block-code"><code>mkdir New_Files</code></pre>



<p>در این حالت پس از اجرای دستور، دایرکتوری <code>New_File</code> در مسیر کنونی شما ایجاد خواهد شد.</p>



<h3 class="wp-block-heading"><strong>دستور پنجم: sudo</strong></h3>



<p>به صورت پیشفرض ترمینال لینوکس با کاربر عادی یا استاندارد وارد می‌شود و همانطور که پیشتر گفتیم نماد این کاربر علامت <code>$</code> است. اما اگر بخواهیم که به عنوان کاربر <code>root</code> از ترمینال استفاده کنیم، می‌توانیم با وارد کردن دستور <code>sudo</code> این کار را انجام دهیم.</p>



<p>دو روش کلی برای کار با این دستور وجود دارد. در روش اول ما از این دستور در ابتدای دستورات دیگر استفاده می‌کنیم. دلیل انجام این کار نیز این است که برخی از دستورات برای اجرا شدن به مجوز <code>root</code> نیاز دارند.</p>



<p>برای مثال اگر قصد نصب کردن یک برنامه جدید از طریق ترمینال لینوکس را داشته باشیم به صورت زیر عمل خواهیم کرد:</p>



<pre class="wp-block-code"><code>sudo apt install vlc</code></pre>



<p>دستور <code>apt install</code> برای اجرا شدن به مجوز کاربر <code>root</code> نیاز دارد و به همین دلیل ما در ابتدا خط فرمان دستور <code>sudo</code> را وارد کرده‌ایم. بعد از اجرا کردن این دستور، ترمینال از ما رمز عبور کاربر روت را درخواست می‌کند.<br>روش دیگر استفاده از این دستور تبدیل کردن کاربر عادی به کاربر روت در نشست ترمینال است. برای انجام این کار <code>sudo -i</code> را وارد می‌کنیم. بعد از وارد کردن رمز عبور کاربر روت، علامت <code>$</code> به <code>#</code> تبدیل خواهد شد و همچنین نام کاربری ترمینال تغییر خواهد کرد.</p>



<h3 class="wp-block-heading"><strong>دستور ششم: touch</strong></h3>



<p>از دستور <code>touch</code> برای ایجاد فایل در داخل ترمینال استفاده می‌شود. برای مثال اگر قصد دارید به سرعت یک فایل <code>index.html</code> را ایجاد کنید، کافی‌ست به شکل زیر عمل کنید:</p>



<pre class="wp-block-code"><code>touch index.html</code></pre>



<p>به این شکل دیگر نیازی به خروج از ترمینال و ایجاد فایل جدید از طریق GUI را نخواهید داشت.</p>



<h3 class="wp-block-heading"><strong>دستور هفتم: vi</strong></h3>



<p><code>vi</code> در واقع یک ویرایشگر مبتنی بر ترمینال است که برای ویرایش و مشاهده سریع محتویات فایل‌ها در ترمینال استفاده می‌شود. برای کار با این دستور ابتدا <code>vi</code> را وارد کرده و سپس نام فایل مورد نظر را تایپ کنید. برای مثال:</p>



<pre class="wp-block-code"><code>vi index.html</code></pre>



<p>بعد از این کار یک ادیتور در محیط ترمینال باز می‌شود که می‌توانید متون مورد نظرتان را از طریق آن وارد کنید. در نهایت برای ذخیره کردن فایل ابتدا کلید Esc را روی کیبورد انتخاب کرده و سپس <code>:wq</code> را تایپ کنید.</p>



<p>برای مطالعه کامل ویژگی‌های vi مقاله «<a href="https://www.redhat.com/sysadmin/introduction-vi-editor"><strong>An introduction to the vi editor</strong></a>» را مطالعه کنید. </p>



<h3 class="wp-block-heading"><strong>دستور هشتم: cat</strong></h3>



<p>برای مشاهده محتویات یک فایل به صورت سریع می‌توانید از دستور <code>cat</code> استفاده کنید. برای کار با این دستور کافی‌ست به‌صورت زیر عمل کنید:</p>



<pre class="wp-block-code"><code>cat index.html</code></pre>



<h3 class="wp-block-heading"><strong>دستور نهم: ps</strong></h3>



<p>برای مشاهده تمام پردازش‌های در حال انجام می‌توانید از دستور <code>ps</code> استفاده کنید. این دستور اطلاعاتی شامل آی‌دی برنامه/پردازش در حال اجرا (PID)، ترمینالی که مسئول اجرا کردن برنامه است (TTY)، مدت زمان اجرا شدن (Time) و نام پردازش در حال اجرا (CMD) را به ما نشان می‌دهد.</p>



<p>برای کار با این دستور تنها کافی‌ست عبارت <code>ps</code> را در ترمینال وارد کنید.</p>



<h3 class="wp-block-heading"><strong>دستور دهم: kill</strong></h3>



<p>برای جلوگیری از ادامه کار یک پردازش، می‌توانید از دستور <code>kill</code> استفاده کنید. برای کار با این دستور، ابتدا <code>kill</code> را تایپ کرده و سپس آی‌دی پردازش در حال اجرا (PID) را وارد کنید.</p>



<p>برای مثال اگر آی‌دی برنامه فایرفاکس 545944 باشد، برای متوقف کردن آن می‌توانید به شکل زیر عمل کنید.</p>



<pre class="wp-block-code"><code>kill 545944</code></pre>



<h2 class="wp-block-heading"><strong>جمع‌بندی</strong></h2>



<p>لینوکس یکی از مهم‌ترین سیستم‌عامل‌هایی است که توسط متخصصیان حوزه‌های مختلفی استفاده می‌شود.</p>



<p>یکی از مهم‌ترین دلایلی که از لینوکس به‌صورت گسترده استفاده می‌شود، وجود ترمینال قدرتمند در لینوکس است که به شما امکان تعامل با سیستم‌عامل را به‌صورت متنی (خط فرمان) می‌دهد.</p>



<p>در این مطلب از وبلاگ هم‌روش ما با چیستی لینوکس، ساختار دستورات و همچنین پایه‌ای‌ترین دستورات لینوکسی آشنا شدیم.</p>
<p>The post <a href="https://hamravesh.com/blog/linux-basic-commands/">آشنایی با دستورات پایه‌ای در لینوکس</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/linux-basic-commands/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>آشنایی با توزیع‌های لینوکس و نحوه انتخاب توزیع مناسب</title>
		<link>https://hamravesh.com/blog/what-are-linux-distributions/</link>
					<comments>https://hamravesh.com/blog/what-are-linux-distributions/#respond</comments>
		
		<dc:creator><![CDATA[ارسطو عباسی]]></dc:creator>
		<pubDate>Mon, 04 Dec 2023 13:30:00 +0000</pubDate>
				<category><![CDATA[مقالات]]></category>
		<category><![CDATA[لینوکس]]></category>
		<guid isPermaLink="false">https://hamravesh.com/blog/?p=1518</guid>

					<description><![CDATA[<p>سیستم عامل‌هایی مانند ویندوز و MacOS تنها از یک ساختار بهره می‌برند و به شما اجازه نمی‌دهند تا با دستکاری هسته اصلی این سیستم عامل‌ها، آن را برای کارهای مختلف سفارشی سازی بکنید. اما در دنیای لینوکس همه چیز فرق می‌کند.&#160; از آنجایی که لینوکس یک هسته متن‌باز است، توسعه‌دهندگان می‌توانند با انجام ویرایش‌های مختلف، [&#8230;]</p>
<p>The post <a href="https://hamravesh.com/blog/what-are-linux-distributions/">آشنایی با توزیع‌های لینوکس و نحوه انتخاب توزیع مناسب</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>سیستم عامل‌هایی مانند ویندوز و MacOS تنها از یک ساختار بهره می‌برند و به شما اجازه نمی‌دهند تا با دستکاری هسته اصلی این سیستم عامل‌ها، آن را برای کارهای مختلف سفارشی سازی بکنید. اما در دنیای لینوکس همه چیز فرق می‌کند.&nbsp;</p>



<p>از آنجایی که لینوکس یک هسته متن‌باز است، توسعه‌دهندگان می‌توانند با انجام ویرایش‌های مختلف، نسخه‌ها یا توزیع‌های متفاوتی از لینوکس را ایجاد کرده و حتی آن را با دیگران به اشتراک بگذارند.&nbsp;</p>



<p>اما حالا برای استفاده‌کنندگان لینوکس و افرادی که قصد دارند وارد دنیای لینوکس شوند یک چالش به‌وجود آمده و آن این است که با وجود صد‌ها توزیع مختلف از لینوکس کدام مورد برای ما مناسب است و باید با کدام مورد کار را شروع کرد!</p>



<p>هدف اصلی ما در این مطلب از وبلاگ هم‌روش آشنا کردن شما با لینوکس، توزیع‌های مختلف آن و انتخاب یک توزیع مناسب براساس فاکتورهای مختلف است.</p>



<h2 class="wp-block-heading" id="h-لینوکس-چیست">لینوکس چیست؟</h2>



<p>در یک تعریف عمومی، می‌توان لینوکس را مانند ویندوز یک سیستم عامل دانست، اما در تعریف تخصصی، لینوکس به‌صورت مستقل یک سیستم عامل نیست، بلکه یک هسته یا Kernel است که در کنار ابزارهای دیگری، یک سیستم عامل کامل را تشکیل می‌دهد.</p>



<p>اگر بخواهیم به‌صورت بسیار ساده از اهمیت «هسته یا Kernel» یک مثال بیاوریم می‌توانیم موتور ماشین را در نظر بگیریم. موتور ماشین البته که اصلی‌ترین بخش یک خودرو است اما به‌تنهایی نمی‌تواند نیاز نهایی ما را برطرف کند.</p>



<p>هسته لینوکس اولین بار در سال ۱۹۹۱ توسط <a href="https://fa.wikipedia.org/wiki/%D9%84%DB%8C%D9%86%D9%88%D8%B3_%D8%AA%D9%88%D8%B1%D9%88%D8%A7%D9%84%D8%AF%D8%B2"><strong>لینوس توروالدز</strong></a> به صورت متن باز و رایگان منتشر شد. از آن زمان به بعد ما شاهد حضور لینوکس در بسیاری از حوزه‌های مختلف هستیم. یک مثال جامع که بیشتر ما تجربه استفاده از آن را داریم سیستم عامل اندروید است.&nbsp;</p>



<p>سیستم عامل اندروید که در موبایل‌ها استفاده می‌شود خود یکی از سیستم عامل‌هایی‌ست که از هسته اصلی لینوکس برای اجرا شدن استفاده می‌کند. دلیل این موضوع نیز به متن باز بودن هسته لینوکس برمی‌گردد. در نتیجه لینوکس را می‌توانید در بیشتر جاها مشاهده کنید: سیستم‌ عامل‌های مربوط به خودروهای خودران، تلویزیون‌های هوشمند، دستگاه‌های IoT، دستگاه‌های صنعتی، ربات‌ها و… .&nbsp;</p>



<p>متن باز بودن لینوکس باعث شده تا نسخه‌های بسیار متفاوتی از آن عرضه شود که به این نسخه‌ها اصطلاحا توزیع یا Distribution گفته می‌شود. بیایید با این توزیع‌ها بیشتر آشنا شویم.</p>



<h2 class="wp-block-heading" id="h-منظور-از-توزیع-های-لینوکسی-یا-linux-distributions-چیست">منظور از توزیع‌های لینوکسی یا Linux Distributions چیست؟</h2>



<p>از آنجایی که هسته لینوکس به‌صورت متن‌باز منتشر شده است، شرکت‌ها و افراد بسیار زیادی در گوشه‌و‌کنار دنیا، نسخه‌های مختلفی از سیستم عامل‌های لینوکس که ما به آن‌ها توزیع می‌گوییم را ایجاد کرده‌اند که هر کدام کاربرد متفاوتی را ارائه می‌دهند.&nbsp;</p>



<p>دلیل اینکه صدها توزیع مختلف از لینوکس وجود دارد این است که هر کدام با در نظر گرفتن یک کاربرد اختصاصی ایجاد شده است. برای مثال زمانی که بخواهیم روی یک دستگاه کوچک Raspberry pi یک سیستم عامل را اجرا کنیم با توجه به محدودیت‌های سخت‌افزاری که دارد، نمی‌توانیم از توزیع نسبتا سنگینی مانند اوبونتو استفاده کنیم، به جای آن ما از یک توزیع سفارشی به نام <a href="https://www.raspberrypi.com/software/"><strong>Raspberry pi OS</strong></a> استفاده می‌کنیم.&nbsp;</p>



<p>پس براساس همین مثال می‌توانیم به این نتیجه برسیم که چرا توزیع‌های مختلفی برای لینوکس وجود دارد. اما جدای از اینکه سخت افزار در شکل‌گیری یک توزیع لینوکس نقش دارد، نیازمندی یک شخص یا شرکت نیز تاثیرگذار است.</p>



<p>برای مثال شرکتی را در نظر بگیرید که قصد دارد در دستگاه‌های‌ش از یک سیستم عامل با حداکثر امنیت استفاده کند.</p>



<p>در این حالت استفاده از توزیع‌های همگانی مانند دبیان، مینت، منجارو و… چندان کار درستی نیست. به جای چنین کاری توزیع‌هایی وجود دارد که با در نظر گرفتن لایه‌های مختلف امنیتی توسعه داده شده‌اند که می‌توان از آن‌ها استفاده کرد. توزیع‌های Parrot OS و BlackArch دو نمونه از این دست توزیع‌ها هستند.&nbsp;</p>



<p>همچنین برخی از شرکت‌ها که بودجه زیادی دارند توزیع‌های سفارشی از لینوکس را برای خودشان ایجاد می‌کنند. در این سناریو متخصصین مربوطه تلاش می‌کنند تا با در اختیار گرفتن هسته لینوکس و ابزارهای جانبی یک توزیع با امنیت بالا را ایجاد کنند که کاربران آن شرکت بتوانند در نهایت امنیت از یک سیستم عامل استفاده کنند.</p>



<h2 class="wp-block-heading" id="h-معرفی-محبوب-ترین-توزیع-های-لینوکس">معرفی محبوب‌ترین توزیع‌های لینوکس</h2>



<p>برای اینکه نمونه‌هایی کلی از توزیع‌های لینوکس را در نظر داشته باشید، در این بخش از مطلب قصد داریم شما را با محبوب‌ترین و پر استفاده‌ترین توزیع‌های لینوکس آشنا کنیم.</p>



<p>مواردی را که در ادامه خواهید دید از جمله پایدارترین توزیع‌های لینوکسی هستند که برای نیاز‌های متفاوتی ساخته شده‌اند و تنها یک کاربرد ندارند.</p>



<p>همچنین این موارد بیشتر برای End-Userها بوده و ما قصد نداریم توزیع‌هایی که فقط برای مدیریت سرور استفاده می‌شوند را به شما معرفی کنیم.</p>



<h3 class="wp-block-heading" id="h-توزیع-اول-اوبونتو-یا-ubuntu">توزیع اول: اوبونتو یا Ubuntu</h3>



<p>اوبونتو به‌عنوان محبوب‌ترین و پر استفاده‌ترین توزیع لینوکس شناخته می‌شود که در اصل خود یک توزیع ساخته شده براساس توزیع Debian است که در ادامه در ارتباط با آن نیز آشنا خواهیم شد. اوبونتو تلاش دارد تا یک توزیع مناسب برای کاربران دسکتاپ باشد و تجربه‌ای بی نقص را در این زمینه ارائه کند.&nbsp;</p>



<p>اولین بار این توزیع در سال ۲۰۰۴ توسط شرکت Canonical معرفی شد و هدف اصلی آن ساده کردن استفاده از لینوکس بدون نیاز به درگیر شدن با محیط متنی بود. به همین دلیل اوبونتو در مدت زمان بسیار کوتاهی محبوبیت بالایی را به‌دست آورد.&nbsp;</p>



<p>البته اوبونتو جدای از اینکه یک توزیع محبوب برای کاربران دسکتاپ است، برای مدیریت سرور نیز یکی از انتخاب‌های پایدار و حرفه‌ای است. بسیاری از شرکت‌ها و وبسایت‌ها از اوبونتو به عنوان سیستم عامل سرورشان استفاده می‌کنند.</p>



<p>از ویژگی‌های اصلی اوبونتو می‌توان به موارد زیر اشاره کرد:</p>



<ul class="wp-block-list">
<li>رابط کاربری گرافیکی ساده با قابلیت شخصی‌سازی بالا</li>



<li>امنیت و پایداری بالا</li>



<li>پشتیبانی از Desktop Environmentهای مختلف (محیط‌های دسکتاپی)</li>



<li>مناسب برای کاربران دسکتاپ و سرور</li>
</ul>



<h3 class="wp-block-heading" id="h-توزیع-دوم-دبیان-یا-debian">توزیع دوم: دبیان یا Debian</h3>



<p>دبیان یک توزیع مادر است، به این معنا که توزیع‌های بسیار زیادی هستند که از این توزیع به عنوان توزیع پایه خود استفاده می‌کنند. یکی از دلایل اهمیت بالای دبیان در میزان پایداری بالا آن است که به‌دلیل مشارکت بسیار زیاد توسعه‌دهندگان حرفه‌ای و کسب کردن تجربه بیشتر در دنیای لینوکس است. از این رو می‌توان دبیان را یکی از بی مشکل‌ترین توزیع‌های لینوکسی دانست.</p>



<p>این توزیع اولین بار در ۱۹۹۳ ساخته شد و از آن زمان تا اکنون به بزرگ شدن و توسعه یافتن ادامه داده است. البته نرخ به‌روزرسانی این توزیع به نسبت اوبونتو کمتر است اما بیشتر توزیع‌های امروزی بر پایه آن ساخته می‌شوند.</p>



<p>از ویژگی‌های اصلی دبیان می‌توان به موارد زیر اشاره کرد:</p>



<ul class="wp-block-list">
<li>پایداری بالا و کمترین نرخ باگ</li>



<li>پشتیبانی از محیط‌های دسکتاپ متفاوت</li>



<li>داشتن سیستم مدیریت پکیج حرفه‌ای apt</li>
</ul>



<h3 class="wp-block-heading" id="h-توزیع-سوم-opensuse">توزیع سوم: OpenSUSE</h3>



<p>توزیع OpenSUSE یکی دیگر از توزیع‌های پایدار لینوکس است که از خانواده کاملا متفاوتی از توزیع دبیان توسعه یافته است. بنابراین OpenSUSE را می‌توان از هر توزیع‌ دیگری مستقل دید و در نتیجه مانند اوبونتو به دبیان یا توزیع دیگری وابسته نیست.&nbsp;</p>



<p>اوپن سوزه در سال ۲۰۰۵ برای اولین بار توسط یک تیم آلمانی منتشر شد و تا به اکنون به توسعه یافتن ادامه داده است.&nbsp;</p>



<p>این توزیع یک توزیع Enterprise به حساب می‌آید و بیشتر در مدیریت سرور مورد استفاده قرار می‌گیرد. اما برای کاربران دسکتاپ نیز نسخه‌هایی را ارائه کرده که بیشتر توسط کاربران حرفه‌ای مورد استفاده قرار می‌گیرد. از این جهت ممکن است به عنوان یک کاربر عادی با استفاده کردن از سوزه مشکل داشته باشید.</p>



<p>از ویژگی‌های اصلی اوپن سوزه می‌توان به موارد زیر اشاره کرد:</p>



<ul class="wp-block-list">
<li>دارا بودن ویژگی‌های حرفه‌ای به صورت یکجا</li>



<li>پشتیبانی از محیط‌های دسکتاپ مختلف</li>



<li>داشتن پکیج منیجر منحصر به فرد</li>



<li>پشتیبانی سازمانی حرفه‌ای</li>
</ul>



<h3 class="wp-block-heading" id="h-توزیع-چهارم-فدورا-یا-fedora">توزیع چهارم: فدورا یا Fedora</h3>



<p>فدورا یکی دیگر از منحصر به فردترین توزیع‌های لینوکس است که به خانواده توزیع‌های قبلی که به آن‌ها اشاره کردیم وابسته نبوده و بخشی از پروژه‌های شرکت Red-Hat به حساب می‌آید.</p>



<p>فدورا تنها توزیع شرکت ردهت است که برای کاربران خانگی توسعه یافته و مانند توزیع‌های دیگر از محیط‌های دسکتاپی متفاوتی برخوردار است.&nbsp;</p>



<p>این توزیع اولین بار در سال ۲۰۰۳ عرضه شد، وجود پکیج منیجر منحصر به فرد، پیاده‌سازی مستقل از توزیع‌های دیگر و کاربری آسان از جمله ویژگی‌های توزیع فدورا است که آن‌ را برای عاشقان دنیای Red-Hat جذاب کرده است. از آنجایی که این توزیع توسط یک شرکت حرفه‌ای مدیریت و توسعه داده می‌شود، از جمله پایدارترین توزیع‌ها به شمار می‌رود.</p>



<p>از ویژگی‌های اصلی فدورا می‌توان به موارد زیر اشاره کرد:</p>



<ul class="wp-block-list">
<li>پشتیبانی از محیط‌های دسکتاپی متفاوت</li>



<li>داشتن پکیج منیجر منحصر به فرد</li>



<li>کاربری آسان در عین حرفه‌ای بودن</li>



<li>پایداری و امنیت بالا</li>
</ul>



<h2 class="wp-block-heading" id="h-چه-معیارهایی-برای-انتخاب-یک-توزیع-لینوکسی-وجود-دارد">چه معیارهایی برای انتخاب یک توزیع لینوکسی وجود دارد؟</h2>



<p>وجود توزیع‌های مختلف لینوکس یکی از ویژگی‌ها و خاصیت‌های مهم این سیستم عامل است اما برای افراد مبتدی این موضوع می‌تواند به یک بحث چالش برانگیز تبدیل شود. دلیل آن نیز این است که در شروع کار کردن با لینوکس نمی‌دانند از چه توزیعی استفاده کنند و برای همین در انتخاب یک توزیع بین توزیع‌های مختلف سرگردان می‌‌شوند.&nbsp;</p>



<p>در ادامه قصد داریم به صورت کوتاه راجع به ۳ فاکتوری صحبت کنیم که باعث می‌شوند ساده‌تر یک توزیع را برای استفاده خودتان انتخاب کنید.</p>



<h3 class="wp-block-heading" id="h-کاربری"><strong>کاربری</strong></h3>



<p>یکی از مهمترین فاکتورها برای انتخاب توزیع لینوکس نوع کاربری آن است. هر توزیع برای یک کار خاص طراحی شده است. برای مثال اوبونتو برای استفاده روزمره کاربران دسکتاپ ایجاد شده است اما توزیع BlackArch برای کاربرانی که قصد انجام کارهای مربوط به امنیت را دارند مناسب است.</p>



<h3 class="wp-block-heading" id="h-سخت-افزار"><strong>سخت‌افزار</strong></h3>



<p>&nbsp;بعضی از توزیع‌های لینوکس به منابع بیشتری از سخت‌افزار نیاز دارند در نتیجه اگر کامپیوترتان قدیمی بوده و از سخت افزار چندان قدرتمندی استفاده نمی‌کند بهتر است سراغ توزیع‌های سبک مانند Lubuntu یا Xubuntu بروید.&nbsp;&nbsp;</p>



<h3 class="wp-block-heading" id="h-پشتیبانی-و-مستندات"><strong>پشتیبانی و مستندات</strong></h3>



<p> این مسئله برای افرادی که مبتدی هستند بسیار مهم است، حتما در زمان انتخاب توزیع‌ مورد نظرتان دقت کنید که منابع آموزشی کافی و جامعه کاربری بزرگی داشته باشد تا در صورت برخورد با هر چالشی بتوانید از طریق آن‌ها، مشکلات‌تان را حل کنید. همچنین مطمئن شوید که توزیع‌تان به صورت مداوم بروزرسانی دریافت می‌کند و از رده خارج نشده باشد.</p>



<h2 class="wp-block-heading" id="h-جمع-بندی">جمع‌بندی</h2>



<p>لینوکس یکی از مهمترین تکنولوژی‌هایی‌ست که تقریبا در هر جایی حضور دارد. به عنوان یک هسته یا Kernel لینوکس توانسته در طی سال‌های مختلف در شرکت‌های بسیار زیادی مورد استفاده قرار بگیرد و با ترکیب شدن با نرم‌افزارهای مختلف به یک سیستم عامل تمام عیار تبدیل شود.&nbsp;</p>



<p>دانستن چگونه کار کردن با این سیستم عامل برای بسیاری از حوزه‌های شغلی مربوط به دنیای نرم‌افزار و شبکه به یکی از ضرورت‌ها تبدیل شده و بنابراین نیاز است که حتما آن را یاد بگیرید. ما در این مطلب از وبلاگ هم‌روش سعی کردیم تا شما را با چیستی لینوکس، مفهوم توزیع‌ها، توزیع‌های محبوب لینوکس و فاکتورهایی برای انتخاب یک توزیع آشنا کنیم. در آینده مطالب بیشتری در ارتباط با لینوکس را در این وبلاگ شاهد خواهید بود.</p>



<p></p>
<p>The post <a href="https://hamravesh.com/blog/what-are-linux-distributions/">آشنایی با توزیع‌های لینوکس و نحوه انتخاب توزیع مناسب</a> appeared first on <a href="https://hamravesh.com/blog">بلاگ هم‌روش</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hamravesh.com/blog/what-are-linux-distributions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
