مقدمة
أطلق العنان لإمكانات نظام لينكس لديك مع هذا الدليل الشامل لأوامر لينكس الأساسية. سواء كنت مديرًا خبيرًا أو مبتدئًا، فإن إتقان هذه الأوامر ضروري لإدارة الخادم بكفاءة، وبرمجة البرامج النصية، واستكشاف الأخطاء وإصلاحها. في هذا البرنامج التعليمي، ستتعلم الأوامر الأكثر استخدامًا وفعالية لإدارة الملفات، والتحكم في العمليات، ووصول المستخدم، وتكوين الشبكة، وتصحيح أخطاء النظام.
ستتعلم أكثر من 50 أمرًا أساسيًا في لينكس، مما سيجعلك مستخدمًا قويًا له. من المبتدئ إلى المتقدم، ستصبح هذه الأوامر الأدوات التي تستخدمها لإنجاز أي مهمة.
المتطلبات الأساسية
سنستخدم هذه الأوامر على خادم أوبونتو، ولكن يمكنك اتباع هذا الشرح على أي توزيعة لينكس حديثة. يمكنك إعداد خادم أوبونتو لهذا الشرح باتباع دليلنا لإعداد خادم لأول مرة على أوبونتو.
- ls – الأمر الأكثر استخدامًا في Linux لإدراج الدلائل.
- pwd – أمر لطباعة دليل العمل في Linux.
- cd – أمر Linux للتنقل بين الدلائل.
- mkdir – الأمر المستخدم لإنشاء الدلائل في Linux.
- mv – نقل أو إعادة تسمية الملفات في Linux.
- cp – مشابه لـ mv ولكن لنسخ الملفات في Linux.
- rm – حذف الملفات أو المجلدات.
- اللمس – إنشاء ملفات فارغة.
- ln – إنشاء روابط رمزية (اختصارات) إلى ملفات أخرى.
- مسح – مسح شاشة المحطة.
- cat – عرض محتويات الملف في المحطة الطرفية.
- echo – طباعة أي نص يتبع الأمر.
- less – أمر Linux لعرض المخرجات المقسمة إلى صفحات في المحطة الطرفية.
- الرجل – الوصول إلى صفحات الدليل لجميع أوامر Linux.
- uname – أمر Linux للحصول على معلومات أساسية حول نظام التشغيل.
- whoami – احصل على اسم مستخدم نشط.
- tar – أمر لاستخراج وضغط الملفات في Linux.
- grep – البحث عن سلسلة في المخرجات.
- الرأس – إرجاع العدد المحدد من الأسطر من الأعلى.
- الذيل – إرجاع العدد المحدد من الأسطر من الأسفل.
- diff – البحث عن الاختلافات بين ملفين.
- cmp – يسمح لك بالتحقق مما إذا كان الملفان متماثلين.
- comm – يجمع بين وظيفتي diff و cmp.
- sort – أمر Linux لفرز محتويات ملف عند الإخراج.
- export – تصدير متغيرات البيئة في Linux.
- zip – ملفات Zip في Linux.
- unzip – فك ضغط الملفات في Linux.
- ssh – أمر Secure Shell في Linux.
- الخدمة – أمر Linux لبدء وإيقاف الخدمات.
- ps – إظهار العمليات النشطة.
- kill و killall – يقتل العمليات النشطة استنادًا إلى معرف العملية أو اسمها.
- df – عرض معلومات نظام ملفات القرص.
- mount – تثبيت أنظمة الملفات في Linux.
- chmod – أمر لتغيير أذونات الملف.
- chown – أمر لمنح ملكية الملفات أو المجلدات.
- ifconfig – يعرض واجهات الشبكة وعناوين IP.
- traceroute – تتبع جميع مسارات الشبكة للوصول إلى وجهة معينة.
- wget – تنزيل الملفات مباشرة من الإنترنت.
- ufw – أمر جدار الحماية.
- iptables – جدار الحماية الأساسي لأدوات جدار الحماية الأخرى للتواصل معها.
- apt، pacman، yum، rpm – مديرو الحزم يعتمدون على التوزيع.
- sudo – أمر لزيادة الامتيازات في Linux.
- cal – عرض سطر أوامر التقويم.
- الاسم المستعار – إنشاء اختصارات مخصصة للأوامر التي تستخدمها بشكل متكرر.
- dd – يستخدم بشكل أساسي لإنشاء محركات أقراص فلاش USB قابلة للتمهيد.
- whereis – ابحث عن الصفحات الثنائية والمصدرية واليدوية لأمر ما.
- ما هو – اكتشف ما هو استخدام الأمر.
- أعلى - عرض العمليات النشطة مباشرة مع استخدامها للنظام.
- useradd و usermod – إضافة مستخدم جديد أو تعديل بيانات المستخدم الحالية.
- passwd – إنشاء أو تحديث كلمات المرور للمستخدمين الحاليين.
أوامر الملفات والمجلدات
| يأمر | وصف | مثال |
|---|---|---|
| ل س | قائمة محتويات الدليل. | ل س |
| قرص مضغوط | تغيير الدليل. | cd /path/to/directory |
| كلمة مرور | إظهار الدليل الحالي. | كلمة مرور |
| مكدير | إنشاء دليل جديد. | mkdir الدليل الجديد |
| rmdir | إزالة الدليل الفارغ. | rmdir دليل فارغ |
| rm | حذف الملفات أو الدلائل. | ملف rm.txt |
| يلمس | إنشاء ملف فارغ. | المس new_file.txt |
| ج.ب. | نسخ الملفات أو الدلائل. | ملف cp.txt /path/to/destination |
| فيديو | نقل الملفات أو إعادة تسميتها. | ملف mv.txt /path/to/new_location |
| قطة | عرض محتويات الملف. | ملف cat.txt |
| نانو / فيم | تعديل الملفات في المحطة الطرفية. | ملف nano.txt |
| يجد | البحث عن الملفات في التسلسل الهرمي للدليل. | ابحث عن .-name "file.txt"" |
| grep | البحث عن النص باستخدام الأنماط. | ملف grep "pattern" file.txt |
| قطران | أرشفة الملفات وضغطها. | القطران -cvf archive.tar file1.txt file2.txt |
| د ف | إظهار استخدام القرص لأنظمة الملفات. | د ف |
| دو | إظهار حجم الدليل/الملف. | du -sh /path/to/directory |
| chmod | تغيير أذونات الملف. | ملف chmod 755.txt |
| تشاون | تغيير مالك الملف. | ملف chown المستخدم:المجموعة.txt |
| جبل | تثبيت نظام الملفات. | قم بتثبيت /dev/sdb1 /mnt |
| رفع | إلغاء تثبيت نظام الملفات. | إلغاء /mnt |
أوامر الشبكة
| يأمر | وصف | استخدام العينة |
|---|---|---|
| بينغ | اختبار الاتصال بالمضيف. | ping google.com |
| ifconfig /ip a | عرض واجهات الشبكة. | ifconfig أو عنوان IP |
| netstat /ss | إظهار اتصالات الشبكة. | netstat -tuln أو ss -tuln |
| أداة wget | تنزيل الملفات عبر HTTP/FTP. | wget http://example.com/file.zip |
| حليقة | نقل البيانات باستخدام صيغة URL. | curl -O http://example.com/file.zip |
| nc (Netcat) | استكشاف أخطاء الشبكة ونقل البيانات. | nc -zv 192.168.1.1 80 |
| tcpdump | التقاط حزم الشبكة وتحليلها. | tcpdump -i eth0 |
| ايبتبلز | تكوين قواعد جدار الحماية. | iptables -A INPUT -p tcp --dport 22 -j ACCEPT |
| تتبع المسار | تتبع مسار الحزم إلى مضيف الشبكة. | traceroute example.com |
| nslookup | استعلام DNS للحصول على اسم المجال أو تعيين عنوان IP. | nslookup example.com |
| ssh | الاتصال بشكل آمن بمضيف بعيد. | ssh [email protected] |
أوامر مراقبة العملية والنظام
| يأمر | وصف | مثال على الأمر |
|---|---|---|
| ملاحظة: | إظهار العمليات الجارية. | ps aux |
| قمة | عارض العملية الديناميكية. | قمة |
| أعلى | نسخة محسنة من الأعلى. | أعلى |
| قتل | إرسال إشارة إلى عملية. | قتل |
| قتل الكل | قم بقتل العمليات حسب الاسم. | قتل الكل |
| وقت التشغيل | وقت تشغيل النظام والحمل. | وقت التشغيل |
| وامي | المستخدم المسجل الدخول حاليًا. | وامي |
| بيئة | عرض متغيرات البيئة. | بيئة |
| ستراس | تتبع مكالمات النظام لعملية ما. | strace -p |
| systemctl | إدارة خدمات systemd. | حالة systemctl |
| Journalctl | عرض سجلات النظام. | journalctl -xe |
| حر | عرض استخدام الذاكرة. | حر -ح |
| vmstat | تقرير إحصائيات الذاكرة الافتراضية. | vmstat 1 |
| أيوستات | تقرير إحصائيات وحدة المعالجة المركزية ووحدة الإدخال/الإخراج. | أيوستات |
| لسوف | قائمة الملفات المفتوحة حسب العمليات. | لسوف |
| دميسج | طباعة رسائل مخزن الحلقة للنواة. | دميسج |
أوامر إدارة المستخدمين والأذونات
| يأمر | وصف | مثال على الأمر |
|---|---|---|
| كلمة المرور | تغيير كلمة مرور المستخدم. | كلمة المرور |
| إضافة مستخدم / إضافة مستخدم | أضف مستخدمًا جديدًا. | إضافة مستخدم أو إضافة مستخدم |
| deluser / userdel | حذف مستخدم. | مُضلِّل أو حذف المستخدم |
| تعديل المستخدم | تعديل حساب المستخدم. | usermod -aG |
| مجموعات | إظهار عضويات المجموعة. | مجموعات |
| سودو | تنفيذ الأوامر كجذر. | سودو |
| يتغير | تغيير معلومات انتهاء صلاحية كلمة مرور المستخدم. | تغيير -l |
| بطاقة تعريف | عرض معلومات هوية المستخدم. | بطاقة تعريف |
| مجموعة جديدة | تسجيل الدخول إلى مجموعة جديدة. | مجموعة جديدة |
أوامر نقل الملفات ومزامنتها
| يأمر | وصف | مثال على الأمر |
|---|---|---|
| SCP-1811 | نسخ الملفات بشكل آمن عبر SSH. | مستخدم scp@remote:/path/to/file /local/destination |
| rsync | مزامنة الملفات والدلائل بكفاءة. | rsync -avz /local/directory/ user@remote:/path/to/destination |
| بروتوكول نقل الملفات | نقل الملفات باستخدام بروتوكول نقل الملفات. | ftp ftp.example.com |
| بروتوكول نقل الملفات الآمن (SFTP) | نقل الملفات بشكل آمن باستخدام بروتوكول نقل الملفات SSH. | مستخدم sftp@remote:/path/to/file |
| أداة wget | تنزيل الملفات من الويب. | wget http://example.com/file.zip |
| حليقة | نقل البيانات من أو إلى الخادم. | curl -O http://example.com/file.zip |
أوامر معالجة النصوص
| يأمر | وصف | مثال على الأمر |
|---|---|---|
| أوك | مسح الأنماط ومعالجتها. | ملف awk '{print $1}'.txt |
| سيد | محرر التدفق لتصفية/تعديل النص. | ملف sed 's/old/new/g'.txt |
| يقطع | إزالة أقسام من أسطر النص. | قص -d':' -f1 /etc/passwd |
| نوع | فرز أسطر النص. | فرز ملف .txt |
| grep | البحث عن الأنماط في النص. | ملف grep 'pattern'.txt |
| مرحاض | عد الكلمات والأسطر والأحرف. | wc -l file.txt |
| لصق | دمج أسطر الملفات. | لصق file1.txt file2.txt |
| ينضم | ربط أسطر ملفين في حقل مشترك. | انضم إلى ملف 1.txt ملف 2.txt |
| رأس | إخراج الجزء الأول من الملفات. | head -n 10 file.txt |
| ذيل | إخراج الجزء الأخير من الملفات. | ذيل -n 10 ملف.txt |
أوامر واختصارات Shell المفيدة
| يأمر | وصف | مثال على الأمر |
|---|---|---|
| الاسم المستعار | إنشاء اختصارات للأوامر. | الاسم المستعار ll='ls -la'' |
| اسم مستعار | إزالة الاسم المستعار. | الاسم المستعار ll |
| تاريخ | إظهار الأوامر المدخلة مسبقًا. | تاريخ |
| واضح | امسح شاشة المحطة. | واضح |
| إعادة التشغيل | أعد تشغيل النظام. | إعادة التشغيل |
| اغلق | قم بإيقاف تشغيل النظام. | اغلاق الان |
| تاريخ | عرض أو تعيين تاريخ ووقت النظام. | تاريخ |
| صدى | عرض سطر من النص. | صدى "مرحبا بالعالم!"" |
| ينام | تأخير لمدة محددة من الوقت. | النوم 5 |
| وقت | قياس مدة تنفيذ الأمر. | الوقت ls |
| يشاهد | تنفيذ برنامج بشكل دوري، مع إظهار الإخراج على الشاشة كاملة. | مشاهدة -n 5 df -h |
الآن، لنتعمق أكثر في كلٍّ من هذه الأوامر ونفهمها بمزيد من التفصيل. لدينا بالفعل العديد من المقالات لكلٍّ منها. لتسهيل الأمر عليك، سنضيف روابط لجميع المقالات الحالية ونُحدِّث المقالة عند تناولنا لمواضيع جديدة.
أمر ls في لينكس
يُستخدم الأمر ls لعرض الملفات والمجلدات في مجلد العمل الحالي. وهو من أكثر أوامر لينكس استخدامًا، ويُنصح بالتعرف عليه.
root@ubuntu:~# ln -s <source path> <link name>
همانطور که در تصویر بالا مشاهده میکنید، استفاده از خود دستور بدون هیچ آرگومانی، خروجیای با تمام فایلها و دایرکتوریهای موجود در آن دایرکتوری به ما میدهد. این دستور از نظر نمایش دادهها در خروجی، انعطافپذیری زیادی ارائه میدهد.
دستور pwd در لینوکس
دستور pwd به شما امکان میدهد دایرکتوری کاری فعلی را در ترمینال خود چاپ کنید. این یک دستور بسیار ابتدایی است و هدف خود را به خوبی برآورده میکند.

