مهم‌ترین و کاربردی‌ترین دستورات SSH

آنیتا نظری 

شهریور 6, 1399

اگر سرور مجازی لینوکس را به عنوان فضای میزبانی سایت یا اپلیکیشن خود انتخاب می‌کنید، پس با محیط Shell سروکار زیادی خواهید داشت. در این مقاله به آموزش putty و بررسی دستورات ssh لینوکس، روش استفاده از آن‌ها و ویژگی‌های آن‌ها می‌پردازیم.

پس از اینکه وارد محیط shell شدید برای برقراری ارتباط با سرور مجازی لینوکس خود، نیاز به استفاده از یک سری دستورات دارید. در ابن مقاله به بررسی دستورات SSH و نحوه بکار بردن آن‌ها را به شما آموزش خواهیم داد.

 

آموزش دستورات SSH

 

ls

این دستور جهت نمایش لیست فایل‌ها و دایرکتوری‌ها در یک فولدر بکار می‌رود و جایگزین دستور dir در سیستم عامل ویندوز می‌باشد.

 

ls -la

این دستور جهت نمایش همه فایل‌ها (حتی فایل‌های پنهان شده) و فهرست‌ها بکار می‌رود و جزئیات هر فایل را نیز نمایش می‌دهد.

 

cd

این دستور جهت تغییر دایرکتوری بکار می‌رود.

 

cd /usr/local/apache

توسط این دستور می‌توانید به مسیر /usr/local/apache/ بروید.

 

cd ~

توسط این دستور ssh می‌توانید به مسیر خانه (home) بروید.

 

cd –

توسط این دستور می‌توانید به آخرین دایرکتوری که در آن بودید، بروید.

 

cd ..

توسط این کامند ssh می‌توانید یک فولدر به عقب بروید.

 

cat

توسط این دستور می‌توانید محتوای یک پوشه را نمایش دهید.

 

cat filename.txt

توسط این دستور محتویات filename.txt روی صفحه نمایش داده می‌شود.

 

tail

همانند دستور cat می‌باشد با این تفاوت که فقط خطوط انتهایی فایل را نمایش می‌دهد.

 

tail /var/log/messages

توسط این دستور می‌توانید ۲۰ خط انتهایی (به طور پیش فرض) فایل در مسیر var/log/messages را مشاهده نمایید.

 

tail -f /var/log/messages

توسط این دستور می‌توانید فایل را در هنگام آپدیت نمودن آن، بطور پیوسته مشاهده کنید.

 

tail -200 /var/log/messages

توسط این دستور می‌توانید ۲۰۰ خط آخر فایل را روی صفحه مشاهده کنید.

 

more

این دستور همانند cat می‌باشد، با این تفاوت که محتوای پرونده را بجای اینکه به صورت یکباره نمایش دهد، صفحه به صفحه نمایش می‌دهد.

 

more /etc/userdomains

توسط این دستور می‌توانید داخل پرونده domains user را مشاهده کنید.
شما می‌توانید دکمه Space را بزنید تا به صفحه بعدی بروید و با فشردن دکمه q میتوانید از آن خارج شوید.

 

pico

این دستور ویرایشگر ساده و کاربرپسند جهت ویرایش فایل‌ها می‌باشد.

pico /home/burst/public_html/index.html

توسط این دستور می‌توانید صفحه index وب سایت کاربر را ویرایش کنید.

 

vi

این دستور یک ویرایشگر دیگر با ویژگی‌های بسیار زیاد، جهت ویرایش فایل‌ها می‌باشد.

 

vi /home/burst/public_html/index.html

توسط این دستور می‌توانید صفحه index وب سایت کاربر را ویرایش کنید.

 

grep

این دستور جهت یافتن الگوی خاصی در پرونده خاص اسفاده می‌شود.

 

grep root /etc/passwd

این دستور تمام گزینه‌های مربوط به root را در مسیر /etc/passwd را نشان می‌دهد.

 

grep -v root /etc/passwd

تمام خطوطی را نشان می دهد که شامل root نمی‌باشند.

 

touch

این یکی از دستورات ssh سرور است که با کمک آن می‌توانید یک فایل خالی ایجاد کنید.

 

touch /home/burst/public_html/404.html

توسط این دستور می‌توانید یک پرونده خالی به نام ۴۰۴٫html در مسیر /home/burst/public_html/ ایجاد کنید.

 

ln

توسط این دستور می‌توانید بین فایل‌ها و دایرکتوری‌ها، لینک ایجاد کنید.

 

ln -s /home/username/tmp/webalizer webstats

