mozhgan
08-05-2011, 06:52 AM
آشنایی با چند ابزار مفید متنی در گنو/لینوکس
در کنار استفاده از یک ویرایشگر متنی، به عنوان یک مدیر سیستم و یا حتی یک کاربر عادی، برخی ابزارها و برنامههای کاربردی وجود دارند که میتوانید از آنها برای انجام امور روزمره و مدیریتی خود بهره فراوانی ببرید.
دستور alias
یکی از دشواریهای کاربران تازهکار گنو/لینوکس در استفاده از دستورات پیچیدهای است که ممکن است به یاد داشتن آن برای آنها کار چندان آسانی نباشد. دستور alias به شما این امکان را میدهد تا بتوانید این دستورات پیچیده را به دستوراتی مستعار تبدیل نمایید که به یاد آوردن آنها برایتان آسانتر باشد. همچنین میتوانید دستورات طولانی را که به طور روزمره از آنها استفاده میکنید، با استفاده از alias به دستوراتی کوتاه و سهل الاستفاده تبدیل کنید. استفاده از دستور alias به شکل زیر میباشد:
# alias [-p] name='command'
بجای command باید دستور اصلی را وارد نمایید. دستور alias در بسیاری از پوستههای فرمان قابل استفاده میباشد. گزینه p- لیستی از دستورات مستعار تعریف شده بر روی سیستم را برایتان چاپ خواهد کرد. برای مثال میتوانید دستور ls -l را به عنوان دستور longlist تعریف کنید:
# alias longlist='ls -l'
هنگامی که دستور longlist را وارد میکنید، پوسته فرمان در حقیقت دستور ls -l را برای شما اجرا میکند، ولی شما نیاز ندارید تا آنرا به خاطر داشته باشید.
دستور grep
گاهی اوقات لازم است که یک واژه خاص را در میان یک فایل پیدا کنید. grep فایل داده شده را جستجو کرده و خط یا خطوط حاوی این واژه را چاپ خواهد کرد. نحوه استفاده از این دستور به شکل زیر میباشد:
# grep [option] pattern [file] ...
تنها آرگومان لازم برای دستور grep واژهای است که مایل هستید تا به دنبال آن جستجو نمایید. در صورتی که واژه را به دستور grep ندهید، چیزی برای شما پیدا نخواهد کرد! این امکان وجود دارد تا خروجی یک فرمان دیگر را به سمت دستور grep هدایت کنید. مثالی از استفاده از دستور grep میتواند جستجو به دنبال خطاهایی باشد که در فایل syslog ثبت شدهاند.
# grep -i error /var/log/syslog
Oct 22 07:56:35 localhost kernel: hdc: media error (bad sector): error=0x30
Oct 22 07:56:35 localhost kernel: end_request: I/O error, dev hdc, sector 15600
گزینه i- جستجو را بصورت case sensitive انجام خواهد داد. جدول۱ گزینههای قابل استفاده به همراه این دستور را نمایش میدهد.
جدول۱ گزینههای دستور grep
دو دستور دیگر وجود دارند که به grep مربوط میباشند. این دو دستور عبارتند از egrep و fgrep. دستور egrep همانند زمانی عمل میکند که شما grep را به همراه گزینه E- استفاده کنید. همچنین fgrep نیز مانند زمانی عمل میکند که دستور grep را به همراه گزینه F- بکار ببندید.
ابزار grep مخصوصا برای برنامهنویسان و کسانی که با کد نویسی سر و کار دارند، بسیار مفید است. برای مثال برای لیست کردن تمامی خطوطی که در یک فایل حاوی کلمه error هستند، میتوانید از دستور زیر استفاده کنید:
# grep error /var/log/auth.log
Aug 28 22:20:57 localhost sshd[2886]: error: PAM: Authentication failure for linet from localhost
Nov 6 20:20:10 localhost sshd[4133]: error: PAM: Authentication failure for alan from localhost
grep این فایل را جستجو کرده و تمامی خطوطی را که حاوی کلمه error باشند را نمایش میدهد. تمام خطوط دیگر فایل نیز نادیده گرفته خواهند شد. همانطو که گفته شد، شما به راحتی میتوانید خروجی فرمان grep را بجای صفحه نمایش به یک فایل یا دستور ثالث هدایت نمایید. مثلا:
# grep error /var/log/syslog > system_errors
خطوط حاوی کلمه error را از فایل syslog خوانده و درون یک فایل متنی به نام system_errors ذخیره میکند. از دستور grep به طور گستردهای برای خواندن خروجیهای دستورات دیگر نیز استفاده میشود. برای مثال دستور زیر عملی مشابه با دستور مثال بالا انجام خواهد داد:
# cat /var/log/syslog |grep error > system_errors
دستور find
از این دستور برای جستجوی فایلها میتوانید استفاده نمایید. مثلا هنگامی که به دنبال فایلهایی هستید که در زمان و تاریخ خاصی ساخته شدهاند و یا فایلی مشخص با مکانی نامعلوم. نحوه استفاده از این دستور به شکل زیر است:
# find [path] [expression]
جدول ۲ گزینههای قابل استفاده به همراه این دستور را نمایش میدهد. عملکرد دستور find به قدری جالب است که ممکن است از آن شگفت زده شوید. در زیر چند مثال عملی از کاربرد این دستور نمایش داده شدهاست.
هنگامی که به دنبال فایلهای تغییر کرده برای پشتیبان گیری هستید میتوانید از دستوری مانند زیر استفاده کنید:
$ find Documents/Debian-Book/ -newer /data2/Debian-Book/
Documents/Debian-Book/backup/Chapter-5.sxw
Documents/Debian-Book/backup/Chapter-6.sxw
Documents/Debian-Book/Chapter-5.sxw
Documents/Debian-Book/Chapter-6.sxw
Documents/Debian-Book/Chapter-7.sxw
برای جستجوی فایلی با نامی خاص مانند زیر عمل کنید:
$ find /home/alan -name 'alan*'
/home/alan
/home/alan/My Pictures/alan.png
/home/alan/My Pictures/alan.xcf
/home/alan/My Pictures/alan-avatar.png
برای پیدا کردن فایلهای متعلق به کاربری خاص مانند زیر عمل کنید:
$ find /home/alan/ -user root
/home/alan/error
/home/alan/dcheck
/home/alan/system_errors
جدول۲ گزینههای دستور find
این تنها بخشی از کارهایی است که شما میتوانید با استفاده از دستور find انجام دهید. شما میتوانید خروجی این دستور را به دستورهای دیگر هدایت کنید تا عملیات دیگری را بر روی آنها انجام دهند.
دستور locate
در صورتی که به دنبال یک یا چند فایل هستید، استفاده از ابزار locate بسیار آسان خواهد بود. در صورتی که locate موفق به پیدا کردن فایل مورد نظر شما نشود، به خط فرمان باز میگردد و در غیر این صورت مسیر کامل فایل مورد جستجو برایتان نمایش داده خواهد شد. نحوه استفاده از این دستور به شکل زیر است:
$ locate [-d path] pattern...
اطلاعاتی که برنامه locate از آنها برای جستجو استفاده میکند، در حقیقت در یک بانک اطلاعاتی ذخیره شدهاست. در صورتی که هنگام استفاده از این ابزار با خطایی مانند پیدا نشدن بانک اطلاعاتی locatedb مواجه شدید، میتوانید این بانک را با استفاده از دستور updatedb ایجاد کنید.
گزینه d path- به شما این امکان را میدهد تا برای جستجو از یک بانک اطلاعاتی ثالث استفاده نمایید. البته این ممکن است به ندرت لازم باشد. الگوی مورد جستجو را میتوانید با کارکترهای ویژه نیز بکار ببرید. در زیر مثالی از نحوه استفاده از locate نمایش داده شدهاست:
$ locate *.sxw
/home/alan/PGLFAQ.sxw
/home/alan/WebDir.sxw
/home/alan/answer.sxw
/home/alan/faqlf.sxw
دستور cat
با استفاده از دستور cat میتوانید محتویات یک فایل را بر روی صفحه نمایش چاپ کنید و یا چند فایل را باهم ترکیب نمایید. cat ابزار کوچکی است که موارد استفاده زیادی دارد. نحوه استفاده از آن به شکل زیر میباشد:
$ cat [options] files...
جدول ۳ گزینههای قابل استفاده به همراه اید دستور را نمایش میدهد.
جدول۳ گزینههای دستور cat
استفاده از گزینههای cat به شما امکان نمایش محتویات یک فایل را میدهد. همچنین میتوانید تعدادی فایل کوچک را در هم آمیخته و یک فایل بزرگتر ایجاد نمایید. برای مثال:
$ cat file1 file2 file3 ... > newfile
دستور more
همانطور که مشاهده کردید، با استفاده از cat میتوانید محتویات فایلها را نمایش دهید. در گنو/لینوکس تعدادی ابزار وجود دارند که به شما امکان میدهند تا محتویات فایلها را با روش مناسبتری مشاهده کنید. یکی از این ابزارها برنامه more است. استفاده از more این امکان را فراهم میسازد تا محتویات یک فایل متنی را بصورت صفحه به صفحه مشاهده کنید. جدول ۴ دستورات قابل استفاده با more را تشریح کردهاست. بسیاری از این دستورات مشابه با محیط ویرایشگر vi هستند. در صورتی که vi را بلد باشید، استفاده از آن برایتان بسیار آسان خواهد بود.
جدول ۴ دستورات قابل استفاده در more
شما میتوانید از more برای دیدن یک یا چندین فایل بطور همزمان استفاده کنید. کافی است فایلها را به دنبال یکدیگر در دستور more قرار دهید. برای مثال:
$ more text1 text2 text3...
هنگامی که نمایش text1 به پایان رسید، فایل text2 نمایش داده خواهد شد و به همین ترتیب. خروجی دستوری مانند cat را نیز میتوانید به سمت more هدایت کنید.
دستور less
ابزار دیگر نمایش متن یعنی less به شما قابلیت کنترل بیشتری را هنگام نمایش یک فایل اهدا میکند. در حالی که more تنها به شما امکان اسکرول متن در یک جهت را میدهد، در less میتوانید متن را در هر دو جهت اسکرول نمایید. جدول ۵ تعدادی از گزینههای قابل استفاده در این دستور را نمایش میدهد. برای مشاهده لیست کاملی از دستورات میتوانید از گزینه help-- و یا راهنمای man این دستور استفاده کنید. دستورات شرح داده شده در جدول ۵ برای شروع کافی هستند.
نحوه عمل less بسیار شبیه به more است. کافی است پس از دستور، نام فایل مورد نظرتان را به عنوان آرگومان دستور وارد نمایید:
$ less /usr/share/doc/README
مطمئنا پس از استفاده از less خواهید دید که اسکرول دو جهته چقدر لازم و قابل استفاده است.
جدول ۵ دستورات قابل استفاده در less
همانطور که قبلا نیز اشاره شد، هنگامی که از دستوراتی استفاده میکنید که ممکن است خروجی آنها بیش از یک صفحه باشد، میتوانید با استفاده از کاراکتر لولهبندی یا | خروجی را به سمت دستورات more یا less هدایت کنید. برای مثال:
$ ls -l /home | less
در کنار استفاده از یک ویرایشگر متنی، به عنوان یک مدیر سیستم و یا حتی یک کاربر عادی، برخی ابزارها و برنامههای کاربردی وجود دارند که میتوانید از آنها برای انجام امور روزمره و مدیریتی خود بهره فراوانی ببرید.
دستور alias
یکی از دشواریهای کاربران تازهکار گنو/لینوکس در استفاده از دستورات پیچیدهای است که ممکن است به یاد داشتن آن برای آنها کار چندان آسانی نباشد. دستور alias به شما این امکان را میدهد تا بتوانید این دستورات پیچیده را به دستوراتی مستعار تبدیل نمایید که به یاد آوردن آنها برایتان آسانتر باشد. همچنین میتوانید دستورات طولانی را که به طور روزمره از آنها استفاده میکنید، با استفاده از alias به دستوراتی کوتاه و سهل الاستفاده تبدیل کنید. استفاده از دستور alias به شکل زیر میباشد:
# alias [-p] name='command'
بجای command باید دستور اصلی را وارد نمایید. دستور alias در بسیاری از پوستههای فرمان قابل استفاده میباشد. گزینه p- لیستی از دستورات مستعار تعریف شده بر روی سیستم را برایتان چاپ خواهد کرد. برای مثال میتوانید دستور ls -l را به عنوان دستور longlist تعریف کنید:
# alias longlist='ls -l'
هنگامی که دستور longlist را وارد میکنید، پوسته فرمان در حقیقت دستور ls -l را برای شما اجرا میکند، ولی شما نیاز ندارید تا آنرا به خاطر داشته باشید.
دستور grep
گاهی اوقات لازم است که یک واژه خاص را در میان یک فایل پیدا کنید. grep فایل داده شده را جستجو کرده و خط یا خطوط حاوی این واژه را چاپ خواهد کرد. نحوه استفاده از این دستور به شکل زیر میباشد:
# grep [option] pattern [file] ...
تنها آرگومان لازم برای دستور grep واژهای است که مایل هستید تا به دنبال آن جستجو نمایید. در صورتی که واژه را به دستور grep ندهید، چیزی برای شما پیدا نخواهد کرد! این امکان وجود دارد تا خروجی یک فرمان دیگر را به سمت دستور grep هدایت کنید. مثالی از استفاده از دستور grep میتواند جستجو به دنبال خطاهایی باشد که در فایل syslog ثبت شدهاند.
# grep -i error /var/log/syslog
Oct 22 07:56:35 localhost kernel: hdc: media error (bad sector): error=0x30
Oct 22 07:56:35 localhost kernel: end_request: I/O error, dev hdc, sector 15600
گزینه i- جستجو را بصورت case sensitive انجام خواهد داد. جدول۱ گزینههای قابل استفاده به همراه این دستور را نمایش میدهد.
جدول۱ گزینههای دستور grep
دو دستور دیگر وجود دارند که به grep مربوط میباشند. این دو دستور عبارتند از egrep و fgrep. دستور egrep همانند زمانی عمل میکند که شما grep را به همراه گزینه E- استفاده کنید. همچنین fgrep نیز مانند زمانی عمل میکند که دستور grep را به همراه گزینه F- بکار ببندید.
ابزار grep مخصوصا برای برنامهنویسان و کسانی که با کد نویسی سر و کار دارند، بسیار مفید است. برای مثال برای لیست کردن تمامی خطوطی که در یک فایل حاوی کلمه error هستند، میتوانید از دستور زیر استفاده کنید:
# grep error /var/log/auth.log
Aug 28 22:20:57 localhost sshd[2886]: error: PAM: Authentication failure for linet from localhost
Nov 6 20:20:10 localhost sshd[4133]: error: PAM: Authentication failure for alan from localhost
grep این فایل را جستجو کرده و تمامی خطوطی را که حاوی کلمه error باشند را نمایش میدهد. تمام خطوط دیگر فایل نیز نادیده گرفته خواهند شد. همانطو که گفته شد، شما به راحتی میتوانید خروجی فرمان grep را بجای صفحه نمایش به یک فایل یا دستور ثالث هدایت نمایید. مثلا:
# grep error /var/log/syslog > system_errors
خطوط حاوی کلمه error را از فایل syslog خوانده و درون یک فایل متنی به نام system_errors ذخیره میکند. از دستور grep به طور گستردهای برای خواندن خروجیهای دستورات دیگر نیز استفاده میشود. برای مثال دستور زیر عملی مشابه با دستور مثال بالا انجام خواهد داد:
# cat /var/log/syslog |grep error > system_errors
دستور find
از این دستور برای جستجوی فایلها میتوانید استفاده نمایید. مثلا هنگامی که به دنبال فایلهایی هستید که در زمان و تاریخ خاصی ساخته شدهاند و یا فایلی مشخص با مکانی نامعلوم. نحوه استفاده از این دستور به شکل زیر است:
# find [path] [expression]
جدول ۲ گزینههای قابل استفاده به همراه این دستور را نمایش میدهد. عملکرد دستور find به قدری جالب است که ممکن است از آن شگفت زده شوید. در زیر چند مثال عملی از کاربرد این دستور نمایش داده شدهاست.
هنگامی که به دنبال فایلهای تغییر کرده برای پشتیبان گیری هستید میتوانید از دستوری مانند زیر استفاده کنید:
$ find Documents/Debian-Book/ -newer /data2/Debian-Book/
Documents/Debian-Book/backup/Chapter-5.sxw
Documents/Debian-Book/backup/Chapter-6.sxw
Documents/Debian-Book/Chapter-5.sxw
Documents/Debian-Book/Chapter-6.sxw
Documents/Debian-Book/Chapter-7.sxw
برای جستجوی فایلی با نامی خاص مانند زیر عمل کنید:
$ find /home/alan -name 'alan*'
/home/alan
/home/alan/My Pictures/alan.png
/home/alan/My Pictures/alan.xcf
/home/alan/My Pictures/alan-avatar.png
برای پیدا کردن فایلهای متعلق به کاربری خاص مانند زیر عمل کنید:
$ find /home/alan/ -user root
/home/alan/error
/home/alan/dcheck
/home/alan/system_errors
جدول۲ گزینههای دستور find
این تنها بخشی از کارهایی است که شما میتوانید با استفاده از دستور find انجام دهید. شما میتوانید خروجی این دستور را به دستورهای دیگر هدایت کنید تا عملیات دیگری را بر روی آنها انجام دهند.
دستور locate
در صورتی که به دنبال یک یا چند فایل هستید، استفاده از ابزار locate بسیار آسان خواهد بود. در صورتی که locate موفق به پیدا کردن فایل مورد نظر شما نشود، به خط فرمان باز میگردد و در غیر این صورت مسیر کامل فایل مورد جستجو برایتان نمایش داده خواهد شد. نحوه استفاده از این دستور به شکل زیر است:
$ locate [-d path] pattern...
اطلاعاتی که برنامه locate از آنها برای جستجو استفاده میکند، در حقیقت در یک بانک اطلاعاتی ذخیره شدهاست. در صورتی که هنگام استفاده از این ابزار با خطایی مانند پیدا نشدن بانک اطلاعاتی locatedb مواجه شدید، میتوانید این بانک را با استفاده از دستور updatedb ایجاد کنید.
گزینه d path- به شما این امکان را میدهد تا برای جستجو از یک بانک اطلاعاتی ثالث استفاده نمایید. البته این ممکن است به ندرت لازم باشد. الگوی مورد جستجو را میتوانید با کارکترهای ویژه نیز بکار ببرید. در زیر مثالی از نحوه استفاده از locate نمایش داده شدهاست:
$ locate *.sxw
/home/alan/PGLFAQ.sxw
/home/alan/WebDir.sxw
/home/alan/answer.sxw
/home/alan/faqlf.sxw
دستور cat
با استفاده از دستور cat میتوانید محتویات یک فایل را بر روی صفحه نمایش چاپ کنید و یا چند فایل را باهم ترکیب نمایید. cat ابزار کوچکی است که موارد استفاده زیادی دارد. نحوه استفاده از آن به شکل زیر میباشد:
$ cat [options] files...
جدول ۳ گزینههای قابل استفاده به همراه اید دستور را نمایش میدهد.
جدول۳ گزینههای دستور cat
استفاده از گزینههای cat به شما امکان نمایش محتویات یک فایل را میدهد. همچنین میتوانید تعدادی فایل کوچک را در هم آمیخته و یک فایل بزرگتر ایجاد نمایید. برای مثال:
$ cat file1 file2 file3 ... > newfile
دستور more
همانطور که مشاهده کردید، با استفاده از cat میتوانید محتویات فایلها را نمایش دهید. در گنو/لینوکس تعدادی ابزار وجود دارند که به شما امکان میدهند تا محتویات فایلها را با روش مناسبتری مشاهده کنید. یکی از این ابزارها برنامه more است. استفاده از more این امکان را فراهم میسازد تا محتویات یک فایل متنی را بصورت صفحه به صفحه مشاهده کنید. جدول ۴ دستورات قابل استفاده با more را تشریح کردهاست. بسیاری از این دستورات مشابه با محیط ویرایشگر vi هستند. در صورتی که vi را بلد باشید، استفاده از آن برایتان بسیار آسان خواهد بود.
جدول ۴ دستورات قابل استفاده در more
شما میتوانید از more برای دیدن یک یا چندین فایل بطور همزمان استفاده کنید. کافی است فایلها را به دنبال یکدیگر در دستور more قرار دهید. برای مثال:
$ more text1 text2 text3...
هنگامی که نمایش text1 به پایان رسید، فایل text2 نمایش داده خواهد شد و به همین ترتیب. خروجی دستوری مانند cat را نیز میتوانید به سمت more هدایت کنید.
دستور less
ابزار دیگر نمایش متن یعنی less به شما قابلیت کنترل بیشتری را هنگام نمایش یک فایل اهدا میکند. در حالی که more تنها به شما امکان اسکرول متن در یک جهت را میدهد، در less میتوانید متن را در هر دو جهت اسکرول نمایید. جدول ۵ تعدادی از گزینههای قابل استفاده در این دستور را نمایش میدهد. برای مشاهده لیست کاملی از دستورات میتوانید از گزینه help-- و یا راهنمای man این دستور استفاده کنید. دستورات شرح داده شده در جدول ۵ برای شروع کافی هستند.
نحوه عمل less بسیار شبیه به more است. کافی است پس از دستور، نام فایل مورد نظرتان را به عنوان آرگومان دستور وارد نمایید:
$ less /usr/share/doc/README
مطمئنا پس از استفاده از less خواهید دید که اسکرول دو جهته چقدر لازم و قابل استفاده است.
جدول ۵ دستورات قابل استفاده در less
همانطور که قبلا نیز اشاره شد، هنگامی که از دستوراتی استفاده میکنید که ممکن است خروجی آنها بیش از یک صفحه باشد، میتوانید با استفاده از کاراکتر لولهبندی یا | خروجی را به سمت دستورات more یا less هدایت کنید. برای مثال:
$ ls -l /home | less