خب، در هر صورت، ترمینال شما معمولاً باید دایرکتوری کامل را داشته باشد. اما در صورتی که اینطور نباشد، این میتواند یک دستور سریع برای دیدن دایرکتوری باشد که در آن هستید. کاربرد دیگر این دستور هنگام ایجاد اسکریپتها است که این دستور میتواند به ما امکان دهد دایرکتوری که اسکریپت در آن ذخیره شده است را پیدا کنیم.
دستور cd در لینوکس
هنگام کار با ترمینال، جابجایی در دایرکتوریها تقریباً یک ضرورت است. دستور cd یکی از دستورات مهم لینوکس است که باید بدانید و به شما در پیمایش در دایرکتوریها کمک میکند. کافیست cd و به دنبال آن directory را تایپ کنید، همانطور که در زیر نشان داده شده است.
root@ubuntu:~# cd <directory path>
همانطور که در دستور بالا میبینید، من به سادگی cd /etc/ را تایپ کردم تا به دایرکتوری /etc بروم. ما از دستور pwd برای چاپ دایرکتوری کاری فعلی استفاده کردیم.
دستور mkdir در لینوکس
دستور mkdir به شما امکان میدهد دایرکتوریها را از داخل ترمینال ایجاد کنید.
root@ubuntu:~# mkdir <folder name>
همانطور که در تصویر بالا مشاهده میکنید، ما دایرکتوری JournalDev را تنها با همین دستور ساده ایجاد کردیم.
دستورات cp و mv
دستورات cp و mv معادل دستورات copy-paste و cut-paste در ویندوز هستند. اما از آنجایی که لینوکس واقعاً دستوری برای تغییر نام فایلها ندارد، ما از دستور mv نیز برای تغییر نام فایلها و پوشهها استفاده میکنیم.
root@ubuntu:~# cp <source> <destination>
در دستور بالا، ما یک کپی از فایل با نام Sample ایجاد کردیم. بیایید ببینیم اگر از دستور mv به همین روش استفاده کنیم، چه اتفاقی میافتد.
root@ubuntu:~# mv <source> <destination
در مورد بالا، از آنجایی که ما فایل را در همان دایرکتوری منتقل میکردیم، این کار به عنوان تغییر نام عمل کرد. اکنون نام فایل تغییر کرده است.
دستور rm در لینوکس
در بخش قبلی، فایل Sample-Copy را حذف کردیم. دستور rm برای حذف فایلها و پوشهها استفاده میشود و یکی از دستورات مهم لینوکس است که باید آن را بدانید.
root@ubuntu:~# rm <file name>
برای حذف یک دایرکتوری، باید آرگومان -r را به آن اضافه کنید. بدون آرگومان -r، دستور rm دایرکتوریها را حذف نمیکند.
علامت -r در دستور rm در لینوکس مخفف کلمه “recursive” است. وقتی با دستور rm استفاده شود، نه تنها فایل مشخص شده، بلکه تمام زیرشاخههای آن و فایلهای درون آن زیرشاخهها را نیز به صورت بازگشتی حذف میکند.
به عنوان مثال، برای حذف دایرکتوری mydir و محتویات آن با تایید، میتوانید از این دستور استفاده کنید:
root@ubuntu:~# rm -ri mydirاین کار قبل از حذف هر فایل و دایرکتوری در دایرکتوری mydir از شما تأیید میخواهد.
دستور touch در لینوکس
دستور touch در لینوکس یک فایل خالی ایجاد میکند یا مهر زمانی یک فایل موجود را بهروزرسانی میکند.
root@ubuntu:~# touch <file name>
دستور ln در لینوکس
برای ایجاد لینک به فایل دیگر، از دستور ln استفاده میکنیم. این یکی از مهمترین دستورات لینوکس است که اگر قصد دارید به عنوان مدیر لینوکس کار کنید، باید بدانید.
root@ubuntu:~# ln -s <source path> <link name>
پرچم -s یک پیوند نمادین (که به عنوان پیوند نمادین یا پیوند نرم نیز شناخته میشود) به یک فایل یا دایرکتوری ایجاد میکند. پیوند نمادین نوع خاصی از فایل است که به عنوان میانبر یا اشارهگر به فایل یا دایرکتوری دیگر عمل میکند.
به طور پیشفرض، دستور ln به جای پیوندهای نمادین یا نرم، پیوندهای سخت ایجاد میکند.
یک پیوند سخت، یک کپی آینهای از یک فایل اصلی با همان محتوا است. مانند پیوندهای نمادین، اگر محتوای فایل اصلی را ویرایش کنید، آن تغییرات در پیوند سخت منعکس میشوند. با این حال، اگر فایل اصلی را حذف کنید، پیوند سخت همچنان کار خواهد کرد و میتوانید آن را مانند یک کپی معمولی از فایل اصلی مشاهده و ویرایش کنید.
دستور clear در لینوکس
دستور clear در لینوکس صفحه ترمینال را پاک میکند. این دستور تمام متن و خروجی نمایش داده شده در ترمینال را حذف میکند و یک صفحه خالی برای کار به شما میدهد.
در اینجا مثالی از نحوه استفاده از دستور clear آورده شده است:
root@ubuntu:~# clearاین کار صفحه ترمینال را پاک میکند و مکاننما را به گوشه سمت چپ بالای صفحه منتقل میکند.
همچنین میتوانید از دستور clear در ترکیب با سایر دستورات مانند این استفاده کنید:
root@ubuntu:~# ls -l; clearاین دستور فایلها و دایرکتوریهای موجود در دایرکتوری فعلی را فهرست میکند و سپس صفحه ترمینال را پاک میکند.
دستورات cat، echo و less
وقتی میخواهید محتوای یک فایل را در خروجی ترمینال چاپ کنید یا چیزی را چاپ کنید، از دستورات cat یا echo استفاده میکنیم. بیایید کاربرد اساسی آنها را بررسی کنیم.
root@ubuntu:~# cat <file name>
root@ubuntu:~# echo <Text to print on terminal>
همانطور که در مثال بالا میبینید، دستور cat، وقتی در فایل جدید ما استفاده میشود، محتویات فایل را چاپ میکند. در عین حال، وقتی از دستور echo استفاده میکنیم، به سادگی هر آنچه را که بعد از دستور میآید چاپ میکند.
دستور less زمانی استفاده میشود که خروجی چاپ شده توسط هر دستوری بزرگتر از فضای صفحه نمایش باشد و نیاز به پیمایش داشته باشد. دستور less به کاربر اجازه میدهد تا خروجی را تجزیه کند و با استفاده از کلیدهای enter یا space در آن پیمایش کند.
روش ساده برای انجام این کار استفاده از عملگر pipe (|) است.
root@ubuntu:~# cat /boot/grub/grub.cfg | lessاز پرچم -N به همراه less برای نمایش شماره خطوط استفاده کنید. این میتواند زمانی مفید باشد که نیاز به دانستن شماره خط یک متن خاص دارید.
میتوانید از این پرچمهای مفید به روش زیر استفاده کنید:
root@ubuntu:~# cat /boot/grub/grub.cfg | less -SNاستفاده از less به همراه عملگر pipe میتواند در موقعیتهای مختلفی مفید باشد. در اینجا چند مثال آورده شده است:
- مشاهده خروجی یک دستور طولانی مدت، مانند top یا htop.
- جستجوی متن خاص در خروجی یک دستور، مانند grep یا cat.
دستور man در لینوکس
دستور man یک دستور بسیار مفید لینوکس است که باید آن را بلد باشید. هنگام کار با لینوکس، بستههایی که دانلود میکنیم میتوانند قابلیتهای زیادی داشته باشند. دانستن همه آنها غیرممکن است.
دستور man در لینوکس برای نمایش صفحه راهنمای یک دستور خاص استفاده میشود. این دستور اطلاعات دقیقی در مورد دستور، از جمله نحو، گزینهها و مثالهای آن ارائه میدهد.
در اینجا مثالی از نحوه استفاده از دستور man آورده شده است:
- یک ترمینال باز کنید و دستور man ls را تایپ کنید تا صفحه راهنمای دستور ls نمایش داده شود.
root@ubuntu:~# man lsاین صفحهای را نمایش میدهد که چیزی شبیه به این است:
OutputLS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
-c with -lt: sort by, and show, ctime (time of last modification
of file status information) with -l: show ctime and sort
by name;
...دستورات uname و whoami
دستورات uname و whoami به شما امکان دسترسی به برخی اطلاعات اولیه را میدهند که هنگام کار بر روی چندین سیستم مفید هستند.
دستور uname در لینوکس اطلاعاتی در مورد هسته سیستم، از جمله نام هسته، نام میزبان، نسخه هسته، نسخه هسته و نام سختافزار دستگاه را نمایش میدهد.
دستور whoami در لینوکس نام کاربری کاربر فعلی را برمیگرداند. این نام مخفف “who am I?” است و اغلب برای تعیین هویت کاربر فعلی در اسکریپتهای شل یا ترمینال استفاده میشود.
بیایید خروجی هر دو دستور و نحوه استفاده از آنها را ببینیم.
root@ubuntu:~# uname -a
پارامتر -a به همراه دستور uname مخفف “all” است. این دستور اطلاعات کامل را چاپ میکند. اگر پارامتر اضافه نشود، تنها چیزی که به عنوان خروجی دریافت خواهید کرد “Linux” است.
- برای نمایش نام هسته از uname -s استفاده کنید.
- برای نمایش نام میزبان از uname -n استفاده کنید.
- برای نمایش نسخه کرنل از دستور uname -r استفاده کنید.
- برای نمایش نسخه کرنل از دستور uname -v استفاده کن
- برای نمایش نام سختافزار دستگاه از دستور uname -m استفاده کنید.
دستورات tar، zip و unzip
دستور tar در لینوکس برای ایجاد و استخراج فایلهای آرشیو شده استفاده میشود. ما میتوانیم چندین فایل آرشیو مختلف را با استفاده از دستور tar استخراج کنیم.
برای ایجاد یک آرشیو، از پارامتر -c و برای استخراج یک آرشیو، از پارامتر -x استفاده میکنیم. بیایید ببینیم چگونه کار میکند.
#Compress
root@ubuntu:~# tar -cvf <archive name> <files separated by space>
#Extract
root@ubuntu:~# tar -xvf <archive name>
در خط اول، ما یک فایل بایگانی به نام Compress.tar با استفاده از New-File و New-File-Link ایجاد کردیم. در دستور بعدی، آن فایلها را از بایگانی استخراج کردهایم.
بیایید در مورد دستورات zip و unzip صحبت کنیم. هر دو بسیار سرراست هستند. میتوانید از آنها بدون هیچ پارامتری استفاده کنید و همانطور که در نظر گرفته شده است، کار خواهند کرد. بیایید مثالی را در زیر ببینیم.
root@ubuntu:~# zip <archive name> <file names separated by space>
root@ubuntu:~# unzip <archive name>
از آنجایی که ما از قبل آن فایلها را در همان دایرکتوری داریم، دستور unzip قبل از رونویسی آن فایلها از ما سوال میکند.
دستور grep در لینوکس
دستور grep یک ابزار جستجوی متن قدرتمند و همهکاره در سیستمعاملهای مبتنی بر لینوکس و یونیکس است. این دستور میتواند الگوها یا رشتههای خاص را در یک یا چند فایل جستجو کند و خروجی دستورات دیگر را فیلتر کند.
دستور grep مخفف عبارت “چاپ عبارت منظم جهانی” است که نشان دهنده توانایی آن در جستجوی عبارات منظم در چندین خط و فایل است.
root@ubuntu:~# <Any command with output> | grep "<string to find>"این یک نمایش ساده از این دستور بود.
دستورات head و tail
هنگام خروجی گرفتن از فایلهای بزرگ، دستورات head و tail مفید واقع میشوند. این دستورات به ترتیب ابتدا یا انتهای یک فایل را نمایش میدهند. آنها معمولاً برای مشاهده سریع محتوای یک فایل بدون نیاز به باز کردن آن در یک ویرایشگر متن استفاده میشوند.
دستورات head و tail به طور پیشفرض 10 خط اول یک فایل را نمایش میدهند. برای نمایش تعداد متفاوتی از خطوط، میتوانید از گزینه -n و به دنبال آن تعداد خطوطی که میخواهید نمایش دهید استفاده کنید.
در اینجا مثالی از استفاده از دستورات head و tail آورده شده است:
root@ubuntu:~# head <file name>
root@ubuntu:~# tail <file name>
همانطور که میبینید، دستور head، 10 خط از بالای فایل را نشان داد.

