ಪೈಪ್‌ಗಳು: ಗ್ನು / ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ಅವುಗಳನ್ನು ಬಳಸಲು ಪ್ರಾರಂಭಿಸಲು ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದದ್ದು

ಪೈಪ್‌ಲೈನ್‌ಗಳು

ಉನಾ ಪೈಪ್ ಅಥವಾ ಪಿಪ್e ವಾಸ್ತವವಾಗಿ ಯುನಿಕ್ಸ್ / ಲಿನಕ್ಸ್‌ಗೆ ಲಭ್ಯವಿರುವ ಪೈಪ್‌ಲೈನ್ ಮತ್ತು ಅತ್ಯಂತ ಪ್ರಾಯೋಗಿಕವಾಗಿದೆ. ಆದರೆ ಪೈಪ್ ಏನೆಂಬುದನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, * ನಿಕ್ಸ್ ಪರಿಸರದಲ್ಲಿ ಅದು 3 ಅಂತರ್ನಿರ್ಮಿತ ಡೇಟಾ ಸ್ಟ್ರೀಮ್‌ಗಳನ್ನು ಹೊಂದಿದೆ ಎಂದು ನೀವು ತಿಳಿದಿರಬೇಕು. ಅಂದರೆ, ಗೊತ್ತಿಲ್ಲದವರಿಗೆ, ಡೇಟಾವು ಮೂರು ಬಿಂದುಗಳಿಗೆ ಅಥವಾ ಹೋಗಬಹುದು.

ನಂತರ ನೀವು ಇದನ್ನು ಉತ್ತಮ ರೀತಿಯಲ್ಲಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿರಿ, ಆದರೆ ನಾನು ಈಗ ನಿಮಗೆ ಸ್ಪಷ್ಟಪಡಿಸಲು ಬಯಸುವುದು ಪೈಪ್‌ಲೈನ್‌ನೊಂದಿಗೆ ನೀವು ಏನು ಮಾಡಬಹುದು ಎಂಬುದು ಆ ಒಂದು ಅಂಶದಿಂದ ಇತರರಿಗೆ ಚಾನಲ್ ಆಗಿದೆ. ಪ್ರೋಗ್ರಾಂ ಬಳಸಲು ಇನ್ನೊಂದರ ಇನ್ಪುಟ್ ಕಡೆಗೆ ಎಸೆಯುವ output ಟ್ಪುಟ್ ಅಥವಾ ಫಲಿತಾಂಶವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ. ನಾನು ಅದನ್ನು ಕೆಲವು ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳೊಂದಿಗೆ ವಿವರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತೇನೆ ಅದು ಅದನ್ನು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.

ನಾನು ಮಾತನಾಡುತ್ತಿದ್ದ ಆ ಅಂಶಗಳು ಡೇಟಾ ಸ್ಟ್ರೀಮ್‌ಗಳು, ಅವು:

  • ಸ್ಟಡಿನ್: 0 ಗೆ ಅನುರೂಪವಾಗಿದೆ ಮತ್ತು ಇದು ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ ಆಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ, * ನಿಕ್ಸ್ ಸಿಸ್ಟಮ್‌ನ ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ ಕೀಬೋರ್ಡ್ ಆಗಿದೆ. ಅಂದರೆ, ನೀವು ಟೈಪ್ ಮಾಡುವುದು ಬಳಸಿದ ಮಾಹಿತಿಯಾಗಿದೆ. ಅವಳು ಅದರೊಂದಿಗೆ ಸಂಯೋಜಿತವಾದ ವಿಶೇಷ ಸಾಧನವನ್ನು ಹೊಂದಿದ್ದಾಳೆ ಅದು / dev / stdin.
  • stdout: 1 ರೊಂದಿಗೆ ಗುರುತಿಸಲಾಗಿದೆ, ಇದು ಪ್ರಮಾಣಿತ ಉತ್ಪಾದನೆಯಾಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ ಇದು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನ ಮಾನಿಟರ್ ಅಥವಾ ಪರದೆಗೆ ಅನುರೂಪವಾಗಿದೆ, ಅಲ್ಲಿಯೇ ನೀವು ಮಾಹಿತಿಯನ್ನು ನೋಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ನೀವು ls ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸುವಾಗ ವಿಷಯಗಳ ಪಟ್ಟಿಯನ್ನು ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ, ಸರಿ? ಸಂಬಂಧಿತ ಸಾಧನವು / dev / stdout ಆಗಿದೆ.
  • stderr: 2 ರೊಂದಿಗೆ ಗುರುತಿಸಲಾಗಿದೆ, ಇದು ಪ್ರಮಾಣಿತ ದೋಷ ಉತ್ಪಾದನೆಯಾಗಿದೆ, ಏಕೆಂದರೆ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ದೋಷ ಸಂಭವಿಸಿದಾಗ. ಸಂಬಂಧಿತ ಸಾಧನವು / dev / stderr ಆಗಿದೆ.

