دستور cat در لینوکس (برگرفته از کلمه concatenate و به معنی به هم پیوستن) یکی از پر استفاده ترین دستورات در سیستم عامل های Linux/UNIX میباشد. این دستور فایل های مجزا یا چندگانه را ایجاد میکند همچنین محتویات فایل را نمایش داده و فایل ها را به هم الحاق و خروجی آن را در ترمینال یا فایل ریدایرکت (redirect) میکند. در این مقاله ما قصد داریم تا مثال هایی از دستور cat را برای شما نمایش دهیم.
ساختار کلی دستور cat :
1 - نمایش محتوای فایل
در مثال زیر محتوای فایل /etc/passwd/ نمایش داده میشود :
2 - نمایش محتوای چندین فایل در ترمینال
در مثال زیر محتوای 2 فایل test و test1 در ترمینال نمایش داده میشود :
3 - ایجاد یک فایل با دستور cat
با دستور زیر فایل test2 را میسازیم :
سپس منتظر تایپ کردن متن دلخواه میشود و سپس بعد از اتمام کلید های cntrl+d را فشار میدهیم (کلید Ctrl را نگه میداریم و کلید d را فشار میدهیم) تا خارج شود.
متن در فایل test2 نوشته خواهد شد سپس میتوانید با استفاده از دستور زیر محتوای فایل را ببینید :
4 - استفاده از دستور cat با گزینه های more و less
اگر فایل بسیار طولانی باشد و در یک صفحه ترمینال جا نشود و صفحه به سرعت اسکورول (scrolls) بخورد ما میتوانیم از پارامترهای more و less به همراه دستور cat استفاده کنیم :
5 - نمایش Line Number در یک فایل
با استفاده از گزینه n- میتوانیم شماره خط های فایل song.txt را مشاهده کنیم :
6 - نمایش $ در انتهای فایل
همانطور که در زیر مشاهده میکنید با استفاده از گزینه e- به پایان تمامی خطوط فایل علامت $ اضافه کرده همچنین این علامت را در خطوطی که به عنوان فاصله استفاده شدند هم قرار داده. این آپشن برای تبدیل چندین خط به یک خط بسیار مفید است :
7 - نمایش خطوط جدا شده با tab در فایل
در مثال زیر میبینیم که تمامی فضاهای tab در فایل با کاراکتر 'I^' پر شده است :
8 - نمایش سریع چندین فایل
در مثال زیر محتویات 3 فایل test ,test1 ,test2 با استفاده از دستور cat نمایش داده میشود. فقط بین هر فایل باید از سیمیکالون ';' استفاده شود :
9 - استفاده از Standard Output به همراه Redirection Operator
ما میتوانیم خروجی استاندار (Standard Output) از یک فایل را به فایلی دیگر با استفاده از علامت '<' (بزرگتر از) redirect کنیم.
دقت کنید مثلا در مثال زیر محتویات test1 توسط محتویات فایل test کاملا overwitten میشود. یعنی محتویات فایل test1 پاک شده و محتویات test در آن جایگزین میشود :
10 - افزودن (Append) خروجی standard با استفاده از Redirection Operator
افزودن محتویات فایل جدید به فایل قبلی بدون اینکه محتویات فایل پاک شود با استفاده از علامت '<<' (2 عدد علامت بزرگتر از) صورت میگیرد. در مثال زیر محتویات فایل test به انتهای محتویات فایل test1 اصطلاحا append (افزوده) میشود :
11 - Redirect کردن ورودی Standart با استفاده از Redirection Operator
زمانی که شما با استفاده از علامت '>>' (کوچکتر از) ورودی استاندارد (Standard Input) ریدایرکت (Redirect) میکنیم در حقیقت محتویات فایل test2 را به عنوان یک ورودی برای یک کامند و خروجی به منظور نمایش در ترمینال استفاده میکند :
12 - Redirect کردن چندین فایل به یک فایل
دستور زیر فایلی با نام test3 ایجاد میکند که شامل محتویات هر 3 فایل (test,test1,test2) میباشد :
13 - چیدن (Sort) محتویات چندین فایل در یک فایل
دستور زیر فایل test4 را ایجاد میکند که خروجی دستور cat که به دستور sort پایپ '|' شده است را به فایل جدید redirect میکند :
همچنین توصیه میشود مطالعه کنید :
دستور ccat برای نمایش خروجی دستور cat به صورت رنگی و برجسته
دستور lolcat برای رنگین کمانی کردن خروجی ترمینال لینوکس
این مقاله کامند های اصلی که ممکن است شما را در استفاده مفید از دستور cat کمک کند به شما نمایش میدهد. البته برای کسب اطلاعات کامل تر و بهتر و همچنین اپشن های بیشتر توصیه میکنیم که صفحه man این دستور را بررسی کنید.
موفق باشید
محمد هابیلی
ساختار کلی دستور cat :
کد PHP:
cat [OPTION] [FILE]...
1 - نمایش محتوای فایل
در مثال زیر محتوای فایل /etc/passwd/ نمایش داده میشود :
کد PHP:
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
narad:x:500:500::/home/narad:/bin/bash
2 - نمایش محتوای چندین فایل در ترمینال
در مثال زیر محتوای 2 فایل test و test1 در ترمینال نمایش داده میشود :
کد PHP:
# cat test test1
Hello everybody
Hi world,
3 - ایجاد یک فایل با دستور cat
با دستور زیر فایل test2 را میسازیم :
کد PHP:
# cat >test2
متن در فایل test2 نوشته خواهد شد سپس میتوانید با استفاده از دستور زیر محتوای فایل را ببینید :
کد PHP:
# cat test2
hello everyone, how do you do?
4 - استفاده از دستور cat با گزینه های more و less
اگر فایل بسیار طولانی باشد و در یک صفحه ترمینال جا نشود و صفحه به سرعت اسکورول (scrolls) بخورد ما میتوانیم از پارامترهای more و less به همراه دستور cat استفاده کنیم :
کد PHP:
# cat song.txt | more
# cat song.txt | less
5 - نمایش Line Number در یک فایل
با استفاده از گزینه n- میتوانیم شماره خط های فایل song.txt را مشاهده کنیم :
کد PHP:
# cat -n song.txt
1 "Heal The World"
2 There's A Place In
3 Your Heart
4 And I Know That It Is Love
5 And This Place Could
6 Be Much
7 Brighter Than Tomorrow
8 And If You Really Try
9 You'll Find There's No Need
10 To Cry
11 In This Place You'll Feel
12 There's No Hurt Or Sorrow
6 - نمایش $ در انتهای فایل
همانطور که در زیر مشاهده میکنید با استفاده از گزینه e- به پایان تمامی خطوط فایل علامت $ اضافه کرده همچنین این علامت را در خطوطی که به عنوان فاصله استفاده شدند هم قرار داده. این آپشن برای تبدیل چندین خط به یک خط بسیار مفید است :
کد PHP:
# cat -e test
hello everyone, how do you do?$
$
Hey, am fine.$
How's your training going on?$
$
7 - نمایش خطوط جدا شده با tab در فایل
در مثال زیر میبینیم که تمامی فضاهای tab در فایل با کاراکتر 'I^' پر شده است :
کد PHP:
# cat -T test
hello ^Ieveryone, how do you do?
Hey, ^Iam fine.
^I^IHow's your training ^Igoing on?
Let's do ^Isome practice in Linux.
8 - نمایش سریع چندین فایل
در مثال زیر محتویات 3 فایل test ,test1 ,test2 با استفاده از دستور cat نمایش داده میشود. فقط بین هر فایل باید از سیمیکالون ';' استفاده شود :
کد PHP:
# cat test; cat test1; cat test2
This is test file
This is test1 file.
This is test2 file.
9 - استفاده از Standard Output به همراه Redirection Operator
ما میتوانیم خروجی استاندار (Standard Output) از یک فایل را به فایلی دیگر با استفاده از علامت '<' (بزرگتر از) redirect کنیم.
دقت کنید مثلا در مثال زیر محتویات test1 توسط محتویات فایل test کاملا overwitten میشود. یعنی محتویات فایل test1 پاک شده و محتویات test در آن جایگزین میشود :
کد PHP:
# cat test > test1
10 - افزودن (Append) خروجی standard با استفاده از Redirection Operator
افزودن محتویات فایل جدید به فایل قبلی بدون اینکه محتویات فایل پاک شود با استفاده از علامت '<<' (2 عدد علامت بزرگتر از) صورت میگیرد. در مثال زیر محتویات فایل test به انتهای محتویات فایل test1 اصطلاحا append (افزوده) میشود :
کد PHP:
# cat test >> test1
11 - Redirect کردن ورودی Standart با استفاده از Redirection Operator
زمانی که شما با استفاده از علامت '>>' (کوچکتر از) ورودی استاندارد (Standard Input) ریدایرکت (Redirect) میکنیم در حقیقت محتویات فایل test2 را به عنوان یک ورودی برای یک کامند و خروجی به منظور نمایش در ترمینال استفاده میکند :
کد PHP:
# cat < test2
This is test2 file.
12 - Redirect کردن چندین فایل به یک فایل
دستور زیر فایلی با نام test3 ایجاد میکند که شامل محتویات هر 3 فایل (test,test1,test2) میباشد :
کد PHP:
# cat test test1 test2 > test3
13 - چیدن (Sort) محتویات چندین فایل در یک فایل
دستور زیر فایل test4 را ایجاد میکند که خروجی دستور cat که به دستور sort پایپ '|' شده است را به فایل جدید redirect میکند :
کد PHP:
# cat test test1 test2 test3 | sort > test4
همچنین توصیه میشود مطالعه کنید :
دستور ccat برای نمایش خروجی دستور cat به صورت رنگی و برجسته
دستور lolcat برای رنگین کمانی کردن خروجی ترمینال لینوکس
این مقاله کامند های اصلی که ممکن است شما را در استفاده مفید از دستور cat کمک کند به شما نمایش میدهد. البته برای کسب اطلاعات کامل تر و بهتر و همچنین اپشن های بیشتر توصیه میکنیم که صفحه man این دستور را بررسی کنید.
موفق باشید
محمد هابیلی