دستور tail، ده خط پایینی فایل را نمایش داد.
از این دستورات میتوان برای مشاهده سریع محتوای یک فایل، نظارت بر بهروزرسانیهای بلادرنگ برای عیبیابی مشکلات، فیلتر کردن خروجی سایر دستورات و انجام تجزیه و تحلیل گزارشها استفاده کرد.
دستورات diff، comm و cmp
دستورات diff، comm و cmp همگی برای مقایسه فایلها در سیستمعاملهای مبتنی بر لینوکس و یونیکس استفاده میشوند. این دستورات میتوانند برای شناسایی تفاوتهای بین دو فایل، ادغام تغییرات و انجام سایر کارهای مقایسه فایلها مورد استفاده قرار گیرند.
root@ubuntu:~# diff <file 1> <file 2>
همانطور که در بالا میبینید، ما یک متن کوچک با عنوان «این خط ویرایش شده است» به فایل New-File-Edited اضافه کردهایم.
دستور cmp برای مقایسه دو فایل و نمایش اولین بایتی که بین آنها متفاوت است استفاده میشود. میتوان از آن برای شناسایی تفاوتهای بین فایلهای باینری یا بررسی خرابی در فایلها استفاده کرد.
root@ubuntu:~# cmp <file 1> <file 2>
دستور cmp فقط شماره خط را به ما میگوید که متفاوت است. متن اصلی را نشان نمیدهد.
دستور comm برای مقایسه دو فایل مرتب شده و نمایش خطوط منحصر به فرد هر فایل و همچنین خطوط مشترک هر دو فایل استفاده میشود.
root@ubuntu:~# comm <file 1> <file2>
متنی که در سمت چپ تراز شده است، فقط در فایل ۱ وجود دارد. متن وسطچین فقط در فایل ۲ وجود دارد. و متن راستچین در هر دو فایل وجود دارد.
از ظاهر آن، دستور comm زمانی بیشترین کاربرد را دارد که سعی میکنیم فایلهای بزرگتر را با هم مقایسه کنیم و میخواهیم همه چیز را مرتب ببینیم.
هر سه این دستورها ابزارهای ضروری برای کار با فایلها در سیستمعاملهای مبتنی بر لینوکس و یونیکس هستند. با درک نحوه استفاده مؤثر از دستورات diff، comm و cmp، میتوانید تفاوتهای بین فایلها را شناسایی کنید، تغییرات را ادغام کنید و سایر کارهای مقایسه فایل را انجام دهید.
این دستورات میتوانند به شما در شناسایی و حل مشکلات فایلها و همچنین ردیابی تغییرات و حفظ کنترل نسخه کمک کنند. چه توسعهدهنده باشید و چه مدیر سیستم، این دستورات بخش مهمی از جعبه ابزار شما هستند.
دستور sort در لینوکس
دستور sort برای مرتبسازی سطرها در یک فایل متنی یا ورودی استاندارد در سیستمعاملهای مبتنی بر لینوکس و یونیکس استفاده میشود. میتوان از آن برای مرتبسازی سطرها به ترتیب صعودی یا نزولی و انجام سایر عملیات مرتبسازی، مانند مرتبسازی بر اساس فیلدها یا استفاده از یک ترتیب مرتبسازی سفارشی، استفاده کرد.
نحوه کلی دستور sort به صورت زیر است:
root@ubuntu:~# sort <filename>
به طور پیشفرض، دستور sort سطرها را به ترتیب ASCII مرتب میکند، که میتواند هنگام مرتبسازی اعداد یا کاراکترهای خاص منجر به نتایج غیرمنتظرهای شود. برای مرتبسازی اعداد به ترتیب عددی، میتوانید از گزینه -n استفاده کنید.
در اینجا مثالی از استفاده از گزینه -n آورده شده است:
root@ubuntu:~# sort -n file.txtدستور بالا سطرهای file.txt را به ترتیب عددی مرتب میکند.
دستور sort همچنین میتواند برای مرتبسازی سطرها بر اساس فیلدهای خاص با استفاده از گزینه -k استفاده شود.
در اینجا مثالی از استفاده از گزینه -k آورده شده است:
root@ubuntu:~# sort -k 2 file.txtاین دستور، سطرهای موجود در فایل file.txt را بر اساس فیلد دوم مرتب میکند.
دستور sort ابزاری قدرتمند و انعطافپذیر برای کار با فایلهای متنی در سیستمعاملهای مبتنی بر لینوکس و یونیکس است. با درک نحوهی استفادهی مؤثر از دستور sort، میتوانید سطرهای فایلهای متنی را مرتب کنید، سطرها را بر اساس فیلدهای خاص مرتب کنید و سایر عملیات مرتبسازی را انجام دهید.
این دستورات میتوانند به شما در سازماندهی و تجزیه و تحلیل دادهها و انجام سایر وظایف دستکاری فایل کمک کنند. چه توسعهدهنده باشید و چه مدیر سیستم، دستور sort بخش مهمی از مجموعه ابزارهای شماست.
دستور export در لینوکس
دستور export در سیستمعاملهای مبتنی بر لینوکس و یونیکس برای تنظیم متغیرهای محیطی استفاده میشود. متغیرهای محیطی برای ذخیره اطلاعاتی که میتوانند توسط فرآیندها یا دستورات استفاده شوند، استفاده میشوند.
پس از تنظیم یک متغیر محیطی، هر فرآیند یا دستوری که در همان پوسته اجرا میشود، میتواند به آن دسترسی داشته باشد.
متغیرهای محیطی میتوانند برای ذخیره طیف وسیعی از اطلاعات، مانند تنظیمات پیکربندی، تنظیمات کاربر یا اطلاعات سیستم، استفاده شوند.
در اینجا مثالی از استفاده از دستور export آورده شده است:
root@ubuntu:~# export <variable name>=<value>
دستور ssh در لینوکس
دستور ssh در سیستم عاملهای مبتنی بر لینوکس و یونیکس، یک اتصال shell امن به یک سرور راه دور برقرار میکند. این دستور یک اتصال رمزگذاری شده امن بین سرورهای محلی و راه دور فراهم میکند و به کاربران امکان میدهد دستورات را اجرا کرده و فایلها را به صورت ایمن منتقل کنند.
سینتکس اصلی دستور ssh به صورت زیر است:
root@ubuntu:~ ssh username@remote-serverاین دستور با استفاده از نام کاربری، یک اتصال ssh به سرور راه دور برقرار میکند.
- پیکربندی روشهای احراز هویت (رمز عبور، کلید عمومی و غیره)
- پیکربندی الگوریتمهای رمزگذاری
- پیکربندی فشردهسازی
- پیکربندی انتقال پورت
- پیکربندی انتقال X11
- پیکربندی کلیدهای SSH
دستور سرویس در لینوکس
دستور service در لینوکس برای مدیریت سرویسهای سیستمی استفاده میشود که فرآیندهای طولانیمدتی هستند که در زمان بوت شدن سیستم شروع به کار میکنند و در پسزمینه اجرا میشوند. این سرویسها مسئول ارائه قابلیتهای مختلف سیستمی مانند شبکه، مدیریت پایگاه داده و احراز هویت کاربر هستند.
دستور service برای شروع، توقف، راهاندازی مجدد و بررسی وضعیت این سرویسها استفاده میشود. این یک رابط کاربری برای دستور systemctl است که برای مدیریت مدیر سرویس systemd استفاده میشود.
سینتکس اصلی دستور به صورت زیر است.
root@ubuntu:~ service ssh status
root@ubuntu:~ service ssh stop
root@ubuntu:~ service ssh start
همانطور که در تصویر مشاهده میکنید، سرور ssh روی سیستم ما در حال اجرا است.
دستورات ps، kill و killall
دستورات ps، kill و killall همگی برای مدیریت فرآیندها در لینوکس استفاده میشوند.
دستور ps برای نمایش اطلاعات مربوط به فرآیندهای در حال اجرا در سیستم استفاده میشود. در اینجا چند نمونه از استفاده از دستور ps آورده شده است:
نمایش لیست تمام فرآیندهای در حال اجرا:
root@ubuntu:~ ps -efنمایش لیستی از تمام فرآیندها برای یک شناسه فرآیند (PID) خاص:
root@ubuntu:~ ps -p PIDبیایید همه اینها را در عمل ببینیم:
root@ubuntu:~ ps
root@ubuntu:~ kill <process ID>
root@ubuntu:~ killall <process name>برای اهداف نمایشی، ما یک اسکریپت پوسته با یک حلقه بینهایت ایجاد خواهیم کرد و آن را در پسزمینه اجرا خواهیم کرد.
با استفاده از نماد &، میتوانیم یک فرآیند را به پسزمینه منتقل کنیم. همانطور که میبینید، یک فرآیند bash جدید با PID 14490 ایجاد شده است.

