குழாய்கள்: குனு / லினக்ஸில் அவற்றைப் பயன்படுத்தத் தொடங்க நீங்கள் தெரிந்து கொள்ள வேண்டியது

குழாய்வழிகள்

ஒரு குழாய் அல்லது குழாய்e உண்மையில் யுனிக்ஸ் / லினக்ஸுக்கு கிடைக்கக்கூடிய குழாய் மற்றும் மிகவும் நடைமுறைக்குரியது. ஆனால் ஒரு குழாய் என்றால் என்ன என்பதை முழுமையாக புரிந்து கொள்ள, * நிக்ஸ் சூழலில் 3 உள்ளமைக்கப்பட்ட தரவு நீரோடைகள் இருப்பதை நீங்கள் அறிந்து கொள்ள வேண்டும். அதாவது, தெரியாதவர்களுக்கு, தரவு மூன்று புள்ளிகளுக்கு அல்லது செல்ல முடியும் என்பதாகும்.

இதை நீங்கள் ஒரு சிறந்த வழியில் புரிந்துகொள்வீர்கள், ஆனால் இப்போது நான் உங்களுக்கு தெளிவாக இருக்க விரும்புவது என்னவென்றால், ஒரு குழாய் மூலம் நீங்கள் என்ன செய்ய முடியும் என்பது அந்த புள்ளிகளில் ஒன்றிலிருந்து மற்றவர்களுக்கு சேனல். இது ஒரு நிரல் இன்னொருவரின் உள்ளீட்டை நோக்கி வீசும் வெளியீட்டை அல்லது முடிவை எடுத்துச் செல்ல அனுமதிக்கிறது, இதனால் அது பயன்படுத்துகிறது. அதை நன்றாக புரிந்து கொள்ள உதவும் சில நடைமுறை எடுத்துக்காட்டுகளுடன் அதை விளக்க முயற்சிப்பேன்.

நான் பேசிக் கொண்டிருந்த அந்த புள்ளிகள் அல்லது தரவு நீரோடைகள், உள்ளன:

  • ஸ்ட்டின்: 0 உடன் ஒத்துள்ளது மற்றும் நிலையான உள்ளீடு ஆகும். பொதுவாக, * நிக்ஸ் கணினியில் நிலையான தரவு உள்ளீடு விசைப்பலகை ஆகும். அதாவது, நீங்கள் தட்டச்சு செய்வது பயன்படுத்தப்படும் தகவலாக இருக்கும். அவளுடன் தொடர்புடைய ஒரு சிறப்பு சாதனம் உள்ளது / dev / stdin.
  • stdout: 1 உடன் அடையாளம் காணப்பட்டது, இது நிலையான வெளியீடு. வழக்கமாக இது உங்கள் கணினியின் மானிட்டர் அல்லது திரைக்கு ஒத்திருக்கிறது, அங்குதான் நீங்கள் தகவலைக் காணலாம். எடுத்துக்காட்டாக, நீங்கள் ஒரு ls கட்டளையை இயக்கும்போது உள்ளடக்கங்களின் பட்டியல் திரையில் காண்பிக்கப்படும், இல்லையா? தொடர்புடைய சாதனம் / dev / stdout.
  • stderr: 2 உடன் அடையாளம் காணப்பட்டது, இது நிலையான பிழை வெளியீடு, ஏனெனில் ஒரு நிரலில் பிழை ஏற்படும் போது. தொடர்புடைய சாதனம் / dev / stderr.

ஒரு குழாய் மூலம் நீங்கள் ஒரு கட்டளையின் நிலையான வெளியீடு அல்லது stdout ஐ நேரடியாக மற்றொரு நிலையான உள்ளீட்டிற்கு அனுப்பலாம். அதாவது, நீங்கள் ஒரு நிரலை இன்னொருவருக்கு உணவளிக்கலாம். விசைப்பலகை உள்ளிட்ட அளவுருக்களைப் பயன்படுத்துவதற்குப் பதிலாக, ஒரு குழாய் முந்தைய கட்டளையால் உருவாக்கப்பட்ட தகவல்களை இந்த பைப்லைன் மூலம் |

