دوره‌ های آموزشی نووا
ژوئن 17, 2016

آموزش کار با خط فرمان لینوکس

Avatar photo
برنامه نویس MERN Stack
آموزش کار با خط فرمان لینوکس

آموزش کار با خط فرمان لینوکس (Linux Command Line)

برای یاد گیری سیستم عامل ویندوز کافیست تا محیط های گرافیکی ویندوز را بشناسید. تا بتوانید با کلیه ویندوز ها اعم از ویندوز 7 تا 10 و … کار کنید. همینطور برای یاد گیری سیستم عامل لینوکس هم میتوان محیط های گرافیکی لینوکس را یاد گرفت اما بیش از 70% کارهای اصلی لینوکس را باید با محیط خط فرمان آن یعنی Terminal انجام داد. که شامل دستورات جامع لینوکس میشود. برای مثال برای نصب یک نرم افزار در ویندوز کافیست تا روی فایل Setup برنامه دوبار کلیک کنید تا برنامه مور نظر شما نصب شود. اما برای نصب نرم افزار در لینوکس نمیتوانید از محیط گرافیکی استفاده کنید چراکه باید از Terminal و با دستور خاص این کار را انجام دهید. پس اگر علاقه به یادگیری خط فرمان لینوکس دارید در ادامه نووا بلاگ را در پست: آموزش کار با خط فرمان لینوکس دنبال کنید.

محیط خط فرمان در لینوکس از اهمیت بالای برخوردار است. چرا که کلیه کارهای مدیریتی را باید از طریق Terminal در لینوکس انجام داد. لینوکس دارای دستورات فراوانی میباشد که معمولا به طور متداول بر دستورات آن افزوده میشود. هر دستور برای انجام کار خاصی نوشته میشود. در این آموزش شما با دستورات عمومی که در اکثر توزیع های لینوکس موجود میباشد آشنا خواهید شد.

نکته: در این آموزش شما فقط با محیط خط فرمان لینوکس آشنا خواهید شد که شامل Shell و ویژگی های آن میباشد. در فصل های بعد به آموزش دستورات Terminal در زمینه های مختلف از جمله آموزش دستورات لینوکس، مدیریت حسابهای کاربری، مدیریت پروسسها و … خواهیم پرداخت.

آموزش کار با خط فرمان لینوکس

همانطور که در بالا مشاهده میکنید ابتدا کلمه Root@kali:~# نوشته شده که به ترتیب به نام حساب کاربری فعلی که از آن استفاده میکنید یعنی Root سپس نام سیستم عامل (Kali) و در آخر هم علامت ~ که مشخص کننده آدرس حساب کاربری شما میباشد. علامت # مشخص میکند که حساب کاربر فعلی، مدیر اصلی سیستم است یعنی همان حساب کاربری Root در صورتی که هر علامتی غیر از # دیدید یعنی حساب کاربری شما عادی میباشد. مثلا علامت $ یا …

نکته: کاربران عادی در لینوکس که معمولا با علامت $ مشخص میشوند یا هر علامتی غیر از علامت # توانای استفاده از بعضی دستورات را ندارند. مثلا کاربران عادی نمیتوانند هارد دیسک را فرمت کنند.

ترجمه کننده دستور Shell

زمانی که شما به عنوان یک مدیر با خط فرمان کار میکنید در واقع با Shell سر و کار دارید. به زبان ساده Shell یک ورودی میباشد که دستورات را گرفته و برای اعمال، آنها را به سیستم عامل منتقل میکند. چندین برنامه Shell وجود دارد که معروفترین آنها بین اکثر توزیع های لینوکس Bash نام دارد.

دستورها، متغیر ها، آرگومان ها

معمولا دستورات لینوکس شامل سه بخش میشوند: یک خود دستور (Command) دو متغیر های دستور (Options) سه آرگومانهای دستور (Arguments) برای درک بهتر جمله به دستور زیر نگاه کنید:

useradd –m –g admin tmlmanager

دستور بالا شامل سه بخش میباشد یک useradd که خود دستور است دو –m و –g admin که هر دو متغیرهای دستور میباشند سه tmlmanager که آرگومان دستور است.

دستورهای لینوکس چه میباشند؟