حالا، برای کشتن یک فرآیند با دستور kill، میتوانید kill را تایپ کنید و به دنبال آن PID (شناسه فرآیند) فرآیند را بنویسید.

اما اگر شناسه فرآیند را نمیدانید و فقط میخواهید فرآیند را با نام آن از بین ببرید، میتوانید از دستور killall استفاده کنید.

متوجه خواهید شد که PID 14490 فعال مانده است. دلیلش این است که هر دو بار، فرآیند sleep را kill کردیم.
دستورات df و mount
هنگام کار با لینوکس، دستورات df و mount ابزارهای بسیار کارآمدی برای mount کردن سیستم فایلها و دریافت جزئیات سیستم فایل هستند.
دستور df برای نمایش میزان فضای دیسک استفاده شده و موجود در سیستم فایلها استفاده میشود و دستور mount برای mount کردن یک سیستم فایل یا دستگاه به یک دایرکتوری خاص استفاده میشود.
وقتی میگوییم mount، به این معنی است که دستگاه را به یک پوشه متصل میکنیم تا بتوانیم از سیستم فایل خود به فایلها دسترسی داشته باشیم. سینتکس پیشفرض برای mount کردن یک سیستم فایل به شرح زیر است:
root@ubuntu:~ mount /dev/cdrom /mnt
root@ubuntu:~ df -hدر مورد بالا، /dev/cdrom دستگاهی است که باید نصب شود. معمولاً یک دستگاه قابل نصب در داخل پوشه /dev قرار دارد. mnt پوشه مقصدی است که دستگاه باید در آن نصب شود. میتوانید آن را به هر پوشهای که میخواهید تغییر دهید، اما ما از /mnt استفاده کردهایم زیرا پوشه پیشفرض سیستم برای نصب دستگاهها است.
برای دیدن دستگاههای نصب شده و کسب اطلاعات بیشتر در مورد آنها، از دستور df استفاده میکنیم. فقط تایپ کردن df دادهها را به صورت بایت به ما میدهد که قابل خواندن نیست. بنابراین، از پارامتر -h برای قابل خواندن دادهها توسط انسان استفاده خواهیم کرد.

