
آموزش درس کارگاه سیستم عامل رشته مهندسی نرم افزار کامپیوتر
فهرست مطالب
درس کارگاه سیستمعامل یکی از دروس کلیدی در رشته نرمافزار کامپیوتر است که به آموزش مفاهیم سیستمهای عامل، بهویژه لینوکس و یونیکس، میپردازد. این درس به دانشجویان کمک میکند تا با مدیریت منابع کامپیوتر، اجرای دستورات، و کار با سیستمهای متنباز آشنا شوند. این جزوه، برگرفته از دانشگاه امام محمد باقر ساری و با تمرکز بر مفاهیم لینوکس و یونیکس، تمامی سرفصلهای ارائهشده را بهصورت جامع، ساده، و تخصصی شرح میدهد. مفاهیم کلیدی مرتبط با سیستمهای عامل که در سرفصلها ذکر نشدهاند نیز اضافه شدهاند، و یک جدول دستورات مبتدی لینوکس و توضیحات دقیق نصب VMware به متن افزوده شده است.
درمورد درس مدیریت سیستم های اطلاعاتی بخوانید.
تاریخچه لینوکس
لینوکس یک سیستمعامل متنباز است که ریشه در یونیکس دارد و به دلیل رایگان بودن و انعطافپذیری، به یکی از محبوبترین سیستمهای عامل تبدیل شده است.
- یونیکس: در دهه 1970 توسط کن تامپسون و دنیس ریچی در آزمایشگاههای بل (Bell Labs) توسعه یافت. یونیکس یک سیستمعامل قدرتمند و پایدار بود، اما گرانقیمت و عمدتاً برای دانشگاهها و سازمانهای بزرگ طراحی شده بود. این سیستمعامل به دلیل معماری ماژولار و قابلیت اطمینان بالا شناخته میشود.
- مثال: یونیکس در سرورهای بانکی برای مدیریت تراکنشها استفاده میشد.
- لینوکس: در سال 1991، لینوس توروالدز، دانشجوی فنلاندی، کرنل لینوکس را بهعنوان جایگزینی رایگان برای یونیکس توسعه داد. لینوکس برای اجرا روی سختافزارهای ضعیفتر (مانند کامپیوترهای شخصی) طراحی شد و به دلیل متنباز بودن، توسط جامعه جهانی توسعهدهندگان بهبود یافت.
- مثال: لینوکس در سرورهای وب (مانند Apache) برای میزبانی وبسایتها استفاده میشود.
- توزیعهای لینوکس: توزیعهای اولیه مانند رد هت (Red Hat) و دبین (Debian) پایهای برای توزیعهای بعدی مانند فدورا (Fedora)، اوبونتو (Ubuntu)، و سنتاواس (CentOS) شدند. هر توزیع مجموعهای از کرنل لینوکس، نرمافزارها، و تنظیمات خاص خود را ارائه میدهد.
- مثال: اوبونتو برای کاربران خانگی با رابط کاربری ساده و فدورا برای توسعهدهندگان با بهروزرسانیهای سریع مناسب است.
- تأثیر یونیکس: سیستمعاملهای دیگر مانند ویندوز، مک اواس (macOS)، و اندروید از مفاهیم یونیکس (مانند سیستم فایل سلسلهمراتبی و مدیریت فرآیندها) الهام گرفتهاند، اما لینوکس به دلیل رایگان بودن و دسترسی گسترده متمایز است.
- مثال: اندروید، که در گوشیهای هوشمند استفاده میشود، از کرنل لینوکس بهره میبرد.
نکته کلیدی: متنباز بودن لینوکس امکان مشارکت جهانی در توسعه آن را فراهم کرده و آن را برای کاربردهای متنوع از سرورها تا دستگاههای IoT مناسب ساخته است.

