دستورات لینوکس Linux – بخش دوم

دستورات پایه لینوکس

man
man  ابتدای manual است و منوال یک دستور را نمایش می‌دهد.


$ man crontab


اگر منوال یک برنامه در چند قسمت (با کاربری‌های متفاوت) وجود داشته باشد می‌توان تعیین کردن که کدام کاربری نمایش داده شود:


$ man  شماره-قسمت  command

 

هشت قسمت در منوال یک برنامه به‌صورت استاندارد ( و یک قسمت به صور غیر استاندارد) ‌ممکن است وجود داشته باشند که بسته به نوع هر دستور یا برنامه، در هر قسمت منوال مخصوص وجود خواهد داشت:


۱- برنامه‌های اجرایی یا دستورات خط فرمانی
۲- فراخوانی‌های سیستم (توابعی که در هسته تعبیه شده‌اند)
۳- فراخوانی‌های کتابخانه‌ای (توابعی که در کتابخانه‌های برنامه‌ها وجود دارند)
۴- فایل‌های مخصوص (که به‌طور معمول در dev/ یافت می‌شوند)
۵- فرمت‌های فایل‌های خاص (مثلاً etc/passwd/)
۶- بازی‌ها
۷- متفرقه
۸- دستورات مدیریت سیستمی (به‌طور معمول دستوراتی که فقط توسط root اجرا می‌شوند)
۹- روتین‌های هسته (غیر استاندارد)

به‌عنوان مثال، وقتی دستور whatis  را در‌مورد crontab اجرا کنید خواهید دید ۳ قسمت در راهنمای این برنامه وجود دارد:


[ali@localhost ~]$  whatis  crontab
crontab (5)          – files used to schedule the execution of programs
crontab (1)          – maintains crontab files for individual users
crontab (1p)         – schedule periodic background work

 

برای خواندن راهنمای هر قسمت کافی است از الگویی که در ابتدای این قسمت گفته شد، استفاده کرد:


man  ۵  crontab


tail
از tail برای مشاهده چند خط آخر یک فایل متنی (به‌طور معمول logها) استفاده می‌شود. Tail به‌صورت پیش فرض ۱۰ خط آخر فایل را نمایش داده و خارج می‌شود:


[root@localhost ~]#  tail  /var/log/mysqld.log
۱۳۰۷۰۹ ۱۷:۴۵:۵۲ InnoDB: Completed initialization of buffer pool
۱۳۰۷۰۹ ۱۷:۴۵:۵۲ InnoDB: highest supported file format is Barracuda.
۱۳۰۷۰۹ ۱۷:۴۵:۵۲  InnoDB: Waiting for the background threads to start
۱۳۰۷۰۹ ۱۷:۴۵:۵۳ InnoDB: 1.1.8 started; log sequence number 1602530
۱۳۰۷۰۹ ۱۷:۴۵:۵۳ [Note] Server hostname (bind-address): ‘0.0.0.0’; port: 3306
۱۳۰۷۰۹ ۱۷:۴۵:۵۳ [Note]   – ‘۰٫۰٫۰٫۰’ resolves to ‘0.0.0.0’;
۱۳۰۷۰۹ ۱۷:۴۵:۵۳ [Note] Server socket created on IP: ‘0.0.0.0’.
۱۳۰۷۰۹ ۱۷:۴۵:۵۳ [Note] Event Scheduler: Loaded 0 events
۱۳۰۷۰۹ ۱۷:۴۵:۵۳ [Note] /usr/libexec/mysqld: ready for connections.
Version: ‘5.5.29’  socket: ‘/var/lib/mysql/mysql.sock’  port: 3306  MySQL Community Server (GPL)


ممکن است ۱۰ خط آخر یک فایل لاگ به درد نخورد و بخواهیم تعداد خطوط بیش‌تر یا کمتری را ببینیم. در این صورت می‌توان از سوئیچ n که تعداد خط به‌عنوان آرگومان به آن داده شده است استفاده کرد:


[root@localhost ~]#  tail   -n  ۲۰  /var/log/mysqld.log


برای آزمایش‌کردن یک سرویس یا یک برنامه و مطالعه لاگ‌ آن برنامه دقیقاً در زمان وقوع یک رخداد می‌توان از گزینه f استفاده کرد. به کمک این گزینه، tail پس از نمایش ۱۰ خط آخر، منتظر ورود خطوط جدید در فایل لاگ و نمایش آن می‌ماند. برای خارج شدن از این مد، می‌توان از Ctrl + C استفاده کرد.

less
less ابزاری بسیار مفید برای خواندن لاگ‌های بسیار حجیم، زمانی که نمی‌خواهیم تمامی لاگ‌های این فایل به یک باره بارگذاری شوند است. به کمک less امکان مرور فایل به صورت رفتن به جلو یا برگشتن به عقب و یا رد کردن لاگ به صورت پنجره پنجره وجود دارد. از کلیدهای Ctrl +F برای رفتن به پنجره بعدی لاگ و از Ctrl + B برای برگشتن به پنجره قبلی می‌توان استفاده کرد.


su
su یا switch user برای تغییر کاربر از کاربر جاری به کاربر دیگر استفاده می‌شود. نحوه استفاده از su به این صورت است:


su  –  USERNAME


در هنگام تغییر کاربر، رمزعبور کاربر جدید نیز پرسیده خواهد شد و پس از آن امکان لاگین با کاربر جدید وجود دارد. البته root بدون نیاز به داشتن رمزعبور می‌توان به‌عنوان هر کاربری لاگین کند.
همیشه نیاز نیست تا به‌صورت دائم به یک کاربر دیگر سوئیچ کنیم و سپس از آن خارج شویم. گاهی اوقات نیاز است تا فقط یک دستور را از طرف یک کاربر دیگر اجرا کنیم و سپس به خط فرمان کاربری خود بازگردیم. مثال زیر در این مورد است:


[ali@localhost ~]$  su   –   root  -c  ‘systemctl restart httpd’
Password:


در مثال، فوق به کاربر ریشه لاگین کرده و دستور ری‌استارت کردن سرویس httpd را اجرا کرده و سپس از پوسته کاربر ریشه خارج خواهیم شد. از مثال بالا متوجه شدیم که گزینه c برای اجرای دستور توسط کاربری است که می‌خواهیم به آن سوئیچ کنیم.
پس از سوئیچ کردن به یک کاربر دیگر، شل پیش‌فرض آن کاربر برای ما اجرا خواهد شد اما اگر می‌خواهیم پس از لاگین، شل دلخواه اجرا شود می‌توان مطابق مثال زیر عمل کرد:

 

$ su   -s   ‘SHELLNAME’  USERNAME


mysql
به‌احتمال mysql پر استفاده‌ترین سیستم مدیریت پایگاه داده متن باز است. حتی اگر شما یک مدیر پایگاه داده نباشید اما باز هم باید دستورات ساده حداقل برای کانکت شدن به پایگاه داده mysql را بدانید. از دستور زیر می‌توان برای اتصال به رابط mysql استفاده کرد:


mysql   -u   root   -p


سپس از شما خواسته خواهد شد تا رمزعبور کاربر ریشه mysql (و نه رمزعبور کاربر ریشه سیستم)‌ را وارد کنید. همچنین می‌توان رمزعبور را بلافاصله پس از سوئیچ p نیز وارد کرد اما در این صورت امکان کشف رمزعبور با مراجعه به تاریخچه دستورات اجرا شده وجود دارد. اگر بخواهیم به mysql یک سیستم دیگر لاگین کنید می‌توانید با سوئیچ h که مشخص کننده نام یا آی‌پی سیستم دیگر است، به سیستم دیگری لاگین کرد:

yum
yum مشاهده apt-get یا aptitude است اما در توزیع‌های بر پایه فدورا استفاده می‌شود. Yum مدیر بسته بسیار قوی و کارآمدی است که امکان نصب بسته‌های نرم‌افزاری از مخازن یا نصب فایل rpm به صورت محلی را دارد. برای نصب برنامه‌ها از مخازن نرم‌افزاری باید مانند الگوی زیر عمل کرد:


#  yum  install  httpd  mysql-server


واضح است که برای به‌روز‌رسانی یک یا چند برنامه باید از update و برای حذف باید از remove به‌جای install استفاده کرد. برای به‌روز ‌کردن توزیع موجود نیز می‌توان به‌صورت ساده از  yum update استفاده کرد تا تمامی بسته‌های موجود روی سیستم، به آخرین نسخه موجود در مخازن به روز شوند.
برای نصب فایل‌های محلی توسط yum نیز می‌توان از مثال زیر استفاده کرد:


# yum   localinstall   PACKAGE_NAME


rpm
rpm در گذشته و قبل از قدرت گرفتن yum به وفور استفاده می‌شد اما به دلیل عدم نصب وابستگی‌ها در هنگام نصب یک بسته کمتر مورد استفاده قرار می‌گیرد اما هر چه باشد یک دستور قدیمی و پر سابقه و کاملاً مفید است که همچنان مورد استفاده قرار می‌گیرد.
Rpm مشابه dpkg است که در توزیع‌های بر پایه دبیان استفاده می‌شود.


# rpm  -ivh   httpd-2.2.3-22.0.1.el5.i386.rpm


گزینه i به rpm می‌گوید بسته مورد نظر را نصب کند و از گزینهv برای مشاهده خروجی مشروح استفاده می‌شود.
برای به‌روزرسانی یک بسته به نسخه جدیدتر باید به جای i از U استفاده کرد و برای حذف یک بسته نیز باید مانند مثال زیر دستور را اجرا کرد:


rpm -ev httpd


ping
پینگ از جمله نخستین دستورات شبکه‌ای است که برای اطلاع از وضعیت سیستم موجود در شبکه به کار می‌رود.
دستور زیر، ۵ بار google.com را پینگ می‌کند:


[ali@localhost ~]$   ping   -c   ۵   google.com
PING google.com (173.194.43.5) 56(84) bytes of data.
۶۴ bytes from lga15s34-in-f5.1e100.net (173.194.43.5): icmp_seq=1 ttl=54 time=292 ms
۶۴ bytes from lga15s34-in-f5.1e100.net (173.194.43.5): icmp_seq=2 ttl=54 time=296 ms
۶۴ bytes from lga15s34-in-f5.1e100.net (173.194.43.5): icmp_seq=3 ttl=54 time=295 ms
۶۴ bytes from lga15s34-in-f5.1e100.net (173.194.43.5): icmp_seq=4 ttl=54 time=292 ms
۶۴ bytes from lga15s34-in-f5.1e100.net (173.194.43.5): icmp_seq=5 ttl=54 time=291 ms

— google.com ping statistics —
۵ packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 291.677/293.711/296.037/1.822 ms


پینگ به‌صورت پیش فرض، هر یک ثانیه دامنه وارد شده را پینگ می‌کند اما می‌توان با گزینه i زمان‌های کمتر و بیش‌تر از این مقدار نیز وارد کرد. توجه داشته باشید که فقط کاربر ریشه می‌تواند زمان‌های کمتر از ۰٫۲ ثانیه را قرار دهد. حجم packetهایی که برای پینگ به‌صورت پیش فرض استفاده می‌شود ۵۶ بایت است اما می‌توان این حجم را با سوئیچ s- تغییر داد. واحد s بر حسب بایت است. مقدار TTL یا Time To Live با گزینه t قابل تغییر است.
اگر می‌خواهید به‌صورت شنیداری از بالا آمدن یک کامپیوتر یا وصل شدن اینترنت مطلع شوید باید از گزینه a استفاده کرد.

