لینوکس یک سیستمعامل متنباز است که بهواسطه قابلیتهای زیاد و انعطاف پذیری بالا، به یکی از محبوبترین سیستمعاملها در میان توسعهدهندگان، مدیران سیستم، مهندسان DevOps و متخصصان امنیت تبدیل شده است. در مطلب آموزش لینوکس، هدف ما آشنایی با اصول اولیه لینوکس و مفاهیم پایهای آن است تا شما بتوانید به راحتی شروع به استفاده از این سیستمعامل قدرتمند کنید.
لینوکس چیست؟
لینوکس یک سیستمعامل متنباز است که در سال ۱۹۹۱ توسط لینوس توروالدز توسعه داده شد. این سیستمعامل بر پایه هسته یا کرنل لینوکس ساخته شده و به دلیل متن باز بودن، به راحتی قابل دستکاری و سفارشیسازی است. لینوکس برای کاربردهای مختلف مانند دسکتاپ و سرورها استفاده میشود. یکی از ویژگیهای اصلی لینوکس، پایداری، امنیت و کارایی بالا در مدیریت منابع است. همچنین، این سیستمعامل از توزیعهای مختلفی برخوردار است که برخی از آنها مانند اوبونتو، دبیان و فدورا برای کاربران عمومی و برخی دیگر مانند ردهت برای استفاده در محیطهای تجاری طراحی شدهاند. به دلیل متنباز بودن، لینوکس گزینهای مناسب برای توسعهدهندگان و کسانی است که نیاز به کنترل دقیقتری بر سیستمعامل دارند.
برخی پیش نیازهای آموزش لینوکس عبارتند از:
-
یک کامپیوتر یا سرور مجازی لینوکس با لینوکس اوبونتو یا یکی دیگر از توزیع های لینوکس
-
هر سیستم لینوکسی شامل یک خط فرمان از هر نوعی است.
مفاهیم اولیه در آموزش لینوکس