ಪೈಪ್‌ಲೈನ್‌ನೊಂದಿಗೆ ನೀವು ಒಂದು ಆಜ್ಞೆಯ ಪ್ರಮಾಣಿತ output ಟ್‌ಪುಟ್ ಅಥವಾ stdout ಅನ್ನು ನೇರವಾಗಿ ಇನ್ನೊಂದರ ಪ್ರಮಾಣಿತ ಇನ್‌ಪುಟ್‌ಗೆ ರವಾನಿಸಬಹುದು. ಅಂದರೆ, ನೀವು ಒಂದು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಇನ್ನೊಂದಕ್ಕೆ ಫೀಡ್ ಮಾಡಬಹುದು. ಕೀಬೋರ್ಡ್-ನಮೂದಿಸಿದ ನಿಯತಾಂಕಗಳನ್ನು ಬಳಸುವ ಬದಲು, ಪೈಪ್ ಹಿಂದಿನ ಆಜ್ಞೆಯಿಂದ ಉತ್ಪತ್ತಿಯಾದ ಮಾಹಿತಿಯನ್ನು ಈ ಪೈಪ್‌ಲೈನ್ ಮೂಲಕ |

ಕಾನ್ ಉದಾಹರಣೆಗಳು ನೀವು ಅದನ್ನು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿರಿ. ನೀವು ಡೈರೆಕ್ಟರಿಯ ವಿಷಯಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಲು ಬಯಸುತ್ತೀರಿ ಎಂದು ಭಾವಿಸೋಣ, ಆದರೆ ಡಾಕ್ ಪದಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುವ ಹೆಸರುಗಳನ್ನು ನೋಡಲು ಮಾತ್ರ ನೀವು ಆಸಕ್ತಿ ಹೊಂದಿದ್ದೀರಿ. ಆದ್ದರಿಂದ ನೀವು ls ನ output ಟ್‌ಪುಟ್ ಅನ್ನು grep ಫಿಲ್ಟರ್‌ನ ಇನ್‌ಪುಟ್‌ಗೆ ಪೈಪ್ ಮಾಡಲು ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ಬಳಸಬಹುದು, ಅದು ಆ ಮಾದರಿಗೆ ಹೊಂದಿಕೆಯಾಗುವಂತಹವುಗಳನ್ನು ಮಾತ್ರ ಪ್ರದರ್ಶಿಸಲು ಹೇಳುತ್ತದೆ:

ls -l | grep doc

