دستورات کابردی در لینوکس
![دستورات کابردی در لینوکس دستورات کابردی در لینوکس](images/news/medium/5004_linux.jpg)
در این نوشته سعی داریم با برخی از دستورات ساده اما پر کاربرد محیط متنی لینوکس آشنا شویم. محیط متنی لینوکس، برخلاف آنچه به نظر میرسد بسیار کاربردی و انعطافپذیر است. اغلب سیستمهای کاری که سرویسهای مهمی را به کاربران ارائه میدهند بدلیل امکان کاهش کارایی، فاقد محیط گرافیکی هستند. علاوه بر آن مدیر یک سیستم مبتنی بر لینوکس اغلب مجبور است از راه دور، به تنظیم و یا رفع عیب سیستم خود بپردازد که این امر با استفاده از پروتکلهای امن بعلاوهی امکانات محیط متنی بسیار راحت انجامپذیر است. به همین دلایل است که اغلب برای لینوکسکارها هیچ کاری لذتبخشتر از کار با محیط متنی نیست.
در این نوشته سعی داریم با برخی از دستورات ساده اما پر کاربرد محیط متنی لینوکس آشنا شویم. محیط متنی لینوکس، برخلاف آنچه به نظر میرسد بسیار کاربردی و انعطافپذیر است. اغلب سیستمهای کاری که سرویسهای مهمی را به کاربران ارائه میدهند بدلیل امکان کاهش کارایی، فاقد محیط گرافیکی هستند. علاوه بر آن مدیر یک سیستم مبتنی بر لینوکس اغلب مجبور است از راه دور، به تنظیم و یا رفع عیب سیستم خود بپردازد که این امر با استفاده از پروتکلهای امن بعلاوهی امکانات محیط متنی بسیار راحت انجامپذیر است. به همین دلایل است که اغلب برای لینوکسکارها هیچ کاری لذتبخشتر از کار با محیط متنی نیست!!!
- دستورات مربوط به دایرکتوری و فایلها
Print Working Directory) Pwd)
این دستور برای نمایش مسیر دایرکتوری جاری به کار میرود.
root@server asterisk]# pwd]
etc/asterisk/
List) ls)
از این دستور برای نمایش لیست فایلها و دایرکتوریها استفاده میشود. کاربرد این دستور به همراه بعضی از پارامترهای آن را در زیر میبینیم:
root@server asterisk]# ls]
شکل ساده این دستور لیست محتویات دایرکتوری جاری را بدون اطلاعات اضافه نمایش میدهد.
asterisk.co dahdi-channels.conf.bak modules.conf
cdr_adaptive_odbc.conf dbsep.conf musiconhold.conf
cdr.conf dnsmgr.conf muted.conf
cdr_custom.conf dsp.conf queues.conf
cdr_manager.conf extensions.conf res_odbc.conf
پارامتر l (مخفف Long) جزییات بیشتری از لیست فایلها نمایش میدهد. از جمله اطلاعات Permision مربوط به هر فایل. این پارامتر معمولا به همراه پارامتر h (مخفف human readable) استفاده میشود تا اطلاعات حجم فایلها برای کاربر راحتتر خوانده شود.
root@server asterisk]# ls –lh]
total 612K
rw-r–r– 1 root root 3.4K Jul 4 09:15 asterisk.conf-
rw-r–r– 1 root root 2.7K Jul 4 09:15 cdr_adaptive_odbc.conf-
البته از این دستور برای نمایش محتویات دایرکتوری غیر از دایرکتوری جاری و به همراه کاراکترهای عمومی نیز میتوان استفاده کرد.
root@server asterisk]# ls /etc/tmp/*.conf]
Change Directory) Cd)
جهت تغییر مسیر جاری استفاده میشود.
root@server asterisk]# cd /etc/dahdi]
دایرکتوری ..(دو نقطه) به دایرکتوری Parent دایرکتوری جاری اشاره میکند. همچنین استفاده این دستور به صورت تنها شما را به دایرکتوری خانه کاربر جاری منتقل میکند.
..root@server asterisk]# cd ]
root@server etc]# cd]
root@server ~]#pwd]
root/
Make Directory) Mkdir)
برای ساخت یک دایرکتوری جدید از این دستور استفاده میشود.
Copy) Cp)
برای کپی کردن فایل (یا فایلها) استفاده میشود. شکل کلی دستور به دو صورت زیر است، که در حالت اول فایل اول را به فایلی با نام فایل دوم کپی میکند و در حالت دوم همه فایلهای اول تا انتها را به داخل دایرکتوری انتهایی کپی میکند:
root@server asterisk]#cp file1 file2]
root@server asterisk]#cp file1 file2 file3 … dir1]
Move) Mv)
برای انتقال فایلها و یا تغییر نام آنها از این دستور استفاده میشود.
root@server asterisk]#mv extensions.conf /tmp]
root@server asterisk]#mv iax.conf iax.conf.sample]
Remove) Rm)
برای حذف فایل یا فایلها استفاده میشود. به طور معمول این دستور قادر به حذف دایرکتوریها نیست مگر اینکه ازپارامتر –r (مخفف Recursive) استفاده شود. از دیگر پارامترهای پرکاربرد این دستور –I (مخفف Interactive=once) است که برای حذف، تنها یکبار از کاربر تایید میخواهد و البته استفاده از پارامتر –f (مخفف force) باعث اجرای این دستور بدون هیچ پیغام اضافی است.
root@server asterisk]#rm –Ir /tmp/dir1]
rm: remove all arguments recursively? y
File
این دستور براساس header (و نه پسوند که در ویندوز متداول است) تشخیص میدهد که فایل مورد نظر از چه نوعی است.
root@server asterisk]#file extensions.conf]
etc/asterisk/extensions.conf: ASCII English text/
Find
دستوری پرکاربرد برای پیدا کردن فایلها براساس پارامترهای مختلف. معروفترین فرم استفاده از این دستور با پارامتر –name است که براساس نام فایل به دنبال آن میگردد. باید توجه داشت که در لینوکس حروف بزرگ و کوچک متفاوت قلمداد شده و در نتیجه جستجو تاثیرگذار هستند. میتوان از پارامتر –iname به جای –name برای برطرف کردن این موضوع استفاده کرد.
*.*root@server asterisk]#find /etc/asterisk –name exten]
- کار با فایلهای متنی
Concatenate) Cat)
این دستور محتویات یک فایل متنی را روی کنسول استاندارد نمایش میدهد. برای نمایش محتویات فایل به صورت برعکس (آخرین خط در اول) نیز میتوان از دستور Tac (برعکس cat) استفاده کرد.
less
برای مشاهده فایلهای متنی بزرگ و یا خروجی برخی دستورات که مقداری بزرگتر از یک صفحه نمایش دارند، از این دو دستور بسیار پرکاربرد استفاده میشود. به هنگام استفاده از این دستور کلید Space صفحه بعد و کلید b صفحه قبل را نمایش داده و q برای خروج استفاده میشود. پایپ دستور ls به این دستور از کاربردهای رایج آن است.
root@server asterisk]#ls | less]
root@server asterisk]#less /etc/services]
Difference) Diff)
محتویات دو فایل متنی را با هم مقایسه میکند و تفاوتها را روی صفحه نمایش نشان میدهد.
Head و Tail
گاهی نیاز است که از یک فایل متنی بسیار بزرگ تنها بخش انتهایی و یا ابتدایی آن نمایش داده شود. این حالت اغلب در بررسی فایلهای Log بسیار استفاده میشود. برای این منظور از دستور Tail (به معنی دُم!!!) برای دیدن انتهای فایل و از دستور Head برای دیدن ابتدای آن استفاده میکنیم. در حالت عادی این دو دستور ۱۰ خط از فایل را نمایش میدهند که برای تغییر این مقدار میتوان از پارامتر –n استفاده کرد. یکی از پرکاربردترین پارامترهای دستور Tail پارامتر –F است که باعت میشود فایلهایی که بزرگ شدن هستند به صورت همزمان مورد بررسی قرار بگیرند. مثلا از دستور زیر برای مشاهده همزمان Log مربوط به استریسک استفاده میشود.
root@server asterisk]#tail –F /var/log/asterisk/full]
Grep
این دستور نیز یکی از دستورات پرکاربرد لینوکس است. این دستور بخشی از فایل متنی (و یا خروجی برنامهای دیگر) را که عبارت جلوی دستور را شامل میشود، نمایش میدهد. عبارت فیلتر دستور فوق میتواند یک Regular Expression نیز باشد. استفاده از این دستور برای اعمال فیلتر بر روی چند فایل نیز بسیار متداول است. در زیر چند مثال از کاربرد دستور grep را مشاهده میکنید:
root@server asterisk]#grep oot /etc/passwd]
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
*/root@server asterisk]#grep oot /etc]
etc/passwd:root:x:0:0:root:/root:/bin/bash/
etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin/
etc/passwd-:root:x:0:0:root:/root:/bin/bash/
etc/passwd-:operator:x:11:0:operator:/root:/sbin/nologin/
root@server asterisk]#tail –f /var/log/messages | grep kernel]
(این دستور آخرین پیغامهای مربوط به کرنل لینوکس را نمایش میدهد و منتظر پیغام جدید از سوی کرنل میماند!!)
Aug 9 03:25:02 client09 kernel: imklog 4.6.2, log source = /proc/kmsg started
- دستورات سیستمی
Poweroff & Reboot
دستوراتی برای راهاندازی مجدد و خاموش کردن بیدردسر!! سیستم. پارامتری که هرگز توصیه نمیشود، –f (مخفف force) است که برای انجام هرکدام از این اعمال بدون اجرای تشریفات لازم به کار میرود. با اجرای دستور با پارامتر فوق سیستم سریعا خاموش یا ریاستارت میشود.
Interface Configuration) Ifconfig)
این دستور به وقتی به تنهایی اجرا شود مشخصات تمامی اینترفیسهای شبکه را نمایش میدهد. البته از این دستور برای مقداردهی موقت به پارامترهای شبکه یک اینترفیس نیز میتوان استفاده کرد. سادهترین شکل این دستور در این حالت به صورت زیر میباشد:
root@server asterisk]#ifconfig eth0 192.168.1.1 255.255.255.0]
توجه داشته باشید که این پارامترها اگرچه همزمان با اجرای دستور اعمال میشوند (نیازی به راهاندازی مجدد سرویس شبکه نیست) اما فقط تا وقتی که سیستم (و یا تنها سرویس شبکه ) ریاستارت نشده پابرجاست و با انجام هر کدام از این کارها، پارامترهای شبکه نیز به حالت قبل برمیگردد. یک راه برای انجام تغییرات دائم در این پارامترها استفاده از system-config-network است.
Setup
یک برنامه تقریبا گرافیکی (البته بر مبنای محیط متنی) برای انجام برخی تنظیمات لینوکس است. با توجه به بستههایی که روی سیستم شما نصب است احتمالا سه بخش اصلی زیر از طریق برنامه setup در دسترس شما خواهد بود. البته هرکدام از این بخشها مستقیما نیز قابل اجرا خواهد بود.
+System-config-networks
برای تغییر پارامترهای مختلف شبکه استفاده میشود. نکته مهم استفاده از دستور service network restart بعد از ذخیره تغییرات، برای اِعمال آن است. برخلاف دستور ifconfig این دستور تغییرات را به صورت همیشگی در فایل مربوط به تنظیمات شبکه ذخیره میکند.
+Services
از این برنامه برای تعیین سرویسهایی که در هنگام راهاندازی سیستم اتوماتیک راهاندازی میشوند استفاده میشود.
+System-config-firewall
این برنامه نیز برای فعال یا غیرفعال کردن فایروال لینوکس (iptables) استفاده میشود. در صورتی که فایروال را فعال کرده باشید تا حدودی امکان تنظیم آن نیز از طریق این برنامه وجود دارد.
Date
این برنامه نیز برای نمایش زمان سیستم و یا تنظیم آن به کار میرود.
Ntpdate
از این برنامه برای تنظیم زمان سیستم (و تاریخ) از یک سرور NTP استفاده میشود.
root@server asterisk]#ntpdate pool.ntp.org]
- نصب برنامه
YellowDog Updater Modified!!!) Yum)
برنامه مدیریت بستههای نرمافزاری که CentOS به صورت پیشفرض از آن استفاده میکند. در هنگام دسترسی به اینترنت (و یا یک مخزن محلی از بستههای نرمافزاری) راحتترین روش نصب برنامه در این توزیع به حساب میآید. این برنامه به راحتی برای نصب، بهروزرسانی، حذف و جستجو در میان بستههای نصب شده استفاده میشود. Yum در هنگام نصب هر بسته نرمافزاری، بستههای پیشنیاز را نیز مشخص کرده و نصب میکند. پارامتر پرکاربرد در اینجا –y است که باعث میشود yum به تمام پیغامها در هنگام نصب پاسخ مثبت بدهد. دستورات yum بسیار متنوع بوده و در زیر تنها برخی از نمونههای اجرای این برنامه را مشاهده میکنید:
root@server asterisk]#yum install package] (آخرین نسخه موجود در مخازن را نصب و یا نسخه کنونی را ارتقا میدهد)
root@server asterisk]#yum remove package] (برای حذف یک بسته به کار گرفته میشود)
root@server asterisk]#yum update -y] (مجموعه بستههای نصب شده بر روی سیستم را برای بهروز رسانی بررسی میکند)
root@server asterisk]#yum search something] !! (زمانی که حتی اسم بسته مورد نظر خود را هم نمیدانید،این دستور تلاش میکند بستههای مرتبط با کلمه جستجوی شما را پیدا کند)
root@server asterisk]#yum repolist] (لیستی از مخازن فعال در این سیستم را نمایش میدهد)
Rpm
زمانی که بسته نرمافزاری مورد نظر را در اختیار دارید میتوانید با استفاده از دستور Rpm آن را نصب کنید. معمولا ترکیب پارامترهای –ivh و یا –uvh برای نصب یک بسته نرمافزاری و –ev برای حذف یک بسته استفاده میشود. از پارامتر –q نیز برای جستجو در میان بستههای نصب شده استفاده میشود.
root@server asterisk]#rpm –uvh SomePackage.rpm]
root@server asterisk]#rpm –q bash]
bash-4.1.2-9.el6_2.x86_64
root@server asterisk]#rpm –qa | grep device]
device-mapper-event-1.02.66-6.el6.x86_64
device-mapper-libs-1.02.66-6.el6.x86_64
Tar
اگرچه این دستور برای فشردهسازی و یا برعکس آن به کار گرفته میشود، در اکثر موارد سورس کد نرمافزارها به صورت فشرده و در قالب فایل tar.gz در دسترس است و برای نصب اول نیاز است که این فایلها از حالت فشرده خارج شود. برای این کار ترکیب پارامترهای zxvf
(gzip-extract-verbose-file) استفاده میشود.
root@server src]#tar -zxvf asterisk.1.8.8.1]