در آموزش حاضر، طبق وعده قبلی بناست که نکات کاربردی برای استفاده راحتتر و سریعتر از خط فرمان لینوکس ذکر شود.
همچنین سعی خواهد شد که مطلب آموزشی وابسته به فرمان بخصوصی از لینوکس نبوده و نکات کلیدی که رعایت آن منجر به تسلط بیشتر بر ترمینال و خط فرمان لینوکس میشود، ارائه شود.
در ابتدا به تعریفی ساده از ترمینال لینوکس خواهیم پرداخت:
ترمینال چیست؟
در گذشته زمانی که کامپیوترهای زیادی وجود نداشت، کاربران مجبور بودند تا برنامههای خود را از طریق درگاههای خاصی که در اصطلاح «ترمینال» نامیده میشدند، وارد کامپیوتر کنند و در نهایت نظارهگر نتیجه کار باشند.
اما امروزه روز به محیطی با حالتی تقریباً متنی، و با ظاهری شبیه به سیستمعامل DOS که بمنظور اجرای فرمانهای نوشتاری و استفاده از رابط خط فرمان (یعنیCLI) درون سیستمعامل گنو/لینوکس اجرا میشود؛ اصطلاحاً «ترمینال» میگویند.
البته نبایست ترمینال را حتی از نظر ظاهری به سیستمعامل سرد، بیروح و سیاه و سفید DOS تشبیه کرد! در حال حاضر میتوان جلوههای رنگی خاصی چه به متن و چه به محیط ترمینال افزود. حتی میتوان تصویر پیشزمینه (بکگراند) آن را نیز تغییر داد و بر درجه شفافیت محیط ترمینال تغییراتی را اعمال نمود.
در سیستمهای لینوکسی کنونی، بطور معمول ترمینال در پنجرهای مجزا در داخل محیط گرافیکی بمنظور اجرای فرمانها توسط کاربر گشوده میشود. اینکار معمولاً در اکثر نسخههای حاضر از توزیعات مختلف لینوکس، از طریق ترکیب کلیدهای Ctrl+Alt+T صورت میگیرد.
* در گذشته ترمینال را «کنسول» نیز مینامیدند.
اعلان (Prompt)
بعد از اینکه پنجره ترمینال را در لینوکس گشودید با چیزی شبیه به تصویر زیر مواجه خواهید شد:
farshid@farshid-MS-7353:~$
این عبارت، اصطلاحاً «اعلان استاندارد سیستمعامل لینوکس» نامیده شده و متشکل از چندین بخش به شرح زیر میباشد:
- بخش اول به شناسه کاربری یعنی User ID که به اختصار UID نامیده میشود اشاره میکند. به عبارت سادهتر نام کاربری شماست که نمایش داده میشود. (در این مثال farshid)
- علامت @ درواقع نمادی جهت جدا کردن نام کاربری با بخش دوم اعلان است.
- بخش دوم نام سیستم (در سرورها، نام سرور) یا کامپیوتر شماست که در سیستم بنده farshid-MS-7353 نام دارد.
- علامت : نیز به نوعی جداکننده نام کاربری و نام سیستم از ادامه عبارت اعلان است.
- بخش سوم به دایرکتوری جاری (شاخهای که در آن هستید) اشاره میکند و بطور پیشفرض به شاخه خانه (Home) کاربر مربوطه اشاره دارد که با نماد ~ تعریف میشود.
- بخش آخر نیز به نوع کاربر اشاره میکند که منظور از علامت $ کاربر عادی است و درصورتیکه بجای آن، علامت # ظاهر شود؛ کاربر از نوع ریشه (root) میباشد.
* کاربر ریشه گاهی اوقات Super User نیز نامیده میشود.
حساسیت لینوکس نسبت به بزرگ و کوچکی حروف
همانطور که قبلاً هم اشاره شده بود، خاطر نشان میکنم که سیستمعامل ویندوز در نامگذاریها (بطور معمول در نامگذاری فایلها و پوشهها) بین حروف کوچک و بزرگ تفاوتی قائل نمیشود٬ امری که در گنو/لینوکس صادق نیست.
اگر در ویندوز پوشههای «temp»٬ «Temp»٬ «TEMP» و «teMp» در یک مسیر باشند٬ یکسان تلقی میشوند و در حین ساخت هر یکی از این پوشهها در کنار دیگری پیغام معروف جایگزینی (Replace) از شما پرسیده خواهد شد! اما در لینوکس این چهار پوشه٬ چهار پوشه متمایز و مستقل محسوب میشوند حتی اگر در یک مسیر قرار گیرند.
این مسأله بطور تعمیم یافته در خط فرمان نیز حکمفرما است و رابط خط فرمان (CLI) نیز به بزرگی و کوچکی حروف حساس میباشد. لذا در حین استفاده از خط فرمان و ترمینال لینوکس این نکته را در نظر بگیرید.
همچنین توجه داشته باشید که اکثریت قریب به اتفاق فرمانهای لینوکس با حروف کوچک نوشته میشوند. دقت در این نکته میتواند از نمایش پیغام خطای 'command not found' که ناشی از اشتباهات تایپی (نوشتن فرمانها با حروف بزرگ) شماست، جلوگیری نماید.
تکمیل خودکار فرمانها با کمک کلید Tab
آیا برای تایپ سریعتر در فرمانهای نسبتاً طولانی و در برخی موارد، حتی چندخطی میبایست تایپیست ماهری بود؟! آیا باید برای رسیدن به این مقصود، سرعت تایپ خود را بالا ببریم؟!
پاسخ منفی است! شما میتوانید با کمک کلید Tab فرمانها را بطور خودکار تکمیل نمایید و از تایپ مستقیم آنها پرهیز کنید.
اگر قسمتی از فرمان را تایپ نموده و سپس دکمه tab را بفشارید در صورتی که فرمان یکتا باشد، یعنی فرمان دیگری نباشد که با حروف تایپ شده آغاز شود؛ ترمینال به صورت خودکار، تکمیل شده فرمان ناتمام را شناسایی کرده و ادامه آن را درج مینماید. در غیر این صورت اگر با فشردن یکبار کلید Tab، فرمان بطور خودکار کامل نشد ممکن است حروف تایپ شده در ابتدای نام چندین فرمان مشترک باشد که در این صورت اگر Tab را دوباره فشار دهید، (فشردن دوبار پشت سرهم کلید Tab) تمام فرمانهایی که با ورودی شما همخوانی داشته باشند نمایان شده و لیست میگردند. درواقع خط فرمان، فرمانهای منطبق بر حروف تایپ شده توسط شما را به شما پیشنهاد داده و به نوعی فرمان فراموش شده از حافظه ذهنتان را یادآوری مینماید! در انتها اگر Tab دوم هم نتیجهای را در بر نداشت، این معنا را میدهد فرمانی که با حروف شما آغاز شود، وجود ندارد و آنچه که تایپ نمودهاید، اشتباه است.
همچنین استفاده از کلید Tab در تکمیل نام فایلها و پوشهها نیز در خط فرمان کاربرد دارد (به همان شکلی که پیشتر شرح داده شد) و هیچ نیازی نیست که نامهای طولانی فایلها و پوشههای خود را کاراکتر به کاراکتر در خط فرمان تایپ نمایید!
عمل کپی فرمانها در خط فرمان
تصور غلط «خط فرمان با ماوس بیگانه است!» را فراموش کنید! شما براحتی میتوانید فرمانهایی را که در محیطی متنی تایپ شدهاند (معمولاً در صفحات وب در رابطه با آموزش لینوکس) کپی کرده و از طریق ماوس، یعنی کلیک راست در نقطهای از خط فرمان و انتخاب گزینه Paste فرمانها را وارد خط فرمان نموده و نهایتاً کلید اینتر را بفشارید.
همینطور برای چسباندن (Paste) متن از قبل کپی شده، میتوانید از فشردن کلید اسکرول ماوس (کلید وسط) بجای کلیک راست و Paste کردن، استفاده نمایید.
عکس این قضیه نیز در خط فرمان صادق است. درواقع شما میتوانید از طریق ماوس و یا صفحهکلید، فرمانی را (حتی به همراه خروجی آن) توسط عمل کلیک راست و انتخاب گزینه Copy اصطلاحاً کپی نمایید و در هر محیط متنی که مایل بودید (مثلاً ویرایشگر متن، فورومهای اینترنتی و یا وبلاگ آموزشیتان) Paste نموده و از آن استفاده کنید.
History خط فرمان
گاهی لازم است تا فرمانهایی را که قبلاً استفاده شده، مجدداً به همان شکل و یا با اندکی تغییر مورد استفاده قرار داد. برای این کار میتوان از History خط فرمان استفاده کرد. History محلی است که ۱۰۰۰ فرمان پایانی را که شما اجرا نمودهاید، نگهداری میکند و میتوانید براحتی با استفاده از کلیدهای جهتنمای بالا و پایین در خط فرمان، به ترتیب به سمت عقب و جلو حرکت نموده و مجدداً آنها را اجرا کنید. ۱۰۰۰ فرمان پایانی موجود در بخش History حتی با خاموش کردن سیستم نیز از بین نمیروند و این نکته کوچک میتواند یکی از مهمترین خصیصههای خط فرمان باشد!
ترکیب کلیدهای Ctrl+C
کاربرانی که از پلتفرمهای ویندوزی به لینوکس مهاجرت میکنند؛ طبق عادت ترکیب کلیدهای Ctrl+C را مختص عمل کپی میدانند. در محیط گرافیکی لینوکس این کلیدها بمنظور عمل کپی مورد استفاده قرار میگیرند، اما در ترمینال و خط فرمان این کلیدها معنای دیگری دارند و وظیفهای غیر از عمل Copy را انجام میدهند.
درواقع در صورتی که فرمان یا برنامهای توسط ترمینال در حال اجرا باشد و شما کلیدهای ترکیبی Ctrl+C را بفشارید، فرمان یا برنامه متوقف (بسته) میشود و اصطلاحاً فرآیند مربوطه Break میشود.
کلیدهای میانبر برای اعمال Copy و Paste
ضمن دقت در استفاده از کلیدهای Ctrl+C، میتوانید از ترکیب کلیدهای Ctrl+Shift+C و Ctrl+Shift+V به ترتیب برای عمل کپی (Copy) و چسباندن (Paste) در خط فرمان، بهره ببرید.
تایپ رمز عبور در خط فرمان
با توجه به اشاراتی که در آموزشهای قبلی شده، گاهی لازم است از کاربر عادی به کاربر ریشه سوئیچ کرده و در مواردی با حق دسترسی root فرمانی را اجرا کنیم.
این عمل با فرمان پرکاربرد sudo انجام میشود و از آنجایی که بنا نیست در این آموزش فرمان خاصی مورد بحث قرار بگیرد؛ به ذکر نام آن بسنده کرده و عملکرد فرمان sudo شرح داده نخواهد شد.
در تغییر کاربر در خط فرمان و یا در تغییر حق دسترسی، خط فرمان از شما رمز عبور مربوطه را خواستار میشود.
در محیط ترمینال٬ هنگام تایپ رمز٬ برای امنیت بیشتر کاراکترهای در حال تایپ حتی بصورت علامت ستاره (دایره توپر) نشان داده نمیشوند. لذا لزومی به نگرانی از بابت کار نکردن صفحهکلید نیست! و ادامه تایپ کلمه عبور و نهایتاً فشردن کلید اینتر بهترین گزینه انتخابی است.
امید است که این مطلب مفید بوده باشد.