دستورات یا برنامه های هستند که به طور پیشفرض در لینوکس میباشند یا برنامه های هستند که آنها را در لینوکس نصب میکنید یا جزوی از Shell میباشند. به طور کلی چهار گروه دستور وجود دارد: یک دستوراتی که در واقع یک برنامه اجرایی هستند. (Executable Program) دو دستورات داخلی Shell که به اصطلاح shell builtins گفته میشوند. سه Shell function و چهار Alies که خود شما آنها را مشخص میکنید.

متغیرهای دستور چه میباشند؟

اکثر دستورات دارای پارامتر یا متغیر میباشند که در صورت استفاده از این متغیر ها در عملکرد دستور تغییر ایجاد میشود. برای مثال دستور ls فقط نام فایلها را در پوشه فعلی که در آن هستید نمایش میدهد. اما در صورتی که بخواهید جزئیات بیشتری را درباره هر فایل بدانید همانند حجم فایل یا تاریخ ساخت فایل و … میتوانید از متغیر یا پارامتر –l استفاده کنید.

فهرست گیری از فایلها لینوکس

متغیر ها در واقع برای کامل نمودن یا بهبود نتایج یک دستور استفاده میشوند و شما نمیتوانید از پیش خود یک متغیر به دستور اضافه کنید مگر اینکه Source دستور را ویرایش کنید. بعضی از دستورات هیچ متغیری ندارند و بعضی هم بیش از 50 متغیر دارند برای نمایش کلیه متغیر های یک دستور میتوانید از دستور man استفاده کنید که بعدا درباره آن توضیح خواهم داد.

بعضی از دستورات دارای دو نوع متغیر میباشند متغیر های کوچک و متغیر های طولانی، برای مثال دستور ls دارای هر دو متغیر کوچک و طولانی میباشد. مثلا برای نمایش حجم فایلها به واحد مگابایت میتوان هم از متغیر کوچک –h استفاده نمود هم از متغیر طولانی –human-readable که هر دو یک کار را انجام میدهند. متغیر های کوچ را میتوان پشت سر هم و فقط با یک – نوشت برای مثال:

ls –lh

آرگومانهای دستور چه میباشند؟

جدا از متغیر ها، خیلی از دستورات لینوکس دارای آرگومان هستند. Argument ها در واقع مشخصات اضافه برای دستور میباشند تا آنچه که باید یک دستور انجام دهد را کامل کند. Argument ها در خود دستور نیستند بلکه آنچه که شما به دستور اضافه میکنید میباشند مثلا دستور ls –hl فقط دارای متغیر میباشد و در صورتی که بخواهید یک آدرس مشخص به دستور بدهید تا دستور ls محتوای پوشه مشخصی را برای شما نمایش دهد از Argument استفاده میکنید که در واقع همان آدرس پوشه مورد نظر شما میباشد برای مثال:

آموزش کار با خط فرمان لینوکس

ls –lh /home/root

در مثال بالا Argument همان آدرس اضافه شده به دستور ls میباشد /home/root همانطور که میدانید شما میتوانید هر آدرس دیگری را بجای آدرس فعلی استفاده کنید که این ویژگی مختص به Argument میباشد. همانطور که یک دستور دارای Argument میباشد متغیر ها هم میتوانند Argument داشته باشند. برای مثال به دستور زیر توجه کنید:

mail –s hello root

دستور بالا شامل چهار بخش میباشد یک خود دستور mail دو متغیر دستور –s سه آرگومان متغیر یعنی hello چهار آرگومان دستور mail که root میباشد.

ویژگی Piping و Redirection

ترمینال داری ویژگی های زیادی میباشد که یکی از این ویژگی ها Piping است با استفاده از ویژگی Piping شما میتوانید نتایج یک دستور را روی دستور دیگر ارسال کنید همچنین برای ارسال نتایج یک دستور به مکان دلخواه باید از ویژگی Redirection استفاده کنید.

ویژگی Piping

با استفاده از ویژگی Piping شما میتوانید نتایج چند دستور را با هم ترکیب کنید تا آسان تر و سریعتر به نتایج مور نظر خود برسید. شاید در نگاه اول استفاده از piping کمی دشوار به نظر برسد اما با کمی تلاش به سادگی استفاده از این ویژگی کارآمد پی خواهید برد به مثال زیر توجه کنید:

آموزش کار با خط فرمان لینوکس