دستورات chmod و chown
دستورات chmod و chown برای تغییر مجوزهای فایل و مالکیت در لینوکس استفاده میشوند.
دستور chmod برای تغییر مجوزهای یک فایل یا دایرکتوری و دستور chown برای تغییر مالکیت یک فایل یا دایرکتوری استفاده میشود.
نحوه پیشفرض برای هر دو دستور chmod <parameter> filename و chown <user:group> filename است.
root@ubuntu:~ chmod +x loop.sh
root@ubuntu:~ chmod root:root loop.sh
در مثال بالا، ما با دستور chmod مجوزهای اجرایی را به فایل loop.sh اضافه میکنیم. علاوه بر این، با دستور chown، آن را فقط برای کاربر root و کاربران درون گروه root قابل دسترسی کردهایم.

همانطور که متوجه خواهید شد، بخش ریشه (root) اکنون به www-data تغییر یافته است که کاربر جدیدی است که مالکیت کامل فایل را در اختیار دارد.
دستورات ifconfig و traceroute
دستورات ifconfig و traceroute رابطهای شبکه را مدیریت کرده و مسیر بستههای شبکه را در لینوکس ردیابی میکنند.
دستور ifconfig لیستی از تمام رابطهای شبکه به همراه آدرسهای IP، آدرسهای MAC و سایر اطلاعات مربوط به رابط را در اختیار شما قرار میدهد.
root@ubuntu:~ ifconfigپارامترهای متعددی وجود دارد که میتوان از آنها استفاده کرد، اما ما در اینجا با دستور پایه کار خواهیم کرد.