ಆದ್ದರಿಂದ ನಿಮಗೆ ಎಲ್ಲಾ ಹೆಸರುಗಳನ್ನು ತೋರಿಸುವ ಬದಲು, ಅದು ನಿಮಗೆ ತೋರಿಸುತ್ತದೆ ನಿಮಗೆ ನಿಜವಾಗಿಯೂ ಆಸಕ್ತಿ ಇರುವಂತಹವುಗಳು. ಫೈಲ್‌ನ ವಿಷಯದೊಂದಿಗೆ ನೀವು ಅದೇ ರೀತಿ ಮಾಡಬಹುದು. ನೀವು ಫೈರ್‌ಫಾಕ್ಸ್ ಹೆಸರಿನ ಪ್ರಕ್ರಿಯೆಗಳ ಮಾಹಿತಿಯನ್ನು ಮಾತ್ರ ನೋಡಲು ಬಯಸುತ್ತೀರಿ ಎಂದು g ಹಿಸಿ:

ps aux | grep firefox

ಪಿಎಸ್ ಪ್ರೋಗ್ರಾಂನ ಎಲ್ಲಾ output ಟ್ಪುಟ್ ಅನ್ನು ಪರದೆಯ ಮೇಲೆ ತೋರಿಸುವ ಬದಲು (ಸ್ಟಡೌಟ್), ಅದು ಏನು ಮಾಡುತ್ತದೆ ಅದನ್ನು ಗ್ರೆಪ್ ಫಿಲ್ಟರ್ನ ಇನ್ಪುಟ್ ಕಡೆಗೆ ಚಾನಲ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಈ ಸಂದರ್ಭದಲ್ಲಿ ಫೈರ್ಫಾಕ್ಸ್ ಮಾದರಿಗೆ ಅನುಗುಣವಾದದ್ದನ್ನು output ಟ್ಪುಟ್ನಲ್ಲಿ ಮಾತ್ರ ತೋರಿಸುತ್ತದೆ ...

ನೀವು ಬಯಸಿದರೆ, ನೀವು ಬಳಸಬಹುದು ವಿವಿಧ ಕೊಳವೆಗಳು ಒಂದು ಆಜ್ಞೆಯ output ಟ್ಪುಟ್ ಅನ್ನು ಮತ್ತೊಂದು ಎರಡನೇ ಆಜ್ಞೆಯ ಇನ್ಪುಟ್ಗೆ ತರಲು, ಮತ್ತು ಆ ಸೆಕೆಂಡ್ನ output ಟ್ಪುಟ್ ಅನ್ನು ಮೂರನೆಯ ಇನ್ಪುಟ್ಗೆ ತರಲು, ಹೀಗೆ. ಉದಾಹರಣೆಗೆ:

cat libro | grep love | more

ನೀವು ನೋಡುವಂತೆ, ಸಾಧ್ಯತೆಗಳು ಹಲವು, ನೀವು imagine ಹಿಸಬಹುದಾದ ಮತ್ತು ಅನುಮತಿಸಲಾದ ಎಲ್ಲವು. ಫೈಲ್‌ನ ಮೊದಲ ಮತ್ತು ಕೊನೆಯ ಸಾಲುಗಳನ್ನು ಮಾತ್ರ ತೋರಿಸಿ, ಪಟ್ಟಿಯಿಂದ ಬರುವ wc ಅನ್ನು ನಮೂದಿಸುವ ಸಾಲುಗಳನ್ನು ಎಣಿಸಿ ಮತ್ತು ಅವುಗಳನ್ನು ವಿಂಗಡಿಸಿ:

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

ನೀವು ಸಹ ಕೆಲಸ ಮಾಡಬಹುದು | & ನೊಂದಿಗೆ ದೋಷಗಳು ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್‌ನ ವಿಫಲವಾದರೆ ಎಚ್ಚರಿಕೆ ಪದವನ್ನು ನೋಡಿ:

./miscript |& grep alerta 