در مثال بالا نتایج دستور ls با استفاده از علامت | روی دستور more رفته تا فرد راحت تر بتواند نتایج دستور ls را تفسیر کند. دستور more برای نمایش محتوای فایلهای متنی میباشد و دستور ls هم برای نمایش محتوای پوشه ها است. زمانی که از دستور ls با علامت / استفاده شود نتایج آن به صورت عادی در یک صفحه جا نمیشود و به صورت زود گزر کلیه نتایج رد میشود. پس برای خواندن نتایج نیاز است از ویژگی Piping استفاده شود تا نتایج را روی دستوری دیگری ارسال کنید که به اندازه سایز صفحه نتایج را نمایش میدهد سپس متوقف شود. به همین خاطر ویژگی Piping بسیار کاربردی و کارآمد است.

ویژگی Redirection

ویژگی Redirection به شما اجازه میدهد تا نتایج یک دستور را به مکانی غیر از صفحه مانیتور خود ارسال کنید. (در اصطلاح به صفحه مانیتور Standard Output یا در مخفف STDOUT گفته میشود) این ویژگی برای انجام کارهای مدیریتی از قبیل سند سازی بسیار کاربردی میباشد. فرض کنید نیاز به فهرستی از کلیه پوشه ها و فایلهای خود دارید. برای جمع آوری این فهرست میتوانید از دستور ls استفاده کنید تا فهرستی از فایلهای خود تهیه کنید سپس با علامت < نتایج دستور ls را به یک فایل متنی انتقال دهید. به مثال زیر توجه کنید:

آموزش کار با لینوکس

ls –ahl / >systemfile.txt

در مثال بالا نتایج دستور ls با علامت > به فایل متنی systemfiles.txt انتقال داده شده در صورتی که فایلی با این نام از قبل وجود داشته باشد نتایج دستور با محتوای فایل قدیمی جایگزین میشود. برای جایگزین نشدن محتوا میتوانید از << استفاده کنید با این کار نتایج جدید زیر محتوای اولیه فایل systemfiles.txt قرار میگرید.

کمک گرفتن از Terminal

برای کمک گرفتن از نحوه کارکرد دستورات در محیط Terminal راههای زیادی وجود دارد. که در ادامه به این راهها میپردازیم.

  • شما میتوانید با استفاده از دستور man راهنمای های کاملی در باره متغیر ها و نحوه کارکرد دستورات بگیرید کافیست ابتدا دستور man را تایپ کنید سپس دستوری که میخواهید نحوه کارکرد آن را بدانید.
  • اکثر دستورات دارای متغیر –help میباشند شما میتوانید با استفاده از این متغیر اطلاعات خلاصه ای در باره نحوه کارکرد دستور دریافت کنید.
  • همانطور که گفته شد یک سری از دستورات داخل Shell میباشند برای کمک گرفتن از نحوه کارکرد این نوع دستورات میتوانید از دستور help استفاده کنید سپس دستور داخلی Shell را جلوی آن وارد کنید.

نکته: برای فهمیدن اینکه آیا یک دستور داخلی میباشد (Shell builtin) یا خیر باید از دستور Type استفاده کنید سپس دستور مورد نظر خود را جلوی آن تایپ کنید مثلا type cd

کامل نمودن دستورات با Tab

بعضی از برنامه های Shell همانند bash دارای ویژگی کامل نمودن دستورات میباشند. این ویژگی به شما کمک میکند تا هنگام تایپ نمودن دستور آن را با فشردن کلید Tab از روی کیبورد کامل کنید. برای مثال فرض کنید، دستوری را یادتان رفته و فقط چند حرف اول آن را به یاد دارید، کافیست تا همان چند حرف اول را تایپ کنید سپس کلید تب را دوبار پشت سر هم بفشارید تا کلیه دستوراتی که با آن حروف شروع میشود نمایش داده شوند.

جستجو در وب با Terminal

کار کردن با Variables

یکی از مورد های که باید درباره Shell بدانید وجود variable ها میباشد Variable ها مقدارهای هستند که یا به طور پیش فرض توسط Shell مشخص میشوند یا خو شما آنها را درست میکنید. کار Variable ها مشخص نمودن آدرس یا موقعیت خاصی از سیستم میباشد. Variable ها بیشتر در ساخت فایل Script کاربرد دارند. برای نمایش کلیه Variable های سیستم از دستور env استفاده کنید.

تاریخچه دستورات در Terminal

