آشنایی با چند ابزار مفید متنی در گنو/لینوکس(2842 مجموع کلمات موجود در متن) (7125 بار مطالعه شده است)
آشنایی با
چند ابزار مفید متنی در گنو/لینوکس
در کنار استفاده
از یک ویرایشگر متنی، به عنوان یک مدیر
سیستم و یا حتی یک کاربر عادی، برخی ابزارها
و برنامههای کاربردی وجود دارند که
میتوانید از آنها برای انجام امور روزمره
و مدیریتی خود بهره فراوانی ببرید.
دستور 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 انجام
خواهد داد.
جدول۱
گزینههای قابل استفاده به همراه این
دستور را نمایش میدهد.
-
گزینه
|
شرح
|
c- یا
count--
|
تعداد
خطوط پیدا شده را بجای خروجی عادی روی
صفحه چاپ میکند
|
E-
یا
extended-regext--
|
کلمه
الگوی تعیین شده را به عنوان یک regular
expression تفسیر
خواهد کرد
|
e
pattern- یا
regexp=pattern--
|
pattern
را
به عنوان الگو در نظر خواهد گرفت.
این
گزینه زمانی مفید است که مایل به بکارگیری
الگوهایی هستید که با – شروع میشوند
|
f
file- یا
file=file--
|
جستجو
را در میان فایل تعیین شده انجام خواهد
داد
|
F-
یا
fixed-strings--
|
الگوی
داده شده را بعنوان لیستی از رشتههای
ثابت در نظر خواهد گرفت.
رشتههایی
که با خطوط جدید از هم جدا شدهاند و
تمامی آنها بطور جداگانه جستجو خواهند
شد
|
help--
|
کمک
برنامه را چاپ خواهد کرد
|
r-
یا
recursive--
|
تمامی
فایلهای داخل یک داریرکتوری را بصورت
بازگشتی جستجو خواهد کرد
|
جدول۱
گزینههای دستور
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
-
گزینه
|
شرح
|
empty-
|
فایل
خالی است و یک فایل یا دایرکتوری معمولی
میباشد
|
help-
یا
help--
|
کمک
دستور را چاپ میکند.
|
user
name-
|
به
دنبال فایلهایی خواهد گشت که مالک
آنها name
است
|
group
groupname-
|
به
دنبال فایلهای متعلق به گروه groupname
خواهد
گشت
|
fstype
type-
|
فایل
بر روی فایل سیستمی از نوع type
قرار
دارد
|
name
pattern-
|
به
دنبال فایلی خواهد گشت که با الگوی
pattern
مطابقت
دارد
|
newer
file-
|
به
دنبال فایلهایی خواهد گشت که جدیدتر
از file
باشند
|
i
name pattern-
|
همانند
name ولی
جستجو بصورت case
sensitive انجام
خواهد شد
|
version-
یا
version--
|
نسخه
برنامه را چاپ کرده و خارج میشود
|
mount-
یا
xdev-
|
جستجو
را بر روی دایرکتوریهای سایر فایل
سیستمهای متصل انجام نخواهد داد
|
جدول۲
گزینههای دستور
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...
جدول ۳ گزینههای
قابل استفاده به همراه اید دستور را نمایش
میدهد.
-
گزینه
|
شرح
|
A- یا
show-all--
|
تمامی
کاراکترها، حتی کاراکترهای غیر
قابل چاپ را در خروجی نمایش خواهد داد
|
b-
یا
number-nonblank--
|
در
جلوی هر خط غیر خالی، یک شماره چاپ خواهد
کرد
|
e-
|
کاراکترهای
غیر قابل چاپ و tabها
را نمایش خواهد داد، ولی کاراکترهای
پایان خطوط را نمایش نخواهد داد
|
E-
یا
show-ends--
|
کاراکترهای
پایان خط را نمایش خواهد داد
|
n-
یا
number--
|
برای
تمامی خطهای خروجی، یک شماره نمایش
خواهد داد
|
s-
یا
squeez-blank--
|
در
صورتی که در فایل چند خط خالی پشت سرهم
وجود داشته باشت، تنها یکی از این خطوط
خالی چاپ خواهد شد
|
t-
|
tabها
و سایر کاراکترهای غیر قابل چاپ را
نمایش خواهد داد.
مشابه
با گزینههای vT-
است
|
T-
یا
show-tabs--
|
کاراکترهای
tab را
بصورت I^
چاپ
خواهد کرد
|
v-
یا
show-nonprinting--
|
از
نشانه گذاری ^
و
-M برای
کاراکترهای غیر قابل چاپ به غیر از
tabها
و کاراکترهای پایان خطوط استفاده
خواهد کرد
|
جدول۳
گزینههای دستور
cat
استفاده از
گزینههای cat
به شما
امکان نمایش محتویات یک فایل را میدهد.
همچنین
میتوانید تعدادی فایل کوچک را در هم
آمیخته و یک فایل بزرگتر ایجاد نمایید.
برای
مثال:
$ cat file1 file2 file3 ... >
newfile
دستور
more
همانطور که
مشاهده کردید، با استفاده از cat
میتوانید
محتویات فایلها را نمایش دهید.
در
گنو/لینوکس
تعدادی ابزار وجود دارند که به شما امکان
میدهند تا محتویات فایلها را با روش
مناسبتری مشاهده کنید.
یکی
از این ابزارها برنامه more
است.
استفاده
از more
این
امکان را فراهم میسازد تا محتویات یک
فایل متنی را بصورت صفحه به صفحه مشاهده
کنید.
جدول
۴ دستورات قابل استفاده با more
را
تشریح کردهاست.
بسیاری
از این دستورات مشابه با محیط ویرایشگر
vi
هستند.
در
صورتی که vi
را
بلد باشید، استفاده از آن برایتان بسیار
آسان خواهد بود.
-
دستور
|
شرح
|
h یا
?
|
خلاصه
دستورات را نمایش خواهد داد
|
SPACE
|
صفحه
بعدی متن را نمایش خواهد داد
|
ENTER
|
خط
بعدی متن را نمایش خواهد داد و این خط
نقطه آغاز صفحه بعدی خواهد بود
|
q
یا
Q
|
خروج
از more
|
pattern
/
|
در
فایل به دنبال pattern
جستجو
خواهد کرد.
|
CTRL+L
|
نمایش
مجدد صفحه جاری
|
.
(نقطه)
|
تکرار
دستور قبلی
|
جدول ۴
دستورات قابل
استفاده در 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
خواهید
دید که اسکرول دو جهته چقدر لازم و قابل
استفاده است.
-
دستور
|
شرح
|
SPACE یا
f
|
اسکرول
یک صفحه به سمت جلو
|
ENTER
یا
e یا
j
|
یک
خط به سمت جلو
|
b
یا
ESC+v
|
اسکرول
یک صفحه به سمت عقب
|
y
یا
k
|
یک
خط به سمت عقب
|
u
یا
CTRL+U
|
اسکرول
نصف صفحه به سمت عقب
|
CTRL+L
|
نمایش
مجدد صفحه جاری
|
.
(نقطه)
|
تکرار
دستور قبلی
|
جدول ۵
دستورات قابل
استفاده در less
همانطور
که قبلا نیز اشاره شد، هنگامی که از
دستوراتی استفاده میکنید که ممکن است
خروجی آنها بیش از یک صفحه باشد، میتوانید
با استفاده از کاراکتر لولهبندی یا |
خروجی
را به سمت دستورات more
یا
less هدایت
کنید.
برای
مثال:
$
ls -l /home | less
آلن
باغومیان alan@technotux.com
|