ಮತ್ತು ಅಂತಿಮವಾಗಿ, ಎರಡು ಆಜ್ಞೆಗಳು ಪೈಪ್‌ಗಳೊಂದಿಗೆ ನಿಕಟ ಸಂಬಂಧ ಹೊಂದಿವೆ ಟೀ ಮತ್ತು ಕ್ಸಾರ್ಗ್ಸ್ ಮತ್ತು ಇವುಗಳ ಸಾಧ್ಯತೆಗಳನ್ನು ಅವರು ಮತ್ತಷ್ಟು ವಿಸ್ತರಿಸಬಹುದು. ಟೀ ವಿಷಯದಲ್ಲಿ, ಹಿಂದಿನ ಪ್ರೋಗ್ರಾಂನ ಫಲಿತಾಂಶವನ್ನು ಸ್ಟ್ಯಾಂಡರ್ಡ್ output ಟ್‌ಪುಟ್‌ನಲ್ಲಿ ತೋರಿಸುವುದನ್ನು ನೀವು ಅನುಮತಿಸುವ ಮೂಲಕ ನೀವು ಅದನ್ನು ನೋಡಬಹುದು, ಮತ್ತು ಅದರ ಜೊತೆಗೆ, ಅದನ್ನು ಮತ್ತೊಂದು ಫೈಲ್‌ಗೆ ಪೈಪ್ ಮಾಡಬಹುದು. ನೀವು ಡೈರೆಕ್ಟರಿಯ ವಿಷಯಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿದರೆ ಮತ್ತು ಈ ಸಮಯದಲ್ಲಿ ls -l ನ output ಟ್ಪುಟ್ ಅನ್ನು ನೋಡಲು ಬಯಸಿದರೆ ಮತ್ತು ಅದನ್ನು ಫೈಲ್ ಲಿಸ್ಟಿಂಗ್ನಲ್ಲಿ ಉಳಿಸಿದ್ದರೆ ಉದಾಹರಣೆ. Txt:

ls -l | tee listado.txt

ನೀವು ಟೀ ಬಳಸದಿದ್ದರೆ, ನಿಮ್ಮ ಕನ್ಸೋಲ್‌ನಲ್ಲಿ output ಟ್‌ಪುಟ್ ನೋಡಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ ...

Y xargs ಇದು ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಇನ್ನಷ್ಟು ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ ಅದು ಪೈಪ್‌ಲೈನ್ ಮೂಲಕ ಪಡೆಯುವ ಪ್ರಮಾಣಿತ ಇನ್‌ಪುಟ್‌ನಿಂದ ಆಜ್ಞೆಯನ್ನು ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಹಿಂದಿನ ಪ್ರೋಗ್ರಾಂ ತನ್ನ output ಟ್‌ಪುಟ್‌ನ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಿದ ಎಲ್ಲವನ್ನೂ ಸೆರೆಹಿಡಿಯುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಅದು ಪೈಪ್‌ಲೈನ್ ಮೂಲಕ ಕ್ಸಾರ್ಗ್‌ಗಳನ್ನು ತಲುಪುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಮತ್ತೊಂದು ಆಜ್ಞೆಗೆ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳಾಗಿ ರವಾನಿಸುತ್ತದೆ.