date
اگرچه ابزارهای گرافیکی و شبکه‌ای مانند ntp به راحتی تاریخ و زمان دقیق را با ساعت‌های بسیار دقیق اینترنتی همزمان می‌کند اما دانستن در‌مورد دستور date خالی از لطف نیست. در‌صورت استفاده از date بدون هیچ گزینه‌ای، تاریخ و زمان سیستم نمایش داده خواهد شد:

[ali@localhost ~]$ date
Fri  Jul  ۱۲  ۱۶:۴۴:۲۲  IRDT  ۲۰۱۳


اما برای تنظیم ساعت سیستم نیاز به ارتقای سطح دسترسی به کاربر ریشه داریم:


date -s “۰۹/۳۱/۲۰۱۳ ۲۳:۵۹:۵۳”


دستور فوق فقط ساعت نرم‌افزاری سیستم (ساعت سیستم‌‌عامل)‌ را به‌روز می‌کند و برای به روز کردن ساعت سخت‌افزاری سیستم باید مانند زیر عمل کرد:


#hwclock –systohc


گزینه systohc یا system to hardware clock  باعث تنظیم ساعت سخت‌افزاری بر‌اساس ساعت هسته می‌شود و در مثال زیر، علاوه‌بر تنظیم ساعت سخت‌افزاری بر‌اساس ساعت هسته سیستم‌عامل، به ساعت سخت‌افزاری می‌گوییم که با توجه به ساعت مرجع تنظیم شود.

# hwclock –systohc –utc


hctosys  دیگر گزینه hwclock است که برای تنظیم ساعت سیستم‌عامل بر‌اساس ساعت سخت‌افزاری سیستم به کار می‌رود.

wget
برنامه‌های مدیر دانلود اگرچه ممکن است سرعت دانلود را بهبود بخشند اما دانلود در خط فرمان لذت دیگری دارد. Wget  یکی از قوی‌ترین و پر سابقه‌ترین برنامه‌های دانلود در خط فرمان است. باید لینک دانلود را به صورت یک آرگومان به wget داد تا این برنامه آن فایل را دانلود کرده و در مسیر جاری ذخیره کند. گزینه P برای تعیین یک مسیر دیگر است تا فایل دانلود شده در آن مسیر ذخیره شود. از دیگر سوئیچ‌های مهم و پر استفاده wget می‌توان به limit-rate– برای تعیین سقف سرعت مجاز برای دانلود و O- برای تعیین نام برای فایل دانلود شده است. User–  و password– نیز برای مواقعی است که دانلود فایل نیاز به تشخیص هویت دارد . Ftp-user–  و  ftp-password– نیز برای دانلود از ftp استفاده می‌شود.


$ wget   -O  taglist.zip  –user=ali  –password= ali_password –limit-rate=100k  http://www.vim.org/scripts/download_script.php?src_id=7701


C یکی از بهترین و مهم‌ترین سوئیچ‌ها در wget است. این سوئیچ برای مواقعی که اینترنت ناپایدار است یا مایل هستیم فایل را طی چندین نوبت دانلود کنیم بسیار مفید است. C  ابتدای continue است و باعث ادامه دانلود می‌شود. عدم استفاده از این گزینه باعث دانلود فایل از ابتدا خواهد شد.
در صورتی که تعداد زیادی فایل برای دانلود داشته باشیم می‌توانیم تمام آن‌ها را به صورت ساده در یک فایل متنی ذخیره کرده و به کمک گزینه i آن‌ها را به ترتیب دانلود کنیم:


wget   -c -i   /home/ali/downloads

 