உடன் எடுத்துக்காட்டுகள் நீங்கள் அதை நன்றாக புரிந்துகொள்வீர்கள். நீங்கள் ஒரு கோப்பகத்தின் உள்ளடக்கங்களை பட்டியலிட விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம், ஆனால் டாக் என்ற வார்த்தையுடன் பொருந்தக்கூடிய பெயர்களைப் பார்க்க மட்டுமே நீங்கள் ஆர்வமாக உள்ளீர்கள். எனவே, ls இன் வெளியீட்டை grep வடிகட்டியின் உள்ளீட்டில் குழாய் பதிக்க ஒரு பைப்லைனைப் பயன்படுத்தலாம், அந்த வடிவத்துடன் பொருந்தக்கூடியவற்றை மட்டுமே காண்பிக்கச் சொல்லுங்கள்:

ls -l | grep doc

எனவே எல்லா பெயர்களையும் உங்களுக்குக் காண்பிப்பதற்கு பதிலாக, அது உங்களுக்குக் காட்டுகிறது உங்களுக்கு மிகவும் ஆர்வமாக இருக்கும். ஒரு கோப்பின் உள்ளடக்கத்துடன் நீங்கள் இதைச் செய்யலாம். ஃபயர்பாக்ஸ் எனப்படும் செயல்முறைகளின் தகவல்களை மட்டுமே நீங்கள் பார்க்க விரும்புகிறீர்கள் என்று கற்பனை செய்து பாருங்கள்:

ps aux | grep firefox

PS நிரலின் அனைத்து வெளியீட்டையும் திரையில் காண்பிப்பதற்கு பதிலாக (stdout), அது என்ன செய்வது grep வடிகட்டியின் உள்ளீட்டை நோக்கி அதை சேனல் செய்கிறது மற்றும் இந்த விஷயத்தில் பயர்பாக்ஸ் முறைக்கு ஒத்ததை வெளியீட்டில் மட்டுமே காட்டுகிறது ...

நீங்கள் விரும்பினால், நீங்கள் பயன்படுத்தலாம் பல்வேறு குழாய்கள் ஒரு கட்டளையின் வெளியீட்டை மற்றொரு இரண்டாவது கட்டளையின் உள்ளீட்டிற்கு கொண்டு வரவும், அந்த விநாடியின் வெளியீடு மூன்றில் ஒரு பங்கு உள்ளீட்டிற்கு கொண்டு வரவும். உதாரணத்திற்கு:

cat libro | grep love | more

நீங்கள் பார்க்கிறபடி, சாத்தியங்கள் பல, நீங்கள் கற்பனை செய்யக்கூடிய மற்றும் அனுமதிக்கப்பட்ட அனைத்தும். ஒரு கோப்பின் முதல் மற்றும் கடைசி வரிகளை மட்டுமே காண்பி, பட்டியலிலிருந்து வரும் wc ஐ உள்ளிடும் வரிகளை எண்ணி, அவற்றை வரிசைப்படுத்தவும்:

cat listado | head
cat listado | tail
cat listado | wc -l
cat listado | sort

நீங்கள் வேலை செய்யலாம் | உடன் பிழைகள் எடுத்துக்காட்டாக, ஸ்கிரிப்ட் தோல்வியுற்றால் எச்சரிக்கை என்ற வார்த்தையைத் தேடுங்கள்:

./miscript |& grep alerta 

இறுதியாக, இரண்டு கட்டளைகள் குழாய்களுடன் நெருக்கமாக இணைக்கப்பட்டுள்ளன tee மற்றும் xargs மேலும் அவை இவற்றின் சாத்தியங்களை மேலும் விரிவாக்க முடியும். டீ விஷயத்தில், முந்தைய நிரலின் முடிவை நிலையான வெளியீட்டில் காண்பிப்பதன் மூலம் அதை நீங்கள் காண்பீர்கள், அதோடு கூடுதலாக, அதை மற்றொரு கோப்பில் குழாய் பதிக்க முடியும். ஒரு கோப்பகத்தின் உள்ளடக்கங்களை நீங்கள் பட்டியலிட்டு, இந்த நேரத்தில் ls -l இன் வெளியீட்டைக் காண விரும்பினால், அது ஒரு கோப்பு பட்டியலில் சேமிக்கப்பட்டிருந்தால் ஒரு எடுத்துக்காட்டு. Txt:

ls -l | tee listado.txt

நீங்கள் டீயைப் பயன்படுத்தாவிட்டால், உங்கள் கன்சோலில் வெளியீட்டைக் காண முடியாது ...

