ຈັດການໄຟລ໌ຢ່າງມີປະສິດຕິພາບໂດຍໃຊ້ຫົວ, ຫາງແລະຄໍາສັ່ງແມວໃນ Linux


ມີຫລາຍ ຄຳ ສັ່ງແລະໂປແກຼມທີ່ສະ ໜອງ ໂດຍ Linux ສຳ ລັບເບິ່ງເນື້ອໃນຂອງເອກະສານ. ການເຮັດວຽກກັບແຟ້ມເອກະສານແມ່ນ ໜຶ່ງ ໃນ ໜ້າ ວຽກທີ່ ໜ້າ ເກງຂາມ, ຜູ້ໃຊ້ຄອມພິວເຕີສ່ວນຫຼາຍແມ່ນມັນເປັນຄົນ ໃໝ່, ຜູ້ໃຊ້ປົກກະຕິ, ຜູ້ໃຊ້ຂັ້ນສູງ, ຜູ້ພັດທະນາ, ຜູ້ບໍລິຫານແລະອື່ນໆ. ການເຮັດວຽກກັບແຟ້ມເອກະສານຢ່າງມີປະສິດທິພາບແມ່ນສິນລະປະ.

ມື້ນີ້, ໃນບົດຂຽນນີ້ພວກເຮົາຈະມາລົມກັນກ່ຽວກັບ ຄຳ ສັ່ງທີ່ໄດ້ຮັບຄວາມນິຍົມທີ່ສຸດທີ່ເອີ້ນວ່າຫົວ, ຫາງແລະແມວ, ພວກເຮົາສ່ວນຫຼາຍຮູ້ ຄຳ ສັ່ງດັ່ງກ່າວແລ້ວ, ແຕ່ມີ ໜ້ອຍ ທີ່ສຸດໃນພວກເຮົາປະຕິບັດມັນເມື່ອ ຈຳ ເປັນ.

1. ຫົວ ໜ້າ Command

ຄໍາສັ່ງຫົວອ່ານອ່ານສິບເສັ້ນທໍາອິດຂອງຊື່ໄຟລ໌ໃດກໍ່ຕາມ. syntax ພື້ນຖານຂອງ ຄຳ ສັ່ງຫົວແມ່ນ:

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

ຖ້າໃຫ້ຫຼາຍກ່ວາ ໜຶ່ງ ເອກະສານ, ຫົວ ໜ້າ ຈະສະແດງ 10 ເສັ້ນ ທຳ ອິດຂອງແຕ່ລະເອກະສານແຍກຕ່າງຫາກ. ຕົວຢ່າງ, ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະສະແດງສິບແຖວຂອງແຕ່ລະເອກະສານ.

# 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' ກໍ່ຖືກ ນຳ ໃຊ້ພ້ອມກັບເລກເຕັມບອກ ຈຳ ນວນສາຍທີ່ຈະຖືກດຶງ. ຕົວຢ່າງ, ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະສະແດງ 5 ສາຍ ທຳ ອິດຈາກແຟ້ມ ‘/var/log/yum.log‘ ແຟ້ມ.

# 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

ໃນຄວາມເປັນຈິງ, ມັນບໍ່ ຈຳ ເປັນຕ້ອງໃຊ້ຕົວເລືອກ ‘-n’. ພຽງແຕ່ວາງສະແດງແລະລະບຸເລກເຕັມໂດຍບໍ່ມີພື້ນທີ່ເພື່ອໃຫ້ໄດ້ຜົນດຽວກັນກັບ ຄຳ ສັ່ງຂ້າງເທິງ.

# 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

ຄຳ ສັ່ງຫົວ ໜ້າ ຍັງສາມາດສະແດງ ຈຳ ນວນໄບຕ໌ທີ່ຕ້ອງການໂດຍໃຊ້ຕົວເລືອກ '-c' ຕາມດ້ວຍ ຈຳ ນວນໄບຕ໌ທີ່ຕ້ອງສະແດງ. ຕົວຢ່າງ, ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະສະແດງເອກະສານ 45 ບາດ ທຳ ອິດຂອງໄຟລ໌ທີ່ໃຫ້.

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

Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el

2. ຫາງ Command

ຄໍາສັ່ງຫາງຊ່ວຍໃຫ້ທ່ານສະແດງສິບເສັ້ນສຸດທ້າຍຂອງເອກະສານຂໍ້ຄວາມໃດໆ. ຄ້າຍຄືກັບ ຄຳ ສັ່ງຫົວເທິງ, ຄຳ ສັ່ງຫາງຍັງສະ ໜັບ ສະ ໜູນ ຕົວເລືອກ 'ຈຳ ນວນສາຍແລະ' ບໍ່ມີຕົວເລກ.

syntax ພື້ນຖານຂອງ ຄຳ ສັ່ງຫາງແມ່ນ:

# tail [options] [filenames]