توسط این دستور می‌توانید http://www.yourdomain.com/webstats را مشاهده نمایید که این صفحه آمار وب سایت شما را به صورت آنلاین نمایش می‌دهد. همچنین شما می‌توانید Symlink (webstats) را حذف کنید البته توجه نمایید که این کار آمار اصلی را در سرور حذف نمی‌کند.

 

rm

توسط این دستور می‌توانید فایل خاصی را حذف کنید.

 

rm filename.txt

این دستور فایل filename.txt را حذف می کند، بیش از حذف فایل، از شما سؤال خواهد کرد که آیا واقعاً می خواهید آن فایل را حذف کنید.

 

rm -f filename.txt

این دستور فایل filename.txt را حذف می کند. توجه نمایید که این دستور قبل از حذف فایل، درخواست تأیید از شما نمی‌خواهد.

 

rm -rf tmp/

این دستور به صورت بازگشتی دایرکتوری tmp و کلیه پرونده های موجود در آن از جمله زیرمجموعه‌ها را نیز حذف می کند.

 

** هنگام استفاده از دستور rm بسیار مراقب باشید. در صورت استفاده نادرست این دستور، باعث می‌شود محتوای مهم حذف شود و محتوای حذف شد، هرگز قابل بازیابی نیست مگر اینکه بکاپ آن را داشته باشید و بتوانید آن را بازیابی(restore) نمایید.

 

last

این دستور ssh لینوکس نشان می دهد چه کسی وارد سیستم شده و چه زمان به سیستم لاگین شده است.

 

last -20

این دستور ۲۰ لاگین آخر را نشان می دهد.

 

last -20 -a

این دستور ۲۰ لاگین آخر را به همراه نام میزبان (hostname) در انتهای آن نشان می دهد.

 

w

این دستور نشان می دهد چه کسی در حال حاضر وارد سیستم شده و از کجا وارد سیستم شده است.

 

netstat

این دستور تمام اتصالات شبکه فعلی (network connections) را نشان می دهد.

 

netstat -an

این دستور کلیه اتصالات مربوط به سرور، آی پی‌ها (IPs) و پورت های مبدا و مقصد را نشان می‌دهد.

 

netstat -rn

این دستورجدول مسیریابی(routing table) را برای کلیه IP هایی که به سرور وصل شده اند، را نشان می دهد.

 

top

این دستور یکی از پرکاربردترین دستورات در مانیتورینگ سرور می‌باشد و پروسس های سیستم (system processes) شامل اطلاعات حافظه (Memory)، آپ تایم سرور (Uptime) و سایر اطلاعات مفید را به صورت لحظه‌ای در یک جدول نشان می دهد.

 

این دستور جهت مدیریت پروسس‌های سیستم، منابع مصرفی سرور و اطمینان از اینکه روی همه پرپسس ها سرور به خوبی درحال اجرا میباشد یا نه، به کار می‌رود.

 

در دستورات top، از کلیدهای میانبر زیر می‌توانید استفاده نمایید:
برای مرتب سازی بر اساس استفاده از حافظه (Memory)، کلید Shift + M را وارد کنید.
کلید Shift + P برای مرتب سازی بر اساس استفاده از CPU استفاده میشود.

 

Ps

اصطلاح ps به معنای وضعیت پروسس ها (process status) و مشابه دستور top میباشد. این دستور برای نمایش پروسس‌های در حال اجرا و PID آنها، استفاده می شود.

 

شناسه پردازش (process ID) یک شماره منحصر به فرد است که یک پروسس خاصی را مشخص می کند. با دانستن PID یک پروسس می توانید یک برنامه در حال اجرا را روی سرور متوقف کنید (kill) یا به ادامه اجرای آن خاتمه دهید (terminate).

 

ps U username

این دستور تمامی پروسس‌های فعال یک کاربر خاص را نشان می دهد.

 

ps aux

این دستور تمام پروسس‌های سیستم را نشان می دهد.

 

ps aux –forest

این دستور تمام پروسس‌های سیستم را مانند موارد فوق نشان می دهد اما با این تفاوت که در سلسله مراتبی بسیار مفید آن‌ها را سازماندهی می کند.

 

file

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

 

file *

این دستور لیستی از کلیه فایل‌ها / فهرست‌ها را در یک پوشه نمایش می دهد.

 

du

این دستور میزان مصرف فضای دیسک را نشان می دهد.

 

du -sh

این یکی از دستورات ssh لینوکس است که خلاصه ای از کل فضای دیسک مورد استفاده در دایرکتوری فعلی، از جمله زیر شاخه ها را نشان می دهد.

 

du -sh *

