آیا به دنبال لیستی از دستورات مدرن لینوکس می گردید؟
ایمان داشته باشید یا نه، ممکن است هنوز از دستورات منسوخ شده لینوکس استفاده کنید. یا حداقل سعی کنید که از آنها استفاده کنید.
این اصلاً تقصیر شما نیست. شاید به استفاده از این دستورات عادت کردهاید یا آنها را از طریق آموزشهای قدیمی و منسوخ در اینترنت یاد گرفتهاید.
این موضوع بهویژه در مورد دستورات شبکه صدق میکند، زیرا بسیاری از آنها با دستورات جدید جایگزین شدهاند یا به زودی جایگزین خواهند شد.
در این مقاله از وبلاگ یونیکس وب، قصد دارم چند مورد از این دستورات لینوکس را معرفی کنم. ممکن است هنوز برخی از آنها را در توزیع لینوکسی خود پیدا کنید. این احتمال وجود دارد که توزیع شما به دلایل سازگاری با نسخههای قدیمیتر، همچنان از آنها پشتیبانی میکند یا پیادهسازی جدیدی از آنها ارائه داده است و یا ممکن است در نسخههای آینده آنها را حذف کند.
اما به عنوان یک کاربر آگاه از لینوکس، خوب است که آنها را بشناسید. خب پس حالا شروع میکنیم!
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