ຕົວຢ່າງ, ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະພິມສິບເອກະສານສຸດທ້າຍຂອງເອກະສານທີ່ມີຊື່ວ່າ 'access.log'.

# 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

ຖ້າມີຫຼາຍກ່ວາ ໜຶ່ງ ເອກະສານໃຫ້, ຫາງຈະພິມສິບສາຍສຸດທ້າຍຂອງແຕ່ລະເອກະສານດັ່ງທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ.

# 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

ເຊັ່ນດຽວກັນ, ທ່ານຍັງສາມາດພິມສອງສາມເສັ້ນສຸດທ້າຍໂດຍໃຊ້ຕົວເລືອກ '-n' ດັ່ງທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ.

# 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

ທ່ານຍັງສາມາດພິມ ຈຳ ນວນຕົວອັກສອນໂດຍໃຊ້ຕົວໂຕ້ຖຽງ '-c' ດັ່ງທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ.

# tail -c5 access.log

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

3. cat ຄຳ ສັ່ງ

ຄຳ ສັ່ງ ‘ແມວ’ ແມ່ນຖືກ ນຳ ໃຊ້ຫຼາຍທີ່ສຸດ, ເຄື່ອງມືທົ່ວໄປ. ມັນຄັດລອກຂໍ້ມູນການປ້ອນຂໍ້ມູນເຂົ້າສູ່ຜົນຜະລິດມາດຕະຖານ. ຄຳ ສັ່ງສະ ໜັບ ສະ ໜູນ ການເລື່ອນ, ຖ້າເອກະສານຂໍ້ຄວາມບໍ່ ເໝາະ ສົມກັບ ໜ້າ ຈໍປັດຈຸບັນ.

syntax ພື້ນຖານຂອງ ຄຳ ສັ່ງແມວແມ່ນ:

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

ການໃຊ້ແມວເລື້ອຍໆທີ່ສຸດແມ່ນການອ່ານເນື້ອໃນຂອງເອກະສານ. ສິ່ງທີ່ຕ້ອງການເປີດເອກະສານ ສຳ ລັບການອ່ານແມ່ນການພິມແມວຕິດຕາມດ້ວຍຊ່ອງແລະຊື່ແຟ້ມ

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

ຄຳ ສັ່ງແມວຍັງໃຊ້ໃນການເຮັດເອກະສານ ຈຳ ນວນ ໜຶ່ງ ພ້ອມກັນ.

# echo 'Hi Tecmint-Team' > 1 
# echo 'Keep connected' > 2 
# echo 'Share your thought' > 3 
# echo 'connect us [email ' > 4
# cat 1 2 3 4 > 5
# cat 5 

Hi Tecmint-Team 
Keep connected 
Share your thought 
connect us [email 

ມັນສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງເອກະສານເຊັ່ນກັນ. ມັນບັນລຸໄດ້ໂດຍການປະຕິບັດແມວຕິດຕາມໂດຍຜູ້ປະຕິບັດການປ່ຽນເສັ້ນທາງຜົນຜະລິດແລະຊື່ໄຟລ໌ທີ່ຈະຖືກສ້າງຂື້ນ.

# cat > tecmint.txt

Tecmint is the only website fully dedicated to Linux.

ພວກເຮົາສາມາດມີຜູ້ຜະລິດແບບນິຍົມ ສຳ ລັບ ຄຳ ສັ່ງ 'ແມວ'. ໃນທີ່ນີ້ມັນຖືກຈັດຕັ້ງປະຕິບັດ.

# 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

ດຽວນີ້ແມວກົງກັນຂ້າມກັບຫຍັງ? ແລ້ວມັນແມ່ນ 'tac'. 'tac' ແມ່ນ ຄຳ ສັ່ງທີ່ຢູ່ພາຍໃຕ້ Linux. ມັນເປັນການດີກວ່າທີ່ຈະສະແດງຕົວຢ່າງຂອງ '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

ສຳ ລັບຕົວຢ່າງເພີ່ມເຕີມກ່ຽວກັບການ ນຳ ໃຊ້ ຄຳ ສັ່ງແມວ, ອ້າງເຖິງ 13 ການ ນຳ ໃຊ້ Command Command

ດຽວນີ້ ໝົດ ແລ້ວ. ຂ້າພະເຈົ້າຈະຢູ່ທີ່ນີ້ອີກເທື່ອ ໜຶ່ງ ດ້ວຍບົດຂຽນທີ່ ໜ້າ ສົນໃຈອີກ, ເປັນມູນຄ່າທີ່ຈະຮູ້. ຈົນກ່ວາຫຼັງຈາກນັ້ນຕິດຕາມແລະເຊື່ອມຕໍ່ກັບ Tecmint. ຢ່າລືມໃຫ້ ຄຳ ຕິຊົມທີ່ມີຄຸນຄ່າຂອງພວກເຮົາໃນພາກ ຄຳ ເຫັນຂອງພວກເຮົາ.