- در این پست مختصرا با چند دستور معمول آشنا خواهید شد.
- نسخهٔ پیدیاف این پست و پست پیشین پیوست شده است.File & Directory Commands
(pwd, ls, cd, cp, mv, rm, rmdir, mkdir)
pwdprint name of working directory
دستور pwd به شما این امکان را میدهد که بدانید در کدام شاخه (directory) قرار دارید. برای آشنایی با directoryهای لینوکس
اینجا را ببینید.
lslist
دستور ls، پوشهها و پروندههای درون یک شاخه را لیست میکند. برای نمونه، دستور
ls ~، محتویات شاخهٔ خانهٔ کاربر را نمایش میدهد. در مورد دستور ls در پستهای بعدی بیشتر خواهید خواند. دستور ls افزودههای زیادی دارد که در زیر به چند مورد آن اشاره شده:
ls -R #به صورت تودرتو محتویات پوشههای داخلی را نیز نمایش میدهد که اصطلاحا به آن نمایش «بازگشتی» میگویند
ls -1 #عدد ۱ میگوید گه خروجی در یک ستون نمایش داده شود
ls -l #جزئیات بیشتری را نمایش میدهد مانند مالک گروه، تعداد پروندههای درون پوشهها و تاریخ تغییرات روی فایلها
ls -a #پروندههای پنهان را نمایش میدهد. پروندههای پنهان، پروندههایی هستند که نام آنها با نقطه شروع میشود
ls -F #با استفاده از نماد * (بخوانید Asterisk) برای پروندههای اجرایی و / برای پوشهها، کار شناسایی محتویات را سادهتر میکند
سوئیچهای r-، S- و t- به ترتیب خروجی را بر حسب وارون الفبایی، سایز و تاریخ مرتبسازی و نمایش میدهند.
نکته: نشانهی
~ که به آن tilde گفته میشود، به شاخهٔ خانهٔ کاربر (home directory) اشاره دارد.
cdchange directory
دستور cd، ترمینال را از شاخهٔ کنونی به شاخهٔ هدف تغییر میبرد. وقتی که ترمینال را باز میکنید، در آغاز در شاخهٔ /home/
user قرار دارد. برای رفتن به شاخههای دیگر از cd استفاده کنید. در اینجا چند نمونه میآوریم:
- رفتن به شاخهٔ ریشه:
cd /- رفتن به شاخهٔ /opt (شاخهٔ opt در شاخهٔ root قرار دارد):
cd /opt
- رفتن به خانهی کاربر:
cd ~
دستور cd وقتی به تنهایی به کار رود، معادل ~ cd است.- رفتن به یک سطح بالاتر از شاخهٔ کنونی:
cd ..
- رفتن به دو سطح بالاتر: ../.. cd
- برگشت به شاخهٔ پیشین:
cd -- برای گذر از میان چندین سطح از شاخهها، نشانی کامل شاخهٔ هدف را بنویسید.
cpcopy
دستور cp، برای رونوشتگیری بهکار میرود.
رونوشتگیری از یک پرونده:
cp <path of file> <new path>
با دستور بالا رونوشت کاملی از پرونده در شاخهٔ مشخص شده در بخش پایانی دستور، اندوخته میشود.
رونوشتگیری از یک پوشه
cp -r <path of folder> <new path>
دستور بالا رونوشتی از هر شاخهای را که به آن بدهید، به همراه تمام پروندهها و زیرشاخههایش در شاخهٔ تازهای که در بخش پایانی دستور مشخص میکنید، میگذارد.
mvmove
دستور mv، دو کارآیی دارد: تغییر نام و جابجایی
- تغییر نام یک پرونده یا پوشه
mv A B
با دستور بالا، پرونده یا شاخهٔ با نام A، نام تازهی B را به خود میگیرد.
- جابجایی یک پرونده یا شاخه
mv <path of file> <new path>
میخواهیم پروندهٔ A.ogg که آن را یک پروندهٔ ویدیویی فرض میکنیم، از خانهٔ کاربر (یعنی ~) به روی میزکار منتقل کنیم. دستور چنین نوشته میشود:
mv ~/A.ogg ~/Desktop
نکته: در هنگام جابجایی یک شاخه یا پرونده، همزمان میتوانید نام آن را نیز تغییر دهید. دستور زیر پروندهٔ A.ogg را از شاخهٔ خانهی کاربر بر میدارد و آن را با نام B روی میزکار کاربر میگذارد:
mv ~/A.ogg ~/Desktop/B.ogg
چگونه یک فایل را از طریق ترمینال میتوان پاک کرد؟rmremove
از دستور rm برای پاک کردن یک پرونده و در صورت استفاده از آپشن -r برای پاک کردن شاخهها (directories) استفاده میشود.
هشدار: به یاد داشته باشید که rm پروندههای پاک شده را به سطل زباله (Trash) نمیبرد. در صورت استفاده از rm، تنها راه بازیابی، ریکاوری اطلاعات از روی دیسک با برنامههای دیگر مانند testdisk میباشد. از اینرو برخی کاربران ترجیح میدهند برای پرهیز از پاک کردن سهوی یک فایل، rm را به صورت rm -i در قالب یک alias برای بش تعریف کنند. در مورد alias
اینجا را ببینید.
+ شکلهای استفاده از دستور:
rm /Path/to/File
با دستور بالا پروندهی مورد نظر پاک میشود. نام پرونده باید به همراه پسوند آن تایپ شود. مثلاً اگر نام پروندهای A.ogg است، دستور rm A عمل نخواهد کرد.
برای پاک کردن یک directory (شاخه)، دستور زیر را بهکار ببرید:
rm -r /The/Target/Path
توجه کنید که باید به جای /The/Target/Path در دستور بالا، آدرس پوشهٔ موردنظرتان را درج کنید. با دستور بالا، شاخهٔ تعیین شده با تمامی پروندهها و زیرشاخههایش پاک میشود.
نکتهها:- دستور rmdir: با این دستور می توانید یک یا چندین پوشهی خالی (empty) را حذف کنید. برای پوشههایی که خالی نباشند عمل نخواهد کرد.
نمونه: برای پاک کردن پوشه هایی با نام های Folder1، Folder2 و Folder3 که همگی خالیاند، دستور را چنین میزنیم:
rmdir Folder1 Folder2 Folder3
- دستور
rm -r میتواند به صورت ترکیبی پوشهها و پروندهها را پاک کند:
rm -r A.ogg B Folder1
که Folder1، پوشه فرض شده است.
- دستور rm و به طور کلی فرآیند عادی پاک کردن در رایانه، پاک کردن فیزیک اطلاعات نیست، زیرا بر روی دیسکهای سخت تنها میتوان نوشت و یا از روی آن خواند. سیستمفایل پارتیشن شما (از نوع ntfs - fat - ext و...) وظیفهٔ آدرسی پروندههای بر روی هارد را بر عهده دارد. در یک مثال ساده و به دور از پیچیدگیهای فنی، موضوع را بیشتر باز میکنیم: پروندهٔ A.ogg را در نظر بگیرید. دستور
rm A.ogg، نام و محل قرارگیری پروندهٔ A.ogg روی پارتیشن را از لیستی که سیستمفایل برای پروندهها ساخته، پاک میکند، اما پروندهٔ A.ogg هنوز در پارتیشن موردنظر بر روی هارد قرار دارد. تفاوتی که با وضعیت قبل از پاک کردن پرونده ایجاد شده در اینجاست که سیستمعامل دیگر نمیداند که این پرونده کجا است، چون در لیست نیست و از اینرو محلی را که پروندهٔ A.ogg به طور فیزیکی در آن قرار گرفته، خالی در نظر میگیرد و ممکن است دادههای بعدی شما را در همان محل آدرسیدهی کند. بنابراین برای پاک کردن کامل پروندهٔ A.ogg از روی هارد، بایستی آن را بازنویسی کنید. دستور shred با افزودهٔ u میتواند این کار را انجام دهد:
shred -u A
با افزودهٔ n میتوانید دفعات بازنویسی را افزایش دهید:
shred -un5 A
اگر میخواهید فرآیند overwrite را ببینید، از افزودهٔ v استفاده کنید بهویژه برای پروندههای بزرگ. shred بازنویسی را تصادفی انجام میدهد، پس اگر میخواهید در آخرین گام بازنویسی، صفرها روی هارد شما نوشته شوند، از افزودهٔ z استفاده کنید:
shred -vuzn5 A
Help Commands
(man, info, apropos)
manmanual
از 'man' برای گرفتن راهنمایی در مورد یک دستور استفاده میشود. دستوری را که می خواهید در مورد آن اطلاعاتی را به دست آورید، با فاصلهی یک نویسه (Character) در جلوی man تایپ و Enter کنید. سپس راهنمای دستور در همان ترمینال نمایش داده میشود. با کلید Spacebar (کلید بزرگ پایین صفحه کلید) می توانید صفحات بخش راهنما را جلو بروید و برای خروج از راهنما حرف Q را روی کیبورد فشار دهید. مثلاْ می خواهیم ببینیم که دستور sudo چه کاری انجام میدهد و شیوهی استفاده از آن چگونه است. پس در ترمینال می نویسیم:
man sudo
یا برای گرفتن راهنمایی درباره نرمافزار بارگیری wget مینویسیم:
man wget
و برای راهنمایی از خود دستور man، طبیعتاً باید نوشت:
man man
وقتی از man روی یک دستور استفاده میکنید، در برگهی راهنما در مقابل نام دستور یک عدد بین دو کمانک نشان داده میشود. این عدد به چه معنا است؟ بخش زیر را از برگهی راهنمای man، در اینجا میگذاریم:
The table below shows the section numbers of the manual followed by the types of pages they contain:
1 -> Executable programs or shell commands
2 -> System calls (functions provided by the kernel)
3 -> Library calls (functions within program libraries)
4 -> Special files (usually found in /dev)
5 -> File formats and conventions eg /etc/passwd
6 -> Games
7 -> Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 -> System administration commands (usually only for root)
9 -> Kernel routines [Non standard]
نکتهها:
- برای جستوجو در سرخط man-pageها از آپشن -k استفاده کنید. نمونه:
man -k "system information"
- اگر میخواهید در متن man-page یک دستور مشخص واژه یا عبارتی را جستوجو کنید، پس از وارد شدن به برگهی راهنمای دستور، کلید slash را روی صفحه کلید بفشارید، واژه/عبارت خود را در دنبالهی آن بنویسید و Enter کنید.
- میتوانید یک راهنمای دستور موردنظرتان را به پروندهی pdf تبدیل کنید:
man -t <COMMAND> | ps2pdfwr - > ~/<COMMAND>.pdf
به جای عبارتهای <COMMAND> نام دستور موردنظرتان را بنویسید. پرندهٔ ساخته شده در شاخهٔ خانهٔ کاربر ذخیره میشود.
apropossearch the manual page names and descriptions
شما نمیتوانید همهی دستورها و کاربردشان را به ذهن بسپارید. apropos اینجاست که به شما کمک کند. به apropos بگویید دنبال چه چیزی میگردید تا دستورهای پیشنهادیاش را به شما بگوید! برای نمونه به apropos میگوییم دستوری برای رونوشت گیری از یک پرونده میخواهیم؟ دستور زیر را در ترمینال میزنیم:
apropos "copy file"
این دستور را اجرا کنید و بُروندهی آن را ببینید.
توجه کنید که apropos مانند man -k عمل میکند، اما با این ویژگی اضافه که wildcardها (با سوئیچ w-) و regexها (با سوئیچ r-) را میفهمد.
** دستور info مستنداتی را که برای دستورها در فرمت پیشنهادی بنیاد گنو آماه شدهاند نمایش میدهد. با info info اطلاعات بیشتری دربارهٔ آن بهدست بیاورید.
Identifying Users
whowho is logged on
دستور who برای مشاهدهی کاربر(ان) کنونی استفاده میشود. این دستور، نام کاربرانی که به سامانه وارد شدهاند، زمان ورود و ... را نمایش میدهد.
optionهای who:
who -a
who -b
who -q
که به ترتیب
a ابتدای all برای مشاهدهی همهی دادهها
b ابتدای boot برای مشاهدهی زمان آخرین بوت شدن سامانه
q برای نمایش تنها نام کاربران حاضر در سامانه و شمارش آنها
برای مشاهدهی سایر optionهای این دستور از دستور man کمک بگیرید:
man whoنکتهها:
- ترمینال را باز کنید و who را فرمان دهید. چرا دو خط را در خروجی نمایش میدهد؟ حال بدون بستن ترمینال کنونی، یک ترمینال دیگر باز کنید و دستور who را دوباره فرمان دهید. اینبار سه خط را در خروجی میبینید! شما ویژگی بزرگ لینوکس یعنی چندکاربره بودن آن را به کار گرفتهاید! هر پنجرهی تازهی ترمینال، یک login تازه است در کنار لاگینی که شما به محیط گرافیکی لینوکس خود داشتهاید.
- اگر میخواهید تنها نام کاربریتان را ببینید،
whoami را فرمان دهید و اگر میخواهید جزئیات ورود تنها خودتان را ببینید،
who am i را فرمان بدهید. اگر 'who am i' را اجرا کردید،
who mom likes را هم فرمان بدهید و خروجی را ببینید و همینطور:
who f g - دستور زیر جزئیات همهٔ ورودهای پیشین را نمایش میدهد:
who -H /var/log/wtmp
- برگهی راهنمای دستور w را نیز ببینید:
man w
catconcatenate
فرمان cat چند پرونده متنی را به دنبال هم میچسباند. کافی است پروندهها را بهدنبال هم فراخوانی کنید. گاهی اوقات از آن برای
به هم چسباندن پروندههای آرشیوی چند تکه شده (مانند zipها) نیز استفاده میشود. اما cat دو استفادهٔ معمول دیگر نیز دارد:
۱. نمایش محتوای پروندههای متنی روی صفحه: کافی است پس از فرمان cat، مسیر پرونده متنی را درج کنید.
۲. ساخت پروندههای متنی: فرمان cat، سپس علامت < و پس از آن نام پروندهای را که میخواهید بسازید، درج کنید. پس از زدن دکمه Enter، متن مورد نظرتان را تایپ کنید. در انتها یک Enter و پس از آن Ctrl+D
cat > ~/Documents/test.txt
با فرمان بالا، وقتی کلیدهای Ctrl+D را در پایان روندی که گفته شد، بفشارید، پروندهٔ test.txt در مسیر ~/Documents با محتوایی که تایپ کردهاید، ساخته میشود.
echodisplay a line of text
فرمان زیر به اندازهٔ کافی گویا است!
echo "Hello World!"
apt
فرمان apt، مدیر بسته (Package Managet) در توزیع اوبونتو است. از وظایف آن میتوان به نصب نرمافزار، حذف نرمافزار و به روزرسانی سیستم اشاره کرد.
sudo apt install gimp
فرمان بالا از ۴ جزء تشکیل شده است. با sudo اجازهٔ دستکاری در سیستم (در اینجا نصب نرمافزار) را میگیرید. سپس مدیر بستهٔ apt را فرامیخوانید. با install خواستهٔ خود را به apt میفهمانید و gimp نرمافزاری است که apt قرار است نصب کند. همانطور که ملاحظه میکنید نیاز نیست خودتان فایل اجرایی نرمافزارها را روی اینترنت از جاهای مختلف (و بعضا غیرقابل اعتماد) دانلود کنید و سپس نصب کنید. کافی است به apt بگویید کدام برنامه را نیاز دارید! اما شاید بخواهید یک برنامه را از روی سیستمتان پاک کنید، پس:
sudo apt remove gimp
فرمان بالا نرمافزار gimp را پاک میکند.
چگونه سیستمتان را بروز رسانی کنید؟ باز apt اینکار را برایتان انجام میدهد. نخست لیست نرمافزارهای مخازن را بهروز کنید:
sudo apt update
نرمافزارها در اوبونتو از طریق اینترنت با مخازنی رسمی -که سرورهایی در نقاط مختلف دنیا هستند- همگام میشوند. به این معنی که اگر نسخهٔ جدیدی برای مثلاً Firefox بیاید، توسط افرادی که به نگهدارنده (maintainer) بستهها معروفاند، بررسی شده و اگر مشکلی نداشته باشد، وارد مخازن اوبونتو میشود. apt برای اینکه بداند نسخهٔ جدیدی از فایرفاکس در مخازن اوبونتو وارد شده، باید آخرین تغییرات مخازن را دریافت کند. sudo apt update آخرین اطلاعات مخزنها را در اختیار apt میگذارد. اما هنوز نرمافزاری بهروز نشده است! برای بهروزرسانی سیستم، پس از دستور بالا دستور زیر را اجرا کنید:
sudo apt upgrade
اکنون به apt گفتهاید که اگر نسخهٔ جدیدتری از نرمافزارهای نصب شده روی سیستمتان در مخازن اوبونتو وجود دارد، آنها را دریافت کرده و جایگزین نسخهٔ قدیمیتر کند
- توزیعهای مختلف، مدیربستههای مختلفی دارند. apt در اوبونتو و دبیان و توزیعهایی که از این دو مشتق شدهاند مانند ElementaryOS، مینت، کالی و... استفاده میشود. توزیع فدورا از مدیر بستهٔ dnf، آرچ از pacman، اوپنسوزه از zypper، نیکساواس از
Nix، جنتو از
portage استفاده میکنند و این لیست به همین موارد محدود نمیشود.