ຈັດການໄຟລ໌ຢ່າງມີປະສິດຕິພາບໂດຍໃຊ້ຫົວ, ຫາງແລະຄໍາສັ່ງແມວໃນ 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. ຢ່າລືມໃຫ້ ຄຳ ຕິຊົມທີ່ມີຄຸນຄ່າຂອງພວກເຮົາໃນພາກ ຄຳ ເຫັນຂອງພວກເຮົາ.