بخش ۷ – ساختار کلی دستورات لینوکس
۱. مقدمه
وقتی اولین بار وارد دنیای لینوکس میشی، یکی از چیزهایی که ممکنه کمی گیجکننده باشه، شکل و شمایل دستورات خط فرمانه.
مثلاً وقتی یک کاربر با تجربه این رو تایپ میکنه:
find /home -type f -name "*.txt" -print
برای افراد تازهکار این رشته عجیب از کلمات و خطتیرهها ممکنه شبیه یک معادله ریاضی یا فرمول شیمیایی به نظر بیاد! ولی واقعیت اینه که تمام دستورات لینوکس یک ساختار نسبتاً ثابت و قابل پیشبینی دارن. اگر اون ساختار رو خوب یاد بگیری، حتی قبل از اینکه دستور جدیدی رو یاد بگیری، میتونی حدس بزنی که چطور کار میکنه.
۲. فرمول کلی دستورهای لینوکس
در سادهترین حالت:
command [options] [arguments]
این یعنی:
- command → اسم برنامه یا ابزار
همون چیزی که سیستم باید اجرا کنه. مثال:ls
,cp
,grep
- options → تغییر رفتار دستور
مثل دکمههای تنظیمات برنامه. مثال:-a
,-l
,--recursive
بعضی optionها کوتاه هستن (-a
) و بعضیها بلند (--all
). - arguments → روی چه چیزی کار کنه
مثل فایلها، پوشهها، آدرسها. مثال:myfile.txt
,/home/user
۳. تشبیه ساده
دستور لینوکس مثل اینه که به یک نفر دستور انجام کاری بدی:
"رفیق! (command) برو (-options) این چیزها (arguments) رو بیار."
مثلاً:
cp -v file1.txt /home/test/
cp
= “کپی کن”-v
= “در حین انجام گزارش کار بده” (verbose)file1.txt
= “این فایل رو”/home/test/
= “ببر اونجا”
۴. انواع گزینهها (Options / Flags)
۴.۱. گزینههای کوتاه (Short Options)
- شکل: یک خطتیره + یک حرف
- مثال:
ls -a
🔹 نکته: چند گزینه کوتاه رو میتونی به هم بچسبونی:
ls -la
معادل:
ls -l -a
۴.۲. گزینههای بلند (Long Options)
- شکل: دو خطتیره + یک کلمه
- مثال:
ls --all
🔹 معمولاً راحتتر خوانده میشوند ولی تایپشان بیشتر طول میکشد.
۴.۳. گزینهها با مقدار
برخی optionها نیاز به یک ورودی دارند:
head -n 5 file.txt
-n 5
→ فقط ۵ خط اول فایل را نمایش بده
روش بلند:
head --lines=5 file.txt
۵. آرگومانها (Arguments)
آرگومانها هدف یا داده دستور هستند:
- نام فایل یا پوشه
- آدرس اینترنتی
- عبارت جستجو
مثال:
rm myfile.txt
- آرگومان =
myfile.txt
🔹 نکته مهم:
- اگر مسیر یا نام فایل فاصله دارد، باید در کوتیشن بیاید:
cp "my file.txt" /home/user/
- اگر از کاراکترهای خاص (
$
,!
,*
) استفاده شده، باید escape شود یا در کوتیشن بیاید.
۶. ترتیب execution در لینوکس چگونه است؟
وقتی یک دستور را میزنی، سیستم این مراحل را طی میکند:
- چک میکند آیا این رشته یک دستور داخلی شل (Built-in) است.
- اگر نبود، در مسیرهای تعریف شده در متغیر محیطی
$PATH
جستجو میکند. - اگر پیداش کرد، همان فایل اجرایی را اجرا میکند.
- اگر هیچ جا نبود → خطای
command not found
.
مشاهده PATH:
echo $PATH
پیدا کردن محل اجرای دستور:
which ls
یا:
type ls
۷. دستورات داخلی و خارجی
- داخلیها (Built-in) → بخشی از خود Shell هستن
مثال:cd
,echo
- خارجیها (External) → فایل جداگانه در مسیر سیستم
مثال:/bin/ls
,/usr/bin/cp
رفع ابهام با type
:
type cd
type ls
۸. روشهای یادگیری و کشف گزینههای یک دستور
۸.۱. --help
- سریع و خلاصه:
ls --help
۸.۲. man
- کامل و دقیق:
man ls
🔹 در صفحه man:
- Space → صفحه بعد
- b → صفحه قبل
- q → خروج
- /text → جستجوی “text”
۹. مثالهای مهم
۹.۱. نمونه ساده
ls -l
لیست کرد پوشهها با ستون جزئیات.
۹.۲. ترکیبی از چند گزینه
ls -la /etc
-l
→ نمایش جزئیاتی-a
→ نمایش فایلهای مخفی/etc
→ مسیر آرگومان
۹.۳. گزینه بلند و کوتاه باهم
grep --color -n "bash" /etc/passwd
--color
→ هایلایت نتیجه-n
→ شماره خط"bash"
→ عبارت جستجو/etc/passwd
→ فایل هدف
۱۰. نکات ایمنی مهم
- قبل از اجرای
rm -r
مطمئن شو مسیر درست رو زدی. - از autocomplete با
Tab
استفاده کن تا مسیرها دقیق پر شن. - با
--help
رفتار دستور رو قبل از اجرای واقعی ببین. - اگر شک داری از
echo
یاdry-run
برای تست استفاده کن (در برخی دستورات مثلrsync --dry-run
).
۱۱. تمرین عملی
تمرین ۱ – کمک گرفتن
man cp
cp --help
تمرین ۲ – پیدا کردن مسیر
which bash
تمرین ۳ – آرگومان نام فایل با فاصله
touch "my file.txt"
ls -l "my file.txt"
تمرین ۴ – بررسی نوع دستور
type cd
type ls
۱۲. جمعبندی
- هر دستور یک الگوی سهتایی دارد: نام دستور + گزینهها + آرگومانها
- گزینهها (Options) برای تغییر رفتار دستور استفاده میشوند و به دو صورت کوتاه (
-a
) یا بلند (--all
) هستند - آرگومانها مشخص میکنند دستور روی چه فایلی، مسیر یا دادهای کار کند
- مسیر پیدا کردن دستورات توسط
$PATH
و دستوراتwhich
,type
قابل مشاهده است - برای یادگیری گزینهها از
--help
وman
کمک بگیر - ایمنی را فراموش نکن، مخصوصاً با دستورات حذف و تغییر دادهها