mount
دستگاه‌هایی مانند فلش یو‌اس‌بی، دیسک سی‌دی یا دی‌وی‌دی یا رسانه‌های جداشدنی به محض اتصال به یک سیستم لینوکسی شناسایی و مانت می‌شوند. اما برای سایر دیسک‌ها یا برای مانت در محل دلخواه باید رسانه را به صورت دستی مانت کنیم. در گذشته محل مانت پیش‌فرض mnt/ بود اما در نسخه‌های بعدی هسته لینوکسی به media/ تغییر پیدا کرد اما باز هم این مسیر در هسته‌های جدیدتر به run/media/USER/ تغییر پیدا کرد. در هر صورت پیش از مانت، باید یک پوشه خالی برای این منظور ایجاد کرد و سپس پارتیشن دستگاه مورد نظر را در آن پوشه مانت کرد:

# mdkir    /media/my_disk
# mount  /dev/sdb1   /media/my_disk

اگر چه دستور mount در بیش‌تر مواقع فایل سیستم پارتیشن را شناسایی می‌کند اما در صورت شناسایی نشدن فایل سیستم می‌توان از گزینه t که در مقابل آن نوع فایل سیستم پارتیشن دستگاه آورده شده است استفاده کرد:

# mount   -t   ntfs  /dev/sdb1   /media/my_disk

به جای استفاده از گزینه t و تایپ فایل سیستم می‌توان از ابتدا از دستور mount.FILESYSTEM استفاده کرد:

# mount.cifs  /dev/sdb1   /media/my_disk

برای خارج کردن امن دستگاه ابتدا باید پارتیشن‌های آن دستگاه را unmount کرد. برای nmount کردن از دستور umount استفاده می‌شود. استفاده از این دستور ساده است و باید جلوی umount محل مانت پارتیشن را نوشت تا پارتیشنی که در آن پوشه مانت شده است از دستگاه خارج شود:

#umount  /media/my_disk

اگر از مانت کردن در هر بار آغاز به کار سیستم خسته شده‌اید و به دنبال راهی برای خودکار کردن فرآیند مانت هستید باید پارتیشنی که می‌خواهید سوار شود، همچنین نقطه اتصال و سایر گزینه‌های مورد نظر در mount را در فایل etc/fstab/  وارد کرد.

/dev/sdb1  /media/my_disk  ext4  defaults  ۰  ۲

 chmod
این دستور برای تغییر  سطح دسترسی فایل‌ها و پوشه‌ها به کار می‌رود. همان‌طور که می‌دانید دسترسی‌ها در لینوکس به ۳ بخش‌، write ،read  و execute تقسیم می‌شود که می‌توان به جای این‌ها از اعداد ۴، ۲ و ۱ استفاده کرد.

chmod  ug+rwx  file.txt

در مثال فوق تمامی دسترسی‌ها (خواندن، نوشتن و اجرا)‌ به مالک و گروه مالک فایل مورد نظر اختصاص داده می‌شود. در مثال بعدی، دسترسی نوشتن روی فایل از گروه و دیگر کاربران (به جز مالک فایل) سلب شده است.

chmod   go-w  file.txt

در مثال زیر که برای آشنایی کار با اعداد ده دهی آورده شده است در یک پوشه و تمامی متعلقات زیر مجموعه آن، به مالک آن سطوح خواندن، نوشتن و اجرا کردن (۴+۲+۱)، به هم‌گروهی‌های مالک حق خواندن و اجرا کردن (۴+۱) و به دیگر کاربران فقط حق اجرا (۱) داده شده است:

chmod    -R   ۷۵۱   /media/Untitled\ Folder

chown
همان‌گونه که از نام این دستور هم مشخص است، برای تغییر مالکیت (و گروه) فایل‌ها به کار می‌رود.

chown  -R   ali   /home/ali/NewFolder

در دستور فوق، مالک پوشه مورد نظر به همراه تمامی فایل‌های زیر پوشه‌های آن به ali تغییر داده شده است. باید توجه داشته باشید که برای تغییر مالکیت یک فایل باید سطح دسترسی خود را به کاربر root تغییر بدهید. می‌توان علاوه‌بر تعیین مالک فایل، گروه کاربری را نیز به کمک chown تعیین کرد.