Y xargs இது சில சந்தர்ப்பங்களில் இன்னும் சுவாரஸ்யமானது. இந்த வழக்கில் அது குழாய் வழியாக பெறும் நிலையான உள்ளீட்டிலிருந்து ஒரு கட்டளையை உருவாக்க முடியும். வேறு வார்த்தைகளில் கூறுவதானால், முந்தைய நிரல் அதன் வெளியீட்டின் மூலம் தொடங்கப்பட்ட அனைத்தையும் கைப்பற்றும் திறன் கொண்டது, மேலும் அது மற்றொரு கட்டளைக்கு வாதங்களாக அனுப்ப பைப்லைன் வழியாக xargs ஐ அடைகிறது.

இன்னும் கிடைக்கவில்லையா? ஒரு எடுத்துக்காட்டுடன் இதை நீங்கள் சிறப்பாகக் காண்பீர்கள். ஒரு அடைவு, வட்டு அல்லது பகிர்விலிருந்து எல்லா மட்டமான thumbs.db கோப்புகளையும் நீக்க விரும்புகிறீர்கள் என்று கற்பனை செய்து பாருங்கள். பல இருந்தால், அவற்றை கைமுறையாக நீக்க rm கட்டளையுடன் ஒவ்வொன்றாக செல்ல இயலாது. ஆனால் xargs மூலம் நீங்கள் எல்லாவற்றையும் தானியக்கமாக்கலாம். அவற்றைக் கண்டுபிடிப்பதற்கான கண்டுபிடிப்பைப் பயன்படுத்தி நீங்கள் இதைச் செய்யலாம், xargs இன் உள்ளீடு மூலம் வெளியீட்டை அனுப்புங்கள், இது rm பெயர்களை வாதங்களாகக் கொடுக்கும். எனவே, அமைந்துள்ள அனைத்தும் தானாகவே நீக்கப்படும்:

find ./ -name "thumbs.db" | xargs rm

எடுத்துக்காட்டாக, /home/name/thumbs.db, /media/test/thumbs.db, மற்றும் /tmp/thumbs.db ஆகியவற்றைக் கண்டுபிடிப்போம் என்று வைத்துக்கொள்வோம். சரி, xargs அவர்கள் வாதங்களைப் போல rm க்கு வழங்கப் போகிறார்கள். அதாவது, நாங்கள் செயல்படுத்தியது போல: rm /home/name/thumbs.db, பின்னர் rm /media/test/thumbs.db, பின்னர் rm /tmp/thumbs.db.


உங்கள் கருத்தை தெரிவிக்கவும்

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்பட்ட முடியாது. தேவையான புலங்கள் குறிக்கப்பட்டிருக்கும் *

*

*

  1. தரவுகளுக்குப் பொறுப்பு: AB இன்டர்நெட் நெட்வொர்க்ஸ் 2008 SL
  2. தரவின் நோக்கம்: கட்டுப்பாட்டு ஸ்பேம், கருத்து மேலாண்மை.
  3. சட்டபூர்வமாக்கல்: உங்கள் ஒப்புதல்
  4. தரவின் தொடர்பு: சட்டபூர்வமான கடமையால் தவிர மூன்றாம் தரப்பினருக்கு தரவு தெரிவிக்கப்படாது.
  5. தரவு சேமிப்பு: ஆக்சென்டஸ் நெட்வொர்க்குகள் (EU) வழங்கிய தரவுத்தளம்
  6. உரிமைகள்: எந்த நேரத்திலும் உங்கள் தகவல்களை நீங்கள் கட்டுப்படுத்தலாம், மீட்டெடுக்கலாம் மற்றும் நீக்கலாம்.

  1.   ஜோஸ் அவர் கூறினார்

    சிறந்தது, லினக்ஸ் பயனர்களுக்கு இந்த தகவல் எங்களுக்கு மிகவும் முக்கியமானது

  2.   டேனியல் அவர் கூறினார்

    என்ன ஒரு நல்ல கட்டுரை, இப்போது நான் லினக்ஸ் கட்டளை வரி புத்தகத்தில் I / O திசைதிருப்பலைப் படிக்கிறேன். குழாய்கள் (பைப்லைன்) மற்றும் மூன்று தரவு நீரோடைகள் பற்றி எனக்கு தெளிவாகத் தெரிகிறது. பங்களிப்பு பாராட்டப்பட்டது. வாழ்த்துக்கள்.

  3.   01101001b அவர் கூறினார்

    Xargs உடனான எடுத்துக்காட்டு எனக்கு ஒரு கையுறை போன்றது. சரியாக இன்று நான் "பகுதிகளாக" அனுப்ப வேண்டிய பல வெளியேறும் விவரங்களை கையாண்டேன். xargs ஒரு பிந்துரிட்டா நடந்து.
    சூப்பர் நன்றியுடன்!