دانستنی های کالی لینوکس{Kali LinuX}
تاریخچه ترمینال لینوکس
نخستین سیستم عامل اوپن سورس، یونیکس بود که در زمانهای قدیم برای انجام محاسبات طراحی شد. با گذشت زمان، این سیستم عامل برای اجرا بر روی کامپیوترهای اصلی به عنوان سیستم چندکاربره توسعه یافته است. به این صورت که چندین کاربر حتی از راه دور توسط پایانه ها به آن متصل میشوند.
نسخه توسعهیافته این سیستم عامل، «لینوکس» (Linux) نام گرفت. لینوکس را میتوان به عنوان نسلی از یونیکس توصیف کرد. بخش اصلی لینوکس برای رفتار مشابه با سیستم یونیکس توسعه یافته است. بهترین نسخه از این سیستم عامل توسط استفان بورن طراحی و در نسخه ۷ یونیکس توسعه در سال ۱۹۷۹ منتشر شد. این نسخه به مرور زمان به پوستهای پیش فرض برای سیستمهای لینوکسی تبدیل شده است.
ترمینال لینوکس چیست ؟
ترمینال لینوکس رابطی مبتنی بر متن به حساب میآید که برای کنترل کامپیوتر دارای سیستم عامل لینوکس استفاده میشود. ترمینال لینوکس تنها یکی از ابزارهای متعددی است که برای انجام وظایف در اختیار کاربران لینوکس قرار میگیرد، اما به طور گستردهای کارآمدترین روش موجود محسوب میشود.
خارج از بحث کد نویسی، استفاده از ترمینال لینوکس مطمئناً مستقیمترین روش ممکن برای تعامل با لینوکس و کرنل آن به حساب میآید. در واقع ترمینال یونیکس و لینوکس آنقدر محبوب شدند که شرکت Apple نیز اساس خط فرمان یا همان ترمینال سیستم عاملهای خود را به یونیکس تغییر داد و پوسته Bash و Z را طراحی کرد. از سوی دیگر، مایکروسافت PowerShell را توسعه داد و آن را به عنوان نرمافزاری منبع آزاد برای اجرای فرامین از طریق کد، تبدیل کرد.
در واقع، ترمینال در محیط سیستم عامل لینوکس، راهی استاندارد برای تعامل با سرور لینوکس است. کاربر درخواستهای خود را از طریق تایپ قطعه کدهایی در این محیط، به سرور منتقل میکند. استفاده از کدهای فرمان ممکن است برای مبتدیان کار دشواری به نظر برسد، اما اگر از یادگیری اصول اولیه شروع و مهارتهای خود را در این زمینه تقویت کنیم، متوجه میشویم که انجام آن کاری بسیار راحت است و خیلی زود تمام نکات مربوط به آن را فرا میگیریم.
در اینجا چند شبیهساز رایگان و رایج ترمینال لینوکس آورده شده است که توسط کاربران سیستم عاملهای مختلف لینوکس استفاده میشود:
- در ویندوز: PuTTy
- در لینوکس: XTerm، KDE Konsole، Terminal
- در مک OS: ترمینال پیشفرض مک و iTerm2
هر یک از این شبیهسازهای ترمینال، ویژگیهای خاص خود را دارند اما به عنوان یک کاربر، کار کردن با همه آنها برای شما آسان خواهد بود و هیچ یک محدودیت یا پیچیدگی خاصی ندارند.
آشنایی با محیط ترمینال لینوکس
ترمینال لینوکس با عناوینی همچون «کنسول» (Console)، «خط فرمان» (Command-Line) یا «شل» (Shell) در میان کاربران شناخته میشود. البته هر یک از این اسامی تفاوتهایی با هم دارند، اما معمولاً به جای هم استفاده میشوند و اکثراً وقتی به کار بده میشوند، منظور همان ترمینال لینوکس است. ترمینال لینوکس، رابطی متنی بین کاربر و رایانه است تا این دو بتوانند به زبانی مشترک و قابل فهم با یکدیگر ارتباط داشته باشند.
به عنوان یک کاربر مبتدی، میتوان دستورات را تفسیر کرد و همچنین اسکریپتهای خود را در ترمینال لینوکس نوشت. انجام این کار ممکن است در ابتدا دشوار به نظر برسد، اما وقتی با نحوه انجام آن آشنا شویم، استفاده از آن آسان خواهد بود.
توجه: تمام توزیع های لینوکس که تا کنون منتشر شدهاند، همگی قابلیت برقراری ارتباط را از طریق محیط ترمینال با کاربر دارا هستند. ترمینال لینوکس رابطی را در اختیار ما قرار میدهد که در آن میتوانیم دستورات را وارد و نتیجه را به صورت متن بررسی کنیم. میتوانیم از ترمینال برای انجام کارهایی مانند انتقال فایلها بدون استفاده از رابط کاربری گرافیکی استفاده کنیم. فراموش نکنید که وظیفه ترمینالها، تنها انتقال اطلاعات است. برای دسترسی به این اطلاعات به «پوسته» (Shell) برای سیستم عامل نیاز داریم.
ما میتوانیم با تایپ کردن خطوط کدها در محیط ترمینال، فرمان اجرای دستورات را به صورت دستی در سرورهای لینوکسی اجرا کنیم. همچنین میتوانیم دستورات را با استفاده از «اسکریپتهای پوسته» (Shell Script) و به صورت خودکار، اجرا کنیم.
توجه: استفاده از ترمینال لینوکس بسیار متداول است، زیرا کاربر میتواند با استفاده از صفحه کلید خود، دادهها را روی صفحه نمایش دهد.
کاربران میتوانند به صورت کارآمد و سریع با یکدیگر تعامل داشته باشند، زیرا نرم افزار ترمینال بسیار کمحجم و سبُک است و تمام اقداماتی که کاربران مایلند توسط این رابط متنی اجرا کنند، امکانپذیر خواهد بود. همچنین کاربران میتوانند برای هماهنگی و اجرای برنامههای مختلف، به یک برنامه اصلی جداگانه متصل شوند.
ضمن اینکه کاربران میتوانند اسکریپتهای نوشته شده را با یکدیگر به اشتراک بگذارند تا دیگر افراد ، به صورت خودکار از دستورات پیچیده و طولانی پوسته، برای آسانتر کردن کارهای خود استفاده کنند.
کاربرد shell در ترمینال لینوکس چیست ؟
Shell یا پوسته را میتوان به عنوان رابطی از خط فرمان تعریف کرد که فایلهای اسکریپت و دستورات کاربر را در سیستم لینوکس تفسیر میکند و به سیستم عامل سرور میگوید که چگونه نسبت به آنها عمل کند. چندین پوسته مانند پوسته C و پوسته «Bourne Shell» یا به اختصار sh موجود هستند که به طور گسترده استفاده میشوند.
همه پوستهها مجموعهای از ویژگیها و پیچیدگیهای مربوط به نحوه تفسیر دستورات را دارند، اما این پوستهها دارای خروجی و تغییر مسیر ورودی، آزمایش شرایط، متغیرها و موارد دیگر هستند. معمولاً پوسته Bourne-Again به عنوان bash شناخته میشود. bash پوسته پیشفرض است که تقریباً برای تمام توزیعهای لینوکس از جمله RedHat ،CentOS و اوبونتو قابلیت استفاده دارد.
دستورات ترمینال لینوکس چه هستند؟
دستور یک کلمه کلیدی ویژه است که میتوانید از آن در ترمینال لینوکس استفاده کنید تا رایانه شما عمل مورد نظر شما را انجام دهد. اکثر دستورات قطعه کدهای کوچکی هستند که همراه با سیستم عامل شما نصب میشوند. ممکن است متوجه نباشید که آنها در سیستم شما وجود دارند زیرا معمولاً در پوشههای نسبتاً مبهم مانند /bin ،/sbin ،/usr/bin و /usr/sbin نگهداری میشوند، اما ترمینال میداند که آنها را از کجا پیدا کند (به لطف چیزی به نام PATH).
سایر دستورات در ترمینال به صورت تعبیه شده هستند. شما لازم نیست نگران نصب دستورات باشید زیرا ترمینال دستورات را در هر صورت میداند. بهتر از این، در اکثر توزیعهای لینوکس، وقتی ترمینال نمیتواند دستوری را پیدا کند، در اینترنت به دنبال بستهای برای ارائه آن میگردد و سپس به کاربر پیشنهاد نصب و اجرای آن را میدهد. در مطلب زیر تمام دستورات مهم و کاربردی لینوکس به صورت یک تقلبنامه ارائه شده است و میتوان علاوه بر مطالعه کامل آن، هر زمان که لازم شد به آن مراجعه و به عنوان مرجع از آن استفاده کرد.
سادهترین دستور لینوکس در ادامه آمده است:
$ ls
دستور «ls» مخفف «list» است و محتویات پوشه فعلی که در آن قرار داریم را در خروجی فهرست میکند.