ಇನ್ನೂ ಸಿಗುತ್ತಿಲ್ಲವೇ? ಉದಾಹರಣೆಯೊಂದಿಗೆ ನೀವು ಅದನ್ನು ಹೆಚ್ಚು ಚೆನ್ನಾಗಿ ನೋಡುತ್ತೀರಿ. ಡೈರೆಕ್ಟರಿ, ಡಿಸ್ಕ್ ಅಥವಾ ವಿಭಾಗದಿಂದ ಎಲ್ಲಾ ಡ್ಯಾಮ್ ಥಂಬ್ಸ್.ಡಿಬಿ ಫೈಲ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ನೀವು ಬಯಸುತ್ತೀರಿ ಎಂದು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. ಅನೇಕ ಇದ್ದರೆ, ಅವುಗಳನ್ನು ಕೈಯಾರೆ ಅಳಿಸಲು rm ಆಜ್ಞೆಯೊಂದಿಗೆ ಒಂದೊಂದಾಗಿ ಹೋಗುವುದು ಅಸಾಧ್ಯ. ಆದರೆ xargs ನೊಂದಿಗೆ ನೀವು ಎಲ್ಲವನ್ನೂ ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಬಹುದು. ಮತ್ತು ಅವುಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ನೀವು ಅದನ್ನು ಮಾಡಬಹುದು, x ಾರ್ಗ್‌ಗಳ ಇನ್ಪುಟ್ ಮೂಲಕ output ಟ್‌ಪುಟ್ ಕಳುಹಿಸಿ ಮತ್ತು ಇದು ಆರ್ಎಮ್‌ಗೆ ಹೆಸರುಗಳನ್ನು ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳಾಗಿ ನೀಡುತ್ತದೆ. ಆದ್ದರಿಂದ, ಇರುವ ಎಲ್ಲವುಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ:

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. ಡೇಟಾದ ಉದ್ದೇಶ: ನಿಯಂತ್ರಣ SPAM, ಕಾಮೆಂಟ್ ನಿರ್ವಹಣೆ.
  3. ಕಾನೂನುಬದ್ಧತೆ: ನಿಮ್ಮ ಒಪ್ಪಿಗೆ
  4. ಡೇಟಾದ ಸಂವಹನ: ಕಾನೂನುಬದ್ಧ ಬಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
  5. ಡೇಟಾ ಸಂಗ್ರಹಣೆ: ಆಕ್ಸೆಂಟಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು (ಇಯು) ಹೋಸ್ಟ್ ಮಾಡಿದ ಡೇಟಾಬೇಸ್
  6. ಹಕ್ಕುಗಳು: ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಮರುಪಡೆಯಬಹುದು ಮತ್ತು ಅಳಿಸಬಹುದು.

  1.   ಜೋಸ್ ಡಿಜೊ

    ಅತ್ಯುತ್ತಮ, ಲಿನಕ್ಸ್ ಬಳಕೆದಾರರಿಗೆ ಈ ಮಾಹಿತಿಯು ನಮಗೆ ಬಹಳ ಮುಖ್ಯವಾಗಿದೆ

  2.   ಡೇನಿಯಲ್ ಡಿಜೊ

    ಎಂತಹ ಉತ್ತಮ ಲೇಖನ, ಇದೀಗ ನಾನು ಲಿನಕ್ಸ್ ಕಮಾಂಡ್ ಲೈನ್ ಪುಸ್ತಕದಲ್ಲಿ ಐ / ಒ ಪುನರ್ನಿರ್ದೇಶನವನ್ನು ಅಧ್ಯಯನ ಮಾಡುತ್ತಿದ್ದೇನೆ. ಪೈಪ್‌ಗಳು (ಪೈಪ್‌ಲೈನ್) ಮತ್ತು ಮೂರು ಡೇಟಾ ಸ್ಟ್ರೀಮ್‌ಗಳ ಬಗ್ಗೆ ಇದು ನನಗೆ ಸ್ಪಷ್ಟವಾಗಿದೆ. ಕೊಡುಗೆಯನ್ನು ಪ್ರಶಂಸಿಸಲಾಗಿದೆ. ಶುಭಾಶಯಗಳು.

  3.   01101001b ಡಿಜೊ

    Xargs ನೊಂದಿಗೆ ಉದಾಹರಣೆ ನನಗೆ ಕೈಗವಸುಗಳಂತೆ ಸೂಕ್ತವಾಗಿದೆ. ನಿಖರವಾಗಿ ಇಂದು ನಾನು "ಭಾಗಗಳಲ್ಲಿ" ಕಳುಹಿಸಬೇಕಾದ ಬಹು ನಿರ್ಗಮನದ ವಿವರಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುತ್ತಿದ್ದೆ. xargs ಒಂದು ಪಿಂಟುರಿಟಾ ನಡೆದರು.
    ಸೂಪರ್ ಕೃತಜ್ಞರಾಗಿರಬೇಕು!