یکی دیگر از ویژگیهای Bash Shell ذخیره نمودن کلیه دستورات وارد شده در History میباشد. زمانی که شما دستوری را در Terminal تایپ میکنید آن دستور در History برنامه Shell ذخیره میشود تا شما بعدا بتوانید از آن دستور دوباره استفاده کنید. در بعضی از توزیع ها به طور پیشفرض Shell تعداد 1000 دستور را در History خود ذخیره میکند. زمانی که شما دستوری را در Terminal وارد میکنید یک فایل با نام .bash_history در پروفایل شما ساخته میشود و دستورات در آن ذخیره میشوند. برای نمایش دستورات ذخیره شده در Shell از دستور history استفاده کنید.

نکته: برای استفاده از دستورات ذخیره شده در History باید از کلیدهای بالا و پایین کیبورد یا از کلیدهای ترکیبی Ctrl+P و Ctrl+N استفاده کنید.

برای استفاده سریعتر از دستورات History میتوانید از علامت تعجب ! به همراه عدد مشخص شده دستور در History استفاده کنید. مثلا در صورتی که عدد دستور مورد نظر شما در History 195 بود باید !195 را تایپ کنید تا دستور مورد نظر شما به صورت مستقیم دوباره اجرا شود. برای پاک نمودن دستورات ذخیره شده در History از دستور history با پارامتر –c استفاده کنید.

مدیریت bash با کلید های ترکیبی

گاهی اوقات شما دستوری را در Terminal تایپ میکنید و نتیجه ای را دریافت نمیکنید دستور هم در حالت اجرا، برنامه Terminal شما را اشغال میکند. یا مثلا دستوری را به اشتباه وارد نموده اید و میخواهید دستور را به سرعت متوقف کنید. در این وضعیت شما باید از کلیدهای ترکیبی مشخص شده در Shell استفاده کنید. که در زیر به چند تا از این کلید های ترکیبی اشاره میکنم:

  • کلیدهای ترکیبی Ctrl+C شما میتوانید با استفاده از این کلیدهای ترکیبی هر دستور در حال اجرای را متوقف کنید.
  • کلیدهای ترکیبی Ctrl+D شما میتوانید با استفاده از این کلیدهای ترکیبی سیگنال End of File را به دستور ارسال کنید.
  • کلیدهای ترکیبی Ctrl+R این کلید ها برای هدف جستجو اندوخته شده اند. برای جستجو در History برنامه Bash .
  • کلیدهای ترکیبی Ctrl+Z با استفاده از این کلید ها یک دستور در حال اجرا را به حالت Pause یا Suspend منتقل میکنید.

تا اینجا شما فقط تا حدی با Bash و کارهای پایه در Terminal آشنا شدید. در فصلهای بعد به صورت کاملا عملی با استفاده از دستورات و مثال های مختلف به مدیریت فایلها و پروسس ها و کاربران خواهیم پرداخت. اگر سوال یا انتقادی داشتید نووا بلاگ را از محبت خود محروم نکنید.


8 پاسخ به “آموزش کار با خط فرمان لینوکس”

  1. Avatar photo Crytech گفت:

    سلام، تشکر از آموزش مفیدتون لطفا فصل بعد رو زودتر بزارید.

  2. Avatar photo Ali_Khodai گفت:

    با تشکر، منتظر فصل های بعدی هستم
    لطفا اگه کتابی هم در مورد آموزش ترمینال معرفی کنید ممنون میشم.

  3. Avatar photo کاربر لینوکس گفت:

    با سلام و تشکر از مطالب مفید سایت، ممنون میشم که فصل بعد رو هرچی زود تر در سایت قرار بدید. چون دیر کردید.

  4. Avatar photo مهمان گفت:

    مطالب عالی بود
    ولی متاسفانه من تازه کارم و دوست مرتبطی ندارم
    ولی بدون شک هرجا باشه گل لطفتون رو به همه تعارف میکنم…

  5. Avatar photo mohammad گفت:

    با سلام و خسته نباشید از سایت خوبتون من به مشکلی برخوردم وقتی از sudo میخوام استفاده کنم و یه برنامه نصب کنم رمز ازم میخواد من رمز میدونم ولی هیچ عددی و حرفی نمی تونم وارد کنم چیکار کنم که بتونم رمز عبورم بزنم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *