در این درس میخوانید
ترمینال زمانی سادهتر میشود که آن را یک گفتوگوی دقیق با سیستم بدانیم: یک فرمان میفرستیم و خروجی یا خطا را میخوانیم. در درس چهارم، چند عملیات کوچک انجام میدهیم و بعد از هرکدام نتیجه را بررسی میکنیم. بهجای کپیکردن مجموعهای بلند، هر خط را جدا اجرا کنید. محدودهٔ ما پوشهٔ آزمایشی darsavand-lab در خانهٔ کاربر است؛ فایلهای واقعی پروژه را برای این تمرین به کار نبرید.
فرمان، گزینه و آرگومان
در نمونهٔ ls -l /etc، نام فرمان ls است، -l یک گزینه برای نمایش جزئیات و /etc مسیر مورد بررسی است. همهٔ فرمانها گزینههای یکسان ندارند؛ --help یا صفحهٔ man همان فرمان را ببینید. علامتهای prompt مانند $ که گاهی اول مثالهای اینترنتی دیده میشوند، معمولاً جزئی از دستور نیستند. در باکسهای این درس فقط فرمان و توضیح کامنتشده آمده است.
pwd
ls
ls -l
ls --helpمسیر مطلق و نسبی
مسیر مطلق از / آغاز میشود و به محل فعلی وابسته نیست. مسیر نسبی از پوشهٔ فعلی تفسیر میشود. نقطهٔ تنها به پوشهٔ فعلی و .. به والد اشاره میکند. ~ معمولاً خانهٔ حساب فعلی است؛ برای کاربر عادی اغلب زیر /home قرار دارد، اما آن را همیشگی فرض نکنید. /، خانهٔ کاربر و پوشهٔ /root سه مفهوم متفاوتاند. نامهای فایل در محیط معمول Linux به بزرگی و کوچکی حروف حساساند.
mkdir -p ~/darsavand-lab/files
cd ~/darsavand-lab/files
pwd
cd ..
pwd
cd filesگزینهٔ -p در mkdir ساخت مسیرهای لازم را ساده میکند. cd فقط محل فعلی پوسته را تغییر میدهد و فایل را جابهجا نمیکند. اگر نام مسیر فاصله دارد، آن را داخل کوتیشن قرار دهید تا یک آرگومان واحد باشد. اگر خطای No such file or directory گرفتید، املا، حروف و محل فعلی را بررسی کنید؛ استفادهٔ بیدلیل از sudo مسیر اشتباه را درست نمیکند.
یک فایل متنی بسازید و بخوانید
echo "first note" > lesson-04-note.txt
cat lesson-04-note.txt
echo "second note" >> lesson-04-note.txt
cat lesson-04-note.txtدر این نمونه، > خروجی را در فایل مینویسد و اگر همان فایل وجود داشته باشد محتوای آن را جایگزین میکند. >> به انتهای فایل اضافه میکند. این تفاوت کوچک مهم است؛ قبل از نوشتن، نام فایل و هدف را بدانید. پس از خط دومِ افزودن، cat باید دو خط first note و second note را نشان دهد. برای فایل بلند، less امکان مرور صفحهای میدهد و با q از آن خارج میشوید.
کپی و جابهجایی
cp -i lesson-04-note.txt lesson-04-copy.txt
mv -i lesson-04-copy.txt lesson-04-archive.txt
ls -l
cat lesson-04-archive.txtcp نسخهٔ دیگری میسازد و mv میتواند نام یا محل فایل را تغییر دهد. گزینهٔ -i در این نمونه برای برخورد با مقصد موجود، تأیید میخواهد؛ اگر تمرین را دوباره اجرا میکنید، علت پرسش را بخوانید. mv را با cd اشتباه نگیرید: اولی داده را جابهجا یا نامگذاری میکند و دومی فقط محل کار پوسته را عوض میکند. خروجی موفق بعضی فرمانها خالی است؛ نبود پیام، جای بررسی با ls یا cat را نمیگیرد.
ساختار پوشههای مهم را بشناسید
- /home: محل رایج خانهٔ کاربران عادی.
- /etc: تنظیمات بسیاری از برنامهها و سیستم.
- /var/log: محل رایج بخشی از گزارشها؛ همهٔ logها الزاماً فایل متنی اینجا نیستند.
- /usr: بخش مهمی از برنامهها، کتابخانهها و دادههای همراه آنها.
- /tmp: دادهٔ موقت که ممکن است طبق سیاست سیستم پاک شود؛ محل نگهداری فایل مهم نیست.
فایل یا پوشهای که نامش با نقطه آغاز میشود، در نمایش عادی ls پنهان میماند و با ls -a دیده میشود. این قرارداد برای کمکردن شلوغی است و کنترل امنیتی ایجاد نمیکند. تنظیماتی مانند .ssh میتوانند مهم باشند؛ بدون فهم محتوا و مجوزها، آنها را ویرایش نکنید. در درس حسابها و دسترسی، معنی مجوز فایل را بررسی میکنیم.
حذف را فقط در محدودهٔ معلوم تمرین کنید
حذف با فرمانهای ترمینال الزاماً به سطل زبالهٔ دسکتاپ نمیرود. اگر میخواهید فایل کپی همین تمرین را بردارید، ابتدا pwd و نام فایل را بررسی و سپس فرمان زیر را اجرا کنید. -i پرسش تعاملی میدهد و -- پایان گزینهها را مشخص میکند. این مثال فقط برای همان فایل آزمایشی است؛ الگوهای گسترده و حذف بازگشتی برای شروع لازم نیستند.
pwd
ls -l lesson-04-archive.txt
rm -i -- lesson-04-archive.txtتمرین و پاسخ پیشنهادی
داخل darsavand-lab پوشهای به نام lesson-04 بسازید، وارد آن شوید، فایل notes.txt با متن hello بسازید و یک کپی با نام backup.txt ایجاد کنید. با pwd محل و با cat محتوای هر دو را بررسی کنید. پاسخ زیر باید دو فایل هممحتوا بسازد. اگر دوباره اجرا کردید و فایل مقصد موجود بود، رفتار بازنویسی را آگاهانه انتخاب کنید.
mkdir -p ~/darsavand-lab/lesson-04
cd ~/darsavand-lab/lesson-04
echo "hello" > notes.txt
cp -i notes.txt backup.txt
pwd
cat notes.txt
cat backup.txtمنابع انگلیسی
- Ubuntu — The Linux command line for beginners
- https://ubuntu.com/tutorials/command-line-for-beginners
- GNU — Coreutils manual
- https://www.gnu.org/software/coreutils/manual/coreutils.html
- Linux Foundation — Filesystem Hierarchy Standard
- https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
تمرینها و مثالها برای این مجموعه طراحی شدهاند. در درس بعد، حساب کاربری، sudo و مجوزهای فایل را میخوانیم.
پیشنیاز و محیط اجرای مثالها
درس 4 از ۱۰ در مسیر مقدماتی لینوکس و مفاهیم سرور. یک محیط Linux آزمایشی مانند WSL یا VM آماده باشد. تمرینها در ~/darsavand-lab انجام میشوند و به sudo نیاز ندارند؛ قبل از عملیات فایل با pwd محل فعلی را ببینید.
پیشرفت روی همین مرورگر ذخیره میشود.