به طور کلی، فایل/دایرکتوری ها در سیستم عامل گنو/لینوکس در قالب الگویی شبیه به «درخت» سازماندهی شده اند؛ به عبارت دیگر، همچون درختی که ابتدا یک شاخه ی اصلی دارد سپس شاخه های دیگر و باز هم شاخه های دیگر به آن متصل می شود، در فایل سیستم لینوکس هم یک شاخه ی اصلی وجود دارد که دایرکتوری root نامیده می شود. دایرکتوری روت حاوی فایل ها و دایرکتوری های زیرشاخه یی است که خود آن ها هم حاوی دایرکتوری های زیرشاخه ی دیگری می باشند.
یکی از تفاوت های اصلی سیستم عامل های مبتنی بر یونیکس با سیستم عاملی همچون ویندوز در این است که در یونیکس ما چیزی تحت عنوان درایوهای C, D, E, F نداریم بلکه همواره یک فایل سیستم بیشتر نداریم که همان دایرکتوری روت است و فضاهای ذخیره سازی مختلف همچون شاخه های مختلفی به دایرکتوری روت وصل می باشند.
پیش از این هم گفتیم که انجام کارهای بسیار دشوار از طریق کامند لاین ممکن می شود؛ در عین حال، خیلی از کارهایی که از طریق کامند لاین میتوان انجام داد، کارهایی هستند که رایج و پرکاربرد میباشند که در ادامه قصد داریم اشاره یی به مهمترین آنها داشته باشیم:
ریبوت کردن و شات داون کردن لینوکس از طریق کامند لاین
اطمینال حاصل کردن از این که سیستم به درستی خاموش شود بسیار حائز اهمیت است چرا که در غیر این صورت، دفعه ی بعدی که سیستم را روش میکنیم ممکن است نتایج غیر قابل انتظاری مشاهده کنیم! برای ریبوت کردن، صرفاً دستور reboot را وارد ترمینال کرده و اینتر می کنیم:
reboot
برای خاموش کردن سیستم هم میتوانیم از دستور poweroff استفاده نماییم:
poweroff
یافتن محل نصب اپلیکیشن ها
به طور معمول، اپلیکیشن های مختلفی که روی لینوکس نصب میکنیم در یکی از مسیرهای bin/، usr/bin/، sbin/ و یا usr/sbin/ نصب می شوند (البته برخی اپلیکیشن ها هم هستند که در مسیر opt/ قرار می گیرند.) یکی از راههای یافتن مسیر اپلیکیشن نصب شده، استفاده از دستور which است. به طور مثال، برای یافتن مسیری که برنامه ی فایرفاکس در آن نصب شده، میتوان از دستور زیر استفاده کرد:
which firefox
به عنوان خروجی دستور فوق داریم:
/usr/bin/firefox
گاهی اوقات کامند which قادر به یافتن مسیر نیست که در چنین مواقعی میتوان از دستور whereis استفاده کرد چرا که این دستور طیف گستردهتری از دایرکتوری ها را می گردد:
whereis firefox
به عنوان خروجی دستور فوق داریم:
firefox: /usr/bin/firefox /usr/lib/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz
دسترسی به دایرکتوری های مختلف از طریق لامند لاین
زمانی که برای اولین بار وارد محیط ترمینال می شویم، دایرکتوری پیش فرضی که در معرض دیدمان قرار میگیرد، دایرکتوری home (هوم یا خانه) است. علامتی که از روی آن می توان تشخیص داد که آیا در دایرکتوری هوم قرار داریم یا خیر، ~ است:
sokanacademy@sokanacademy-inspiron-1545:~$
همان طور که در کامند فوق مشاهده می شود، قبل از علامت $ یک علامت ~ قرار گرفته است که نشان می دهد ما در مسیر هوم قرار گرفته ایم (این علامت Tilde یا «تیلدا» نامیده می شود.) به طور کلی، دستورات اصلی که برای کار با دایرکتوری ها مورد استفاده قرار میگیرند عبارتند از:
کامند کاربرد cd این دستور مخفف واژگان Change Directory به معنی «تغییر دایرکتوری» است که برای رفتن به دایرکتوری home مورد استفاده قرار می گیرد. .. cd رفتن به یک دایرکتوری بالاتر - cd رفتن به دایرکتوری قبلی / cd تغییر دایرکتوری فعلی خود به دایرکتوری root pwd pwd مخفف واژگان Print Working Directory به معنی «چاپ کردن دایرکتوری قرار گرفته در آن» است که برای نمایش نام دایرکتوری که داخل آن قرار داریم مورد استفاده قرار می گیرد.
پس از باز کردن پنجره ی ترمینال سیستم عامل اوبونتو، دستور / cd را وارد می کنیم:
cd /
به عنوان خروجی دستور فوق داریم:
sokanacademy@sokanacademy-inspiron-1545:/$
می بینیم که علامت ~ به علامت / تغییر پیدا کرد و علامت / هم نشان از قرار داشتن در مسیر root یا «ابتدایی ترین جایگاه در فایل سیستم لینوکس» است. راه کار دیگر برای یافتن مسیری که در آن قرار داریم، استفاده از دستور pwd است که در ادامه با این کامند هم بیشتر آشنا خواهیم شد.
آشنایی با مسیرهای Absolute و Relative
همان طور که در جدول فوق مشاهده کردیم، برای تغییر دایرکتوری ها از دستور cd استفاده می کنیم. به طور کلی، ۲ روش برای یافتن Path (مسیر) ها در لینوکس وجود دارد که یکی Absolute (به معنی مطلق) و دیگری Relative (به معنی نسبی) است که در ادامه با هر دوی آنها آشنا خواهیم شد.
مسیرهای Absolute: یک مسیر Absolute مسیری است که از دایرکتوری روت شروع شود، تک تک دایرکتوری ها را می پیماید تا در نهایت به دایرکتوری/فایل مد نظر برسد. به طور کلی، مسیرهای Absolute با علامت / شروع می شوند.
مسیرهای Relative: یک مسیر از نوع Relative از داخل یک دایرکتوری که در آن قرار داریم شروع میشود و هرگز با علامت / شروع نخواهد شد.
به خاطر داشته باشید |
توجه داشته باشیم که علامت ~ اصطلاحاً Tilde نام دارد. |
برای روشنتر شدن این مسأله مثالی می زنیم. فرض کنیم که در دایرکتوری home قرار داریم و قصد داریم وارد دایرکتوری usr/bin/ شویم. برای این منظور، ۲ راهکار پیش رو داریم. برای وارد شدن به این دایرکتوری از طریق روش مسیریابی Absolute داریم:
cd /usr/bin
و از طریق روش مسیریابی Relative داریم:
cd ../../usr/bin
در واقع در روش اول با گذاشتن علامت / دستور می دهیم که مسیردهی باید از محل دایرکتوری root شروع گردد. از آنجا که دایرکتوری usr هم داخل روت قرار دارد، به سادگی به این دایرکتوری و کلیه ی دایرکتوری های زیرشاخه ی آن دسترسی خواهیم داشت.
اما در روش دوم، از آنجا که داخل دایرکتوری home قرار داریم و در اکثر توزیع های لینوکسی یک دایرکتوری دیگر تحت عنوان نام اکانت کاربر -مثلا sokanacademy- قرار دارد و این دایرکتوری هم ۲ سطح پایین تر از root قرار دارد، ابتدا باید به دایرکتوری root اشاره کنیم؛ برای این منظور هم دو بار از علامت /.. استفاده می کنیم. با گذاشتن اولین علامت /.. از داخل دایرکتوری sokanacademy وارد دایرکتوری home می شویم و با قرار دادن علامت /.. دوم، از داخل دایرکتوری home به دایرکتوری root اشاره باز می گردیم؛ به طور کلی، گویی داخل root قرار داریم و از آن پس می توانیم به هر دایرکتوری که تمایل داشتیم ارجاع دهیم. حال به عنوان مثالی دیگر، فرض کنیم که در مسیر زیر قرار داشته باشیم:
/home/sokanacademy/Desktop
در واقع از آنجا که ما سه لایه پایین تر از دایرکتوری root قرار گرفته ایم، برای دسترسی به دایرکتوری usr باید به شکل زیر عمل کنیم:
cd ../../../usr/bin
همان طور که از کامند فوق مشخص است، ما نیاز داریم تا به ازای هر لایه که از دایرکتوری روت پایین تر می آییم، از علائم /.. استفاده کنیم و از آنجا که در مثال فوق ما ۳ سطح پایین تر از روت قرار داریم، ۳ بار علائم /.. را وارد می کنیم.
به طور کلی، در بسیاری از مواقع برای تایپ کردن کمتر، کاربران از مسیرهای Relative استفاده میکنند و برای این کار از میانبرهایی همچون . (دایرکتوری کنونی)، .. (دایرکتوری بالا دستی) و ~ (دایرکتوری هوم) استفاده می کنند. به طور مثال، فرض کنیم که در مسیر usr/ قرار داریم و می خواهیم وارد پوشه ی bin شویم. برای این منظور ۲ راه کار پیش روی ما است:
cd ./bin
که در کامند فوق علامت /. نشان از پوشه یی دارد که داخل آن قرار داریم اما توجه داشته باشیم که در اکثر مواقع می توان این علامت را حذف نموده و از کامند زیر استفاده کرد:
cd bin
نتیجه ی هر دو کامند فوق یکسان بوده و این که ما را وارد دایرکتوری bin می سازند. اگر هم هیچ چیزی پس از دستور cd استفاده ننماییم، این دستور ما را به دایرکتوری هوم اجراع خواهد داد. فرض کنیم که در مسیر روت قرار داریم و برای اطمینال حاصل کردن از روت بودن مسیر، دستور pwd را وارد می سازیم:
sokanacademy@sokanacademy-inspiron-1545:/$ pwd
به عنوان خروجی دستور فوق داریم:
/
که پیش از این گفتیم علامت / حاکی از مسیر روت است. حال دستور cd را بدون قرار دادن هیچ چیزی پس از آن وارد می سازیم:
sokanacademy@sokanacademy-inspiron-1545:/$ cd
در ظاهر به نظر می رسد که در این دستور هیچ کاری انجام نداده است اما اصلا این طور نیست بلکه تغییری در مسیری قرار گیری شما صورت گرفته است. حال مجدد از دستور pwd استفاده می کنیم:
/home/sokanacademy
می بینیم که به مسیر هوم که به صورت پیش فرض حاوی فولدری با نام کاربر اصلی سیستم عامل است -در این مثال sokanacademy- ارجاع داده شدیم. به عنوان راه کاری جایگزین، می توان از علامت ~ به همراه نام کاربری مد نظر هم استفاده کنیم:
sokanacademy@sokanacademy-inspiron-1545:/$ cd ~sokanacademy/
کامند فوق هم نتیجه یی مشابه کامند قبلی خواهد داشت.
نحوه ی اجرای کامندهای قبلی در ترمینال لینوکس
برنامه ی bash که مسئول مدیریت کامندهای وارد شده در ترمینال و اجرای آنها است، این امکان را در اختیار کاربران سیستم عامل گنو/لینوکس میگذارد تا به کامندهایی که در گذشته در ترمینال وارد کردهاند نیز دسترسی داشته باشند.
به خاطر داشته باشید |
این اطلاعات در مسیر bash_history./~ ذخیره میشوند. |
برای دستیابی به کامندهایی که در تاریخچه ی bash ذخیره شدهاند، صرفاً نیاز است تا با کلیدهای Up و Down کیبورد خود بازی کنید تا به آنها دسترسی پیدا نمایید. به عنوان راهکاری جایگزین، میتوانید با وارد کردن دستور history در کامند لاین، به دستوراتی که قبلاً وارد کردهاید دسترسی پیدا نمایید. برای مثال، دستور history را در کامند لاین وارد کرده و خروجی آن را بررسی می کنیم:
...
2002 service apache2 restart
2003 cd /
2004 pwd
2005 histroy
همانطور که ملاحظه میشود، کامندهای ذخیره شده در تاریخچه ی برنامه ی bash از جدیدترین به قدیمی ترین مرتب شده و در معرض دید کاربر قرار میگیرند.
آشنایی با کلیدهای میانبر پرکاربرد در ترمینال
جدول زیر حاوی برخی از پرکاربردترین کلیدهای میانبر در کامند لاین لینوکس است:
کلید میانبر | کاربرد |
Ctrl + L | پاک کردن اطلاعات روی صفحه (به عنوان راه کار جایگزین، از دستور clear نیز می توان استفاده نمود.) |
Ctrl + D | خارج شدن از کامند لاین فعلی |
Ctrl + C | متوقف سازی فرایندی که در حال انجام آن هستیم. |
Ctrl + H | کاربردی همچون دکمه ی Backspace دارد. |
Ctrl + A | رفتن به ابتدای خط |
Ctrl + E | رفتن به انتهای خط |
Ctrl + W | حذف دستور قرار گرفته قبل از Cursor (مکان نما) |
Ctrl + U | حذف دستورات از ابتدای خط تا جایی که Cursor قرار دارد. |
Tab | تکمیل کردن خودکار مسیرها، دستورات و غیره. |