آیا به دنبال لیستی از دستورات مدرن لینوکس می گردید؟
ایمان داشته باشید یا نه، ممکن است هنوز از دستورات منسوخ شده لینوکس استفاده کنید. یا حداقل سعی کنید که از آنها استفاده کنید.
این اصلاً تقصیر شما نیست. شاید به استفاده از این دستورات عادت کردهاید یا آنها را از طریق آموزشهای قدیمی و منسوخ در اینترنت یاد گرفتهاید.
این موضوع بهویژه در مورد دستورات شبکه صدق میکند، زیرا بسیاری از آنها با دستورات جدید جایگزین شدهاند یا به زودی جایگزین خواهند شد.
در این مقاله از وبلاگ یونیکس وب، قصد دارم چند مورد از این دستورات لینوکس را معرفی کنم. ممکن است هنوز برخی از آنها را در توزیع لینوکسی خود پیدا کنید. این احتمال وجود دارد که توزیع شما به دلایل سازگاری با نسخههای قدیمیتر، همچنان از آنها پشتیبانی میکند یا پیادهسازی جدیدی از آنها ارائه داده است و یا ممکن است در نسخههای آینده آنها را حذف کند.
اما به عنوان یک کاربر آگاه از لینوکس، خوب است که آنها را بشناسید. خب پس حالا شروع میکنیم!
scp – احتمالاً منسوخ شده
دستور scp، که مخفف Secure Copy است، از پروتکل SSH برای کپی کردن فایلها بین دو ماشین لینوکس استفاده میکند. مهمترین ویژگی این دستور این است که به شدت از ساختار دستور cp پیروی میکند. به همین دلیل، scp در میان کاربران لینوکس بسیار محبوب است. شما دستور cp را برای کپی کردن فایلها در یک ماشین محلی میشناسید و از همان ساختار برای کپی کردن فایلها بین ماشینها استفاده میکنید.
اما دستور scp مشکلاتی دارد. پروتکل SCP چندین دهه قدمت دارد، بهروزرسانی نشده و دارای مشکلات امنیتی فراوانی است؛ این مسئله توسط تیم OpenSSH مطرح شده است.
به همین دلیل، توزیعهای مختلف پیشنهاد میدهند که این دستور با دستورات دیگری مثل rsync جایگزین شود یا نسخه جدیدی از scp ایجاد شود که از پروتکل sftp استفاده میکند. توزیعهایی مانند Red Hat و Fedora نسخه جدیدی از scp ایجاد کردهاند.
در سایر توزیعها، استفاده از scp همچنان بحثبرانگیز است. با توجه به عدم قطعیت پیرامون آینده آن، منطقی است که به تدریج به استفاده از دستورات مدرن لینوکس مانند rsync و sftp روی بیاورید.
جایگزین پیشنهادی: دستورات rsync و sftp
برای آشنایی بیشتر با جایگزینهای مدرن برای scp، در اینجا چند مثال ساده از دستورات پیشنهادی مانند rsync و sftp آورده شده است:
۱. استفاده از rsync
دستور rsync برای همگامسازی فایلها بین دو سیستم استفاده میشود و علاوه بر کپی کردن، قابلیتهای بیشتری مثل انتقال فایلها به صورت فشرده و ادامه کپی پس از قطع اتصال را دارد. یک مثال ساده از استفاده از این دستور به شکل زیر است:
rsync -avz /path/to/local/file username@remote_host:/path/to/remote/directory
-a: حفظ تمام ویژگیهای فایل (حالتها، مالکیتها و غیره)-v: نمایش جزئیات عملیات-z: فشردهسازی فایلها در حین انتقال
این دستور فایلها را از سیستم محلی به یک ماشین راه دور با استفاده از SSH کپی میکند، مانند scp، اما کارآمدتر و امنتر.
۲. استفاده از sftp
دستور sftp جایگزینی امن و رایج برای scp است که بر پایه پروتکل SSH کار میکند و امکان مرور دایرکتوریها و انتقال فایلها را به روشی مشابه ftp فراهم میکند. برای مثال:
sftp username@remote_host
سپس میتوانید از دستورات put برای آپلود فایلها یا get برای دانلود فایلها استفاده کنید:
put /path/to/local/file /path/to/remote/directory
این دستورات، دستورات مدرن لینوکس هستند که برای انتقال فایلها به جای scp پیشنهاد میشوند، و هم از نظر امنیتی و هم از نظر کارایی، گزینههای بهتری محسوب میشوند.
egrep و fgrep – جایگزین شده توسط پارامترهای grep
دستورات grep، egrep و fgrep همگی شباهت زیادی به هم دارند. دلیل این شباهت این است که هر سه دستور از یک خانواده هستند.
grep، اولین و قدیمیترین دستور در این گروه است و چندین دهه پیش ایجاد شده است.
دستورات egrep و fgrep کمی بعدتر به وجود آمدند تا قابلیتهای بیشتری به دستور grep اضافه کنند:
- دستور
egrepامکان استفاده از عبارتهای منظم گسترده (extended regex) را فراهم میکند. - دستور
fgrepبه جای عبارتهای منظم، با رشتههای ثابت کار میکند (که رفتار پیشفرضgrepاست).
اما چرا باید دستورات جداگانهای وجود داشته باشد در حالی که میتوان این قابلیتها را بهصورت پارامتر به دستور اصلی اضافه کرد؟
این دقیقاً همان چیزی است که اتفاق افتاد. دستور grep تغییر کرد تا پارامترهای جدیدی را اضافه کند که همان قابلیتهای egrep (با استفاده از grep -E) و fgrep (با استفاده از grep -F) را ارائه میدهند.
با این حال، میراث دستورات egrep و fgrep همچنان ادامه دارد. متأسفانه، بسیاری از آموزشها، وبسایتها و کتابها هنوز به آنها اشاره میکنند و توزیعهای لینوکس همچنان این دستورات را شامل میشوند.
جایگزین پیشنهادی: استفاده از grep -E به جای egrep و grep -F به جای fgrep.
- استفاده از
grep -E(جایگزینegrep):grep -E 'pattern1|pattern2' filename
این دستور امکان استفاده از عبارتهای منظم گسترده (extended regex) را فراهم میکند.
- استفاده از
grep -F(جایگزینfgrep):grep -F 'fixed_string' filename
این دستور برای جستجوی رشتههای ثابت بدون تفسیر آنها به عنوان عبارتهای منظم استفاده میشود.
این دستورات مدرن لینوکس مانند grep -E و grep -F جایگزین بهتری برای egrep و fgrep هستند و استفاده از آنها توصیه میشود.
netstat – از ابزارهای دیگر برای آمار شبکه استفاده کنید
دستور netstat ابزاری عالی برای تجزیه و تحلیل شبکه، هم در سطح بالا و هم در سطح پایین بود.
شما میتوانستید از آن برای نظارت بر بستههای TCP/UDP، سوکتها، مشاهده رابطهای شبکه و موارد دیگر استفاده کنید.
این دستور بخشی از بسته net-tools بود. از آنجا که بسته net-tools حدود سال ۲۰۱۰ منسوخ شد، توزیعهای لینوکس دیگر دستور netstat را اضافه نکردند.
جایگزین پیشنهادی: استفاده از دستور ss.
برای استفاده از دستور ss به جای netstat، میتوانید از دستور زیر استفاده کنید:
ss -tuln
این دستور اطلاعات مربوط به سوکتهای TCP و UDP را نمایش میدهد، مشابه خروجی netstat -tuln.
دستور ss به عنوان یک ابزار مدرن لینوکس برای تجزیه و تحلیل شبکه، به طرز قابل توجهی سریعتر و کارآمدتر از netstat عمل میکند و گزینه بهتری برای نظارت بر شبکههای شما است.
ifconfig – قطعا دلتنگش خواهیم شد
واقعاً. این دستور، دستور اصلی برای بررسی آدرس IP در سیستمهای لینوکس و اطلاعات دیگر درباره رابطهای شبکه بود.
شما هنوز هم میتوانید آن را در پستهای قدیمی انجمنها و آموزشها ببینید. این دستور با بسته net-tools منسوخ شد.
قابلیتهای آن اکنون در دستور ip یافت میشود. در واقع، بسیاری از دستورات محبوب شبکهای لینوکس که بخشی از بسته net-tools بودند، منسوخ شدهاند.
جایگزین پیشنهادی: استفاده از دستور ip.
برای مشاهده اطلاعات مشابه آنچه که با ifconfig دریافت میشد، میتوانید از دستور زیر استفاده کنید:
ip addr show
این دستور اطلاعات مربوط به رابطهای شبکه و آدرسهای IP را نمایش میدهد، بهگونهای که به راحتی میتوانید وضعیت شبکه خود را بررسی کنید.
دستور ip به عنوان یک ابزار مدرن لینوکس برای مدیریت و نظارت بر شبکه، گزینهای کارآمدتر و جامعتر برای جایگزینی ifconfig است و به کاربران این امکان را میدهد که به راحتی مدیریت بهتری بر روی تنظیمات شبکه خود داشته باشند.
iptables – بله درست میبینید همان آیپی تیبل معروف
دستور iptables ابزاری اصلی برای پیکربندی مسیرها برای NAT و فیلتر کردن بستهها در فایروالها است.
این دستور هنوز هم توسط بسیاری از کاربران لینوکس استفاده میشود. با این حال، پروژه اصلی آن، netfilter، یک دستور جایگزین به نام nftables ایجاد کرده است.
چرا؟ زیرا “چارچوب iptables کمی پیچیده شده است با وجود دستورات iptables، ip6tables، arptables و ebtables که همگی عملکردهای مختلف ولی مشابهی ارائه میدهند.”
بنابراین یک ابزار جدید برای ترکیب همه آنها تحت nftables ایجاد شده است. میتوانید مقایسهای بین دستورات iptables و nftables را مطالعه کنید.
شما هنوز هم دستور iptables را در تقریباً تمام توزیعهای لینوکس پیدا خواهید کرد. اما با توجه به اینکه توسعهدهندگان خود آن جایگزینی برای آن ایجاد کردهاند، منطقی است که به تدریج به ابزار جدیدتر روی بیاورید.
جایگزین پیشنهادی: استفاده از دستور nftables.
برای استفاده از nftables به جای iptables، میتوانید از دستورات زیر استفاده کنید:
- برای نمایش قوانین موجود:
nft list ruleset
- برای اضافه کردن یک قانون جدید:
nft add rule ip filter input tcp dport 22 accept