قبل از اینکه وارد مبحث دستورات شویم، لازم است با چند مفهوم کلیدی آشنا شوید که سنگبنای آموزش Linux را تشکیل میدهند. درک این مفاهیم، ادامه مسیر آموزش کامل لینوکس را برای شما بسیار سادهتر خواهد کرد.
- هسته یا کرنل لینوکس: کرنل لینوکس، ارتباط بین سختافزار و نرمافزار را مدیریت میکند. هسته مسئول کنترل پردازنده، حافظه، دیسک و دستگاههای ورودی/خروجی است.
- شل در لینوکس : واسطی که کاربر از طریق آن با سیستم تعامل میکند. رابط شل دستورات را دریافت کرده و به هسته ارسال میکند. Bash (Bourne Again Shell) پرکاربردترین Shell در لینوکس است.
- ترمینال: ترمینال لینوکس محیطی متنی است که شل را اجرا میکند و امکان وارد کردن دستورات را به شما میدهد. امروزه بیشتر کاربران از ترمینالهای شبیهساز گرافیکی استفاده میکنند.
- خط فرمان: رابطی که به شما اجازه میدهد دستورات لینوکس را تایپ و اجرا کنید.
- کاربر روت: قدرتمندترین حساب کاربری در لینوکس که به همه فایلها و تنظیمات سیستم دسترسی دارد. کار با این حساب نیاز به دقت بالا دارد، چون هر تغییر اشتباه میتواند کل سیستم را مختل کند.
یادگیری لینوکس چقدر زمان میبرد؟
یکی از اولین سوالاتی که برای علاقهمندان به آموزش Linux پیش میآید، مدت زمان لازم برای یادگیری آن است. پاسخ این سوال به هدف شما و عمق دانشی که به دنبال آن هستید، بستگی دارد. میتوان مسیر یادگیری را به سه سطح تقسیم کرد:
- یادگیری اصول مقدماتی (چند روز تا چند هفته): در این مرحله مفاهیمی مثل کار با محیط ترمینال، دستورات لینوکس پایهای (ls، cd، pwd و…) و ساختار کلی سیستمفایل را یاد میگیرید.
- سطح متوسط (چند ماه): شامل یادگیری مدیریت کاربران، نصب پکیجها، کار با سرویسها، تسلط بر خط فرمان، مفاهیم کلیدی و آشنایی با Bash Scripting میشود.
- سطح پیشرفته (۱ تا ۲ سال): برای کسب مهارتهای پیشرفته نیاز به تمرین مداوم، اجرای پروژههای واقعی و آشنایی با مفاهیم امنیتی خواهید داشت. در همین مرحله است که بسیاری از متخصصان برای اثبات مهارتهای خود و ورود به بازارهای کار جهانی، به سراغ گذراندن دوره lpic و دریافت گواهینامههای معتبر بینالمللی میروند.
نکته مهم در آموزش لینوکس این است که یادگیری آن یک مسیر مداوم است؛ حتی متخصصان هم همواره در حال یادگیری و بهروزرسانی دانش خود هستند.
آموزش لینوکس مقدماتی
در ادامه به بررسی برخی از مواردی که نیاز است در شروع کار با یکی از توزیعهای لینوکس با آنها آشنا باشید میپردازیم:
نصب لینوکس
اولین قدم در مسیر لینوکس شما نصب یکی از توزیع های لینوکس است. اگر شما مبتدی هستید، اوبونتو یکی از آسانترین و محبوبترین توزیعها برای شروع است. مراحل گلی نصب لینوکس اوبونتو عبارت است از:
-
دانلود فایل ISO اوبونتو: به وبسایت رسمی اوبونتو بروید و جدیدترین نسخه آن را دانلود کنید.
-
ایجاد یک USB قابل بوت: از ابزارهایی مانند Rufus (برای ویندوز) یا Etcher (برای مک/لینوکس) برای ایجاد یک درایو USB قابل بوت استفاده کنید.
-
نصب اوبونتو: سیستم خود را از روی USB بوت کنید و دستورالعملهای روی صفحه را دنبال کنید تا اوبونتو را نصب کنید. میتوانید انتخاب کنید که اوبونتو را کنار سیستم عامل فعلی خود نصب کنید (دوگانه بوت) یا سیستم عامل فعلی خود را با لینوکس جایگزین کنید.
آشنا شدن با ترمینال
لینوکس همهچیز را از طریق دستورات انجام میدهد. ترمینال قدرتمندترین ابزار در سیستم شما است. اگر در ابتدا کمی ترسناک به نظر میرسد با کمی تمرین، به راحتی در آن حرکت خواهید کرد. در دامه به چند دستور لینوکس که هر کاربر مبتدی باید با آنها آشنایی داشته باشد میپردازیم:
pwd
دستور pwd (مخفف “Print Working Directory”) برای نمایش مسیر دایرکتوری فعلی استفاده میشود. این دستور به شما میگوید که در حال حاضر در کدام مسیر یا دایرکتوری از سیستم فایل قرار دارید. این دستور ساده و مفید زمانی که بخواهید موقعیت خود را در سیستم فایل بدانید بسیار کاربردی است.
pwd
خروجی به این صورت خواهد بود:
/home/user
ls
دستور ls برای نمایش لیستی از تمام فایلها و دایرکتوریها در دایرکتوری فعلی استفاده میشود. این دستور به شما کمک میکند تا ببینید چه فایلها و دایرکتوریهایی در مکان جاری وجود دارند. شما میتوانید این دستور را با گزینههایی مانند -l برای نمایش جزئیات بیشتر (حجم، مجوزها و تاریخ تغییرات) و -a برای نمایش فایلهای مخفی نیز استفاده کنید.
ls
خروجی به این صورت خواهد بود:
file1.txt file2.txt directory1
cd
دستور cd (مخفف “Change Directory”) برای تغییر دایرکتوری استفاده میشود. با استفاده از این دستور میتوانید به دایرکتوری دیگری بروید. برای مثال، اگر بخواهید به دایرکتوری خاصی بروید، باید مسیر آن را وارد کنید.
cd /path/to/directory
اگر بخواهید به دایرکتوری هوم خود برگردید، میتوانید از دستور cd ~ استفاده کنید.
mkdir
دستور mkdir برای ایجاد یک دایرکتوری جدید استفاده میشود. شما میتوانید با این دستور یک پوشه جدید ایجاد کنید. مثلا دستور زیر یک پوشه به نام new_folder در دایرکتوری جاری ایجاد میکند.
mkdir new_folder
touch
دستور touch برای ایجاد یک فایل جدید استفاده میشود. اگر فایل مورد نظر از قبل وجود نداشته باشد، این دستور آن را ایجاد میکند. اگر فایل وجود داشته باشد، زمان تغییرات آن را بهروزرسانی میکند.
touch newfile.txt
این دستور یک فایل خالی به نام newfile.txt ایجاد میکند.
cat
دستور cat برای نمایش محتوای یک فایل استفاده میشود. با این دستور میتوانید محتویات یک فایل متنی را به راحتی در ترمینال مشاهده کنید.
cat filename.txt
این دستور محتوای فایل filename.txt را نمایش میدهد.
rm
دستور rm برای حذف فایلها و دایرکتوریها استفاده میشود. اگر بخواهید فایلی را حذف کنید، از این دستور استفاده میکنید. برای حذف دایرکتوریها، میتوانید از گزینه -r (برای حذف بازگشتی) استفاده کنید.
rm filename.txt
این دستور فایل filename.txt را حذف میکند.
cp
دستور cp برای کپی کردن فایلها و دایرکتوریها استفاده میشود. با این دستور میتوانید یک نسخه کپی از یک فایل یا دایرکتوری ایجاد کنید.
cp source.txt destination.txt
این دستور فایل source.txt را به destination.txt کپی میکند.
mv
دستور mv برای جابجایی یا تغییر نام فایلها و دایرکتوریها استفاده میشود. با این دستور میتوانید فایلی را از یک مکان به مکان دیگر منتقل کرده یا نام آن را تغییر دهید.
mv oldname.txt newname.txt
گام 3: مدیریت فرآیندها و منابع سیستم
درک نحوه مدیریت فرآیندها و منابع سیستم برای مدیریت مؤثر سیستم بسیار مهم است. در ادامه به برخی دستورات برای مدیریت منابع میپردازیم:
top
دستور top برای نمایش لیستی از فرآیندهای در حال اجرا استفاده میشود. این دستور به شما کمک میکند تا مصرف CPU، حافظه و سایر منابع سیستم را به صورت لحظهای مشاهده کنید.
top
ps
دستور ps برای نمایش اطلاعات در مورد فرآیندهای فعال استفاده میشود. این دستور به شما امکان میدهد که لیستی از فرآیندهای در حال اجرا به همراه جزئیاتی مانند PID (شناسه فرآیند) و وضعیت آنها مشاهده کنید.
ps aux
kill
دستور kill برای خاتمه دادن به فرآیندها استفاده میشود. برای این کار باید از شناسه فرآیند (PID) آن استفاده کنید. این دستور به شما این امکان را میدهد که یک فرآیند را به صورت دستی متوقف کنید.
kill <PID>
با وارد کردن شناسه فرآیند به جای <PID>، آن فرآیند متوقف خواهد شد.
free
دستور free برای نمایش مصرف حافظه سیستم استفاده میشود. این دستور به شما نشان میدهد که چه مقدار حافظه RAM و swap در سیستم شما استفاده شده است.
free -h
df
دستور df برای نمایش فضای دیسک در سیستم استفاده میشود. این دستور به شما کمک میکند تا ببینید که چقدر از فضای دیسک سیستم شما پر شده است.
df -h
ابزارهای شبکه در لینوکس
لینوکس مجموعهای از ابزارهای شبکه را برای کمک به پیکربندی و رفع مشکلات اتصال شبکه فراهم میکند. برخی دستورات پایه و مقدماتی برای شبکه در لینوکس عبارتند از:
ping
دستور ping برای تست اتصال به یک دستگاه یا میزبان دیگر در شبکه استفاده میشود. این دستور به شما کمک میکند تا بررسی کنید که آیا دستگاه مورد نظر قابل دسترسی است یا خیر.
ping google.com
ifconfig
دستور ifconfig برای نمایش پیکربندی رابطهای شبکه سیستم استفاده میشود. این دستور به شما کمک میکند تا وضعیت اتصال شبکه، آدرس IP و دیگر اطلاعات مرتبط را مشاهده کنید.
ifconfig
netstat
دستور netstat اتصالات شبکه، جدولهای مسیریابی و آمار رابط شبکه را نمایش میدهد.
netstat -tuln
مجوزهای فایل در لینوکس
لینوکس یک سیستم چندکاربره است و مجوزهای فایل برای امنیت سیستم بسیار مهم هستند. هر فایل یا دایرکتوری در لینوکس دارای مجوزهایی است که تعیین میکنند چه کسی میتواند آنها را بخواند، بنویسد یا اجرا کند. دستورات اولیه و مقدماتی مجوزهای دسترسی در لینوکس عبارتند از:
chmod
دستور chmod مجوزهای یک فایل را تغییر میدهد.
chmod 755 filename.txt
chown
دستور chown برای تغییر مالکیت یک فایل یا دایرکتوری استفاده میشود.
chown user:group filename.txt
نصب نرمافزار در لینوکس
نصب نرمافزار در لینوکس به راحتی از طریق پکیج منیجرها مانند apt (برای اوبونتو/دبیان) یا yum (برای ردهت/CentOS) انجام میشود.
نحوه نصب بستهها با استفاده از apt:
sudo apt update
sudo apt install package_name
نحوه حذف بستهها:
sudo apt remove package_name
برخی دستورات پیشرفتهتر لینوکس
با پیشرفت در یادگیری لینوکس، ممکن است بخواهید دستورات پیشرفتهتر و همچنین اسکریپتنویسی را یاد بگیرید. برخی از ابزارها و دستورات قدرتمند که میتوانید آنها را تست کنید عبارتند از:
grep: جستجو برای الگوها درون فایلها. این ابزار برای جستجو در محتوای فایلها بسیار مفید است و میتواند به شما کمک کند تا به سرعت بخشی از اطلاعات مورد نظر خود را پیدا کنید. برای مثال اگر بخواهید الگوی خاصی را در یک فایل متنی جستجو کنید، میتوانید از دستور زیر استفاده کنید:
grep "pattern" filename.txt
find: جستجو برای فایلها و دایرکتوریها بر اساس معیارهای مختلف. شما میتوانید با استفاده از این دستور، فایلها را بر اساس نام، تاریخ تغییرات، اندازه، نوع و بسیاری از ویژگیهای دیگر جستجو کنید.
find /path/to/search -name "filename.txt"
sed: ویرایشگر استریم برای تغییر متن در فایلها. یک ویرایشگر استریم است که به شما اجازه میدهد تا متنها را در داخل فایلها به طور مستقیم و بدون نیاز به ویرایش دستی آنها تغییر دهید. این دستور برای پردازش و تغییر دادهها در فایلها کاربرد فراوانی دارد و به خصوص زمانی که بخواهید تغییرات گستردهای در متنهای زیادی اعمال کنید، بسیار مفید است.
sed 's/oldword/newword/g' filename.txt
مزایای یادگیری لینوکس برای شغل و مهارتهای فردی
شاید بپرسید با وجود سیستمعاملهای کاربرپسند مانند ویندوز، چرا باید زمان خود را صرف آموزش لینوکس کنیم. در ادامه به برخی از مزایای استفاده از سیستم عامل لینوکس میپردازیم:
تقویت جایگاه شغلی
طبق گزارش بنیاد لینوکس (The Linux Foundation) در سال ۲۰۲۲، حدود ۶۶ درصد از مدیران منابع انسانی گفتهاند که آشنایی با لینوکس بیشترین تاثیر را در استخدام دارد. این یعنی اطلاع از نحوه کار با لینوکس میتواند برگ برنده شما در مصاحبههای کاری باشد.
کاربرد گسترده در حوزههای تخصصی
لینوکس در توسعه نرمافزار، امنیت شبکه، مدیریت سیستمها و DevOps کاربرد زیادی دارد. برای مثال، تقریبا تمام وبسایتها و اپلیکیشنهای مدرن، روی یک سرور مجازی لینوکس میزبانی و اجرا میشوند که این موضوع اهمیت یادگیری آن را دوچندان میکند.
انعطافپذیری و کنترل بالا
لینوکس به شما اجازه میدهد سیستم خود را از انتخاب محیط دسکتاپ گرفته تا نصب نرمافزارها و تنظیمات امنیتی، دقیقا مطابق نیازتان پیکربندی کنید.
جمعبندی
لینوکس یک سیستمعامل قدرتمند و متنباز است که در قلب فناوری مدرن قرار دارد. گذراندن دوره لینوکس و کسب مهارت در آن، یک مزیت رقابتی بزرگ در حوزههایی مانند توسعه نرمافزار، امنیت سایبری و مدیریت سیستم محسوب میشود و درک عمیقتری از عملکرد سیستمها به شما میدهد. کار با توزیعهای مختلف و حل چالشهای واقعی، بهترین راه برای به نتیجه رساندن هر دوره Linux و تسلط بر این سیستمعامل قدرتمند است.
مسیر آموزش لینوکس با درک مفاهیم بنیادی آن مانند هسته، شل و ساختار فایلسیستم (FHS) آغاز میشود. پس از آن، تسلط بر ابزارهای خط فرمان برای ناوبری، مدیریت فایلها و ویرایش متن با ویرایشگر nano، مهارتهای عملی و ضروری را تشکیل میدهد که اساس آموزش جامع لینوکس است. برای دستیابی به تسلط کامل بر این سیستمعامل، فقط آشنایی با دستورات کافی نیست. کلید اصلی برای حرفهای شدن، تمرین مستمر، تداوم یادگیری دوره Linux و استفاده عملی از این دانش است.




