پروتکل SSH، نحوه کار با SSH و دستورات SSH از جمله عباراتی هستند که امروزه در میان جامعه کاربران ایرانی در شبکههای مجازی بسیار شنیده میشود. شدت گرفتن شرایط فیلترینگ و از طرفی مسدودی حجم زیادی از ابزارهای تغییر IP موجب شد که کاربران به فکر تونل کردن اینترنت خود از طریق سرورهای مجازی (VPS) و… بیفتند و همین امر هم باعث شده که واژه «SSH» را بسیار بیشتر از قبل بشنویم. همین موضوعات موجب شد که ما هم در تیم تولید محتوای آقای وب درخواستهای متعددی در رابطه با آموزش دستورات اولیه SSH دریافت کنیم و امروز با مقاله «20 دستور رایج SSH + آموزش کامل استفاده از دستورات» در خدمت شما هستیم.
شاید بتوان خرید یک سرور را راحتترین بخش از فرآیند کار با یک سرور برای یک کاربر مبتدی دانست. در این مسیر هرچه تجربه بیشتری در کار با سیستم عاملهای مبتنی بر لینوکس داشته باشید، مسیر هموارتری را تجربه خواهید کرد. تقریبا میتوان گفت که اکثر دستورات در خط فرمان SSH با ترمینالهای لینوکسی مشترک است و عملا منطق مشترکی دارند.
اگر به تازگی کار خود با سرورهای مجازی یا حقیقی را آغاز کردهاید و برای اتصال به سرور خود از خط فرمان محبوب SSH استفاده میکنید، به جای درستی آمدهاید. در این مقاله از آقای وب، ما ابتدا به بررسی پروتکل SSH و ویژگیهای اصلی آن میپردازیم و سپس به سراغ بررسی دستورات پرکاربرد و ساده خط فرمان SSH خواهیم رفت، پس در ادامه این نوشته با ما در آقای وب همراه باشید.
آنچه در این مقاله میخوانید
SSH چیست؟
SSH یا “Secure Socket Shell”، یک پروتکل شبکه است که برای برقراری ارتباط بین دو دستگاه رایانه مورد استفاده قرار میگیرد. با استفاده از SSH، دادهها به صورت رمزنگاری شده بین دستگاهها منتقل میشوند و امکان دسترسی غیرمجاز به اطلاعات منتقل شده کاهش مییابد. بیشترین کاربرد SSH در سیستم عاملهای لینوکسی و در زمان اتصال به سرورهای مجازی ار راه دور (Remote) است.
شاید شما هم مثل ما بهدنبال یک عبارت فارسی معادل برای عبارت “Secure Socket Shell” باشید، اما باید گفت که به دلیل ماهیت کلمه “Shell” نمیتوان معادل دقیقی برای این عبارت ارائه کرد؛ با این وجود درک صحیح معنای شِل میتواند به شما کمک کند که تصویر بهتری از این پروتکل در ذهن خود داشته باشید و دیگر با شنیدن واژه SSH، مفهوم این عبارت اختصاری را به یاد بیاورید.
Shell یعنی چه؟
Shell در ساختار زبان معنای پوسته یا قشر است، اما در زبان شبکه و رایانه به معنای محیط کاربری است که به کاربر اجازه میدهد تا با سیستم عامل تعامل داشته باشد. در واقع Shell یک برنامه کاربردی است که وظیفه اجرای دستورات را بر روی سیستم عامل دارد. Shell نقش واسط بین کاربر و سیستم عامل را ایفا میکند و دستورات ورودی کاربر را درک میکند و به صورت مناسب به سیستم عامل ارسال میکند تا اجرا شوند. برای مثال، Bash shell ،C shell ،Korn shell و PowerShell نمونههای مختلفی از Shell هستند.
نحوه اتصال به SSH
اگر به دنبال یافتن پاسخی به سوالات خود در گوگل به این مقاله رسیدهاید، احتمالا با اصول اولیه کار با SSH همچون نحوه اتصال به ریموت سرور آشنا هستید، اما برای یادآوری هم که شده میتوانید در ادامه نحوه اتصال به SSH در پلتفرمهای مختلف را مشاهده کنید.
آموزش اتصال به SSH در ویندوز
همانطور که احتمالا مطلع هستید، برای اتصال به SSH در ویندوز راههای بسیار مختلفی وجود دارد، اما میتوان رایجترین روش اتصال را «اتصال از طریق نرم افزار PuTTY» دانست. این نرم افزار کمتر از 10 مگابایت حجم دارد و متنباز است، بنابراین میتوانید با مراجعه به لینک زیر، آن را مستقیما از طریق سایت توسعهدهنده دانلود کنید.
روش نصب این نرم افزار هم بسیار ساده است و تفاوتی با سایر نرم افزارهای ویندوز ندارد. پس از نصب نرم افزار آیکنهای مختلفی را ممکن است در منوی استارت یا دسکتاپ خود مشاهده کنید، اما باید بدانید که آیکن مدنظر ما برای اتصال به SSH، آیکنی است که در آن دو کامپیوتر از طریق یک صاعقه به یکدیگر متصل شدهاند. با کلیک بر روی این آیکن، پنجرهای مشابه با تصویر زیر برای شما باز خواهد شد.
در این پنجره باید آدرس IP و پورت سرور خود را وارد نمایید تا ارتباط اولیه با سرور برقرار شود. پورت پیشفرض اتصال به سرور از طریق SSH معادل پورت 22 است که شرکت ارائهدهنده میتواند آن را به مقدار دیگری تغییر داده باشد. لازم است اشاره کنیم که IP و پورت سرور را باید از شرکت ارائهدهنده سرور دریافت کنید.
چنانچه پورت پیشفرض ورود به سرور توسط شرکت ارائهدهنده تغییر پیدا نکرده است، پیشنهاد میکنیم که خودتان آن را به مقدار دیگری (غیر از 22) تغییر دهید. این موضوع در عین سادگی موجب میشود که امنیت سرور شما به میزان قابل توجهی ارتقا پیدا کند و احتمال داون شدن (از دسترس خارج سدن) سرور بر اثر حملات مختلف کاهش یابد.
نهایتا تنها کافیست که بر روی کلید “Open” کلیک کنید تا اتصال شما با سرور برقرار شود و بتوانید از طریق نام کاربری و رمزعبور خود به سرور متصل شوید.
آموزش اتصال به SSH در لینوکس و مک
برای اتصال به سرور در لینوکس و مک میتوانید از ترمینال استفاده کنید. برای بازکردن ترمینال در لینوکس کافیست که از کلید میانبر “Ctrl+Alt+T” استفاده کنید و در سیستم عامل Mac هم میتوانید بهدنبال اپلیکیشن ترمینال بگردید. نهایتا پس از باز کردن ترمینال کافیست که با وارد کردن کد زیر در خط فرمان به سرور خود متصل شوید.
ssh root@192.168.1.25 -p 22
اگر به کد بالا دقت کنید میتوانید ببینید که اجزای مختلف این کد را با رنگهای مختلف مشخص کردهایم و شما نیز باید با توجه به این مقادیر و مشخصات سرور خودتان اقدام به استفاده از این دستور نمایید.
User: دسترسی روت را میتوان بالاترین سطح دسترسی به یک سرور دانست. کاربر root عملا میتواند از کلیه پتانسیل سرور استفاده نماید و تمامی دستورات مدنظر خود را اجرا کند. چنانچه شما نام کاربری دیگری برای اتصال به سرور دارید، باید از نام کاربری خود استفاده نمایید.
IP: پس از مشخصهی “@” باید IP سروری که تصمیم به اتصال به آن دارید را وارد کنید. پس از خرید سرور، IP سرور یکی از اولین مواردی است که به شما اعلام میشود.
Port: نهایتا باید پورت موردنظر برای اتصال به سرور را مشخص کنید. پورتها همچون جادههای مختلفی هستند که میتوانند شما را به مقصدهای مختلف یا مشترکی متصل کنند. همانطور که در ابتدای این مقاله هم اشاره کردیم، پورت پیشفرض برای اتصال به سرور، پورت 22 است.
پس از وارد کردن دستور بالا با توجه به مشخصات سرور خودتان، ترمینال به سرور شما متصل خواهد شد و از شما خواسته میشود که رمزعبور حساب کاربری واردشده را مشخص نمایید. با وارد کردن رمزعبور حساب کاربری خود میتوانید به سرور خود دسترسی پیدا کنید و دستورات مدنظرتان را از طریق ترمینال اجرا کنید.
رایجترین دستورات SSH
در ادامه با توجه به دادههای سایت ssh.com، بیست مورد از پراستفادهترین دستورات SSH را برای شما لیست کردهایم. تنها با تسلط بر همین دستورات و یادگیری توسعه استفاده از آنها میتوانید مقدار زیادی از نیازهای روزانه خود در ارتباط با سرورتان را برطرف نمایید.
لازم میدانیم اشاره کنیم که اکثر دستورات SSH بر اساس ساختار زبان انگلیسی ایجاد شدهاند و در اصل یک دستور SSH، از کنار هم قرار گرفتن حروف اول کلمات موجود در یک عبارت ترکیبی شکل گرفته است؛ از همین رو ما در این نوشته این ترکیبها را مشخص کردهایم که به خاطر سپردن دستورات یا کامندها را از یک کار حوصلهسربر به کاری قابل درکتر تبدیل میکند. با خواندن ادامه این مقاله خودتان متوجه این موضوع خواهید شد، بنابراین در ادامه با آقای وب همراه باشید.
1. cp: کپی
هیچ شکی نیست که هر فردی که از SSH استفاده میکند، در یک زمانی به نقل و انتقال پروندهها، دایرکتوریها و فایلهای مختلف نیاز خواهد داشت و دقیقا همین زمان است که باید به سراغ دستور “Copy Command یا cp” بروید. فرمول عمومی استفاده از دستور cp در خط فرمان SSH به شکل زیر است.
cp [source] [destination]
به عنوان مثال، فرض کنید که میخواهید یک فایل روی دسکتاپ به نام MyFile را کپی کنید و در دایرکتوری دیگری با یک نام متفاوت paste کنید. برای این کار دستور زیر را باید در خط فرمان تایپ نمایید:
cp MyFile Directory2/Netafraz
در مثال بالا به سرور گفتیم که فایل “MyFile” را از دایرکتوری فعلی کپی کند و آن را در دایرکتوری دیگری با نام “Directory2” پیست کند. نکتهای که وجود دارد این است که ما این کد را توسعه دادیم و با اضافه کردن کاراکتر اسلش (/) و ارائه نام جدید، به خط فرمان گفتیم که نام فایل را هم به “Netafraz” تغییر دهد. با اجرای این کامند، فایلی با نام MyFile از دایرکتوری که در آن هستیم کپی شده و به دایرکتوری با نام “Directory2” با نام جدید “Netafraz” پیست میشود.
مهم است به خاطر داشته باشید که اگر محل منبع را مشخص نکنید، سیستم برای یافتن فایل در دایرکتوری فعلی جستجو میکند. شما میتوانید از این دستور برای کپی کردن دایرکتوریها هم استفاده کنید.
2. cd: تغییر دایرکتوری
فرمان تغییر دایرکتوری،یکی از مهمترین دستورات در SSH است که به شما اجازه میدهد بین دایرکتوریهای مختلف جابهجا شوید. برای اجرای اکثر دستورات در خط فرمان SSH نیاز دارید که در دایرکتوری صحیحی قرار گرفته باشید؛ این مورد به وضوح در دستور قبلی قابل مشاهده بود. برای اینکه بتوانید در میان دایرکتوریهای مختلف جابهجا شوید، تنها کافیست از فرمول دستوری زیر استفاده کنید.
cd [directory name]
همانطور که در بالا مشاهده میکنید، برای رفتن به یک دایرکتوری تنها کافیست که در خط فرمان پیش از اسم دایرکتوری از کامند “Change Directory یا cd” استفاده کنید. برای مثال با استفاده از دستور زیر به دایرکتوری “wordpress” میرویم.
cd wordpress
شما میتوانید دستور بالا را متناسب با نیاز خود توسعه دهید؛ مثلا چنانچه بخواهید به یک دایرکتوری خاص بروید، میتوانید همچون مثال زیر مسیر دایرکتوری را بهصورت کامل وارد نمایید تا مستقیما به دایرکتوری مدنظر خود وارد شوید.
cd wordpress/wp-content/themes/netafrazblog
در مثال بالا، ما وارد دایرکتوری وردپرس شدیم و با وارد کردن مسیر کامل پوسته وردپرسِ آقای وب، توانستیم مستقیما وارد دایرکتوری مدنظرمان شویم. پس از اجرای کامند بالا، دایرکتوری پیشفرض سرور برای اجرای دستورات، دایرکتوری netafrazblog خواهد بود.
3. ls: لیست کردن فایلها
اکثر کاربرانی که هیچ تجربهای در کار با خط فرمان ندارند، نمیدانند که نمایش لیستی آیتمها در سیستم عاملهای مختلف، خودش یک قابلیت است! در زمان کار با SSH از آنجایی که هیچ رابط کاربری در اختیار شما نیست، پس قاعدتا خبری از هم از سیستم لیستینگ پیشفرض که قبل از این در سیستم عاملها دیدهاید خبری نیست.
در زمان کار با SSH چنانچه بخواهید لیستی از دادههای موجود در یک مسیر، دایرکتوری، صفحه یا… را ببینید، باید از دستور “List Files یا ls” استفاده کنید.
هرچند که این دستور هیچ فرمول خاصی ندارد و تنها کافیست که همین دستور را وارد نمایید، اما باید اشاره کنیم که یکی از توسعهپذیرترین دستورات خط فرمان SSH، همین دستور ls است. برای درک بهتر موضوع به مثالهای زیر توجه کنید.
wordpress/wp-content/themes/netafrazblog
فرض را بر این بگذارید که در مسیر بالا هستید.
ls ..
با اجرای دستور بالا، کل محتوای دایرکتوری مادر برای شما لیست خواهد شد. در مثال ما با اجرای دستور بالا شاهد لیست شدن محتوای دایرکتوری “themes” (دایرکتوری مادرِ پوشه netafrazblog) خواهیم بود. اکنون چنانچه دستور زیر را اجرا کنید،
ls ../..
محتوای دایرکتوری “wp-contnet” برای شما لیست میشود.
اکنون فرض کنید که در یک دایرکتوری هستید که در آن دایرکتوریها و فایلهای بسیار زیادی وجود دارد و همین موضوع باعثشده که نتوانید بهراحتی دایرکتوری مدنظر خود را پیدا کنید. در این شرایط تنها کافیست کامند زیر را اجرا کنید.
ls -d */
با این کامند تنها دایرکتوریهای موجود در دایرکتوری فعلی برای شما لیست خواهد شد.
چنانچه مایل هستید که لیستی تقریبا نزدیک به فایل اکسپلورر ویندوز را با استفاده از ssh مشاهده کنید، میتوانید از دستور زیر استفاده نمایید.
ls -lh
با دستور بالا محتوای دایرکتوری بهصورت یک جدول (مطابق با تصویر زیر) به شما نمایش داده میشود که محتوای آن به ترتیب از چپ به راست عبارت است از:
- سطح دسترسی محتوا (برای درک درست سطح دسترسی دادهها نیاز به دانش لینوکسی دارید)
- تعداد لینکهای منتهی به داده
- مالک محتوا (شخصی که آن فایل، دایرکتوری یا داده را ایجاد کرده است.)
- گروه مالک (گروهی که داده به آن تعلق دارد. هر مالک محتوا میتواند عضوی از یک گروه باشد.)
- حجم یا سایز داده (بر حسب بایت، کیلوبایت، مگابایت و بیشتر)
- تاریخ و زمان مربوط به آخرین تغییرات اعمالشده بر روی فایل
- نام فایل یا دایرکتوری یا داده
همانطور که اشاره کردیم، دستور ls بهوسیله Options ها بسیار قابل توسعه است و میتوان مثالهای متعددی برای این کامند آورد، اما به موارد گفتهشده بسنده میکنیم و بررسی موارد بیشتر را به خودتان میسپاریم.
4. mv: دستور انتقال فایلها
دستور “Move Files یا mv” در لینوکس و SSH عملکردی شبیه به “Cut & Paste” در ویندوز دارد. با استفاده از این دستور، فایل از دایرکتوری مبدا به دایرکتوری مقصد انتقال مییابد و این به این معناست که فایل دیگر در دایرکتوری مبدا در دسترس نخواهد بود.
فرمول استفاده از کامند Move Files در SSH به شکل زیر است:
mv [source] [destination]
برای مثال، ما میخواهیم فایل netafraz.php را از دایرکتوری home به دایرکتوری blog انتقال دهیم. برای این کار از دستور زیر استفاده میکنیم.
mv /home/netafraz.php /home/blog
پس از اجرای دستور Move File، میتوانید با استفاده از دستور لیست (ls) از موفق بودن فرآیند انتقال مطمئن شوید.
5. pwd: دستور پیدا کردن مسیر فعلی
همانطور که بارها در طول این مقاله اشاره کردیم، اکثر دستورات SSH بر مبنای دایرکتوری فعلی کار میکنند که منظور از دایرکتوری فعلی همان “Current Path” است. در زمان کار با ترمینالهای لینوکسی همچون SSH بسیار ممکن است با وضعیتی روبهرو شوید که ندانید مسیر فعلی شما کجاست و کامندهای شما بر روی کدام دایرکتوری اعمال میشوند؛ در این شرایط میتوانید با استفاده از دستور “pwd” مسیر فعلی که در آن قرار دارید را مشاهده کنید.
این دستور بسیار ساده است و برای استفاده از آن تنها کافیست که در خط فرمان کامند زیر را تایپ نمایید.
pwd
با استفاده از دستور pwd، مسیری که در آن قرار دارید بهصورت کامل (Full Path) برایتان به نمایش در میآید و به همین سادگی میتوانید متوجه مسیر فعلی که در آن قرار دارید شوید.
6. rm: دستور حذف
احتمال زیادی وجود دارد که در طول روز مجبور شوید فایلهای بسیاری را پاک (Remove) کنید. تقریبا میتوان گفت که این کار اجتنابناپذیر است و چنانچه نتوانید فایلها یا دایرکتوریهای خود را پاک کنید، دچار مشکل خواهید شد.
برای پاک کردن فایلها یا دایرکتوریها با استفاده از SSH میتوانید از کامند “rm” استفاده کنید. فرمول استفاده از این کامند به شکل زیر است.
rm [file name] rm -r [directory name]
توجه داشته باشید که چنانچه در فرمول بالا تنها نام فایل را قرار دهید، بر اساس منطق دایرکتوری فعلی، تنها در همان دایرکتوری که در آن قرار دارید فایل Fetch شده و حذف میشود. همانطور که احتمالا حدس میزنید، میتوانید با استفاده از وارد کردن مسیر کامل فایل یا دایرکتوری مدنظر خود، در هر موقعیتی اقدام به حذف داده موردنظر خود نمایید.
7. touch: ایجاد فایل جدید
کپی و انتقال فایلها به شما کمک میکند که تا حدودی نیاز خود را پیش ببرید اما در نهایت نیاز دارید که بتوانید فایلهای مختلفی را درون دایرکتوریهای مختلف ایجاد کنید. ایجاد فایل جدید با استفاده از خط فرمان SSH قابل انجام است و برای این کار میتوانید از کامند “touch” استفاده کنید.
touch [File Name]
همچون همیشه اگر میخواهید فایل را در محل دیگری ایجاد کنید، تنها کافیست که مسیر موردنظر خود وارد نموده و در انتها عنوان فایل خود را وارد کنید. به همین سادگی میتوانید فایلهای جدیدی را در دایرکتوریهای مختلف ایجاد نمایید.
8. mkdir: ایجاد دایرکتوری جدید
برخلاف دستورات قبلی که هم در رابطه با فایلها و هم در رابطه با دایرکتوریها صادق بودند، فرمول ایجاد دایرکتوری و فایل جدید از یکدیگر متفاوت هستند. فرمول ایجاد دایرکتوری جدید در خط فرمان SSH به شکل زیر است:
mkdir [Directory Name]
مشابه تمامی دستورات دیگر، شما میتوانید با استفاده از مسیردهی، یک دایرکتوری خارج از فضای کاری فعلی ایجاد کنید.
9. cat: الحاق فایلها
وقت آن رسیده که دست از جابهجایی فایلها برداریم و به سراغ باز کردن فایلها برویم. رایجترین روش باز کردن فایلها در SSH استفاده از کامند “cat” است. برای باز کردن فایلها از طریق این کامند میتوانید از دستور زیر استفاده کنید.
cat [File Name]
با استفاده از دستور “Concatenate” که در بالا مشاهده میکنید، میتوانید فایلهای مدنظر خود را باز کنید.
هرچند که یکی از اصلیترین کاربردهای این دستور برای باز کردن فایلهای مختلف است، اما قدرت اصلی این کامند زمانی آشکار میشود که تصمیم به الحاق چند فایل مختلف به یکدیگر داریم.
برای الحاق چند فایل به یکدیگر از طریق دستور cat، میتوانید از فرمول زیر استفاده کنید.
cat [file name 1] [file name 2] > [new file name]
یکی از پرکاربردترین زمانهای استفاده از این کامند برای وقتی است که تصمیم دارید دو رشته متنی (String) مختلف را به یکدیگر متصل کنید. آشنایی با این کاربرد دستور cat میتواند در مواقع ضروری بسیار پرکاربرد باشد.
10- باز کردن فایلها در ویرایشگرهای Vi ،Nano و Vim
برخورداری از یک ویرایشگر قدرتمند میتواند موجب شود که کارها سریعتر و موثرتر پیش بروند. همانطور که استفاده از یک ویرایشگر کد مانند “VS Code” میتواند برنامهنویسی را بسیار سادهتر از کد زدن با نرم افزاری مثل “++Notepad” کند، استفاده از ویرایشگرهای موجود در اکوسیستم SSH هم میتوانند فرآیند ویرایش دادهها را راحتتر و سریعتر کنند.
معروفترین ویرایشگرهای قابل استفاده در SSH عبارتند از سه ویرایشگر: Vi ،Nano و Vim. لازمه استفاده از این ویرایشگرها این است که پیش از این، این ویرایشگرها بر روی سرور شما نصب شده باشند. نصب بستههای نرم افزاری در توزیعات مختلف لینوکسی متفاوت است، بنابراین برای نصب ادیتور مدنظرتان میتوانید با مدیر سرور یا ارائه دهنده سرور VPS خود در ارتباط باشید.
برای بازکردن فایلهای خود در ادیتورهای گفتهشده راه بسیار آسانی پیش رو دارید، برای این کار تنها کافیست که از کامندهای زیر استفاده کنید.
Vi [file name] (for Vi Editor) Nano [file name] (for Nano Editor) Vim [file name] (for Vim Editor)
تنها با استفاده از دستورات بالا میتوانید از برنامه ویرایشگر دلخواه خود برای باز کردن و ویرایش فایلها استفاده کنید.
11. history: بررسی تاریخچه کامندها
موارد بسیاری وجود دارد که موجب میشود نیاز داشته باشید آخرین کامندهای ارسالشده از طریق SSH را بررسی کنید. گاها پیش میآید که عضو جدیدی وارد تیم میشود و اشتباها کامندی را استفاده میکند که موجب بروز خرابی در سرور میشود. در این شرایط کارمندان اصلی تیم به سراغ سرور میروند و آخرین دستورات ارسالشده به سمت سرور را بررسی میکنند. برای بررسی آخرین کامندهای ارسالشده به سمت سرور باید اقدام به بررسی تاریخچه (History) کامندها نمایید. برای این کار میتوانید از فرمول زیر استفاده کنید.
history [Number of commands]
برای مشاهده کامندهای ارسالشده از طریق SSH تنها کافیست که تعداد دستورات مدنظر خود برای مشاهده را انتخاب نمایید.
history 7
برای مثال، دستور بالا 7 دستور آخر ارسالشده از طریق SSH را به شما نمایش میدهد.
12. clear: پاک کردن کامندهای قبلی از ترمینال
اگر فیلمهای حوزه هک و امنیت را دیده باشید، همواره میتوانید یک هکر را مشاهده کنید که پشت یک نمایشگر پُر از کدهای مختلف نشسته است و در حال استفاده از یک ترمینال است. حقیقت این است که اکثر برنامه نویسان در زمان استفاده از ترمینالهای مختلف نظیر SSH، ترجیح میدهند تنها آخرین کامندهای خود را مشاهده کنند، چراکه حجم بالای نوشتهها در ترمینال موجب میشود که خوانایی (Readability) دادهها کم شود و احتمال بروز خطا بالا برود.
برای اینکه بتوانید کامندهای پیشین خود و پاسخهای سرور به آنها را از پنجره ترمینال پاک کنید تا بتوانید با تمرکز بیشتری ادامه فرآیند توسعه را ادامه دهید، نیاز دارید که از دستور “Clear” استفاده کنید.
این دستور بسیار ساده است و عملکرد اصلی آن برای خالی کردن پنجره ترمینال از محتواهای پیشین است. برای استفاده از این قابلیت تنها کافیست که کامند زیر را در ترمینال وارد نمایید.
clear
اکنون که راجع به دستور Clear، صحبت کردیم، بد نیست که اشارهای هم به کامند “reset” داشته باشیم.
reset
این کامند هم عملکردی شبیه به دستور Clear دارد، با این تفاوت که موجب Reset شدن ترمینال میشود. پیشنهاد میکنیم تنها در شرایطی از دستور “reset” استفاده کنید که یک فاز عملیاتی را به پایان رساندهاید و میخواهید وارد فاز بعدی پروژه خود شوید.
13. chmod: تغییر پرمیژن یا سطح دسترسی دادهها
یکی از رایجترین نیازها در زمان مدیریت سرورهای مجازی و حقیقی، امکان مدیریت سطح دسترسیها و تغییر میزان دسترسی افراد به فایلها و دایرکتوریهای مختلف است. این امکان در SSH برای شما فراهم شده که بتوانید پرمیژن فایلها و دایرکتوریها را با استفاده از کامند و فرمول زیر ویرایش کنید.
chmod [permission] [file name]
در فرمول بالا علاوه بر کامند “chmod”، نیاز دارید که پرمیژن موردنظر خود و نام فایلی که تصمیم دارید پرمیژن آن را تغییر دهید را وارد نمایید. همچنین همانطور که میدانید، میتوان با استفاده از مسیردهی، پرمیژن هر فایل در هر مسیری را تغییر داد. برای نمونه به مثال زیر توجه کنید.
chmod 744 netafrazblog.php
در مثال بالا با استفاده از کامند ارسالشده از طریق SSH از سرور خواستیم که پرمیژن فایل netafrazblog.php را به 744 تغییر دهد.
چنانچه در ابتدای کار هستید و نمیدانید که پرمیژنهای مختلف هر کدام به چه معناست، میتوانید از مقالهای که پیش از این در آقای وب برای شما اماده کردهایم استفاده نمایید.
آشنایی با سطح دسترسیهای مختلف در سیستمهای لینوکسی
علاوه بر مقاله بالا ابزارهای مختلفی وجود دارند که به شما کمک میکنند بتوانید معنای پرمیژنهای مختلف را درک کنید و بتوانید سطح دسترسیهای مختلف را ایجاد یا به یکدیگر تبدیل کنید. یکی از بهترین سایتها برای این منظور سایت chmod-calculator.com است که میتوانید به آن سر بزنید و از امکانات مختلف آن استفاده نمایید.
14. zip: فشرده کردن فایلها با قرار دادن آنها در فایل ZIP
انتقال فایلهای بزرگ در سطح سرور و یا دانلود و آپلود کردن آنها میتواند کار زمانبری باشد؛ همچنین گاها ممکن است که بخواهید چندین فایل مختلف را به یک فرمت واحد تبدیل کنید و آن را در قالب یک فایل در سطح سرور خود جابهجا کنید. در این شرایط میتوانید از دستور “zip” استفاده کنید. با استفاده از فرمت دستوری زیر میتوانید یک یا چندین فایل را در قالب یه فایل ZIP ذخیرهسازی کنید.
zip [zip name].zip [filename1 filename2 filename3]
برای ZIP کردن چندین فایل از طریق SSH تنها کافیست که پس از کامند “zip” نامی که تصمیم دارید برای فایل ZIP استفاده شود را مشخص کنید و پس از آن فایلهایی که تصمیم دارید در فایل ZIP قرار بگیرند را مشخص نمایید. برای درک بهتر این موضوع به مثال زیر توجه کنید.
zip site.zip sidebar.php slider.jpg footervideo.mp4
در مثال بالا ما خواستهایم که سه فایل با نامهای مشخص شده از پوشه فعلی در یک فایل ZIP با نام “site.zip” قرار بگیرند. همانطور که مشاهده میکنید، برای چندین فایل از کاراکتر فاصله (Space) استفاده میکنیم و محدودیتی در تعداد فایلهایی که میخواهیم در یک فایل ZIP قرار بگیرند وجود ندارد.
15. unzip: استخراج فایلهای فشرده
این دستور دقیقا عملکردی مخالف دستور قبلی دارد. با استفاده از دستور قبلی توانستیم چندین فایل مختلف را با قرار دادن در یک فایل ZIP، فشرده کنیم و اکنون میخواهیم با استفاده از کامند “unzip” این فایل فشرده را باز کنیم یا اصطلاحا استخراج کنیم.
برای این کار میتوان از فرمول زیر استفاده کرد.
unzip [zipname].zip
همانطور که مشاهده میکنید این کامند بسیار ساده است و تنها کافیست بعد از دستور “unzip” نام فایل ZIP خود را تایپ نمایید.
16. find: جستجوی دادهها یا همان سرچکردن در دایرکتوریهای مختلف
یکی از پراستفادهترین دستورات برای یک کاربر SSH استفاده از دستور “find” است. زمانی که با دایرکتوریهایی با حجم عظیمی از فایلها مواجه هستیم، استفاده از دستور “ls” عملا کاربردی ندارد و باید به سراغ استفاده از دستور find رفت. دستور find هم یکی از توسعهپذیرترین دستورات SSH است که با تسلط به آن میتوانید سرعت کار خود با سرور از طریق SSH را افزایش دهید.
فرمول کلی استفاده از دستور find به شکل زیر است.
find [directory] [options] [search term]
جدا از دستور find، این کامند از سه بخش اصلی تشکیل شده است.
Directory: همانطور که روشن است، میتوانید در این بخش تعیین کنید که عملیات جستوجو در کدام دایرکتوری صورتگیرد. اجباری به وارد نمودن دایرکتوری نیست و چنانچه دایرکتوری خاصی را منشخص نکنید، فرآیند جستوجو در دایرکتوری فعلی (Current Path) صورت میگیرد.
Options: مهمترین بخش از کامند از “find” را میتوان همین بخش Options دانست. در این قسمت میتوانید مشخص کنید که عملیات جستوجو بر اساس چه معیاری صورت گیرد. از طریق آشنایی با گزینههای مختلف جستوجود میتوانید گام بلندی در کار با کامند find بردارید. برخی از رایجترین گزینههای پیش رو برای استفاده در بخش Options به شرح زیر هستند:
type-: با استفاده از این گزینه میتوانید بر اساس نوع فایل یا دایرکتوری جستوجو کنید. برای این منظور نیاز دارید که با علامتهای موجود برای این دو گزینه نیز آشنا باشید. برای جستوجو بر اساس فایلها در کامند find، حرف “f” و برای جستوجو بر اساس دایرکتوریها نیاز به استفاده از حرف “d” دارید.
find -type f -name sidebar.php find -type d -name site
در مثال بالا و در خط اول از طریق SSH به سرور گفتهایم که تنها فایلی را به ما نشان بده که نام آن “sidebar.php” است و در مثال دوم از سرور خواستهایم که دایرکتوری با نام “site” را به ما نشان دهد.
name-: همانطور که روشن است، با استفاده از این گزینه میتوانید جستوجو را بر اساس نام فایلها مدیریت کنید. نمونه استفاده از این Option را میتوانید در مثال پیشین مشاهده کنید.
size-: یکی دیگر از کاربردیترین گزینهها برای فیلتر کردن موارد با استفاده از کامند ‘find”، استفاده از آپشن “size” است. با استفاده از این گزینه میتوانید فایلها را بر اساس حجمی که دارند مشاهده و بررسی نمایید. نمونههایی از استفاده از این گزینه را میتوانید در ادامه مشاهده کنید.
find -size +50M find -size 5K find -size +2G -size -5G
در مثال اول با استفاده از دستور SSH از سرور خواستهایم که تمامی فایلهای با حجم بیشتر از 50 مگابایت را به ما نمایش دهد.
در مثال دوم به سرور گفتهایم تنها فایلهایی را به ما نشان بده که دقیقا حجمی معادل 5 کیلوبایت دارند.
نهایتا در مثال سوم میتوانید مشاهده کنید که با دو بار استفاده از آپشن size، کاری کردهایم که سرور تنها فایلهایی را به ما نشان دهد که بیشتر از 2 گیگابایت و کمتر از 5 گیگابایت حجم دارند.
user-: با استفاده از آپشن “user” میتوانید جستوجو را بر اساس کاربران انجام دهید. بیشترین کاربرد این قابلیت برای زمانی است که در سرور کاربرهای متعددی داریم و میخواهیم جستوجو را بر اساس دادههای یک کاربر انجام دهیم. به نمونه مثال زیر توجه کنید.
find /home -user amir -name netafrazblog.php
در مثال بالا و در اولین قدم مشخص کردهایم که دایرکتوری موردنظر ما برای جستوجوی فایل، دایرکتوری “home” است. پس از آن مشص کردهایم که جستوجو تنها در دادههایی انجام شود که مالکیت آنها (Ownership) متعلق به کاربری با نام کاربری “amir” است. نهایتا هم گفتهایم که به دنبال یک فایل php با نام “netafrazblog.php” هستیم.
Search Term: دقیقا میتوان گفت که هر موردی که پس از یک Option آورده میشود، یک شرط جستوجو (Search Term) محسوب میشود که در مثالهای قبلی نمونههای بسیاری را دیدهاید.
همانطور که مشاهده کردید، شرایط و Options ها، امکان توسعه بسیاری برای کامند “find” بهوجود آوردهاند که به کاربران کمک میکند بتوانند با استفاده از دستورات SSH بهراحتی و در کمترین زمان فایل یا دایرکتوری موردنظر خود را پیدا کنند.
17. wget: دانلود فایل
تقریبا میتوان گفت که دانلود فایلها و دادههای مختلف از سطح اینترنت یکی از نیازهای اولیه هر کاربری است. مدیران سرورهای مجازی و حقیقی در صورتی که میخواهند فایلی را از طریق SSH دانلود کنند، باید از دستور زیر استفاده کنند.
wget [url] wget https://www.netafraz.com/images/logo.png
ساختار این کامند بسیار ساده است و تنها کافیست که بعد از دستور “wget” لینک فایل مدنظر خود را وارد نمایید. در مثال بالا با وارد کردن کامند مربوطه در SSH، لوگوی آقای وب توسط سرور دانلود خواهد شد.
18. free: بررسی میزان استفاده از حافظه Memory
گاها ممکن است برای شما اتفاق بیفتد که زمان زیادی از طریق SSH در حال توسعه بسته نرم افزاری خود بودهاید و متوجه گذر زمان نشدهاید. پس از گذشت چندین ساعت احساس میکنید که سرعت پاسخگویی سرور به کامندهای شما کاهش یافته یا به قول حرفهایها «ترمینال تنبل (sluggish) شده است!». در این شرایط احتمال زیادی وجود دارد که شما فرآیندهای بسیاری را به سرور سپردهاید که همین موضوع موجب استفاده زیادِ سرور از حافظه RAM شده است. در این شرایط میتوانید با استفاده از کامند “free” میزان استفاده خود از حافظه رم را مشاهده نمایید.
free -h
با استفاده از دستور free دادههای مربوط به میزان استفاده از حافظه مموری سرور، میزان فضای آزاد و کل ظرفیت حافظه Ram برای شما به نمایش درمیآید. اگر به مثال بالا توجه داشته باشید، میتوانید ببینید که ما به این دستور یک Option هم اضافه کردهایم که موجب میشود این دادهها برای ما قابل فهمتر باشد.
آپشن “h-” موجب میشود که نحوه محاسبه ظرفیتها و فضاها به قالب آشنای بایت، کیلوبایت، مگابایت، گیگابایت و… تبدیل شود که درک بهتری از آن داریم. بد نیست اگر اشاره کنیم که در صورت عدم استفاده از آپشن گفتهشده، این دادهها باقالب پیشفرض لینوکس (kibibyte) نمایش داده میشود.
19. man: آشنایی با دستورات SSH
تا کنون 18 دستور پر کاربرد SSH را با ذکر مثالهای متعددی به شما معرفی کردهایم و به عنوان یکی از آخرین دستورات میخواهیم شما را با دستوری آشنا کنیم که میتواند کلیه دستورات SSH را برایتان توضیح دهد.
دستور “man” از کلمه Manual به معنای دفترچه راهنما گرفته شده است و تنها کافیست که این کامند را پیش از هر دستور دیگری قرار دهید تا بتوانید کاربرد آن دستور را مشاهده کنید. فرمول استفاده از این دستور به صورت زیر است.
man [command]
به همین سادگی میتوانید تمامی دستورات مربوط به SSH را پس از کامند “man” وارد نمایید و متوجه کاربرد آن شوید. تنها نکتهای که در این میان حائز اهمیت است، این است که توضیحات ارائهشده به زبان انگلیسی است و بر همین اساس به دانش نسبتا مناسبی نسبت به زبان انگلیسی نیاز دارید، تا بتوانید از طریق این کامند با دیگر دستورات SSH آشنا شوید.
به عنوان نمونه تصویر بالا از زمانی است که با کامند “man printf” خواستهایم که توضیحات مربوط به کامند printf برای ما نمایش داده شود.
20. exit: خروج از ترمینال
عنوان این بند، خودش گویای همه چیز است. دستور “exit” آخرین دستوری است که پس ار هر بار استفاده از ترمینال باید استفاده کنید. با وارد کردن این دستور ترمینال بسته میشود و شما وارد محیط لوکال خود خواهید شد.
سخن پایانی
در این مقاله از آقای وب، به بررسی 20 دستور رایج SSH پرداختیم. تسلط داشتن به SSH موجب میشود که بتوانید با سرعت بسیار زیادی نسبت به مدیریت سرور خود اقدام نمایید.
همانطور که در طول این مقاله هم اشاره کردیم، دستورات SSH بسیار گسترده هستند و این دستورات به واسطه Optionsها نیز قابلیت توسعه دارند. افزایش تجربه کاری در کار با ترمینالهای مختلف موجب میشود که شما بتوانید پیشرفت چشمگیری در کار با سیستمهای لینوکسی داشته باشید و بتوانید با سرعت بیشتری عملیات موردنیاز خود را انجام دهید.
در پایان امیدواریم که از این نوشته بهره کافی را برده باشید. هدف ما در تیم آقای وب، پاسخگویی به سوالات و برطرف کردن مشکلات اولیه شما در مسیر تبدیل شدن به یک کاربر حرفهای ایرانی و مدیر سایت متخصص است، پس چنانچه سوالی در رابطه با این نوشته دارید، از طریق بخش ارسال نظرات در پایین این برگه با ما در ارتباط باشید.
موفقیت همراه راهتان باد.
5
1
رای
امتیازدهی به مقاله
URL Copied