ຮຽນຮູ້ພື້ນຖານຂອງການປ່ຽນເສັ້ນທາງ Linux I/O (Input/Output) ເຮັດວຽກແນວໃດ


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

ຄຳ ສັ່ງທັງ ໝົດ ທີ່ພວກເຮົາ ດຳ ເນີນງານໂດຍພື້ນຖານແມ່ນຜະລິດຕະພັນສອງຢ່າງຄື:

<

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

    <

  • stdin ຫຼື 0 - ມັນເຊື່ອມຕໍ່ກັບແປ້ນພິມ, ໂປແກຼມສ່ວນໃຫຍ່ອ່ານການປ້ອນຂໍ້ມູນຈາກເອກະສານນີ້.
  • stdout ຫຼື 1 - ມັນຕິດກັບ ໜ້າ ຈໍ, ແລະທຸກໆໂປແກຼມສົ່ງຜົນໄດ້ຮັບຂອງພວກເຂົາໄປທີ່ເອກະສານນີ້ແລະ
  • stderr ຫຼື 2 - programs ສົ່ງຂໍ້ຄວາມສະຖານະພາບ/ຂໍ້ຜິດພາດໄປຫາເອກະສານນີ້ເຊິ່ງຕິດຢູ່ ໜ້າ ຈໍ.
  • ດັ່ງນັ້ນ, ການປ່ຽນເສັ້ນທາງ I/O ຊ່ວຍໃຫ້ທ່ານສາມາດປ່ຽນແຫຼ່ງທີ່ປ້ອນຂໍ້ມູນຂອງ ຄຳ ສັ່ງພ້ອມທັງບ່ອນທີ່ຂໍ້ມູນຜົນຜະລິດແລະຂໍ້ຜິດພາດຂອງມັນຖືກສົ່ງໄປຫາ. ແລະສິ່ງນີ້ສາມາດເຮັດໄດ້ໂດຍຜູ້ປະຕິບັດການປ່ຽນເສັ້ນທາງ "<" ແລະ ">" .

    ວິທີການສົ່ງທິດທາງຜົນໄດ້ຮັບມາດຕະຖານເຂົ້າໃນເອກະສານ Linux

    ທ່ານສາມາດປ່ຽນເສັ້ນທາງຜົນຜະລິດຕາມມາດຕະຖານເຊັ່ນໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ພວກເຮົາຕ້ອງການເກັບຮັກສາຜົນຜະລິດຂອງ ຄຳ ສັ່ງຊັ້ນສູງ ສຳ ລັບການກວດກາຕໍ່ມາ:

    $ top -bn 5 >top.log
    

    ບ່ອນທີ່ທຸງ:

    <

  • -b - ຊ່ວຍໃຫ້ທາງເທິງສາມາດ ດຳ ເນີນການແບບ ໂໝດ batch, ເພື່ອໃຫ້ທ່ານສາມາດປ່ຽນເສັ້ນທາງອອກໄປຫາເອກະສານຫຼື ຄຳ ສັ່ງອື່ນ.
  • -n - ລະບຸ ຈຳ ນວນຂອງ iterations ກ່ອນທີ່ ຄຳ ສັ່ງຈະສິ້ນສຸດລົງ.
  • ທ່ານສາມາດເບິ່ງເນື້ອໃນຂອງເອກະສານ top.log ໂດຍໃຊ້ ຄຳ ສັ່ງແມວດັ່ງຕໍ່ໄປນີ້:

    $ cat top.log
    

    ເພື່ອເພີ່ມຜົນຜະລິດຂອງ ຄຳ ສັ່ງ, ໃຫ້ໃຊ້ລະບົບປະຕິບັດການ “ >>” .

    ຍົກຕົວຢ່າງການເພີ່ມຂື້ນຂອງ ຄຳ ສັ່ງທີ່ຢູ່ຂ້າງເທິງໃນເອກະສານ top.log ໂດຍສະເພາະພາຍໃນສະຄິບ (ຫລືໃສ່ ຄຳ ສັ່ງ), ໃສ່ທີ່ຢູ່ທາງລຸ່ມ:

    $ top -bn 5 >>top.log
    

    ໝາຍ ເຫດ: ການ ນຳ ໃຊ້ເລກ ລຳ ດັບເອກະສານ, ຄຳ ສັ່ງປ່ຽນເສັ້ນທາງຜົນຜະລິດຂ້າງເທິງແມ່ນຄືກັນກັບ:

    $ top -bn 5 1>top.log
    

    ວິທີການປ່ຽນເສັ້ນທາງມາດຕະຖານຜິດພາດໄປທີ່ File ໃນ Linux

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

    ຕົວຢ່າງ ຄຳ ສັ່ງ ls ຂ້າງລຸ່ມນີ້ຈະສ້າງຂໍ້ຜິດພາດເມື່ອປະຕິບັດໂດຍຜູ້ໃຊ້ລະບົບປົກກະຕິໂດຍບໍ່ມີສິດທິພິເສດ:

    $ ls -l /root/
    

    ທ່ານສາມາດໂອນຜິດພາດມາດຕະຖານໄປຫາເອກະສານດັ່ງລຸ່ມນີ້:

    $ ls -l /root/ 2>ls-error.log
    $ cat ls-error.log 
    

    ເພື່ອເພີ່ມເຕີມຂໍ້ຜິດພາດມາດຕະຖານ, ໃຫ້ໃຊ້ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:

    $ ls -l /root/ 2>>ls-error.log
    

    ວິທີການປ່ຽນເສັ້ນທາງອອກແບບຜິດພາດ/ຂໍ້ຜິດພາດຕໍ່ ໜຶ່ງ ເອກະສານ

    ມັນກໍ່ເປັນໄປໄດ້ທີ່ຈະເກັບເອົາຜົນໄດ້ຮັບທັງ ໝົດ ຂອງ ຄຳ ສັ່ງ (ທັງຜົນຜະລິດແລະຂໍ້ຜິດພາດມາດຕະຖານ) ເຂົ້າໃນເອກະສານດຽວ. ນີ້ສາມາດເຮັດໄດ້ສອງທາງທີ່ເປັນໄປໄດ້ໂດຍການ ກຳ ນົດຕົວເລກຕົວລະບຸເອກະສານ:

    1. ວິທີ ທຳ ອິດແມ່ນວິທີການເກົ່າແກ່ທີ່ເຮັດວຽກດັ່ງຕໍ່ໄປນີ້:

    $ ls -l /root/ >ls-error.log 2>&1
    

    ຄຳ ສັ່ງຂ້າງເທິງ ໝາຍ ຄວາມວ່າຫອຍນາງຈະສົ່ງຜົນຜະລິດຂອງ ຄຳ ສັ່ງ ls ໄປທີ່ file ls-error.log (ໂດຍໃຊ້ > ls-error.log ), ແລະຈາກນັ້ນຂຽນຂໍ້ຄວາມຜິດພາດທັງ ໝົດ ໃສ່ເອກະສານອະທິບາຍເອກະສານ 2 (ຜົນໄດ້ຮັບມາດຕະຖານ) ເຊິ່ງໄດ້ຖືກໂອນໄປຫາແຟ້ມ ls-error.log (ໃຊ້ 2> & 1 ). ສະແດງໃຫ້ເຫັນວ່າຂໍ້ຜິດພາດມາດຕະຖານຍັງຖືກສົ່ງໄປຫາເອກະສານດຽວກັນກັບຜົນຜະລິດມາດຕະຖານ.

    2. ວິທີການທີສອງແລະໂດຍກົງແມ່ນ:

    $ ls -l /root/ &>ls-error.log
    

    ທ່ານສາມາດຕື່ມຂໍ້ມູນຜົນຜະລິດແລະຂໍ້ຜິດພາດມາດຕະຖານເຊັ່ນດຽວກັນກັບເອກະສານດຽວດັ່ງນັ້ນ:

    $ ls -l /root/ &>>ls-error.log
    

    ວິທີການໂອນທິດທາງການປ້ອນຂໍ້ມູນແບບມາດຕະຖານເຂົ້າໃນເອກະສານ

    ຖ້າ ຄຳ ສັ່ງທັງ ໝົດ ບໍ່ໄດ້ຮັບການປ້ອນຂໍ້ມູນຂອງພວກເຂົາຈາກການປ້ອນຂໍ້ມູນແບບມາດຕະຖານ, ແລະໂດຍການປ້ອນຂໍ້ມູນແບບມາດຕະຖານຕາມມາດຕະຖານແມ່ນຕິດກັບແປ້ນພິມ.

    ເພື່ອປ່ຽນເສັ້ນທາງປ້ອນຂໍ້ມູນແບບມາດຕະຖານຈາກເອກະສານອື່ນນອກ ເໜືອ ຈາກແປ້ນພິມ, ໃຫ້ໃຊ້ຕົວປະຕິບັດງານ “ <” ດັ່ງລຸ່ມນີ້:

    $ cat <domains.list 
    

    ວິທີການປ່ຽນເສັ້ນທາງເຂົ້າ - ຂາອອກມາດຕະຖານເຂົ້າໃນເອກະສານ

    ທ່ານສາມາດປະຕິບັດການປ້ອນຂໍ້ມູນແບບມາດຕະຖານແລະການປ່ຽນເສັ້ນທາງແບບມາດຕະຖານໃນເວລາດຽວກັນໂດຍໃຊ້ ຄຳ ສັ່ງຈັດຮຽງຄືດັ່ງລຸ່ມນີ້:

    $ sort <domains.list >sort.output
    

    ວິທີການ ນຳ ໃຊ້ເສັ້ນທາງ I/O ປ່ຽນເສັ້ນທາງໂດຍໃຊ້ທໍ່

    ເພື່ອປ່ຽນເສັ້ນທາງອອກຂອງ ຄຳ ສັ່ງດຽວເປັນການປ້ອນຂໍ້ມູນຂອງ ຄຳ ສັ່ງອື່ນ, ທ່ານສາມາດໃຊ້ທໍ່ນ້ ຳ, ນີ້ແມ່ນວິທີການທີ່ມີປະສິດທິພາບໃນການສ້າງສາຍ ຄຳ ສັ່ງທີ່ມີປະໂຫຍດຕໍ່ການ ດຳ ເນີນງານທີ່ຊັບຊ້ອນ.

    ຕົວຢ່າງ, ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ຈະລົງບັນຊີຫ້າເອກະສານທີ່ຖືກປັບປຸງ ໃໝ່ ຫຼ້າສຸດ.

    $ ls -lt | head -n 5 
    

    ນີ້, ຕົວເລືອກຕ່າງໆ:

    <

  • -l - ສາມາດເປີດຮູບແບບລາຍຊື່ຍາວ
  • -t - ຈັດຮຽງຕາມເວລາດັດແກ້ດ້ວຍເອກະສານລ້າສຸດແມ່ນສະແດງໃຫ້ເຫັນກ່ອນ
  • -n - ລະບຸ ຈຳ ນວນເສັ້ນຂອງຫົວທີ່ຈະສະແດງ
  • ຄຳ ສັ່ງ ສຳ ຄັນ ສຳ ລັບການກໍ່ສ້າງທໍ່

    ນີ້, ພວກເຮົາຈະທົບທວນສັ້ນໆສອງ ຄຳ ສັ່ງ ສຳ ຄັນ ສຳ ລັບການສ້າງທໍ່ສົ່ງ ຄຳ ສັ່ງແລະມັນແມ່ນ:

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

    $ echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh
    

    ແລະຕົວເລືອກຕ່າງໆ:

    <

  • -n 1 - ແນະ ນຳ ໃຫ້ xargs ໃຊ້ການໂຕ້ຖຽງຫຼາຍຕໍ່ ໜຶ່ງ ເສັ້ນຕໍ່ ຄຳ ສັ່ງແລະສົ່ງໄປທີ່ ຄຳ ສັ່ງ cp
  • cp - ສຳ ເນົາເອກະສານ
  • -v - ສະແດງຄວາມຄືບ ໜ້າ ຂອງ ຄຳ ສັ່ງ copy.
  • ສຳ ລັບຕົວເລືອກການ ນຳ ໃຊ້ແລະຂໍ້ມູນເພີ່ມເຕີມ, ອ່ານຜ່ານ ໜ້າ ຜູ້ຊາຍ xargs:

    $ man xargs 
    

    ຄຳ ສັ່ງ tee ອ່ານຈາກວັດສະດຸປ້ອນມາດຕະຖານແລະຂຽນໃສ່ຜົນຜະລິດແລະແຟ້ມມາດຕະຖານ. ພວກເຮົາສາມາດສະແດງວິທີການເຮັດວຽກຂອງອົງປະກອບດັ່ງຕໍ່ໄປນີ້:

    $ echo "Testing how tee command works" | tee file1 
    

    ວຽກງານບໍລິຫານລະບົບ Linux.

    ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບເຄື່ອງກອງແລະທໍ່ Linux, ໃຫ້ອ່ານບົດຄວາມນີ້ຊອກຫາ IP Address 10 ທີ່ດີທີ່ສຸດໃນການເຂົ້າເຖິງ Apache Server, ສະແດງຕົວຢ່າງທີ່ມີປະໂຫຍດໃນການໃຊ້ຕົວກອງແລະທໍ່.

    ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ອະທິບາຍພື້ນຖານຂອງການປ່ຽນເສັ້ນທາງ I/O ໃນ Linux. ຢ່າລືມແບ່ງປັນຄວາມຄິດຂອງທ່ານຜ່ານພາກ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.