بازیابی رمز عبور عضویت

پشتیبانی باتجربه و سریع

متخصصین با تجربه سامی هاست با بیش از ۸ سال تجربه در زمینه میزبانی وب و خدمات هاستینگ ، با کمال افتخار شما را یاری می نمایند، تمامی تلاش تیم پشتیبانی سامی هاست ارایه پشتیبانی مطلوب جهت جلب رضایت کاربران گرامی می باشد.

بیشتر
پشتیبانی

امنیت سرور و سایت

از آنجا که امنیت یکی از مهمترین و باالویت ترین مباحث در ارائه سرویس های میزبانی وب دارد ، سامی هاست تمام تلاش خود را در جهت ارائه سرویسی مطمئن و امن می نماید تا با خرید هاست و سرور امن ،پشتوانه فکری راحتی برای امنیت سایت خود داشته باشید.

بیشتر
امنیت

بکاپ گیری منظم

علی رغم اینکه پشتیبانگیری از اطلاعات همواره وظیفه مشتری بوده است ، لیکن جهت حفاظت هرچه بیشتر از اطلاعات کاربران، تمامی سرویس های میزبانی سامی هاست یه صورت خود کار به صورت های هفتگی و ماهانه بکاپ گیری می شوند.

بیشتر
بک آپ گیری

مانیتوریگ ۲۴ ساعته سرورها

کلیه سرور های هاستینگ قدرتمند سامی هاست به صورت مداوم و ۲۴ ساعته از طریق منابع انسانی و نرم افزارهای پیشرفته مانیتورینگ نظیر NaGius تحت نظر می باشند تا در صورت مشاهده هر مشکلی، در اسرع وقت برطرف شود.

بیشتر
مانیتورینگ
تعرفه دامنه
.com
35000
.net
38000
.org
36000
.ir
5000

مدیریت موثر فایل ها در linux با استفاده از دستورات head , tail و cat

مدیریت موثر فایل ها در linux با استفاده از دستورات head , tail و cat

چندین برنامه و دستور برای نمایش محتویات فایل در لینوکس موجود است. کار با فایل ها یکی از task های دلهره آور برای اغلب کاربران کامپیوتر چه مبتدی یا کاربر متوسطه، کاربر پیشرفته، برنامه نویس، ادمین و غیره میباشد و در حقیقت کار کردن با فایلها به صورت مفید و موثر یک هنر است.
امروز در این مقاله درباره رایج ترین دستورات به نام head , tail و cat که اغلب ما آنها را میشناسیم اما تعداد کمی در صورت نیاز از آنها استفاده میکنیم بحث خواهیم کرد.


مدیریت موثر فایل ها در linux با استفاده از دستورات head , tail و cat

مدیریت موثر فایل ها در linux با استفاده از دستورات head , tail و cat



۱ – دستور head :
دستور head ده (۱۰) خط اول از یک فایل را میخواند. ساختار اصلی دستور head به شرح زیر میباشد :

head [options] [file(s)]

برای مثال دستور زیر ۱۰ خط اول فایل /etc/passwd/ را نمایش خواهد داد :

# 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

در صورتی که بیشتر از یک فایل مشخص کنیم دستور head از هر فایل ۱۰ خط به صورت مجزا نمایش میدهد. برای مثال دستور زیر ۱۰ خط از هر فایل را نمایش میدهد :

# 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:::  

اگر بخواهیم که تعداد بیشتری از میزان خطوط پیشفرض این دستور (۱۰ خط) ببینیم باید از گزینه n- که به همراه آن از یک عدد که مشخصه تعداد خطوط هست باید استفاده کنیم. برای مثال دستور زیر ۵ خط اول فایل /var/log/yum.log را نمایش خواهد داد :

# head -n5 /var/log/yum.log

Jan ۱۰ ۰۰:۰۶:۴۹ Updated: openssl-1.0.1e-16.el6_5.4.i686
Jan ۱۰ ۰۰:۰۶:۵۶ Updated: openssl-devel-1.0.1e-16.el6_5.4.i686
Jan ۱۰ ۰۰:۱۱:۴۲ Installed: perl-Net-SSLeay-1.35-9.el6.i686
Jan ۱۳ ۲۲:۱۳:۳۱ Installed: python-configobj-4.6.0-3.el6.noarch
Jan ۱۳ ۲۲:۱۳:۳۶ Installed: terminator-0.95-3.el6.rf.noarch  

در حقیقت حتی نیاز نیست که از گزینه n- استفاده کنیم میتوانیم تنها از – (دش) و عدد مورد نظر بلافاصله بعد از دش (بدون اسپیس) استفاده کنیم و نتیجه یکسان با دستور بالا داشته باشیم :

# head  -۵ /var/log/yum.log