تفاوت متنباز و منبعباز
- متنباز (Open Source): به نرمافزاری گفته میشود که کد منبع آن برای همه قابل مشاهده است. کاربران میتوانند کد را بررسی کرده و از آن استفاده کنند، اما لزوماً اجازه تغییر یا توزیع ندارند، مگر اینکه تحت مجوز خاصی منتشر شده باشد.
- مثال: نرمافزار VLC Media Player متنباز است و کد آن برای بررسی در دسترس است.
- منبعباز (Source-Available): نرمافزاری که کد منبع آن در دسترس است و کاربران میتوانند آن را تغییر دهند، بهبود بخشند، و نسخههای جدید منتشر کنند. این مفهوم معمولاً با مجوزهای متنباز مانند GPL (General Public License) همراه است.
- مثال: تلگرام متنباز است، اما نسخههای غیررسمی مانند موبوگرام با افزودن قابلیتهایی مانند تمهای سفارشی توسط توسعهدهندگان دیگر ساخته شدهاند.
- تفاوت کلیدی: متنباز به دسترسی به کد اشاره دارد، در حالی که منبعباز بر آزادی تغییر و توزیع تأکید دارد. در عمل، این اصطلاحات اغلب بهجای یکدیگر استفاده میشوند.
- مثال: کرنل لینوکس منبعباز است، بهطوری که توسعهدهندگان میتوانند آن را تغییر داده و توزیعهایی مانند اوبونتو یا آرچ لینوکس را ایجاد کنند.
نکته کلیدی: منبعباز بودن لینوکس باعث شده جامعهای بزرگ از توسعهدهندگان به بهبود آن کمک کنند، در حالی که متنباز بودن امکان بررسی امنیتی کد را فراهم میکند.
مفاهیم پایه
سیستمعامل
سیستمعامل نرمافزاری است که منابع سختافزاری (مانند CPU و حافظه) و نرمافزاری را مدیریت کرده و رابطی بین کاربر و سختافزار ایجاد میکند.
- وظایف سیستمعامل:
- مدیریت فرآیندها: اجرای برنامهها و تخصیص منابع مانند CPU.
- مثال: اجرای همزمان مرورگر فایرفاکس و ویرایشگر متن در لینوکس.
- مدیریت حافظه: تخصیص و آزادسازی حافظه برای برنامهها.
- مثال: تخصیص 1 گیگابایت حافظه به یک برنامه ویرایش ویدئو.
- مدیریت فایلها: سازماندهی و دسترسی به فایلها در سیستم فایل.
- مثال: ذخیره اسناد در دایرکتوری /home/user/docs.
- مدیریت ورودی/خروجی: ارتباط با دستگاههایی مانند کیبورد و پرینتر.
- مثال: ارسال سند به پرینتر از طریق لینوکس.
- مدیریت فرآیندها: اجرای برنامهها و تخصیص منابع مانند CPU.
- مثال: لینوکس فرآیندهای یک سرور وب را مدیریت کرده و درخواستهای HTTP را به برنامههای مناسب هدایت میکند.
کرنل
کرنل هسته سیستمعامل است که ارتباط بین سختافزار و نرمافزار را مدیریت میکند.
- وظایف کرنل:
- مدیریت درایورهای سختافزاری (مانند کارت گرافیک).
- زمانبندی فرآیندها.
- مدیریت سیستم فایل.
- انواع کرنل:
- مونولیتیک: مانند لینوکس، همه خدمات در یک هسته اجرا میشوند.
- مثال: کرنل لینوکس مدیریت شبکه و دیسک را بهصورت یکپارچه انجام میدهد.
- میکروکرنل: خدمات بهصورت ماژولار جدا شدهاند (مانند Minix).
- مثال: در میکروکرنل، درایورها بهصورت فرآیندهای جداگانه اجرا میشوند.
- مونولیتیک: مانند لینوکس، همه خدمات در یک هسته اجرا میشوند.
- مثال: کرنل لینوکس دستورات کاربر را از شل دریافت کرده و به سختافزار منتقل میکند.
شِل
شِل رابطی است که به کاربر امکان اجرای دستورات متنی را میدهد. شل دستورات را دریافت کرده و به کرنل منتقل میکند.
- انواع شل:
- BASH (Bourne Again Shell): شل پیشفرض در اکثر توزیعهای لینوکس.
- مثال: تایپ ls در BASH لیست فایلها را نمایش میدهد.
- ZSH: شل پیشرفته با قابلیتهای سفارشیسازی.
- مثال: ZSH با پلاگینهای تکمیل خودکار، تایپ دستورات را سریعتر میکند.
- BASH (Bourne Again Shell): شل پیشفرض در اکثر توزیعهای لینوکس.
- مثال: در ترمینال لینوکس، دستور cd /var/log در شل BASH دایرکتوری را تغییر میدهد.
رابط کاربری و CLI
- رابط کاربری: روش تعامل کاربر با سیستمعامل.
- CLI (Command Line Interface): رابط متنی برای اجرای دستورات.
- مثال: تایپ mkdir docs برای ایجاد دایرکتوری در ترمینال.
- GUI (Graphical User Interface): رابط گرافیکی مانند دسکتاپ GNOME در اوبونتو.
- مثال: باز کردن فایل با کلیک در محیط گرافیکی اوبونتو.
- CLI (Command Line Interface): رابط متنی برای اجرای دستورات.
- مزایای CLI:
- سرعت بالا و کنترل دقیق.
- مناسب برای اسکریپتنویسی و خودکارسازی.
- مثال: اجرای ls -l برای نمایش جزئیات فایلها.
- مزایای GUI:
- کاربرپسند برای کاربران مبتدی.
- مثال: استفاده از فایلمنیجر برای کپی فایلها.
نرمافزار
نرمافزار مجموعهای از برنامهها و دادهها برای انجام وظایف خاص است.
- انواع نرمافزار:
- سیستمی: مانند سیستمعامل لینوکس یا درایورها.
- مثال: درایور کارت شبکه در لینوکس.
- کاربردی: مانند ویرایشگر متن Vim یا مرورگر Firefox.
- مثال: LibreOffice برای ویرایش اسناد.
- توسعهای: مانند کامپایلر GCC برای برنامهنویسی.
- مثال: استفاده از GCC برای کامپایل کد C.
- سیستمی: مانند سیستمعامل لینوکس یا درایورها.
- مثال: در لینوکس، نصب نرمافزار GIMP برای ویرایش تصاویر.
نکته کلیدی: درک این مفاهیم برای مدیریت سیستم و اجرای دستورات در لینوکس ضروری است.
نصب و راهاندازی VMware
نصب لینوکس میتواند بهصورت مستقیم روی سختافزار یا در محیط مجازی مانند VMware انجام شود. VMware یک نرمافزار مجازیسازی است که امکان اجرای لینوکس در یک ماشین مجازی را فراهم میکند.
نصب VMware
- دانلود VMware:
- به وبسایت رسمی VMware (vmware.com) مراجعه کنید.
- نسخه مناسب (مانند VMware Workstation Player برای استفاده رایگان) را دانلود کنید.
- مثال: دانلود VMware Workstation Player 17 برای ویندوز.
- نصب VMware:
- فایل نصبی (مانند VMware-player-17.0.0.exe) را اجرا کنید.
- مراحل نصب را دنبال کنید (انتخاب مسیر نصب، پذیرش مجوز).
- مثال: نصب در مسیر پیشفرض C:\Program Files\VMware.
- پیکربندی اولیه:
- پس از نصب، VMware را اجرا کنید.
- در صورت نیاز، یک حساب کاربری VMware ایجاد کنید.
نصب لینوکس روی VMware
- دانلود فایل ISO توزیع لینوکس:
- فایل ISO توزیع موردنظر (مانند اوبونتو یا فدورا) را از وبسایت رسمی دانلود کنید.
- مثال: دانلود ubuntu-22.04.iso از ubuntu.com.
- فایل ISO توزیع موردنظر (مانند اوبونتو یا فدورا) را از وبسایت رسمی دانلود کنید.
- ایجاد ماشین مجازی:
- VMware را باز کنید و گزینه “Create a New Virtual Machine” را انتخاب کنید.
- گزینه “Installer disc image file (iso)” را انتخاب کرده و فایل ISO را بارگذاری کنید.
- مثال: انتخاب فایل ubuntu-22.04.iso.
- پیکربندی سختافزار مجازی:
- RAM: حداقل 2 گیگابایت (توصیه: 4 گیگابایت).
- CPU: حداقل 2 هسته.
- فضای دیسک: حداقل 20 گیگابایت.
- مثال: تخصیص 4 گیگابایت RAM و 30 گیگابایت دیسک.
- نصب لینوکس:
- ماشین مجازی را اجرا کنید.
- مراحل نصب گرافیکی توزیع (مانند اوبونتو) را دنبال کنید:
- انتخاب زبان (مانند انگلیسی یا فارسی).
- تنظیم پارتیشنها (استفاده از گزینه پیشفرض برای مبتدیان).
- ایجاد نام کاربری و رمز عبور.
- مثال: تنظیم کاربر student با رمز عبور 123456.
- راهاندازی:
- پس از نصب، ماشین مجازی ریاستارت میشود.
- وارد سیستم شوید و محیط لینوکس را آزمایش کنید.
- مثال: باز کردن ترمینال در اوبونتو و اجرای ls.
نکته کلیدی: VMware برای یادگیری لینوکس بدون نیاز به تغییر سیستم اصلی ایدهآل است.
مسیر دستورات لینوکس
در لینوکس، خط فرمان با فرمت زیر نمایش داده میشود:
user@host:~$
- user: نام کاربری فعلی (مانند student).
- host: نام کامپیوتر یا سرور (مانند ubuntu-server).
- ~: دایرکتوری خانگی کاربر (مانند /home/student).
- $: نشاندهنده کاربر معمولی (برای سوپر یوزر # نمایش داده میشود).
مثال: اگر خط فرمان student@ubuntu-server:~$ باشد، یعنی کاربر student روی سرور ubuntu-server در دایرکتوری خانگی خود است.
نکته کلیدی: این ساختار به کاربر کمک میکند موقعیت و سطح دسترسی خود را بشناسد.
دستورات رایج لینوکس
دستورات لینوکس به حروف بزرگ و کوچک حساس هستند و باید با حروف کوچک نوشته شوند. در ادامه، دستورات رایج با توضیح و مثال آورده شدهاند:
- ls: نمایش لیست فایلها و دایرکتوریها.
- مثال: ls خروجی مانند file.txt docs را نمایش میدهد.
- cd: تغییر دایرکتوری.
- مثال: cd /home/student/docs به دایرکتوری docs میرود.
- rm: حذف فایل.
- مثال: rm note.txt فایل note.txt را حذف میکند.
- rmdir: حذف دایرکتوری خالی.
- مثال: rmdir empty_folder دایرکتوری empty_folder را حذف میکند.
- mkdir: ساخت دایرکتوری.
- مثال: mkdir projects دایرکتوری projects را ایجاد میکند.
- محل ذخیرهسازی:
- دستورات کاربر در /bin (مانند /bin/ls).
- اطلاعات کاربران در /home (مانند /home/student).
- لیست کاربران در /etc/passwd.
- لیست فرآیندها در /proc.
- درایورها در /dev (مانند /dev/sda برای دیسک).
- دایرکتوری سوپر یوزر در /root.
- touch: ساخت فایل خالی.
- مثال: touch note.txt فایل note.txt را ایجاد میکند.
- pwd: نمایش مسیر دایرکتوری فعلی.
- مثال: pwd ممکن است /home/student/projects را نمایش دهد.
- whoami: نمایش نام کاربر فعلی.
- مثال: whoami خروجی student را نمایش میدهد.
- date: نمایش تاریخ و زمان.
- مثال: date خروجی مانند Thu Jun 26 12:30:00 2025 را نمایش میدهد.
- man: نمایش راهنمای دستورات.
- مثال: man ls راهنمای دستور ls را نشان میدهد.
- cat: نمایش محتوای فایل متنی.
- مثال: cat note.txt محتوای فایل را نمایش میدهد.
- mv: انتقال یا تغییر نام فایل.
- مثال: mv file.txt /home/student/docs فایل را به دایرکتوری docs منتقل میکند.
- cp: کپی فایل.
- مثال: cp file.txt file_copy.txt یک کپی از فایل ایجاد میکند.
جدول دستورات مبتدی لینوکس:
| دستور | توضیح | مثال | خروجی/نتیجه |
|---|---|---|---|
| ls | نمایش لیست فایلها و دایرکتوریها | ls | file.txt docs |
| cd | تغییر دایرکتوری | cd /home/student/docs | تغییر به دایرکتوری docs |
| rm | حذف فایل | rm note.txt | حذف فایل note.txt |
| rmdir | حذف دایرکتوری خالی | rmdir empty_folder | حذف دایرکتوری empty_folder |
| mkdir | ساخت دایرکتوری | mkdir projects | ایجاد دایرکتوری projects |
| touch | ساخت فایل خالی | touch note.txt | ایجاد فایل note.txt |
| pwd | نمایش مسیر دایرکتوری فعلی | pwd | /home/student/projects |
| whoami | نمایش نام کاربر فعلی | whoami | student |
| date | نمایش تاریخ و زمان | date | Thu Jun 26 12:30:00 2025 |
| man | نمایش راهنمای دستورات | man ls | راهنمای دستور ls |
| cat | نمایش محتوای فایل متنی | cat note.txt | نمایش محتوای note.txt |
| mv | انتقال یا تغییر نام فایل | mv file.txt /docs | انتقال فایل به /docs |
| cp | کپی فایل | cp file.txt file_copy.txt | کپی فایل به file_copy.txt |
نکته کلیدی: این دستورات برای مدیریت فایلها و دایرکتوریها در لینوکس ضروری هستند.
آرگومانهای دستورات
آرگومانها (یا آپشنها) با خط تیره (-) شروع شده و عملکرد دستورات را تغییر میدهند.
- مثالها:
- ls -l: نمایش جزئیات فایلها (مانند اندازه، مجوزها، و تاریخ).
- خروجی: -rw-r–r– 1 student student 1024 Jun 26 12:30 file.txt
- ls -a: نمایش فایلهای مخفی (مانند .bashrc).
- خروجی: . .. .bashrc file.txt
- rm -r folder: حذف دایرکتوری و محتوای آن.
- مثال: rm -r old_project دایرکتوری old_project را حذف میکند.
- ls -l: نمایش جزئیات فایلها (مانند اندازه، مجوزها، و تاریخ).
- مثال ترکیبی: ls -la فایلهای مخفی و جزئیات را نمایش میدهد.
نکته کلیدی: آرگومانها قابلیتهای دستورات را گسترش میدهند.
دستورات ویرایش فایل
ویرایش فایل در لینوکس معمولاً با ویرایشگرهای متنی مانند vi یا vim انجام میشود.
- vi: باز کردن فایل با ویرایشگر vi.
- مثال: vi note.txt فایل note.txt را باز میکند.
- حالتهای vi:
- حالت فرمان: برای اجرای دستورات (با کلید Esc).
- حالت درج: برای تایپ متن (با کلید i یا Insert).
- دستورات کلیدی:
- :w: ذخیره فایل.
- :q: خروج بدون ذخیره.
- :wq یا :qw: ذخیره و خروج.
- :q!: خروج بدون ذخیره.
- مثال ویرایش:
- vi note.txt
- فشار i برای ورود به حالت درج.
- تایپ متن: Hello, Linux!
- فشار Esc و سپس :wq برای ذخیره و خروج.
نکته کلیدی: یادگیری vi برای ویرایش سریع فایلها در محیط CLI ضروری است.
تغییر سطح دسترسی فایل
دستور chmod برای تغییر سطح دسترسی فایلها و دایرکتوریها استفاده میشود. دسترسیها شامل خواندن (r=4)، نوشتن (w=2)، و اجرا (x=1) هستند.
- فرمت عددی:
- سه عدد برای صاحب فایل (User)، گروه (Group)، و دیگران (Others).
- مثال: chmod 620 file.txt:
- صاحب فایل: خواندن+نوشتن (6=4+2).
- گروه: خواندن (2).
- دیگران: بدون دسترسی (0).
- فرمت نمادین:
- مثال: chmod u+rwx,g+rx file.txt:
- به صاحب فایل (u) دسترسی کامل میدهد.
- به گروه (g) دسترسی خواندن و اجرا میدهد.
- مثال: chmod u+rwx,g+rx file.txt:
- مثال: chmod 755 script.sh به صاحب فایل دسترسی کامل و به دیگران دسترسی خواندن/اجرا میدهد.
نکته کلیدی: مدیریت دسترسیها برای امنیت فایلها و سیستم حیاتی است.
سوییچ یوزر (su)
دستور su برای تغییر به کاربر دیگر استفاده میشود.
- مثال: su root به کاربر ریشه تغییر میکند.
- نیاز به رمز عبور ریشه.
- مثال دیگر: su ali به کاربر ali تغییر میکند.
- مزیت: امکان مدیریت سیستم با دسترسیهای مختلف.
- مثال کاربردی: su root برای نصب نرمافزار با دسترسی ریشه.
نکته کلیدی: استفاده از su باید با احتیاط انجام شود تا از تغییرات ناخواسته جلوگیری شود.
اجرای دستور با سوپر یوزر (sudo)
دستور sudo امکان اجرای یک دستور با دسترسی سوپر یوزر را بدون تغییر کامل کاربر فراهم میکند.
- مثال: sudo apt update بستههای اوبونتو را بهروزرسانی میکند.
- نیاز به رمز عبور کاربر فعلی.
- مزیت: امنیت بالاتر نسبت به su به دلیل اجرای محدود.
- مثال دیگر: sudo systemctl restart apache2 سرویس وب Apache را ریاستارت میکند.
نکته کلیدی: sudo برای اجرای دستورات حساس مانند مدیریت بستهها یا سرویسها استفاده میشود.
ساخت کاربر جدید
دستور sudo adduser NAME برای ایجاد کاربر جدید استفاده میشود.
- مراحل:
- sudo adduser ali
- وارد کردن رمز عبور و اطلاعات اختیاری (مانند نام کامل).
- ایجاد دایرکتوری خانگی در /home/ali.
- مثال: sudo adduser student کاربر student را با دایرکتوری /home/student ایجاد میکند.
نکته کلیدی: مدیریت کاربران برای جداسازی دسترسیها و افزایش امنیت سیستم ضروری است.
پایپ و شرط
پایپ (|) خروجی یک دستور را بهعنوان ورودی دستور بعدی منتقل میکند. هدایت خروجی (>، >>) برای ذخیره خروجی استفاده میشود.
- مثال پایپ:
- ls | grep “txt”: فایلهایی که در نامشان txt دارند را نمایش میدهد.
- خروجی: note.txt report.txt
- ls | grep “txt”: فایلهایی که در نامشان txt دارند را نمایش میدهد.
- مثال هدایت خروجی:
- ls | grep “txt” > result.txt: فایلهای با نام txt را در result.txt ذخیره میکند.
- ls | grep “txt” >> result.txt: خروجی را به انتهای فایل اضافه میکند.
- مثال ترکیبی: ps aux | grep firefox | wc -l تعداد فرآیندهای فایرفاکس را میشمارد.
نکته کلیدی: پایپها و هدایت خروجی برای فیلتر کردن و خودکارسازی وظایف بسیار کاربردی هستند.
مفاهیم کلیدی اضافهشده
برای تکمیل جزوه، مفاهیم زیر از منابع استاندارد سیستمعامل (مانند کتاب Operating Systems: Internals and Design Principles نوشته ویلیام استالینگز) اضافه شدهاند:
1. مدیریت فرآیندها
- فرآیند: برنامهای در حال اجرا که شامل کد، دادهها، و وضعیت است.
- وظایف سیستمعامل:
- ایجاد و حذف فرآیندها.
- زمانبندی CPU با الگوریتمهایی مانند Round-Robin.
- مثال: دستور top یا htop در لینوکس فرآیندهای فعال را نمایش میدهد.
- مثال کاربردی: kill 1234 فرآیند با شناسه 1234 را متوقف میکند.
2. فایلسیستم لینوکس
- ساختار: لینوکس از فایلسیستم سلسلهمراتبی (مانند ext4) استفاده میکند.
- دایرکتوریهای کلیدی:
- /etc: فایلهای پیکربندی (مانند /etc/fstab).
- /var: دادههای متغیر مانند لاگها (/var/log).
- /tmp: فایلهای موقت.
- مثال: بررسی لاگهای سیستم با cat /var/log/syslog.
3. مدیریت بستهها
- ابزارها:
- apt (دبین/اوبونتو): مدیریت بستهها.
- مثال: sudo apt install vim ویرایشگر Vim را نصب میکند.
- dnf (فدورا): مدیریت بستهها.
- مثال: sudo dnf install gcc کامپایلر GCC را نصب میکند.
- apt (دبین/اوبونتو): مدیریت بستهها.
- مثال: بهروزرسانی بستهها با sudo apt update && sudo apt upgrade.
4. اسکریپتنویسی در شل
- نوشتن اسکریپتهای BASH برای خودکارسازی وظایف.
- مثال اسکریپت:
#!/bin/bash echo "List of txt files:" ls | grep "txt" - اجرا: chmod +x script.sh و سپس ./script.sh.
- مثال کاربردی: اسکریپتی که فایلهای قدیمیتر از 30 روز را حذف میکند:
#!/bin/bash find /home/student -type f -mtime +30 -delete



