مقاله قبلی ممکن است برای اکثر شما بسیار مفیده بوده باشد این مقاله هم نمونه ی مشابهی از مقاله قبلی ( آموزش مقدماتی لینوکس ) میباشد با این تفاوت که مقاله اول برای تازه واردین میباشد و این مقاله برای کاربران سطح متوسطه و همچنین پیشرفته مناسب است. در این آموزش شما نحوه شخصی سازی جستجو, اطلاع از پروسس های در حال اجرا به منظور متوقف کردن آنها و همچنین نحوه تغییر ترمینال لینوکس شما ( که مورد مهمی است ) و همچنین نحوه کامپایل برنامه های c ،c++ و java در سیستم های لینوکس را مشاهده خواهید کرد.
21 - دستور find
جستجوی فایل ها در دایرکتوری مورد نظر با دستور find انجام میشود که به صورت سلسله مراتبی از دایرکتوری پدر ( parent directory ) آغاز و تا زیر دایرکتوری ها ادامه میابد :
نکته : آپشن -name باعث میشود که جستجوی ما حساس به حروف بزرگ و کوچک باشد. شما میتوانید از آپشن -iname برای پیدا کردن موارد مورد نظر بدون دقت به بزرگ یا کوچک بودن حروف استفاده کنید. ( ستاره "*" یک wildcard میباشد و تمام فایل هایی که پسوند .sh دارند را جستجو میکند شما میتوانید نام فایل یا بخشی از آنرا برای شخصی سازی بیشتر خروجی استفاده کنید.)
نکته : دستور بالا همه فایل های با پسوند tar.gz که در دایرکتوری root و همه زیر شاخه های آن شامل دایوایس های mount شده هستند، را جستجو میکند.
همچنین توصیه میشود مطالعه کنید :
آموزش کامل دستور Find در لینوکس به همراه 35 مثال عملی
22 - دستور grep
دستور grep فایل مورد نظر را برای خط هایی که با string یا کلمات داده شده match باشند را جستجو میکند به طور مثال دستور پایین فایل /etc/passwd را برای یوزر linuxzone جستجو میکند.
برای صرف نظر کردن از حروف بزرگ و کوچک در هر ترکیبی از آپشن -i استفاده میکنیم.
برای جستجوی زیر شاخه ها از آپشن -r استفاده میکنیم (آپشن r مخفف recursive است. یعنی اعمال سرچ در تمام زیر دایرکتوری ها ). دستور زیر همه فایل ها را در هر دایرکتوری برای مقدار "127.0.0.1" جستجو میکند.
نکته : شما میتوانید آپشن های زیر را همراه با grep استفاده کنید :
-w : این آپشن برای جستجوی کلمات استفاده میشود. ( به طور مثال grep -w 'word1|word2' /path/tofile )
-c : این آپشن برای شمارش استفاده میشود، در حقیقت تعداد کل دفعاتی که یک پترن در یک فایل وجود دارد را میشمارد. ( به طور مثال grep -c ‘word‘ /path/to/file )
-color : برای نمایش خروجی به صورت رنگی از این آپشن استفاده میشود. ( به طور مثال grep –color server /etc/passwd )
همچنین توصیه میشود مطالعه کنید :
دستور grep در لینوکس به همراه 12 مثال عملی
23 - دستور man
دستور man در حقیقت نمایش دهنده صفحات manual سیستم میباشد. man داکیومنت های آنلاین را با تمام آپشن های ممکن در یک کامند و کاربرد آنها را توضیح میدهد. اغلب برای همه دستورات صفحه manual مربوطه موجود است به طور مثال :
در بالا صفحه manual برای خود دستور man را مشاهده میکنید که شبیه به man cat میباشد. ( صفحه manual برای دستور cat ) و همچنین man ls که صفحه manual دستور ls میباشد.
نکته : صفحه man به منظور آموزش و مرجع دستورات در لینوکس تعبیه شده است.
24 - دستور ps
ps ( مخفف process ) وضعیت پروسه در حال اجرا را به همراه یک id یونیک به نام PID به ما نمایش میدهد.
برای لیست کردن وضعیت همه پراسس ها به همراه process id و PID از آپشن -A استفاده میکنیم.
نکته : این دستور برای اطلاع پیدا کردن از اینکه چه process هایی در حال اجرا هستند و همچنین گاهی اوقات اطلاع از PID انها و همچنین برای kill کردن یک پراسس، بسیار مفید است. شما میتوانید آنرا با دستور grep برای یافتن خروجی مورد نظرتان نیز استفاده کنید. به طور مثال :
در مثال بالا ps به دستور grep پایپ "|" شده تا خروجی مربوطه و مورد نظر با توجه به نیازمان را جستجو کنیم.
همچنین توصیه میشود مطالعه کنید :
دستور PS در لینوکس برای مانیتور کردن پراسس ها
25 - دستور kill
شما از نام این دستور فهمیده اید که این دستور به چه منظوری استفاده میشود. از این دستور برای kill کردن process ها استفاده میشود. این دستور بسیار بسیار مفید است، شما با restart کردن مکرر ویندوز به دلیل این حقیقت که اکثر مواقع یک پروسس در حال اجرا را نمیتوان kill کرد و یا برای kill شدنش نیاز به restart ویندوز به منظور اعمال تغییرات آشنا هستید. اما در دنیای لینوکس چنین مواردی وجود ندارد شما میتوانید یک پراسس را kill کنید و مجددا آنرا را بدون نیاز به ریستارت کردن کل سیستم، اجرا کنید.
برای kill کردن یک دستور شما به pid آن process نیاز دارید. فرض میکنیم شما میخواهید برنامه apache2 که با مشکل رو به رو شده را kill کنید. ابتدا دستور ps -a را بهمراه grep اجرا کنید.
در اینجا شما پراسس apache2 را خواهید دید، به pid ان دقت کنید و آنرا kill کنید. در اینجا pid مربوط به apache2 در سیستم من 1285 میباشد.
نکته : هر زمان که شما یک process را دوباره اجرا کنید و یا سیستم را restart کنید یک pid جدید برای هر پراسس ایجاد میشود و همچنین شما میتوانید درباره process های جاری و pid انها با استفاده از دستور ps اطلاعات لازم را کسب کنید.
نکته : دستور kill برای ارسال سیگنال ها نیاز به job id / process id دارد، در حالیکه در دستور pkill شما یک آپشنی برای استفاده از پترن مشخص کردن owner یک پراسس و غیره دارد.
همچنین توصیه میشود مطالعه کنید :
آموزش نحوه پیداکردن پروسس در حال اجرا و kill کردن آن در لینوکس
26 - دستور whereis
دستور whereis برای پیدا کردن مکان باینری، سورس ها و صفحات man یک دستور مورد استفاده قرار میگیرد. برای مثال برای پیدا کردن مکان باینری، سورس ها و صفحه man دستور ls و kill به موارد زیر توجه کنید.
نکته : این دستور برای اطلاع از مکانی که باینری ها نصب شده اند ( گاهی برای ویرایش دستی ) مفید است.
27 - دستور service
دستور service برای کنترل کردن وضعیت های یک سرویس، start ،stop و restart کردن آن مورد استفاده قرار میگیرد. این دستور امکان start ،stop و restart کردن یک سرویس را برای اعمال تغییرات لحاظ شده، بدون ریستارت کردن کل سیستم مهیا میکند.
Start کردن یک سرور Apache2 روی Ubuntu
Restart کردن یک سرور Apache2 روی Ubuntu
Stop کردن یک سرور Apache2 روی Ubuntu
نکته : همه اسکریپت های process در /etc/init.d/ قرار دارند و این مسیر ممکن است روی سیستم های خاص نیاز به include شدن داشته باشد. به طور مثال به منظور اجرا کردن service apache2 start شما باید دستور /etc/init.d/apache2 start را اجرا کنید.
28 - دستور alias
alias یکی از دستورات درونی شل است که به شما امکان اختصاص دادن یک نام اختصاصی یا شخصی سازی شده برای دستورات طولانی یا دستوراتی که مکررا استفاده میشود را میدهد.
من دستور ls -l را خیلی زیاد استفاده میکنم که با احتساب space وسط آن 5 کاراکتر میشود میتوانم یک alias با نام "l" برای این منظور ایجاد کنم که وقتی که "l" را در ترمینال تایپ کردم برای من دستور ls -l را اجرا کند.
بررسی کنید آیا الیاسی که ساختیم کار میکند یا خیر.
برای حذف alias ایجاد شده "l" از دستور unalias زیر استفاده کنید.
بررسی کنید که ایا "l" همچنان alias میشود یا خیر :
میتوانید کمی با این دستور سرگرم شوید و نام دستورات خاص را با دستورات مهم دیگر alias کنید.
اکنون وقتی دوست شما cd را تایپ میکنند بسیار جالب است که او تنها لیست دایرکتوری ها را دریافت میکند و به دایرکتوری وارد نمیشود و زمانی که تلاش میکند با su لاگین کند تنها مسیر دایرکتوری جاری را دریافت میکند. شما میتوانید بعدا این alias ها را با استفاده از دستور unalias همانطور که در بالا گفته شد حذف کنید.
29 - دستور df
دستور df میزان استفاده فایل سیستم از Disk را گزارش میکند. این دستور برای کاربران و مدیران سیستم برای اطلاع از میزان استفاده از دیسک شان بسیار مفید است. df با مشخص کردن کل دایرکتوری کار میکند که عموما تنها زمانیکه یک فایل بسته میشود خودش را آپدیت میکند.
همچنین توصیه میشود مطالعه کنید :
دستور df برای بررسی فضای دیسک در لینوکس
30 - دستور du
دستور du برای تخمین زدن فضای مصرفی فایل از این دستور استفاده میشود که خلاصه مصرف دیسک توسط هر فایل و همچنین به صورت سلسله مراتبی به شیوه ای recursive گونه ( با احتساب تمام زیر دایرکتوری ها ) را خروجی میدهد.
نکته : df تنها آمار مصرف روی فایل سیستم ها را گزارش میدهد در حالیکه du محتوای دایرکتوری ها را اندازه میگیرد.
همچنین توصیه میشود مطالعه کنید :
دستور du برای پیدا کردن فضای مورد استفادی فایل ها و دایرکتوری ها
31 - دستور rm
دستور rm مخفف remove است و برای حذف فایل ها و دایرکتوریها استفاده میشود.
حذف یک دایرکتوری
دایرکتوری نمیتواند به آسانی و تنها با دستور rm حذف شود شما باید از آپشن -rf به همراه دستور rm استفاده کنید.
هشدار : کامند rm -rf درصورتی که به صورت تصادفی و برای یک دایرکتوری اشتباهی استفاده شود یک دستور مخرب است. به محض اینکه شما برای یک دایرکتوری شما دستور rm -rf را استفاده کنید تمامی فایل ها و دایرکتوری های موجود و حتی خود دایرکتوری به طور ناگهان و برای همیشه از بین خواهد رفت. همیشه این دستور را با احتیاط استفاده کنید.
32 - دستور echo
دستور echo همانطور که از نامش پیداست یک متن را در standard output چاپ ( echo ) میکند. این دستور هیچ کاری ندارد که با shell انجام دهد و همچنین shell هم خروجی دستور echo را نمیخواند به هر حال این دستور یک اسکریپت تعاملی میباشد. echo پیغام را به کاربر از طریق ترمینال پاس میدهد. و این دستور یکی از دستوراتی است که به صورت رایج در اسکریپت نویسی به خصوص اسکریپت های interactive مورد استفاده قرار میگیرد.
ایجاد یک اسکریپت interactive ( تعاملی )
1 . فایلی با نام interactive_shell.sh در دسکتاپ ایجاد کنید. ( به خاطر داشته باشید که پسوند .sh حتما باید استفاده شود )
2 . متن زیر را در ان کپی کنید و دقت کنید که دقیقا همانند زیر باشد.
سپس permission اجرایی را روی آن set کنید و اسکریپت را اجرا کنید.
نکته : ‘#!/bin/bash‘ به شل میگوید که این فایل یک اسکریپت است و همیشه در اولین خط اسکریپت استفاده میشود. آپشن "read" در اسکرپیت بالا ورودی داده شده را میخواند.
همچنین توصیه میشود مطالعه کنید :
دستور echo در لینوکس بهمراه 15 مثال عملی
33 - دستور passwd
دستور passwd یکی از دستورات مهم است و برای تغییر پسورد خودتان در ترمینال استفاده میشود. شما برای استفاده از این دستور شما باید پسورد جاری خودتان را به دلایل امنیتی بدانید.
34 - دستور lpr
این دستور فایل نام برده را با استفاده از کامند لاین و printer مذکور پرینت میکند.
نکته : دستور lpq به شما امکان مشاهده وضعیت یک پرینتر ( آیا up هست یا نیست؟ ) و همچنین فایل هایی که منتظر پرینت شدن هستند را میدهد.
35 - دستور cmp
دستور cmp دو فایل از هر نوع را مقایسه کرده و نتیجه را در standard output مینویسد. به صورت پیش فرض cmp در صورتی که فایل ها یکسان باشد عدد "0" را برمیگرداند و اگر با هم متفاوت باشند بایت و شماره خطی که اولین تفاوت در آن رخ داده را گزارش میکند.
برای نشان دادن مثال برای این دستور دو فایل زیر را در نظر بگیرید.
file1.txt
file2.txt
اکنون دو فایل را مقایسه کرده و خروجی دستور را میبینید.
36 - دستور wget
wget یک ابزار رایگان برای دانلود های غیر تعاملی ( بدون نیاز به yes و no ) از فایل ها در وب سایت ها میباشد. این دستور از پروتکل های HTTP ،HTTPS ،FTP و پراکسی های HTTP پشتیبانی میکند.
دانلود ffmpeg با استفاده از wget
همچنین توصیه میشود مطالعه کنید :
دستور wget (دانلودر فایل در linux)
37 - دستور mount
mount یک دستور مهم است که برای مانت کردن یک فایل سیستم که خودش mount نشده استفاده میشود. شما برای mount کردن یک دیوایس نیاز به پرمیژن root دارید.
ابتدا lsblk را اجرا کنید تا فایل سیستم مورد نظرتان را تشخیص و نام اختصاص یافته به آن را مشاهده و پیدا کنید.
از این صفحه مشخص است که من یک pendrive 4 GIG را استفاده کردم در نتیجه sdb1 فایل سیستمم است که باید mount شود. برای اجرای این عملیات باید ابتدا با کاربر root لاگین شد و به دایرکتوری /dev رفته که تمامی فایل سیستم ها در آن مانت شده اند.
یک دایرکتوری با هر نامی ایجاد کنید اما بهتر است که با نام دیوایس مربوطه همخوانی داشته باشد.
اکنون فایل سیستم sdb1 را به دایرکتوری usb مانت کنید.
حالا شما میتوانید در ترمینال و یا محیط گرافیکی ( x-windows system ) به مسیر /dev/usb رفته و به فایل های از طریق دایرکتوری mount شده دسترسی داشته باشید.
38 - دستور gcc
gcc کامپایلر درونی زبان c در محیط لینوکس است. در زیر یک برنامه ساده c را مشاهده میکنید، آنرا در دسکتاپ تان با نام hello.c ذخیره کنید. ( به خاطر داشته باشید پسوند .c ضروری میباشد )
آنرا compile کنید :
آنرا اجرا کنید :
نکته : در کامپایل کردن یک برنامه c خروجی به صورت اتوماتیک در یک فایل جدید به نام a.out ایجاد میشود و هر زمانی که شما یک برنامه c را کامپایل کنید همان فایل a.out تغییر میکند. البته این یک نصیحت خوبی است که در طول کامپایل کردن یک خروجی تعریف کنید و ریسک overwrite شدن خروجی روی فایل قبلی را نداشته باشید.
آنرا به این صورت کامپایل کنید.
در اینجا -o خروجی را به فایل hello ( و نه به فایل a.out ) ارسال میکند. برنامه را دوباره اجرا کنید.
39 - دستور g++
دستور g++ یک کامپایلر درونی برای c++ ( اولین زبان برنامه نویسی object oriented ) میباشد. در زیر یک برنامه ساده c++ مشاهده میکنید، آنرا در فایل add.cpp و روی دسکتاپ تان ذخیره کنید. ( دقت کنید پسوند .cpp ضروری میباشد )
آنرا compile کنید :
آنرا اجرا کنید :
نکته : در کامپایل کردن یک برنامه c++ خروجی به صورت اتوماتیک در فایل جدید a.out ایجاد میشود. و هر زمانی که شما یک برنامه c++ را کامپایل کنید همان فایل a.out تغییر میکند. البته این یک نصیحت خوبی است که در طول کامپایل کردن یک خروجی تعریف کنید و ریسک overwrite شدن خروجی روی فایل قبلی را نداشته باشید.
آنرا به این صورت compile کنید :
آنرا اجرا کنید :
40 - دستور java
جاوا یکی از پراستفاده از زبان های برنامه نویسی در سطح جهان است و سریع، امن و قابل اعتماد در نظر گرفته میشود. اکثر سرویس های بر پایه وب امروزه روی جاوا راه اندازی میشوند. یک برنامه ساده java را با past کردن متن زیر درون یک فایل ایجاد کنید. نام آنرا linuxzone.java بگذارید. ( دقت کنید که حتما از پسوند .java استفاده کنید )
آنرا با استفاده از javac کامپایل کنید :
آنرا اجرا کنید :
نکته : اگر چه هر توزیع لینوکسی کامپایلر gcc را به صورت پیش فرض در خود دارند توزیع های سرشمار دیگری هم هستند که کامپایلرهای java و c++ را به صورت پیش فرض دارند. البته بعضی از توزیع ها هم ممکن است نداشته باشند. شما میتوانید با استفاده از apt یا yum پکیج های مورد نیاز را نصب کنید.
فراموش نکنید که نظرات ارزشمند خود را درباره این پست با ما درمیان بگذارید. به زودی با موضوعات جالب دیگر و حقایق کمتر مطرح شده درباره لینوکس برمیگردیم.
21 - دستور find
جستجوی فایل ها در دایرکتوری مورد نظر با دستور find انجام میشود که به صورت سلسله مراتبی از دایرکتوری پدر ( parent directory ) آغاز و تا زیر دایرکتوری ها ادامه میابد :
کد PHP:
root@linux-zone:~# find -name *.sh
./Desktop/load.sh
./Desktop/test.sh
./Desktop/shutdown.sh
./Binary/firefox/run-mozilla.sh
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh
./Downloads/kdewebdev-3.5.8/admin/cvs.sh
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh
./Downloads/wheezy-nv-install.sh
نکته : آپشن -name باعث میشود که جستجوی ما حساس به حروف بزرگ و کوچک باشد. شما میتوانید از آپشن -iname برای پیدا کردن موارد مورد نظر بدون دقت به بزرگ یا کوچک بودن حروف استفاده کنید. ( ستاره "*" یک wildcard میباشد و تمام فایل هایی که پسوند .sh دارند را جستجو میکند شما میتوانید نام فایل یا بخشی از آنرا برای شخصی سازی بیشتر خروجی استفاده کنید.)
کد PHP:
root@linux-zone:~# find -iname *.SH ( find -iname *.Sh / find -iname *.sH)
./Desktop/load.sh
./Desktop/test.sh
./Desktop/shutdown.sh
./Binary/firefox/run-mozilla.sh
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh
./Downloads/kdewebdev-3.5.8/admin/cvs.sh
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh
./Downloads/wheezy-nv-install.sh
root@linux-zone:~#
کد PHP:
root@linux-zone:~# find -name *.tar.gz
/var/www/modules/update/tests/aaa_update_test.tar.gz
./var/cache/flashplugin-nonfree/install_flash_player_11_linux.i386.tar.gz
./home/server/Downloads/drupal-7.22.tar.gz
./home/server/Downloads/smtp-7.x-1.0.tar.gz
./home/server/Downloads/noreqnewpass-7.x-1.2.tar.gz
./usr/share/gettext/archive.git.tar.gz
./usr/share/doc/apg/php.tar.gz
./usr/share/doc/festival/examples/speech_pm_1.0.tar.gz
./usr/share/doc/argyll/examples/spyder2.tar.gz
./usr/share/usb_modeswitch/configPack.tar.gz
همچنین توصیه میشود مطالعه کنید :
آموزش کامل دستور Find در لینوکس به همراه 35 مثال عملی
22 - دستور grep
دستور grep فایل مورد نظر را برای خط هایی که با string یا کلمات داده شده match باشند را جستجو میکند به طور مثال دستور پایین فایل /etc/passwd را برای یوزر linuxzone جستجو میکند.
کد PHP:
root@linux-zone:~# grep linuxzone /etc/passwd
linuxzone:x:1000:1000:linuxzone,,,:/home/linuxzone:/bin/bash
کد PHP:
root@linux-zone:~# grep -i LINUXZONE /etc/passwd
linuxzone:x:1000:1000:linuxzone,,,:/home/linuxzone:/bin/bash
کد PHP:
root@linux-zone:~# grep -r "127.0.0.1" /etc/
/etc/vlc/lua/http/.hosts:127.0.0.1
/etc/speech-dispatcher/modules/ivona.conf:#IvonaServerHost "127.0.0.1"
/etc/mysql/my.cnf:bind-address = 127.0.0.1
/etc/apache2/mods-available/status.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/ldap.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/info.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/proxy_balancer.conf:# Allow from 127.0.0.1 ::1
/etc/security/access.conf:#+ : root : 127.0.0.1
/etc/dhcp/dhclient.conf:#prepend domain-name-servers 127.0.0.1;
/etc/dhcp/dhclient.conf:# option domain-name-servers 127.0.0.1;
/etc/init/network-interface.conf: ifconfig lo 127.0.0.1 up || true
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# http.nonProxyHosts=localhost|127.0.0.1
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# ftp.nonProxyHosts=localhost|127.0.0.1
/etc/hosts:127.0.0.1 localhost
-w : این آپشن برای جستجوی کلمات استفاده میشود. ( به طور مثال grep -w 'word1|word2' /path/tofile )
-c : این آپشن برای شمارش استفاده میشود، در حقیقت تعداد کل دفعاتی که یک پترن در یک فایل وجود دارد را میشمارد. ( به طور مثال grep -c ‘word‘ /path/to/file )
-color : برای نمایش خروجی به صورت رنگی از این آپشن استفاده میشود. ( به طور مثال grep –color server /etc/passwd )
همچنین توصیه میشود مطالعه کنید :
دستور grep در لینوکس به همراه 12 مثال عملی
23 - دستور man
دستور man در حقیقت نمایش دهنده صفحات manual سیستم میباشد. man داکیومنت های آنلاین را با تمام آپشن های ممکن در یک کامند و کاربرد آنها را توضیح میدهد. اغلب برای همه دستورات صفحه manual مربوطه موجود است به طور مثال :
کد PHP:
root@linux-zone:~# man man
MAN(1) Manual pager utils MAN(1)
NAME
man - an interface to the on-line reference manuals
SYNOPSIS
man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I]
[--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p
string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ...
man -k [apropos options] regexp ...
man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
man -f [whatis options] page ...
man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]]
[-H[browser]] [-X[dpi]] [-Z] file ...
man -w|-W [-C file] [-d] [-D] page ...
man -c [-C file] [-d] [-D] page ...
man [-hV]
نکته : صفحه man به منظور آموزش و مرجع دستورات در لینوکس تعبیه شده است.
24 - دستور ps
ps ( مخفف process ) وضعیت پروسه در حال اجرا را به همراه یک id یونیک به نام PID به ما نمایش میدهد.
کد PHP:
root@linux-zone:~# ps
PID TTY TIME CMD
4170 pts/1 00:00:00 bash
9628 pts/1 00:00:00 ps
برای لیست کردن وضعیت همه پراسس ها به همراه process id و PID از آپشن -A استفاده میکنیم.
کد PHP:
root@linux-zone:~# ps -A
PID TTY TIME CMD
? 00:00:01 init
? 00:00:00 kthreadd
? 00:00:01 ksoftirqd/0
? 00:00:00 kworker/0:0H
? 00:00:00 kworker/u:0H
? 00:00:00 migration/0
? 00:00:00 rcu_bh
....
کد PHP:
root@linux-zone:~# ps -A | grep -i ssh
1500 ? 00:09:58 sshd
4317 ? 00:00:00 sshd
همچنین توصیه میشود مطالعه کنید :
دستور PS در لینوکس برای مانیتور کردن پراسس ها
25 - دستور kill
شما از نام این دستور فهمیده اید که این دستور به چه منظوری استفاده میشود. از این دستور برای kill کردن process ها استفاده میشود. این دستور بسیار بسیار مفید است، شما با restart کردن مکرر ویندوز به دلیل این حقیقت که اکثر مواقع یک پروسس در حال اجرا را نمیتوان kill کرد و یا برای kill شدنش نیاز به restart ویندوز به منظور اعمال تغییرات آشنا هستید. اما در دنیای لینوکس چنین مواردی وجود ندارد شما میتوانید یک پراسس را kill کنید و مجددا آنرا را بدون نیاز به ریستارت کردن کل سیستم، اجرا کنید.
برای kill کردن یک دستور شما به pid آن process نیاز دارید. فرض میکنیم شما میخواهید برنامه apache2 که با مشکل رو به رو شده را kill کنید. ابتدا دستور ps -a را بهمراه grep اجرا کنید.
کد PHP:
root@linux-zone:~# ps -A | grep -i apache2
1285 ? 00:00:00 apache2
کد PHP:
root@linux-zone:~# kill 1285 (to kill the process apache2)
کد PHP:
root@linux-zone:~# pkill apache2
همچنین توصیه میشود مطالعه کنید :
آموزش نحوه پیداکردن پروسس در حال اجرا و kill کردن آن در لینوکس
26 - دستور whereis
دستور whereis برای پیدا کردن مکان باینری، سورس ها و صفحات man یک دستور مورد استفاده قرار میگیرد. برای مثال برای پیدا کردن مکان باینری، سورس ها و صفحه man دستور ls و kill به موارد زیر توجه کنید.
کد PHP:
root@linux-zone:~# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
کد PHP:
root@linux-zone:~# whereis kill
kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz
27 - دستور service
دستور service برای کنترل کردن وضعیت های یک سرویس، start ،stop و restart کردن آن مورد استفاده قرار میگیرد. این دستور امکان start ،stop و restart کردن یک سرویس را برای اعمال تغییرات لحاظ شده، بدون ریستارت کردن کل سیستم مهیا میکند.
Start کردن یک سرور Apache2 روی Ubuntu
کد PHP:
root@linux-zone:~# service apache2 start
* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
httpd (pid 1285) already running [ OK ]
کد PHP:
root@linux-zone:~# service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]
کد PHP:
root@linux-zone:~# service apache2 stop
* Stopping web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting [ OK ]
28 - دستور alias
alias یکی از دستورات درونی شل است که به شما امکان اختصاص دادن یک نام اختصاصی یا شخصی سازی شده برای دستورات طولانی یا دستوراتی که مکررا استفاده میشود را میدهد.
من دستور ls -l را خیلی زیاد استفاده میکنم که با احتساب space وسط آن 5 کاراکتر میشود میتوانم یک alias با نام "l" برای این منظور ایجاد کنم که وقتی که "l" را در ترمینال تایپ کردم برای من دستور ls -l را اجرا کند.
کد PHP:
root@linux-zone:~# alias l='ls -l'
کد PHP:
root@linux-zone:~# l
total 36
drwxr-xr-x 3 linuxzone linuxzone 4096 May 10 11:14 Binary
drwxr-xr-x 3 linuxzone linuxzone 4096 May 21 11:21 Desktop
drwxr-xr-x 2 linuxzone linuxzone 4096 May 21 15:23 Documents
drwxr-xr-x 8 linuxzone linuxzone 4096 May 20 14:56 Downloads
drwxr-xr-x 2 linuxzone linuxzone 4096 May 7 16:58 Music
drwxr-xr-x 2 linuxzone linuxzone 4096 May 20 16:17 Pictures
drwxr-xr-x 2 linuxzone linuxzone 4096 May 7 16:58 Public
drwxr-xr-x 2 linuxzone linuxzone 4096 May 7 16:58 Templates
drwxr-xr-x 2 linuxzone linuxzone 4096 May 7 16:58 Videos
کد PHP:
root@linux-zone:~# unalias l
کد PHP:
root@linux-zone:~# l
bash: l: command not found
کد PHP:
alias cd='ls -l' (set alias of ls -l to cd)
alias su='pwd' (set alias of pwd to su)
....
(You can create your own)
....
29 - دستور df
دستور df میزان استفاده فایل سیستم از Disk را گزارش میکند. این دستور برای کاربران و مدیران سیستم برای اطلاع از میزان استفاده از دیسک شان بسیار مفید است. df با مشخص کردن کل دایرکتوری کار میکند که عموما تنها زمانیکه یک فایل بسته میشود خودش را آپدیت میکند.
کد PHP:
root@linux-zone:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 47929224 7811908 37675948 18% /
none 4 0 4 0% /sys/fs/cgroup
udev 1005916 4 1005912 1% /dev
tmpfs 202824 816 202008 1% /run
none 5120 0 5120 0% /run/lock
none 1014120 628 1013492 1% /run/shm
none 102400 44 102356 1% /run/user
/dev/sda5 184307 79852 94727 46% /boot
/dev/sda7 95989516 61104 91045676 1% /data
/dev/sda8 91953192 57032 87218528 1% /personal
همچنین توصیه میشود مطالعه کنید :
دستور df برای بررسی فضای دیسک در لینوکس
30 - دستور du
دستور du برای تخمین زدن فضای مصرفی فایل از این دستور استفاده میشود که خلاصه مصرف دیسک توسط هر فایل و همچنین به صورت سلسله مراتبی به شیوه ای recursive گونه ( با احتساب تمام زیر دایرکتوری ها ) را خروجی میدهد.
کد PHP:
root@linux-zone:~# du
8 ./Daily Pics/wp-polls/images/default_gradient
8 ./Daily Pics/wp-polls/images/default
32 ./Daily Pics/wp-polls/images
8 ./Daily Pics/wp-polls/tinymce/plugins/polls/langs
8 ./Daily Pics/wp-polls/tinymce/plugins/polls/img
28 ./Daily Pics/wp-polls/tinymce/plugins/polls
32 ./Daily Pics/wp-polls/tinymce/plugins
36 ./Daily Pics/wp-polls/tinymce
580 ./Daily Pics/wp-polls
1456 ./Daily Pics
36 ./Plugins/wordpress-author-box
16180 ./Plugins
12 ./May Articles 2013/Xtreme Download Manager
4632 ./May Articles 2013/XCache
همچنین توصیه میشود مطالعه کنید :
دستور du برای پیدا کردن فضای مورد استفادی فایل ها و دایرکتوری ها
31 - دستور rm
دستور rm مخفف remove است و برای حذف فایل ها و دایرکتوریها استفاده میشود.
حذف یک دایرکتوری
کد PHP:
root@linux-zone:~# rm PassportApplicationForm_Main_English_V1.0
rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory
کد PHP:
root@linux-zone:~# rm -rf PassportApplicationForm_Main_English_V1.0
32 - دستور echo
دستور echo همانطور که از نامش پیداست یک متن را در standard output چاپ ( echo ) میکند. این دستور هیچ کاری ندارد که با shell انجام دهد و همچنین shell هم خروجی دستور echo را نمیخواند به هر حال این دستور یک اسکریپت تعاملی میباشد. echo پیغام را به کاربر از طریق ترمینال پاس میدهد. و این دستور یکی از دستوراتی است که به صورت رایج در اسکریپت نویسی به خصوص اسکریپت های interactive مورد استفاده قرار میگیرد.
کد PHP:
root@linux-zone:~# echo "linux-zone.org/forums is a very good website"
linux-zone.org/forums is a very good website
ایجاد یک اسکریپت interactive ( تعاملی )
1 . فایلی با نام interactive_shell.sh در دسکتاپ ایجاد کنید. ( به خاطر داشته باشید که پسوند .sh حتما باید استفاده شود )
2 . متن زیر را در ان کپی کنید و دقت کنید که دقیقا همانند زیر باشد.
کد PHP:
#!/bin/bash
echo "Please enter your name:"
read name
echo "Welcome to Linux $name"
کد PHP:
root@linux-zone:~# chmod 777 interactive_shell.sh
root@linux-zone:~# ./interactive_shell.sh
Please enter your name:
Ravi Saive
Welcome to Linux Ravi Saive
همچنین توصیه میشود مطالعه کنید :
دستور echo در لینوکس بهمراه 15 مثال عملی
33 - دستور passwd
دستور passwd یکی از دستورات مهم است و برای تغییر پسورد خودتان در ترمینال استفاده میشود. شما برای استفاده از این دستور شما باید پسورد جاری خودتان را به دلایل امنیتی بدانید.
کد PHP:
root@linux-zone:~# passwd
Changing password for linuxzone.
(current) UNIX password: ********
Enter new UNIX password: ********
Retype new UNIX password: ********
Password unchanged [Here was passowrd remians unchanged, i.e., new password=old password]
Enter new UNIX password: #####
Retype new UNIX password:#####
34 - دستور lpr
این دستور فایل نام برده را با استفاده از کامند لاین و printer مذکور پرینت میکند.
کد PHP:
root@linux-zone:~# lpr -P deskjet-4620-series 1-final.pdf
35 - دستور cmp
دستور cmp دو فایل از هر نوع را مقایسه کرده و نتیجه را در standard output مینویسد. به صورت پیش فرض cmp در صورتی که فایل ها یکسان باشد عدد "0" را برمیگرداند و اگر با هم متفاوت باشند بایت و شماره خطی که اولین تفاوت در آن رخ داده را گزارش میکند.
برای نشان دادن مثال برای این دستور دو فایل زیر را در نظر بگیرید.
file1.txt
کد PHP:
root@linux-zone:~# cat file1.txt
Hi My name is linuxzone
file2.txt
کد PHP:
root@linux-zone:~# cat file2.txt
Hi My name is linuxzone [dot] com
کد PHP:
root@linux-zone:~# cmp file1.txt file2.txt
file1.txt file2.txt differ: byte 15, line 1
36 - دستور wget
wget یک ابزار رایگان برای دانلود های غیر تعاملی ( بدون نیاز به yes و no ) از فایل ها در وب سایت ها میباشد. این دستور از پروتکل های HTTP ،HTTPS ،FTP و پراکسی های HTTP پشتیبانی میکند.
دانلود ffmpeg با استفاده از wget
کد PHP:
root@linux-zone:~# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
--2013-05-22 18:54:52-- http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 [following]
--2013-05-22 18:54:54-- http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 92.46.53.163
Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|92.46.53.163|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 275557 (269K) [application/octet-stream]
Saving to: ‘ffmpeg-php-0.6.0.tbz2’
100%[===========================================================================>] 2,75,557 67.8KB/s in 4.0s
2013-05-22 18:55:00 (67.8 KB/s) - ‘ffmpeg-php-0.6.0.tbz2’ saved [275557/275557]
همچنین توصیه میشود مطالعه کنید :
دستور wget (دانلودر فایل در linux)
37 - دستور mount
mount یک دستور مهم است که برای مانت کردن یک فایل سیستم که خودش mount نشده استفاده میشود. شما برای mount کردن یک دیوایس نیاز به پرمیژن root دارید.
ابتدا lsblk را اجرا کنید تا فایل سیستم مورد نظرتان را تشخیص و نام اختصاص یافته به آن را مشاهده و پیدا کنید.
کد PHP:
root@linux-zone:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 923.6G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 7.9G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom
sdb 8:16 1 3.7G 0 disk
└─sdb1 8:17 1 3.7G 0 part
کد PHP:
root@linux-zone:~# su
Password:
root@linux-zone:~# cd /dev
کد PHP:
root@linux-zone:~# mkdir usb
کد PHP:
root@linux-zone:~# mount /dev/sdb1 /dev/usb
38 - دستور gcc
gcc کامپایلر درونی زبان c در محیط لینوکس است. در زیر یک برنامه ساده c را مشاهده میکنید، آنرا در دسکتاپ تان با نام hello.c ذخیره کنید. ( به خاطر داشته باشید پسوند .c ضروری میباشد )
کد PHP:
#include <stdio.h>
int main()
{
printf("Hello world\n");
return 0;
}
آنرا compile کنید :
کد PHP:
root@linux-zone:~# gcc Hello.c
آنرا اجرا کنید :
کد PHP:
root@linux-zone:~# ./a.out
Hello world
نکته : در کامپایل کردن یک برنامه c خروجی به صورت اتوماتیک در یک فایل جدید به نام a.out ایجاد میشود و هر زمانی که شما یک برنامه c را کامپایل کنید همان فایل a.out تغییر میکند. البته این یک نصیحت خوبی است که در طول کامپایل کردن یک خروجی تعریف کنید و ریسک overwrite شدن خروجی روی فایل قبلی را نداشته باشید.
آنرا به این صورت کامپایل کنید.
کد PHP:
root@linux-zone:~# gcc -o Hello Hello.c
کد PHP:
root@linux-zone:~# ./Hello
Hello world
39 - دستور g++
دستور g++ یک کامپایلر درونی برای c++ ( اولین زبان برنامه نویسی object oriented ) میباشد. در زیر یک برنامه ساده c++ مشاهده میکنید، آنرا در فایل add.cpp و روی دسکتاپ تان ذخیره کنید. ( دقت کنید پسوند .cpp ضروری میباشد )
کد PHP:
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
cout<<"Enter first number:\n";
cin>> a;
cout<<"Enter the second number:\n";
cin>> b;
cin.ignore();
int result = a + b;
cout<<"Result is"<<" "<<result<<endl;
cin.get();
return 0;
}
آنرا compile کنید :
کد PHP:
root@linux-zone:~# g++ Add.cpp
آنرا اجرا کنید :
کد PHP:
root@linux-zone:~# ./a.out
Enter first number:
...
...
آنرا به این صورت compile کنید :
کد PHP:
root@linux-zone:~# g++ -o Add Add.cpp
کد PHP:
root@linux-zone:~# ./Add
Enter first number:
...
...
40 - دستور java
جاوا یکی از پراستفاده از زبان های برنامه نویسی در سطح جهان است و سریع، امن و قابل اعتماد در نظر گرفته میشود. اکثر سرویس های بر پایه وب امروزه روی جاوا راه اندازی میشوند. یک برنامه ساده java را با past کردن متن زیر درون یک فایل ایجاد کنید. نام آنرا linuxzone.java بگذارید. ( دقت کنید که حتما از پسوند .java استفاده کنید )
کد PHP:
class linuxzone{
public static void main(String[] arguments) {
System.out.println("Linuxzone");
}
}
کد PHP:
root@linux-zone:~# javac linuxzone.java
کد PHP:
root@linux-zone:~# java linuxzone
فراموش نکنید که نظرات ارزشمند خود را درباره این پست با ما درمیان بگذارید. به زودی با موضوعات جالب دیگر و حقایق کمتر مطرح شده درباره لینوکس برمیگردیم.