chown   ali:ali   /home/ali/file

passwd
از passwd برای تغییر رمزعبور کاربران به کار می‌رود. هر کاربری می‌تواند این دستور را اجرا کند. در این صورت فقط می‌توان رمزعبور کاربر اجرا کننده دستور را تغییر داد. اما اگر کاربر ریشه (root) این دستور را اجرا کند و نام یک کاربر را به‌عنوان آرگومان به passwd بدهد، رمزعبور آن کاربر به مقدار وارد شده تغییر خواهد کرد:

#passwd  ali

همچنین می‌توان به کمک گزینه d، نیاز به وارد کردن رمزعبور کاربر را برای لاگین غیر فعال کرد:

#passwd  -d  ali

mkdir
هر چه چند دستور بالا دستورات مدیریتی سیستم بودند، mkdir دستوری است که هر کاربر می‌تواند اجرا کند. دستور زیر پوشه tmp را در پوشه خانگی کاربر ali می‌سازد:

mkdir   ~ali/tmp

اگر بخواهیم چندین پوشه تو در تو بسازیم، لازم نیست تا ابتدا یک پوشه ایجاد کنیم، به درون آن تغیر مسیر دهیم، یک پوشه دیگر بسازیم و این کار را چندین بار تکرار کنیم. فقط کافی است از سوئیچ p در دستور mkdir استفاده کنیم:

mkdir    -p   ~ali/folder1/folder2/folder2/

ifconfig
ifconfig یکی از قدیمی‌ترین دستورات برای تنظیمات آداپتور شبکه در سیستم‌های یونیکسی است که هنوز هم استفاده می‌شود. اگرچه این دستور در توزیع‌های جدید و به‌روز از رده خارج شده است و به جای آن توصیه شده است از دستور ip استفاده شود اما آشنایی با ifconfig همچنان یک ضرورت است.
دستور زیر برای دیدن تنظیمات تمامی کارت‌های شبکه روی سیستم به کار می‌رود:

$ ifconfig  -a

اگر بخواهیم یک آداپتور شبکه را فعال کنیم می‌توان مانند مثال زیر عمل کنیم:

# ifconfig  eth0  up

برای غیر‌فعال کردن آداپتور شبکه هم می‌توان از الگوی فوق  استفاده کرد و به جایdown ،up نوشت. همچنین می‌توان مانند مثال زیر، تنظیمات یک آداپتور شبکه را تعیین کرد.

#  ifconfig    eth1  ۱۷۲٫۱۶٫۱۶٫۵   netmask  ۲۵۵٫۲۵۵٫۲۵۵٫۲۴۸   gateway 172.16.16.1

توجه داشته باشید که تنظیمات  پس از راه‌اندازی سیستم از بین می‌رود و باید در هر بار بالا آمدن سیستم دستورات را دوباره اجرا کرد. در توزیع‌های بر پایه دبیان مانند اوبونتو، مینت و پارسیکس می‌توان فایل etc/network/interfaces/ را ویرایش کرد و تنظیمات هر آداپتور شبکه را در همین فایل وارد کرد (برای ویرایش فایل فوق نیاز به ارتقای سطح دسترسی به کاربر ریشه است).
اما در توزیع‌های بر پایه فدورا، نظیر ردهت، لینوکس اوراکل و centos تنظیمات ثابت آداپتورهای شبکه کمی پیچیده‌تر است و برای هر آداپتور باید یک فایل جداگانه در مسیر  etc/sysconfig/network-scripts/ ساخت که مطالعه در مورد آن را به عهده شما می‌گذاریم.

