چندین برنامه و دستور برای نمایش محتویات فایل در لینوکس موجود است. کار با فایل ها یکی از task های دلهره آور برای اغلب کاربران کامپیوتر چه مبتدی یا کاربر متوسطه، کاربر پیشرفته، برنامه نویس، ادمین و غیره میباشد و در حقیقت کار کردن با فایلها به صورت مفید و موثر یک هنر است. امروز در این مقاله درباره رایج ترین دستورات به نام head , tail و cat که اغلب ما آنها را میشناسیم اما تعداد کمی در صورت نیاز از آنها استفاده میکنیم بحث خواهیم کرد.
1 - دستور head :
دستور head ده (10) خط اول از یک فایل را میخواند. ساختار اصلی دستور head به شرح زیر میباشد :
برای مثال دستور زیر 10 خط اول فایل /etc/passwd/ را نمایش خواهد داد :
در صورتی که بیشتر از یک فایل مشخص کنیم دستور head از هر فایل 10 خط به صورت مجزا نمایش میدهد. برای مثال دستور زیر 10 خط از هر فایل را نمایش میدهد :
اگر بخواهیم که تعداد بیشتری از میزان خطوط پیشفرض این دستور (10 خط) ببینیم باید از گزینه n- که به همراه آن از یک عدد که مشخصه تعداد خطوط هست باید استفاده کنیم. برای مثال دستور زیر 5 خط اول فایل /var/log/yum.log را نمایش خواهد داد :
در حقیقت حتی نیاز نیست که از گزینه n- استفاده کنیم میتوانیم تنها از - (دش) و عدد مورد نظر بلافاصله بعد از دش (بدون اسپیس) استفاده کنیم و نتیجه یکسان با دستور بالا داشته باشیم :
دستور head همچنین میتواند هر تعداد دلخواه byte (کاراکتر) از فایل را با استفاده از گزینه c- نمایش دهد. برای مثال دستور زیر 45 byte از اول فایل داده شده را نمایش میدهد :
2 - دستور tail :
دستور tail ده (10) خط آخر از فایل را نمایش میدهد. مشابه دستور head دستور tail هم گزینه n را ساپورت میکند. ساختار اصلی این دستور به شرح ذیل میباشد :
برای مثال دستور زیر 10 خط آخر فایل access.log را نمایش میدهد :
اگر بیشتر از یک فایل در نظر بگیریم 10 خط آخر هر فایل را به صورت مجزا نمایش میدهد :
همانطور که گفتیم همچنین میتوان با گزینه n- تعداد خطوط کمتری را از آخر فایل مشاهده کرد :
همچنین میتوانید تعداد دلخواه از کاراکترهای یک فایل را با استفاده از گزینه c- مشخص کنیم :
3 - دستور cat :
دستور cat یکی از پر کاربرد ترین دستورها و همچنین ابزار جهانی میباشد. این دستور standard input را در standard output کپی میکند. همچنین اگر فایل متنی طولانی باشد و در یک صفحه جا نشود این دستور scrolling را پشتیبانی میکند یعنی فایل را صفحه، صفحه میکند. ساختار اصلی این دستور به شرح ذیل میباشد :
رایج ترین استفاده از دستور cat خواندن محتوای فایل ها است. تمای چیزی که برای باز کردن یک فایل به منظور خواندن آن نیاز داریم نوشتن دستور cat و سپس یک اسپیس (space) و به دنبال آن نام فایل میباشد :
دستور cat همچنین برای به هم پیوستن تعدادی از فایل ها به همدیگر مورد استفاده قرار میگیرد :
همچنین برای ایجاد یک فایل هم مفید میباشد. برای ساختن فایل دستور cat را به همراه redirect کردن خروجی به یک نام فایل استفاه میکنیم :
همچنین میتوانیم در پایان یک فایل end قرار دهیم. همانطور که میبینید در مثال زیر انجام شده است :
هرگز قدرت بی نظیر دستور cat در کپی کردن فایل ها از خاطر نبرید :
و اکنون متضاد cat چیست؟ بله tac است. tac یک دستور تحت لینوکس است بهتر است به جای اینکه درباره آن چیزی بگوییم یک مثال عملی نشان تان بدهیم.
فایل متنی شامل نام همه ماه های سال که هر ماه به صورت مجزا در یک خط باشد را ایجاد میکنیم :
برای مثال های بیشتری از دستور cat به لینک 13 کاربرد کامند cat مراجعه کنید.
برمیگردم با یه مقاله جالب و با ارزش و خوشحال میشیم نظرات ارزنده شما را بشنویم.
همچنان با ما باشید.
با تشکر
محمد هابیلی
1 - دستور head :
دستور head ده (10) خط اول از یک فایل را میخواند. ساختار اصلی دستور head به شرح زیر میباشد :
کد PHP:
head [options] [file(s)]
کد PHP:
# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
کد PHP:
# head /etc/passwd /etc/shadow
==> /etc/passwd <== root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin ==> /etc/shadow <==
root:$6$85e1:15740:0:99999:7:::
bin:*:15513:0:99999:7:::
daemon:*:15513:0:99999:7:::
adm:*:15513:0:99999:7:::
lp:*:15513:0:99999:7:::
sync:*:15513:0:99999:7:::
shutdown:*:15513:0:99999:7:::
halt:*:15513:0:99999:7:::
mail:*:15513:0:99999:7:::
uucp:*:15513:0:99999:7:::
کد PHP:
# head -n5 /var/log/yum.log
Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el6_5.4.i686
Jan 10 00:06:56 Updated: openssl-devel-1.0.1e-16.el6_5.4.i686
Jan 10 00:11:42 Installed: perl-Net-SSLeay-1.35-9.el6.i686
Jan 13 22:13:31 Installed: python-configobj-4.6.0-3.el6.noarch
Jan 13 22:13:36 Installed: terminator-0.95-3.el6.rf.noarch
کد PHP:
# head -5 /var/log/yum.log
Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el6_5.4.i686
Jan 10 00:06:56 Updated: openssl-devel-1.0.1e-16.el6_5.4.i686
Jan 10 00:11:42 Installed: perl-Net-SSLeay-1.35-9.el6.i686
Jan 13 22:13:31 Installed: python-configobj-4.6.0-3.el6.noarch
Jan 13 22:13:36 Installed: terminator-0.95-3.el6.rf.noarch
کد PHP:
# head -c45 /var/log/yum.log
Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el
2 - دستور tail :
دستور tail ده (10) خط آخر از فایل را نمایش میدهد. مشابه دستور head دستور tail هم گزینه n را ساپورت میکند. ساختار اصلی این دستور به شرح ذیل میباشد :
کد PHP:
# tail [options] [filenames]
کد PHP:
# tail access.log
1390288226.042 0 172.16.18.71 TCP_DENIED/407 1771 GET http://download.newnext.me/spark.bin? - NONE/- text/html
1390288226.198 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.210 1182 172.16.20.44 TCP_MISS/200 70872 GET http://mahavat.gov.in/Mahavat/index.jsp pg DIRECT/61.16.223.197 text/html
1390288226.284 70 172.16.20.44 TCP_MISS/304 269 GET http://mahavat.gov.in/Mahavat/i/i-19.gif pg DIRECT/61.16.223.197 -
1390288226.362 570 172.16.176.139 TCP_MISS/200 694 GET http://p4-gayr4vyqxh7oa-3ekrqzjikvrczq44-if-v6exp3-v4.metric.gstatic.com/v6exp3/redir.html pg
1390288226.402 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.437 145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.445 0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.605 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.808 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
کد PHP:
# tail access.log error.log
==> access.log <== 1390288226.042 0 172.16.18.71 TCP_DENIED/407 1771 GET http://download.newnext.me/spark.bin? - NONE/- text/html 1390288226.198 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.210 1182 172.16.20.44 TCP_MISS/200 70872 GET http://mahavat.gov.in/Mahavat/index.jsp pg DIRECT/61.16.223.197 text/html 1390288226.284 70 172.16.20.44 TCP_MISS/304 269 GET http://mahavat.gov.in/Mahavat/i/i-19.gif pg DIRECT/61.16.223.197 - 1390288226.362 570 172.16.176.139 TCP_MISS/200 694 GET http://p4-gayr4vyqxh7oa-3ekrqzjikvrczq44-if-v6exp3-v4.metric.gstatic.com/v6exp3/redir.html pg 1390288226.402 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.437 145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.445 0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.605 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.808 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html ==> error_log <==
[Sun Mar 30 03:16:03 2014] [notice] Digest: generating secret for digest authentication ...
[Sun Mar 30 03:16:03 2014] [notice] Digest: done
[Sun Mar 30 03:16:03 2014] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations
کد PHP:
# tail -5 access.log
1390288226.402 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.437 145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.445 0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.605 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.808 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
کد PHP:
# tail -c5 access.log
ymantec.com:443 - NONE/- text/html
3 - دستور cat :
دستور cat یکی از پر کاربرد ترین دستورها و همچنین ابزار جهانی میباشد. این دستور standard input را در standard output کپی میکند. همچنین اگر فایل متنی طولانی باشد و در یک صفحه جا نشود این دستور scrolling را پشتیبانی میکند یعنی فایل را صفحه، صفحه میکند. ساختار اصلی این دستور به شرح ذیل میباشد :
کد PHP:
# cat [options] [filenames] [-] [filenames]
کد PHP:
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
…
کد PHP:
# echo 'Hi linux-zone' > 1
# echo 'Keep connected' > 2
# echo 'Share your thought' > 3
# echo 'connect us habili@linux-zone.org' > 4
کد PHP:
# cat 1 2 3 4 > 5
کد PHP:
# cat 5
Hi linux-zone
Keep connected
Share your thought
connect us habili@linux-zone.org
کد PHP:
# cat > tecmint.txt
Tecmint is the only website fully dedicated to Linux.
کد PHP:
# cat > test.txt << end
I am Avishek
Here i am writing this post
Hope your are enjoying
end
کد PHP:
# cat test.txt
I am Avishek
Here i am writing this post
Hope your are enjoying
کد PHP:
# cat avi.txt
I am a Programmer by birth and Admin by profession
کد PHP:
# cat avi.txt > avi1.txt
کد PHP:
# cat avi1.txt
I am a Programmer by birth and Admin by profession
فایل متنی شامل نام همه ماه های سال که هر ماه به صورت مجزا در یک خط باشد را ایجاد میکنیم :
کد PHP:
# cat month
January
February
March
April
May
June
July
August
September
October
November
December
کد PHP:
# tac month
December
November
October
September
August
July
June
May
April
March
February
January
برمیگردم با یه مقاله جالب و با ارزش و خوشحال میشیم نظرات ارزنده شما را بشنویم.
همچنان با ما باشید.
با تشکر
محمد هابیلی