این دستور مشابه دستور بالا بوده با این تفاوت که فضای دیسک مورد استفاده برای هر فایل و دایرکتوری را نمایش میدهد. این دستور زمانی کاربرد دارد که جهت پیدا کردن پرونده های بزرگ که فضای زیادی روی سرور آشغال نموده‌اند، می‌باشید.

 

wc

این دستور تعداد کلمات را نشان می‌دهد.

 

wc -l filename.txt

این دستور نشان می‌دهد که در فایلی با نام filename.txt چند سطر وجود دارد.

 

cp

این دستور جهت کپی کردن یک فایل به کار می‌رود.

 

cp filename filename.backup

این دستور filename را در فایل با نام filename.backup کپی می‌کند.

 

cp -a /home/burst/new_design/* /home/burst/public_html/

این دستور كليه فایل‌ها را به همراه مجوزهاي مربوطه به دايرکتوری دیگر کپی می‌کند.

 

find * -type d|xargs -i cp –verbose php.ini {}

این دستور فایل php.ini را داخل دایرکتوری‌ها به صورت بازگشتی کپی می‌کند.

 

kill

با این دستور یک پروسس سیستم را می‌توانید خاتمه دهید. به طور مثال:
kill -9 PID EG: kill -9 431
kill PID EG : kill 10550

 

برای به دست آوردن PID‌های سیستم (شناسه پردازش) از دستورات ux یا top ویا ux استفاده کنید.

به عنوان مثال:
PID TTY TIME COMMAND
۱۰۵۵۰ pts/3 0:01 /bin/csh
۱۰۵۷۴ pts/4 0:02 /bin/csh
۱۰۵۹۰ pts/4 0:09 APP

 

در مثال بالا، هر خط یک پروسس را نشان می دهد که به عنوان مثال در یک برنامه در حال اجرا می‌باشد. ستون PID (شناسه پروسس)، شماره پروسس را نشان می دهد. قسمت COMMAND مسیر پروسس درحال اجرا را نشان می دهد.

 

قرار دادن دستورات ssh لینوکس فوق در کنار هم

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

توجه داشته باشید که | کاراکتر pipe نامیده می شود، داده ها را از یک برنامه می گیرد و آن را به برنامه دیگر انتقال می دهد.

کاراکتر > جهت ایجاد یک فایل جدید است، و هر محتوایی را که از قبل در آن وجود دارد را بازنویسی میکند.
کاراکتر >> جهت اضافه کردن داده ها به انتهای یک فایل است و در صورتی که فایل قبلاً وجود نداشته است، آن را ایجاد می کند.
کاراکتر < ورودی را از یک پرونده به یک دستور ارسال می‌کند.

مثال:

grep User /usr/local/apache/conf/httpd.conf | more

این دستور خطوطی را که با User در فایل httpd.conf مطابقت دارد، را پیدا می کند، سپس نتیجه را به صورت صفحه را به صفحه چاپ می کند. last -a > /root/lastlogins.tmp
این دستور تاریخچه ورود(لاگین) به سیستم فعلی را روی فایلی به نام lastlogins.tmp در مسیر root کپی خواهد کرد.

 

tail -10000 /var/log/exim_mainlog | grep domain.com | more

با اجرای این دستور ۱۰،۰۰۰ خط آخر از مسیر فایل /var/log/exim_mainlog را بررسی نموده، و تمام مواردی که با domain.com مطابقت دارد را پیدا می‌کند و سپس نتیجه را به صورت صفحه را به صفحه چاپ می کند.

 

netstat -an | grep :80 | wc -l

این دستور تعداد اتصالات فعال برای آپاچی را نشان می‌دهد. (httpd در پورت ۸۰ اجرا می شود.)

 

mysqladmin processlist | wc -l

این دستور تعداد اتصالات باز فعلی را به mysql نشان می‌دهد.

 

mysqldump -u username -p dbname > file.sql

این دستور MySQL Dump را نشان می‌دهد.

 

mysql -u username -p database_name <file.sql

این دستور جهت وارد کردن (import) پایگاه داده MySQL بکار میرود.

 

tar -zxvf file.tar.gz

این دستور فایل را از حالت فشرده خارج می‌کند.

 

which [perl]

این دستور مسیر [perl] را می‌یابد.

 

با کمک این آموزش دستورت SSH اکنون می‌توان پایه‌ترین و کاربردی‌ترین موارد را بر روی سرور مجازی لینوکس خود اعمال کرد.

آنیتا نظری 

کارشناس نرم‌افزار، طراح وب سایت و کارشناس فنی وب هاستینگ، مسلط به زبان انگلیسی و علاقه‌مند به موضوعات IT و تکنولوژی.