uname
uname اطلاعات مهم و حیاتی سیستم نظیر نام هسته، نام سیستم، نسخه هسته، نوع پردازنده و سایر اطلاعات را نمایش می‌دهد. اجرای این دستور در یک لپ‌تاپ با سیستم‌عامل فدورا این خروجی را می‌دهد:

[ali@localhost ~]$  uname  -a
Linux   localhost.localdomain   ۳٫۷٫۸-۲۰۲٫fc18.x86_64  #۱  SMP  Fri  Feb  ۱۵  ۱۷:۳۳:۰۷  UTC  ۲۰۱۳ x86_64  x86_64 x86_64  GNU/Linux

گزینه a تمامی اطلاعات uname را نمایش می‌دهد اما می‌توان به کمک سوئیچ‌های این دستور، قسمت‌ها مختلف را فیلتر کرد. به عنوان مثال برای نمایش فقط نسخه هسته می‌توان از  uname  v  استفاده کرد یا برای مشاهده سکوی سخت‌افزاری از گزینه i و برای مشاهده نوع سیستم‌عامل از آرگومان o استفاده کرد.

whereis
از whereis می‌توان برای پی‌ بردن به مسیر کامل یک دستور استفاده کرد. به عنوان مثال، می‌خواهیم بدانیم مسیر کامل دستور ls کجا است:

[ali@localhost ~]$  whereis  ls
ls:  /bin/ls  /usr/bin/ls  /usr/share/man/man1/ls.1.gz
/usr/share/man/man1p/ls.1p.gz

whereis مسیرهای پیش‌فرض برای فایل‌های اجرایی را که از قبل تعیین شده‌اند برای دستور مورد نظر شما جست‌وجو می‌کند اما در صورتی‌که دستور مورد جست‌وجو در مسیرهای پیش‌فرض قرار نداشت می‌توان به کمک استفاده از سوئیچ B و  مسیری که به عنوان آرگومان به آن داده می‌شود، دستور را در مسیر مورد نظر جست‌وجو کرد:

whereis  -u  -B  /tmp  -f  lsmk
lsmk:  /tmp/lsmk

می‌توان برای جست‌وجوی بهتر و دقیق‌تر از سوئیچ‌های b و m در دستور whereis استفاده کرد. گزینه b برای جست‌وجوی فایل باینری و m نیز برای جست‌وجو در منوال‌ها استفاده می‌شوند.

whatis
whatis در یک خط در مورد دستوری که به عنوان آرگومان به آن داده می‌شود، توضیح می‌دهد:

$ whatis ls
ls              (۱)  – list directory contents

$ whatis ifconfig
ifconfig (8)         – configure a network interface

locate
اگرچه find دستور کامل و دقیقی است، اما از آنجا که موارد را در همان لحظه جست‌وجو می‌کند، سرعت پاسخ به آن بسته به تعداد فایل‌ها و پوشه‌هایی که کاوش می‌کند متغیر و به طور معمول پایین است. برخی اوقات نیازمند دریافت پاسخ جست‌وجو به صورت بسیار سریع هستیم. در این مواقع، locate  چاره کار است. locate برنامه جست‌وجویی است که به دنبال فایل‌ها در پایگاه داده خود که با updatedb ایجاد و به‌روزرسانی می‌شود و طبیعتاً سرعت پاسخ آن نسبت به find بیش‌تر است:

$ locate crontab
/etc/anacrontab
/etc/crontab
/usr/bin/crontab
/usr/share/doc/cron/examples/crontab2english.pl.gz
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/anacrontab.5.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/vim/vim72/syntax/crontab.vim

در مثال فوق به دنبال فایل crontab بودیم و دستور locate پوشه‌های مختلف را برای فایلی با این الگوی نام جست‌وجو کرده و به سرعت مسیر کامل پوشه‌هایی را که همچنین فایلی در آن قرار دارد، بر‌می‌گرداند.

 

اشتراک گذاری این صفحه
همچنین:  دستورات لینوکس Linux - بخش اول

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.