Jan ۱۰ ۰۰:۰۶:۴۹ Updated: openssl-1.0.1e-16.el6_5.4.i686
Jan ۱۰ ۰۰:۰۶:۵۶ Updated: openssl-devel-1.0.1e-16.el6_5.4.i686
Jan ۱۰ ۰۰:۱۱:۴۲ Installed: perl-Net-SSLeay-1.35-9.el6.i686
Jan ۱۳ ۲۲:۱۳:۳۱ Installed: python-configobj-4.6.0-3.el6.noarch
Jan ۱۳ ۲۲:۱۳:۳۶ Installed: terminator-0.95-3.el6.rf.noarch  

دستور head همچنین میتواند هر تعداد دلخواه byte (کاراکتر) از فایل را با استفاده از گزینه c- نمایش دهد. برای مثال دستور زیر ۴۵ byte از اول فایل داده شده را نمایش میدهد :

# head -c45 /var/log/yum.log

Jan ۱۰ ۰۰:۰۶:۴۹ Updated: openssl-1.0.1e-16.el  

۲ – دستور tail :
دستور tail ده (۱۰) خط آخر از فایل را نمایش میدهد. مشابه دستور head دستور tail هم گزینه n را ساپورت میکند. ساختار اصلی این دستور به شرح ذیل میباشد :

# tail [options] [filenames]  

برای مثال دستور زیر ۱۰ خط آخر فایل access.log را نمایش میدهد :

# tail access.log

۱۳۹۰۲۸۸۲۲۶٫۰۴۲      ۰ ۱۷۲٫۱۶٫۱۸٫۷۱ TCP_DENIED/407 ۱۷۷۱ GET http://download.newnext.me/spark.bin? - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۱۹۸      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۲۱۰   ۱۱۸۲ ۱۷۲٫۱۶٫۲۰٫۴۴ TCP_MISS/200 ۷۰۸۷۲ GET http://mahavat.gov.in/Mahavat/index.jsp pg DIRECT/61.16.223.197 text/html
۱۳۹۰۲۸۸۲۲۶٫۲۸۴     ۷۰ ۱۷۲٫۱۶٫۲۰٫۴۴ TCP_MISS/304 ۲۶۹ GET http://mahavat.gov.in/Mahavat/i/i-19.gif pg DIRECT/61.16.223.197 -
۱۳۹۰۲۸۸۲۲۶٫۳۶۲    ۵۷۰ ۱۷۲٫۱۶٫۱۷۶٫۱۳۹ TCP_MISS/200 ۶۹۴ GET http://p4-gayr4vyqxh7oa-3ekrqzjikvrczq44-if-v6exp3-v4.metric.gstatic.com/v6exp3/redir.html pg
۱۳۹۰۲۸۸۲۲۶٫۴۰۲      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۴۳۷    ۱۴۵ ۱۷۲٫۱۶٫۱۸٫۵۳ TCP_DENIED/407 ۱۷۲۳ OPTIONS http://172.16.25.252/ - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۴۴۵      ۰ ۱۷۲٫۱۶٫۱۸٫۵۳ TCP_DENIED/407 ۱۷۲۳ OPTIONS http://172.16.25.252/ - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۶۰۵      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۸۰۸      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html  

اگر بیشتر از یک فایل در نظر بگیریم ۱۰ خط آخر هر فایل را به صورت مجزا نمایش میدهد :

# tail access.log error.log

==> access.log <== ۱۳۹۰۲۸۸۲۲۶٫۰۴۲      ۰ ۱۷۲٫۱۶٫۱۸٫۷۱ TCP_DENIED/407 ۱۷۷۱ GET http://download.newnext.me/spark.bin? - NONE/- text/html ۱۳۹۰۲۸۸۲۲۶٫۱۹۸      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html ۱۳۹۰۲۸۸۲۲۶٫۲۱۰   ۱۱۸۲ ۱۷۲٫۱۶٫۲۰٫۴۴ TCP_MISS/200 ۷۰۸۷۲ GET http://mahavat.gov.in/Mahavat/index.jsp pg DIRECT/61.16.223.197 text/html ۱۳۹۰۲۸۸۲۲۶٫۲۸۴     ۷۰ ۱۷۲٫۱۶٫۲۰٫۴۴ TCP_MISS/304 ۲۶۹ GET http://mahavat.gov.in/Mahavat/i/i-19.gif pg DIRECT/61.16.223.197 - ۱۳۹۰۲۸۸۲۲۶٫۳۶۲    ۵۷۰ ۱۷۲٫۱۶٫۱۷۶٫۱۳۹ TCP_MISS/200 ۶۹۴ GET http://p4-gayr4vyqxh7oa-3ekrqzjikvrczq44-if-v6exp3-v4.metric.gstatic.com/v6exp3/redir.html pg  ۱۳۹۰۲۸۸۲۲۶٫۴۰۲      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html ۱۳۹۰۲۸۸۲۲۶٫۴۳۷    ۱۴۵ ۱۷۲٫۱۶٫۱۸٫۵۳ TCP_DENIED/407 ۱۷۲۳ OPTIONS http://172.16.25.252/ - NONE/- text/html ۱۳۹۰۲۸۸۲۲۶٫۴۴۵      ۰ ۱۷۲٫۱۶٫۱۸٫۵۳ TCP_DENIED/407 ۱۷۲۳ OPTIONS http://172.16.25.252/ - NONE/- text/html ۱۳۹۰۲۸۸۲۲۶٫۶۰۵      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html ۱۳۹۰۲۸۸۲۲۶٫۸۰۸      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html ==> error_log <==
[Sun Mar ۳۰ ۰۳:۱۶:۰۳ ۲۰۱۴] [notice] Digest: generating secret for digest authentication ...
[Sun Mar ۳۰ ۰۳:۱۶:۰۳ ۲۰۱۴] [notice] Digest: done
[Sun Mar ۳۰ ۰۳:۱۶:۰۳ ۲۰۱۴] [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  

همانطور که گفتیم همچنین میتوان با گزینه n- تعداد خطوط کمتری را از آخر فایل مشاهده کرد :

# tail -۵ access.log

۱۳۹۰۲۸۸۲۲۶٫۴۰۲      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۴۳۷    ۱۴۵ ۱۷۲٫۱۶٫۱۸٫۵۳ TCP_DENIED/407 ۱۷۲۳ OPTIONS http://172.16.25.252/ - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۴۴۵      ۰ ۱۷۲٫۱۶٫۱۸٫۵۳ TCP_DENIED/407 ۱۷۲۳ OPTIONS http://172.16.25.252/ - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۶۰۵      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
۱۳۹۰۲۸۸۲۲۶٫۸۰۸      ۰ ۱۷۲٫۱۶٫۱۶٫۵۵ TCP_DENIED/407 ۱۷۵۳ CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html  

همچنین میتوانید تعداد دلخواه از کاراکترهای یک فایل را با استفاده از گزینه c- مشخص کنیم :

# tail -c5 access.log

ymantec.com:443 - NONE/- text/html  

۳ – دستور cat :
دستور cat یکی از پر کاربرد ترین دستورها و همچنین ابزار جهانی میباشد. این دستور standard input را در standard output کپی میکند. همچنین اگر فایل متنی طولانی باشد و در یک صفحه جا نشود این دستور scrolling را پشتیبانی میکند یعنی فایل را صفحه، صفحه میکند. ساختار اصلی این دستور به شرح ذیل میباشد :

# cat [options] [filenames] [-] [filenames]  

رایج ترین استفاده از دستور cat خواندن محتوای فایل ها است. تمای چیزی که برای باز کردن یک فایل به منظور خواندن آن نیاز داریم نوشتن دستور cat و سپس یک اسپیس (space) و به دنبال آن نام فایل میباشد :

# 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
…  

دستور cat همچنین برای به هم پیوستن تعدادی از فایل ها به همدیگر مورد استفاده قرار میگیرد :

# echo 'Hi linux-zone' > ۱
# echo 'Keep connected' > ۲
# echo 'Share your thought' > ۳
# echo 'connect us habili@linux-zone.org' > ۴  
# cat ۱ ۲ ۳ ۴ > ۵  
# cat ۵

Hi linux-zone
Keep connected
Share your thought
connect us habili@linux-zone.org  

همچنین برای ایجاد یک فایل هم مفید میباشد. برای ساختن فایل دستور cat را به همراه redirect کردن خروجی به یک نام فایل استفاه میکنیم :

# cat > tecmint.txt

Tecmint is the only website fully dedicated to Linux.  

همچنین میتوانیم در پایان یک فایل end قرار دهیم. همانطور که میبینید در مثال زیر انجام شده است :

# cat > test.txt << end

I am Avishek
Here i am writing this post
Hope your are enjoying
end  
# cat test.txt

I am Avishek
Here i am writing this post
Hope your are enjoying  

هرگز قدرت بی نظیر دستور cat در کپی کردن فایل ها از خاطر نبرید :

 # cat avi.txt I am a Programmer by birth and Admin by profession
# cat avi.txt > avi1.txt 
# cat avi1.txt I am a Programmer by birth and Admin by profession  
و اکنون متضاد cat چیست؟ بله tac است. tac یک دستور تحت لینوکس است بهتر است به جای اینکه درباره آن چیزی بگوییم یک مثال عملی نشان تان بدهیم.
فایل متنی شامل نام همه ماه های سال که هر ماه به صورت مجزا در یک خط باشد را ایجاد میکنیم :
# cat month January February March April May June July August September October November December  
# tac month December November October September August July June May April March February January  
 

برچسب ها : , , , , , , , , , , , ,


طراحی و برنامه نویسی : پنگاش