دستور traceroute برای ردیابی مسیر بستههای شبکه و تعیین مسیری که آنها برای رسیدن به یک مقصد خاص طی میکنند، استفاده میشود.
هنگام کار با traceroute، میتوانید به سادگی آدرس IP، نام میزبان یا نام دامنه نقطه پایانی را مشخص کنید.
root@ubuntu:~ traceroute <destination address>
بدیهی است که localhost فقط یک گام (خود رابط شبکه) است. میتوانید همین دستور را با هر نام دامنه یا آدرس IP دیگری امتحان کنید تا تمام روترهایی را که بستههای داده شما برای رسیدن به مقصد از آنها عبور میکنند، مشاهده کنید.
دستور wget در لینوکس
اگر میخواهید فایلی را از داخل ترمینال دانلود کنید، دستور wget یکی از کاربردیترین ابزارهای خط فرمان موجود است. این یکی از دستورات مهم لینوکس است که هنگام کار با فایلهای منبع باید بدانید.
وقتی لینک دانلود را مشخص میکنید، باید مستقیماً به فایل لینک شود. اگر فایل از طریق دستور wget قابل دسترسی نباشد، به جای فایل واقعی که میخواهید، صفحه وب را به صورت HTML دانلود میکند.
بیایید یک مثال بزنیم. سینتکس اصلی دستور wget به صورت زیر است:
root@ubuntu:~ wget <link to file>یا،
root@ubuntu:~ wget -c <link to file>آرگومان -c به ما امکان میدهد دانلودی که متوقف شده را از سر بگیریم.
دستورات ufw و iptables
دستورات ufw و iptables برای مدیریت فایروالها در لینوکس استفاده میشوند.
UFW و IPTables رابطهای فایروال برای فایروال netfilter هسته لینوکس هستند. IPTables مستقیماً قوانین فایروال را به Netfilter منتقل میکند در حالی که UFW قوانین را در IPTables پیکربندی میکند و سپس آن قوانین را به Netfilter ارسال میکند.
چرا وقتی IPTables داریم به UFW نیاز داریم؟ زیرا IPTables برای یک تازهکار بسیار دشوار است. UFW کارها را بسیار آسان میکند. به مثال زیر توجه کنید که در آن سعی داریم پورت ۸۰ را برای وبسرور خود مجاز کنیم.
root@ubuntu:~# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
root@ubuntu:~# ufw allow 80مطمئنم حالا میدانید چرا UFW ساخته شد! ببینید که سینتکس آن چقدر آسان میشود. هر دوی این فایروالها بسیار جامع هستند و میتوانند به شما امکان دهند هر نوع پیکربندی مورد نیاز برای شبکه خود را ایجاد کنید. حداقل اصول اولیه فایروال UFW یا IPTables را یاد بگیرید، زیرا اینها دستورات لینوکسی هستند که باید بدانید.
مدیران بسته در لینوکس
توزیعهای مختلف لینوکس از مدیریت بستههای متفاوتی استفاده میکنند. از آنجایی که ما روی سرور اوبونتو کار میکنیم، مدیریت بسته apt را داریم. اما برای کسی که روی دستگاه فدورا، رد هت، آرچ یا سنتوس کار میکند، مدیریت بسته متفاوت خواهد بود.
در زیر دستوراتی در مورد نحوه استفاده از این مدیریت بستهها در توزیعهای مختلف لینوکس آمده است.
- Debian and Debian-based distros – apt install <package name>
- Arch and Arch-based distros – pacman -S <package name>
- Red Hat and Red Hat-based distros – yum install <package name>
- Fedora and CentOS – yum install <package>
دستور sudo در لینوکس
«قدرت زیاد، مسئولیت زیاد به همراه دارد»
این نقل قولی است که وقتی یک کاربر sudo-enabled (sudoer) برای اولین بار از دستور sudo برای افزایش امتیازات استفاده میکند، نمایش داده میشود. این دستور معادل ورود به سیستم به عنوان root است (بر اساس مجوزهایی که به عنوان sudoer دارید).
non-root-user@ubuntu:~# sudo <command you want to run>
Password:
فقط کافی است دستور sudo را قبل از هر دستوری که نیاز به اجرای آن با امتیازات افزایش یافته دارید، اضافه کنید و تمام. استفاده از آن بسیار ساده است، اما اگر یک کاربر مخرب به sudoer دسترسی پیدا کند، میتواند یک خطر امنیتی اضافی نیز ایجاد کند.
دستور cal در لینوکس
آیا تا به حال خواستهاید تقویم را در ترمینال مشاهده کنید؟ ظاهراً افرادی هستند که میخواهند این اتفاق بیفتد، و خب، این هم از این.
دستور cal یک تقویم با ظاهری زیبا را در ترمینال نمایش میدهد. فقط کافیست دستور cal را در اعلان ترمینال خود وارد کنید.
root@ubuntu:~# cal
root@ubuntu:~# cal March 2024
اگرچه اغلب به آن نیاز نداریم، اما افزونهی فوقالعادهای است! این یک گزینهی شگفتانگیز برای طرفداران پروپاقرص دستگاههای الکترونیکی است.
دستور alias
آیا دستورهایی دارید که هنگام استفاده از ترمینال مرتباً اجرا میکنید؟ میتواند rm -r یا ls -l باشد، یا میتواند چیزی طولانیتر مانند tar -xvzf باشد.
این یکی از دستورات لینوکس است که بهرهوری را افزایش میدهد و باید بدانید.
اگر دستوری را میشناسید که مرتباً اجرا میکنید، وقت آن است که یک alias ایجاد کنید.
alias چیست؟ به زبان ساده، نام دیگری برای دستوری است که تعریف کردهاید.
root@ubuntu:~# alias lsl="ls -l"
OR
root@ubuntu:~# alias rmd="rm -r"اکنون، هر بار که lsl یا rmd را در ترمینال وارد میکنید، خروجیای را دریافت خواهید کرد که اگر از دستورات کامل استفاده میکردید، دریافت میکردید.
مثالهای اینجا برای دستورات بسیار کوچکی هستند که میتوانید هر بار آنها را دستی تایپ کنید. اما در برخی موقعیتها که یک دستور آرگومانهای زیادی دارد که باید تایپ کنید، بهتر است یک نسخه مختصر از آن را ایجاد کنید.
دستور dd در لینوکس
این دستور برای تبدیل و کپی فایلها از فرمتهای مختلف سیستم فایل ایجاد شده است. امروزه، این دستور به سادگی برای ایجاد USB قابل بوت برای لینوکس استفاده میشود، اما هنوز کارهای مهمی وجود دارد که میتوانید با این دستور انجام دهید.
دستور dd در لینوکس یک دستور همهکاره است که برای کپی و تبدیل سطح پایین دادهها استفاده میشود. این دستور مخفف “data-description” یا “data definition” است و میتواند برای کپی و تبدیل دادهها بین فرمتهای مختلف فایل و دستگاههای ذخیرهسازی استفاده شود.
به عنوان مثال، اگر میخواستیم از کل هارد دیسک به عنوان یک درایو دیگر پشتیبانگیری کنیم، از دستور dd استفاده میکردیم.
root@ubuntu:~# dd if=/dev/sdb of=/dev/sdaآرگومانهای if و of به معنای فایل ورودی و فایل خروجی هستند.
این یک ابزار قدرتمند و انعطافپذیر است، اما اگر با دقت استفاده نشود، میتواند خطرناک نیز باشد. همیشه نحو (syntax) خود را دوباره بررسی کنید و قبل از اجرای دستور، مطمئن شوید که میدانید دستور چه کاری انجام خواهد داد.
دستورات whereis و whatis
دستورات whereis و whatis در لینوکس برای جستجوی اطلاعات مربوط به برنامهها و فایلها استفاده میشوند.
دستور whereis صفحات باینری، منبع و راهنما را برای یک دستور یا برنامه خاص پیدا میکند و دستور whatis توضیح کوتاهی از یک دستور یا برنامه را نمایش میدهد.
root@ubuntu:~# whereis sudo
sudo: /usr/bin/sudo /usr/lib/sudo /usr/share/man/man8/sudo.8.gzدستور whatis توضیحی در مورد اینکه یک دستور واقعاً چیست، به ما میدهد.
root@ubuntu:~# whatis sudo
sudo (8) - execute a command as another userدستور top در لینوکس
چند بخش قبل، در مورد دستور ps صحبت کردیم. مشاهده کردید که دستور ps فرآیندهای فعال را نمایش میدهد و خودش را خاتمه میدهد.
دستور top مانند نسخه CLI از task manager در ویندوز است.
دستور top در لینوکس یک ابزار نظارت بر سیستم است که اطلاعات بلادرنگ در مورد فرآیندهای سیستم و میزان استفاده از منابع را نمایش میدهد. این دستور یک نمای پویا و بلادرنگ از فعالیت سیستم، از جمله میزان استفاده از CPU، میزان استفاده از حافظه و اطلاعات فرآیندها ارائه میدهد.
- مرتبسازی فرآیندها بر اساس میزان استفاده از حافظه:
root@ubuntu:~# top -o MEMاین کار لیست فرآیندها را بر اساس میزان استفاده از حافظه مرتب میکند و فرآیندهایی که بیشترین استفاده را از حافظه دارند در بالا قرار میگیرند.
- نمایش اطلاعات دقیق در مورد یک فرآیند خاص:
root@ubuntu:~# top -p PIDبه جای PID، شناسهی فرآیندی را که میخواهید بررسی کنید، قرار دهید.
- نمایش خلاصهای از میزان استفاده از منابع سیستم:
root@ubuntu:~# top -n 1نمایش خلاصهای از میزان استفاده از منابع سیستم:
این یک ابزار قدرتمند و انعطافپذیر برای نظارت بر فعالیت سیستم و عیبیابی مشکلات عملکرد است.
دستورات useradd و usermod
دستورات useradd و usermod در لینوکس برای مدیریت حسابهای کاربری استفاده میشوند.
دستورات useradd یا adduser دقیقاً همان دستوراتی هستند که adduser فقط یک پیوند نمادین به دستور useradd است. این دستور به ما امکان میدهد یک کاربر جدید در لینوکس ایجاد کنیم.
root@ubuntu:~# useradd JournalDev -d /home/JDدستور بالا یک کاربر جدید به نام JournalDev با دایرکتوری خانه /home/JD ایجاد میکند.
از سوی دیگر، دستور usermod برای تغییر کاربران موجود استفاده میشود. میتوانید هر مقداری از کاربر، از جمله گروهها، مجوزها و غیره را تغییر دهید.
به عنوان مثال، اگر میخواهید گروههای بیشتری به کاربر اضافه کنید، میتوانید تایپ کنید:
root@ubuntu:~# usermod JournalDev -a -G sudo, audio, mysqlدستور passwd در لینوکس
حالا که میدانید چگونه کاربران جدید ایجاد کنید، بیایید برای آنها رمز عبور نیز تعیین کنیم. دستور passwd به شما امکان میدهد رمز عبور را برای حساب کاربری خود تنظیم کنید، یا اگر مجوز دارید، رمز عبور را برای حسابهای کاربری دیگر تنظیم کنید.
در اینجا چند نمونه از استفاده از دستور passwd آورده شده است:
- تغییر رمز عبور برای کاربر فعلی:
root@ubuntu:~# passwdاین از شما میخواهد که رمز عبور جدیدی برای کاربر فعلی وارد کنید.
- تغییر رمز عبور برای یک کاربر خاص:
root@ubuntu:~# passwd usernameبه جای username، نام کاربری که میخواهید رمز عبورش را تغییر دهید را بنویسید.
- کاربر را مجبور کنید در ورود بعدی رمز عبور خود را تغییر دهد:
root@ubuntu:~# passwd -f username- تعیین تاریخ انقضا برای رمز عبور کاربر:
root@ubuntu:~# passwd -e -n days -w warndays usernameبه جای days تعداد روزهای قبل از انقضای رمز عبور و به جای warm days تعداد روزهای قبل از انقضای رمز عبور که به کاربر هشدار داده میشود را قرار دهید.
اینها تنها چند نمونه از استفاده از دستور passwd در لینوکس هستند. با درک نحوه استفاده موثر از این دستور، میتوانید حسابهای کاربری را مدیریت کرده و از امنیت سیستم خود اطمینان حاصل کنید.

