کتاب راهنمای لینوکس نسخه PDF انگلیسی
۸۴.۸۷۰ تومان قیمت اصلی ۸۴.۸۷۰ تومان بود.۳۸.۴۵۰ تومانقیمت فعلی ۳۸.۴۵۰ تومان است.
مشخصات فایل
- نوع فایل: PDF
- زبان: انگلیسی
- قابل استفاده در: موبایل، تبلت، کامپیوتر
- نوع دسترسی: دانلود فوری بعد از خرید
معرفی Linux Essentials Manual
Linux Essentials Manual یک راهنمای آموزشی برای آشنایی با مبانی سیستمعامل Linux، خط فرمان، ساختار فایلها، مدیریت کاربران، مجوزها، پردازشها، شبکه و مفاهیم متنباز است. فایل این محصول با نام linux-esentials-manual.pdf ثبت شده است و از آنجا که نام فایل به نسخه یا نویسنده مشخصی اشاره قطعی نمیکند، در این توضیحات از نسبت دادن Edition، ناشر یا نویسندهای که در داده محصول اثبات نشده خودداری میکنیم. تمرکز این معرفی بر موضوعات اصلی و قابل اتکای آموزش Linux Essentials است؛ موضوعاتی که برای ورود به مدیریت سیستم، DevOps، برنامهنویسی Backend، امنیت و کار با Server اهمیت دارند.
یادگیری Linux بیش از حفظ کردن چند Command است. هدف اصلی این است که User بفهمد سیستم چگونه سازماندهی شده، File System چه ساختاری دارد، Shell چگونه Command را تفسیر میکند، Permissionها چگونه Access را محدود میکنند و Processها و Serviceها چگونه Resourceهای سیستم را مصرف میکنند. با این پایه، استفاده از Distributionهای مختلف آسانتر میشود، زیرا بسیاری از Conceptها میان Ubuntu، Debian، Fedora، Rocky Linux و سایر خانوادهها مشترکاند.
Linux چیست؟
Linux در معنای دقیق نام Kernel است؛ بخشی از سیستمعامل که Hardware، Process، Memory، Device و System Callها را مدیریت میکند. چیزی که معمولاً «سیستمعامل لینوکس» نامیده میشود، ترکیبی از Kernel و مجموعهای از Toolها، Libraryها، Shellها و Packageهاست.
شناخت تفاوت Kernel و Distribution کمک میکند اصطلاحات فنی دقیقتر فهمیده شوند.
Distribution چیست؟
Distribution یا Distro مجموعهای آماده از Linux Kernel، Package Manager، Desktop یا Server Toolها و Configurationهای پیشفرض است.
Ubuntu، Debian، Fedora و Arch نمونههایی از Distributionهای شناختهشدهاند. تفاوت آنها بیشتر در Package Ecosystem، Release Model و Default Tooling است، نه در اصول پایه Unix-like.
Open Source
یکی از موضوعات مهم Linux Essentials مفهوم Open Source است. Open Source فقط به معنی رایگان بودن Software نیست؛ License تعیین میکند Source Code تحت چه شرایطی قابل مشاهده، تغییر و توزیع است.
Licenseهایی مانند GPL، MIT و Apache شرایط متفاوتی دارند و Developer باید پیش از استفاده تجاری یا Distribution آنها را بشناسد.
Free Software و Open Source
این دو اصطلاح همپوشانی زیادی دارند اما از سنتهای فکری متفاوتی آمدهاند. Free Software بیشتر بر آزادی User تأکید دارد و Open Source اغلب روی مدل توسعه و دسترسی به Source متمرکز است.
Shell چیست؟
Shell محیطی است که Commandهای User را دریافت و اجرا میکند. Bash یکی از Shellهای رایج است، اما zsh، fish و دیگر Shellها نیز وجود دارند.
Shell فقط Prompt نیست؛ Variable، Redirection، Pipeline، Expansion و Scripting نیز بخشی از آن هستند.
Terminal و Shell چه تفاوتی دارند؟
Terminal برنامهای است که Interface متنی را نمایش میدهد؛ Shell برنامهای است که Command را تفسیر میکند. یک Terminal میتواند Shellهای مختلف اجرا کند.
Command Line
CLI در Linux ابزار مهمی برای مدیریت سیستم است. بسیاری از Serverها بدون Desktop Environment اجرا میشوند و مدیریت آنها از طریق Shell انجام میشود.
مهارت CLI Automation، Remote Administration و Troubleshooting را سریعتر میکند.
ساختار یک Command
Command معمولاً شامل نام Program، Optionها و Argumentهاست. برای مثال Option میتواند Behavior را تغییر دهد و Argument فایل یا Resource موردنظر را مشخص کند.
Syntax دقیق هر Tool باید از Manual همان Tool بررسی شود.
man
Command man Manual Page ابزارها را نمایش میدهد. توانایی خواندن man page از مهمترین مهارتهای Linux است، زیرا وابستگی به حفظ کردن Commandها را کم میکند.
–help
بسیاری از Commandها Option --help دارند که خلاصه Syntax و Optionها را نمایش میدهد.
pwd
pwd مسیر Working Directory فعلی را نشان میدهد. دانستن Location قبل از Operationهای حذف یا جابهجایی مهم است.
ls
ls محتویات Directory را فهرست میکند. Optionهای مختلف میتوانند Permission، Owner، Size و فایلهای Hidden را نمایش دهند.
cd
cd Working Directory را تغییر میدهد. استفاده از Path نسبی و مطلق در کار روزمره ضروری است.
مسیر مطلق
Absolute Path از Root یعنی / شروع میشود و Location کامل را مشخص میکند.
مسیر نسبی
Relative Path نسبت به Working Directory فعلی تفسیر میشود. . به Directory فعلی و .. به Parent اشاره میکند.
File System Hierarchy
Linux یک Tree واحد از Fileها و Directoryها دارد. Device، Configuration و Data در بخشهای مختلف این Tree قرار میگیرند.
/etc
Directory /etc معمولاً Configurationهای سیستمی را نگه میدارد. تغییر Fileهای آن باید با Backup و شناخت Service مربوط انجام شود.
/home
Home Directory کاربران عادی معمولاً زیر /home قرار میگیرد و فایلهای شخصی و Configurationهای User را نگه میدارد.
/var
/var برای Data متغیری مانند Log، Cache یا Queue استفاده میشود.
/tmp
/tmp برای فایلهای موقت است و نباید برای Data دائمی به آن تکیه کرد.
/usr
/usr بخش بزرگی از Programها، Libraryها و Dataهای اشتراکی را در خود دارد.
فایلهای Hidden
نام File یا Directory اگر با نقطه شروع شود معمولاً Hidden محسوب میشود. بسیاری از Configurationهای User به این شکل ذخیره میشوند.
mkdir
mkdir Directory جدید میسازد. ساختار Directory مناسب میتواند Project و Backup را منظمتر کند.
touch
touch میتواند File خالی ایجاد کند یا Timestamp فایل را تغییر دهد.
cp
cp برای Copy کردن فایل و Directory استفاده میشود. در Copy recursive باید Option مناسب استفاده شود.
mv
mv هم برای Move و هم Rename استفاده میشود. Overwrite ناخواسته یکی از خطرهای Operation فایل است.
rm
rm File را حذف میکند و معمولاً Recycle Bin ندارد. استفاده از Optionهای recursive و force باید بسیار محتاطانه باشد.
Wildcards
Shell Patternهایی مانند * و ? را برای تطبیق نام فایل Expand میکند. قبل از Commandهای مخرب بهتر است Pattern با ls بررسی شود.
Globbing
Globbing توسط Shell انجام میشود، نه خود Command. این نکته برای فهم رفتار wildcardها مهم است.
cat
cat محتویات File را نمایش یا Streamها را ترکیب میکند. برای File بسیار بزرگ Toolهایی مانند less مناسبتر هستند.
less
less امکان پیمایش فایلهای متنی بزرگ را بدون Load کامل قابل مشاهده فراهم میکند.
head و tail
head ابتدای فایل و tail انتهای آن را نمایش میدهد. tail -f برای مشاهده Live Log بسیار کاربردی است.
Redirection
Shell میتواند Standard Output و Standard Error را به File یا Stream دیگری هدایت کند.
>
Operator > Output را در File مینویسد و معمولاً محتوای قبلی را جایگزین میکند.
>>
>> Output را به انتهای File اضافه میکند.
Standard Error
Error Stream از Standard Output جداست و میتوان آن را مستقل Redirect کرد. این قابلیت در Script و Logging اهمیت دارد.
Pipe
Operator | خروجی یک Command را ورودی Command بعدی میکند. این ایده یکی از قدرتهای اصلی فلسفه Unix است.
grep
grep برای جستوجوی Pattern در Text استفاده میشود. Log Analysis و Filter کردن Output از کاربردهای رایجاند.
Regular Expressions
grep میتواند Patternهای Regular Expression را پردازش کند. Regex ابزار قدرتمندی است اما Pattern پیچیده باید خوانا و تستشده باشد.
find
find Fileها را بر اساس Name، Type، Time، Size و Criteriaهای دیگر جستوجو میکند.
locate
برخی سیستمها Database ایندکسشده برای جستوجوی سریع File دارند. Result ممکن است تا Update شدن Index جدید نباشد.
sort
sort Lineهای Text را مرتب میکند و در Pipelineهای داده متنی کاربرد دارد.
uniq
uniq Lineهای تکراری متوالی را مدیریت میکند و اغلب همراه sort استفاده میشود.
wc
wc تعداد Line، Word یا Byte را میشمارد.
cut
cut Field یا بخشهایی از Line را استخراج میکند و برای Data ساده delimiter-based مناسب است.
Permissionها
Linux Permission را برای Owner، Group و Others مدیریت میکند. سه Permission اصلی Read، Write و Execute هستند.
Read Permission
برای File، Read امکان خواندن محتوا را میدهد. برای Directory معنی آن به Listing Entryها مربوط است.
Write Permission
Write روی File اجازه تغییر محتوا میدهد. روی Directory میتواند امکان ایجاد یا حذف Entry را ایجاد کند و باید با Execute Permission در نظر گرفته شود.
Execute Permission
روی File امکان اجرای Program یا Script را نشان میدهد. روی Directory امکان Traversal مسیر را کنترل میکند.
chmod
chmod Permission را تغییر میدهد و میتوان از Symbolic یا Numeric Mode استفاده کرد.
Numeric Permissions
Read=4، Write=2 و Execute=1 هستند و مجموع آنها Permission هر دسته را نمایش میدهد. برای مثال 755 و 644 الگوهای رایج اما نه مناسب برای همه فایلها هستند.
chown
chown Owner یا Group فایل را تغییر میدهد. معمولاً Privilege بالاتر برای تغییر Owner لازم است.
Users
Linux Multi-user است و هر User شناسه و Permissionهای خود را دارد. جدا کردن Accountها یکی از پایههای Security است.
Groups
Group اجازه میدهد Permission مجموعهای از Userها بهصورت مشترک مدیریت شود.
root
User ریشه Privilege بسیار بالایی دارد. کار روزمره با root Risk اشتباه را افزایش میدهد.
sudo
sudo اجازه میدهد Command مشخص با Privilege بالاتر اجرا شود، در صورتی که Policy سیستم اجازه دهد.
اصل Least Privilege توصیه میکند فقط زمانی که لازم است Privilege افزایش یابد.
Password Security
Password قوی، MFA در سرویسهای پشتیبان و محدود کردن Loginهای غیرضروری بخشی از Hygiene امنیتی هستند.
Process چیست؟
Process نمونه در حال اجرای Program است. هر Process PID، User و Resourceهای خود را دارد.
ps
ps اطلاعات Processها را نمایش میدهد. Optionهای مختلف Viewهای متفاوتی ارائه میکنند.
top
top نمای پویا از CPU، Memory و Processها میدهد. ابزارهای مشابهی مانند htop نیز رایجاند.
Signals
Signal راهی برای ارسال Event به Process است. SIGTERM درخواست پایان Graceful و SIGKILL توقف اجباری ایجاد میکند.
kill
kill در اصل Signal ارسال میکند و فقط «کشتن Process» نیست. بهتر است ابتدا Signal مناسب برای Shutdown عادی استفاده شود.
Foreground و Background
Shell میتواند Job را در Foreground یا Background اجرا کند. Job Control برای Sessionهای Terminal مفید است.
jobs، fg و bg
این Commandها Jobهای Shell را مدیریت میکنند. Process Service-level معمولاً توسط Service Manager مدیریت میشود.
Services
Service Processی است که معمولاً در Background برای ارائه Function سیستم اجرا میشود. Web Server، SSH و Database نمونههایی هستند.
systemd
بسیاری از Distributionهای جدید از systemd برای Service Management استفاده میکنند. Commandهای دقیق باید با Distribution و Version بررسی شوند.
Logs
Log اولین منبع مهم Troubleshooting است. Application، Service و Kernel میتوانند Logهای متفاوت داشته باشند.
Package Management
Distributionها Package Managerهای متفاوت دارند. خانواده Debian از apt/dpkg و خانواده Fedora/RHEL از ابزارهایی مانند dnf/rpm استفاده میکنند.
Concept اصلی شامل Repository، Package، Dependency و Update است.
Repositories
Repository منبع Packageهای امضاشده و مدیریتشده است. افزودن Repository ناشناس میتواند Risk امنیتی ایجاد کند.
Updates
Updateهای Security باید با برنامه مناسب نصب شوند. Server Production ممکن است نیازمند Test و Maintenance Window باشد.
Archive
Toolهایی مانند tar چند File را در Archive واحد جمع میکنند. Compression مفهوم جداگانهای است و میتواند با gzip یا xz ترکیب شود.
tar
tar برای Backup، انتقال File و Source Archive بسیار رایج است. قبل از Extract کردن Archive ناشناس بهتر است محتویات و Pathها بررسی شوند.
Compression
gzip، bzip2 و xz روشهای متفاوت Compression هستند. Trade-off سرعت و Ratio به Tool بستگی دارد.
Environment Variables
Environment Variableها Configuration و اطلاعات Environment را به Process منتقل میکنند.
PATH
Variable PATH Directoryهایی را مشخص میکند که Shell برای پیدا کردن Executable جستوجو میکند.
افزودن مسیر غیرقابل اعتماد به ابتدای PATH میتواند Risk امنیتی داشته باشد.
Shell Variables
Variable Shell الزاماً به Child Process منتقل نمیشود. با export میتوان Variable را Environment کرد.
Quoting
Single Quote و Double Quote رفتار متفاوتی درباره Expansion دارند. اشتباه در Quoting یکی از منابع رایج Bug در Shell Script است.
Command Substitution
با Syntax مناسب میتوان Output یک Command را در Expression دیگر استفاده کرد. Result باید با Quoting درست مدیریت شود.
Shell Scripts
Script مجموعه Commandهایی است که Automation را ممکن میکند. Backup، Deployment و Maintenance نمونههای رایجاند.
Shebang
خط Shebang Interpreter Script را مشخص میکند. Path Interpreter باید با Environment سازگار باشد.
Variables در Bash
در Assignment معمولاً Space اطراف علامت مساوی مجاز نیست. Expansion Variable باید در Contextهایی که Space ممکن است وجود داشته باشد Quote شود.
Conditions
Shell Script میتواند با if Condition را بررسی کند. Comparison فایل، String و Number Syntaxهای متفاوت دارند.
Loops
for و while برای تکرار Taskها استفاده میشوند. Loop روی Filenameها باید Space و Characterهای خاص را بهدرستی مدیریت کند.
Exit Codes
Program در پایان Exit Status برمیگرداند. مقدار صفر معمولاً Success و مقدار غیرصفر Failure را نشان میدهد.
&& و ||
این Operatorها اجرای Command بعدی را بر اساس Success یا Failure قبلی کنترل میکنند و برای Pipelineهای ساده مفید هستند.
Networking Basics
مدیریت Linux اغلب با Network همراه است. IP Address، Port، DNS، Route و Protocolهای TCP/UDP از مفاهیم پایهاند.
IP Address
IP Interface را در Network مشخص میکند. IPv4 و IPv6 Formatهای متفاوتی دارند.
localhost
Loopback برای ارتباط سیستم با خودش استفاده میشود و معمولاً با 127.0.0.1 یا ::1 شناخته میشود.
DNS
DNS نام Domain را به Address و Recordهای دیگر Mapping میکند. مشکل DNS میتواند شبیه مشکل Network Connection دیده شود.
Ports
Port به Service یا Socket خاص روی Host اشاره میکند. باز بودن Port به معنی امن بودن Service نیست.
ping
ping برای بررسی Reachability مبتنی بر ICMP مفید است، اما Firewall ممکن است ICMP را Block کند؛ پس عدم پاسخ همیشه به معنی Offline بودن Host نیست.
SSH
SSH ابزار اصلی Remote Administration امن است. Key-based Authentication و محدود کردن Loginهای غیرضروری Security را بهتر میکند.
SSH Keys
Private Key باید محافظت شود و نباید به اشتراک گذاشته شود. Passphrase میتواند Layer امنیتی اضافه کند.
Network Troubleshooting
برای عیبیابی باید Layerها را جدا بررسی کرد: Interface، IP، Route، DNS، Port و Application.
Storage
Disk و File System مفاهیم جدا هستند. Device Block باید Partition و File System مناسب داشته باشد تا قابل Mount شود.
Mount
Linux File System را در یک Mount Point به Tree اصلی متصل میکند.
df
df فضای File Systemها را گزارش میکند. پر شدن Disk میتواند باعث Failure Serviceها شود.
du
du مصرف فضای Directory و Fileها را اندازه میگیرد و برای پیدا کردن Data بزرگ مفید است.
Inodes
File System علاوه بر Space، تعداد Inode محدود دارد. ممکن است Disk Space آزاد باشد اما Inode تمام شود.
Symbolic Links
Symlink Reference به Path دیگری است. Broken Link زمانی ایجاد میشود که Target حذف یا جابهجا شود.
Hard Links
Hard Link Entry دیگری به همان Inode است و رفتار آن با Symlink متفاوت است.
Text Editors
مدیر Linux باید حداقل یک Editor متنی مانند nano یا vim را برای تغییر Configuration بشناسد.
vim
vim Modal Editor است و Learning Curve دارد، اما روی بسیاری از Serverها در دسترس است.
nano
nano برای User تازهکار سادهتر است و Shortcutهای اصلی را در Interface نمایش میدهد.
Security Principles
امنیت Linux فقط Firewall نیست. Least Privilege، Update، Permission، Service Hardening، Backup و Monitoring همگی مهم هستند.
Least Privilege
User و Service باید فقط Access موردنیاز را داشته باشند. Permission بیش از حد Blast Radius یک Compromise را افزایش میدهد.
Firewall
Firewall Traffic را بر اساس Rule کنترل میکند. Syntax Toolها میان Distributionها متفاوت است، اما اصل محدود کردن Surface مشترک است.
Backups
Backup باید خارج از Copy اصلی نگهداری و Restore آن آزمایش شود. Backupی که Restore نشده فقط یک فرض است.
3-2-1
یک Strategy رایج Backup داشتن چند Copy روی Mediaهای متفاوت و حداقل یک Copy جدا از Location اصلی است.
Monitoring
CPU، Memory، Disk، Network و Service Health باید Monitoring شوند. Alert بدون Threshold منطقی میتواند Noise ایجاد کند.
Troubleshooting
عیبیابی مؤثر از Observation شروع میشود: چه چیزی خراب است، از چه زمانی، چه تغییری انجام شده و چه Errorی ثبت شده است.
تغییر چند چیز همزمان Root Cause را پنهان میکند.
Logs First
قبل از Reinstall یا Restartهای تصادفی بهتر است Log و Status بررسی شوند. Error Message دقیق اغلب مسیر حل را کوتاه میکند.
Documentation
نسخه Command، Distribution و Configuration باید ثبت شوند. دستور کار معتبر روی یک Distro ممکن است روی دیگری متفاوت باشد.
Linux در توسعه نرمافزار
بسیاری از Serverها، Containerها و CI/CD Runnerها روی Linux اجرا میشوند. آشنایی با Shell و Permission برای Developerها مزیت مستقیم دارد.
Linux و Docker
Containerها از قابلیتهای Kernel Linux مانند Namespace و cgroup بهره میگیرند. فهم Process و File System در Debug Container بسیار مفید است.
Linux و Cloud
بخش بزرگی از VMها و Serviceهای Cloud بر Linux تکیه دارند. SSH، Package Management و Network Basics برای Cloud Operations ضروریاند.
Linux و امنیت سایبری
بسیاری از ابزارهای Defensive Security و Network Analysis روی Linux اجرا میشوند. اما مهمتر از Tool، فهم Permission، Process و Log است.
Linux و DevOps
Automation، Shell Scripting، Service Management و Networking از مهارتهای پایه DevOps هستند.
Linux Essentials بهعنوان پایه
محتوای Essentials قرار نیست جای آموزش عمیق System Administration را بگیرد. هدف ساخت Vocabulary و Skillهای پایه برای ادامه مسیر است.
محدودیت نسخه و زمان
Commandهای بنیادی Linux پایدارند، اما Distributionها، Package Managerها، Service Managerها و Objectiveهای آزمونهای آموزشی میتوانند در طول زمان تغییر کنند.
بنابراین مثالهای وابسته به Version باید با Documentation فعلی Distribution و در صورت مطالعه برای Certification، با Objective رسمی همان دوره تطبیق داده شوند.
روش مطالعه پیشنهادی
بهترین روش یادگیری Linux تمرین در محیط واقعی یا VM است. یک Distribution نصب کنید و هر Command را روی Fileهای آزمایشی اجرا کنید.
برای Operationهای حساس مانند rm، chmod و chown از Directory تمرینی استفاده کنید تا اشتباه به Data اصلی آسیب نزند.
تمرین پیشنهادی
- یک User و Group آزمایشی بسازید و Permissionها را بررسی کنید.
- یک Directory Tree ایجاد و با find و grep در آن جستوجو کنید.
- Output چند Command را با Pipe ترکیب کنید.
- یک Shell Script کوچک برای Backup Directory بنویسید.
- Processها و Logهای یک Service را بررسی کنید.
اشتباهات رایج کاربران تازهکار
- اجرای Commandهای مخرب با root بدون بررسی.
- Copy کردن دستور اینترنتی بدون فهم Optionها.
- دادن Permission 777 برای حل سریع مشکل.
- نادیده گرفتن Logها.
- ذخیره Password یا Secret در Script.
- عدم آزمایش Restore Backup.
این راهنما برای چه کسانی مناسب است؟
- کاربران تازهوارد Linux.
- دانشجویان علوم کامپیوتر و شبکه.
- برنامهنویسان Backend و Web.
- افراد علاقهمند به DevOps و Cloud.
- کاربران علاقهمند به مدیریت Server و امنیت پایه.
- کسانی که برای مباحث Linux Essentials مطالعه میکنند.
جمعبندی
Linux Essentials Manual نقطه شروع مناسبی برای یادگیری منطق کار با سیستمهای Linux است. تفاوت Kernel و Distribution، Shell و Terminal، File System، Commandهای پایه، Permission، User و Group، Process، Package، Network و Shell Script مجموعه مهارتهایی هستند که در بسیاری از مسیرهای فنی تکرار میشوند.
ارزش اصلی چنین راهنمایی در ساختن عادت کار دقیق با Command Line است: قبل از اجرا بدانید Command چه میکند، Permission را بیش از نیاز باز نکنید، Log را بررسی کنید، از Data مهم Backup داشته باشید و Configuration وابسته به نسخه را با Documentation همان سیستم تطبیق دهید. این پایه بعداً یادگیری System Administration، DevOps، Cloud، Container و Security را بسیار سادهتر میکند.

نقد و بررسیها
هنوز بررسیای ثبت نشده است.