خطاهای رایج و اشکالزدایی
هنگام کار با دستورات لینوکس، ممکن است با خطاها و مشکلات مختلفی روبرو شوید. در اینجا برخی از مشکلات رایج و نحوه حل آنها آورده شده است:
۱. رفع خطاهای «Command not found»
اگر خطای command not found را دریافت کردید، به این معنی است که دستوری که سعی در اجرای آن دارید توسط سیستم شناسایی نشده است. این میتواند به دلایل مختلف رخ دهد:
- این دستور روی سیستم شما نصب نشده است. میتوانید آن را با استفاده از مدیر بسته خود (مثلاً apt، yum، dnf) نصب کنید.
اگر دیدید:bash: xyz: command not foundاستفاده:
which xyzاگر دستور نصب نشده است، نصب را امتحان کنید:
apt-get install <package-name> - دستور در مسیر سیستم شما نیست. میتوانید دایرکتوری حاوی دستور را به مسیر سیستم خود اضافه کنید.
export PATH=$PATH:/path/to/command - شما اشتباه تایپی مرتکب شدید. دستور را برای هرگونه خطای املایی دوباره بررسی کنید.
2. حل مشکلات مجوز با sudo
اگر با مشکل مجوز مواجه شدید، میتوانید از sudo برای اجرای دستور با امتیازات superuser استفاده کنید. برای مثال:
sudo command_name3. مدیریت تداخل فایلها
تداخل فایلها میتواند زمانی رخ دهد که چندین کاربر یا فرآیند سعی کنند همزمان یک فایل را تغییر دهند. در اینجا چند روش برای مدیریت تداخل فایلها آورده شده است:
1.استفاده از سیستمهای کنترل نسخه (VCS): ابزارهایی مانند گیت میتوانند با فراهم کردن امکان ادغام تغییرات و حل دستی تداخلها، به مدیریت تداخلهای فایل کمک کنند.
git merge <branch_name>اگر تداخلی وجود داشته باشد، گیت از شما میخواهد که آنها را حل کنید. فایلهای تداخلدار را باز کنید، تغییرات لازم را اعمال کنید و سپس فایلهای حلشده را کامیت کنید.
git add <resolved_file>
git commit -m "Resolved merge conflict"2.مکانیسمهای قفلگذاری: قفلگذاری فایل را پیادهسازی کنید تا از نوشتن همزمان چندین فرآیند روی یک فایل جلوگیری شود. از flock در لینوکس برای ایجاد قفل روی یک فایل استفاده کنید.
'''' flock -x <file> -c "<command>" ...3.عملیات اتمی: از عملیات اتمی استفاده کنید تا مطمئن شوید که نوشتن فایلها در یک مرحله انجام میشود و خطر تداخل کاهش مییابد.
mv temp_file target_fileیا، از mv با -f (اجباری) یا cp با -i (تعاملی) استفاده کنید:
mv -f file1 file2
cp -i file1 file2۴. اشکالزدایی گلوگاههای عملکرد
گلوگاههای عملکرد میتوانند به طور قابل توجهی بر کارایی سیستم شما تأثیر بگذارند. در اینجا چند مرحله برای اشکالزدایی و رفع آنها آورده شده است:
- شناسایی گلوگاه: از ابزارهایی مانند top، htop، vmstat و iostat برای نظارت بر عملکرد سیستم و شناسایی منبعی که باعث گلوگاه میشود (CPU، حافظه، ورودی/خروجی دیسک و غیره) استفاده کنید.
top - تحلیل گزارشها: گزارشهای سیستم و برنامهها را برای هرگونه خطا یا هشداری که ممکن است نشاندهنده مشکلات عملکرد باشد، بررسی کنید.
tail -f /var/log/syslog - بهینهسازی کد: کد خود را برای بهبود عملکرد بررسی و بهینهسازی کنید. به دنبال الگوریتمهای ناکارآمد، محاسبات غیرضروری و نشت حافظه باشید.
- برنامه خود را پروفایل کنید: از ابزارهای پروفایلینگ مانند gprof، perf یا valgrind برای تجزیه و تحلیل عملکرد برنامه خود و شناسایی توابع کند یا مشکلات حافظه استفاده کنید.
gprof <فایل اجرایی> gmon.out - مقیاسبندی منابع: اگر گلوگاه به دلیل محدودیت منابع است، مقیاسبندی سختافزار خود یا استفاده از متعادلسازی بار را برای توزیع بار بین چندین سرور در نظر بگیرید.
- شناسایی گلوگاه: از ابزارهایی مانند top، htop، vmstat و iostat برای نظارت بر عملکرد سیستم و شناسایی منبعی که باعث گلوگاه میشود (CPU، حافظه، ورودی/خروجی دیسک و غیره) استفاده کنید.
سوالات متداول
۱. پرکاربردترین دستورات لینوکس کدامند؟
پرکاربردترین دستورات لینوکس شامل cd، ls، mkdir، rm، cp، mv، echo، cat، grep، find، man، sudo، apt-get، ssh، ping، df، du، free، top، ps، kill، killall، service، systemctl، reboot، shutdown، whoami، uname، uptime، history و clear است.
۲. چگونه میتوانم تمام دستورات موجود در لینوکس را لیست کنم؟
شما میتوانید با استفاده از دستور compgen -c تمام دستورات موجود در لینوکس را لیست کنید. این دستور لیستی از تمام دستورات موجود در سیستم شما را نمایش میدهد.
۳. چگونه میتوانم یک فایل را در لینوکس پیدا کنم؟
شما میتوانید با استفاده از دستور find یک فایل را در لینوکس پیدا کنید. سینتکس اصلی find <path> -name “<filename>” است، که <path> دایرکتوری است که میخواهید جستجو را از آنجا شروع کنید و <filename> نام فایلی است که به دنبال آن هستید. برای مثال، /home/user -name “example.txt” را پیدا کنید.
۴. چگونه یک فرآیند را در لینوکس kill کنم؟
شما میتوانید با استفاده از دستور kill، یک فرآیند را در لینوکس kill کنید. ابتدا، باید شناسه فرآیند (PID) فرآیندی را که میخواهید kill کنید با استفاده از دستور ps یا top پیدا کنید. سپس، از دستور kill و به دنبال آن PID استفاده کنید. به عنوان مثال، kill 1234، که 1234 PID فرآیند است.
۵. تفاوت بین cp و mv چیست؟
دستور cp برای کپی کردن فایلها یا دایرکتوریها استفاده میشود، در حالی که دستور mv برای انتقال یا تغییر نام فایلها یا دایرکتوریها استفاده میشود. cp یک کپی از فایل اصلی ایجاد میکند و فایل اصلی را دست نخورده باقی میگذارد، در حالی که mv فایل را به مکان جدیدی منتقل میکند و آن را از مکان اصلی حذف میکند.
۶. چگونه میزان استفاده از حافظه سیستم لینوکس خود را بررسی کنم؟
شما میتوانید میزان استفاده از حافظه سیستم لینوکس خود را با استفاده از دستور free بررسی کنید. این دستور مقدار کل حافظه فیزیکی و swap آزاد و استفاده شده در سیستم را نمایش میدهد. برای مثال، free -h میزان استفاده از حافظه را در قالبی قابل خواندن توسط انسان نمایش میدهد.









