ಅತ್ಯಂತ ಆಸಕ್ತಿದಾಯಕ ಮತ್ತು ಒಂದು ಉಪಯುಕ್ತ ವಿಷಯಗಳುಫಾರ್ ಸಿಸ್ಟಮ್ ನಿರ್ವಾಹಕರುಮತ್ತು ಟರ್ಮಿನಲ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಾರಂಭಿಸುತ್ತಿರುವ ಹೊಸ ಬಳಕೆದಾರರು - ಇದು Linux ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗಳ ಮರುನಿರ್ದೇಶನವಾಗಿದೆ. ಈ ಟರ್ಮಿನಲ್ ವೈಶಿಷ್ಟ್ಯವು ಆಜ್ಞೆಗಳ ಔಟ್ಪುಟ್ ಅನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಲು ಅಥವಾ ಕಮಾಂಡ್ ಇನ್ಪುಟ್ಗೆ ಫೈಲ್ನ ವಿಷಯಗಳನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು, ಆಜ್ಞೆಗಳನ್ನು ಒಟ್ಟಿಗೆ ಸಂಯೋಜಿಸಲು ಮತ್ತು ಕಮಾಂಡ್ ಪೈಪ್ಲೈನ್ಗಳನ್ನು ರೂಪಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
ಈ ಲೇಖನದಲ್ಲಿ, ಲಿನಕ್ಸ್ನಲ್ಲಿ I/O ಸ್ಟ್ರೀಮ್ ಮರುನಿರ್ದೇಶನವನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ, ಇದಕ್ಕಾಗಿ ಯಾವ ಆಪರೇಟರ್ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಇದೆಲ್ಲವನ್ನೂ ಎಲ್ಲಿ ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ನಾವು ನೋಡುತ್ತೇವೆ.
ನಾವು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಎಲ್ಲಾ ಆಜ್ಞೆಗಳು ನಮಗೆ ಮೂರು ರೀತಿಯ ಡೇಟಾವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತವೆ:
- ಆಜ್ಞೆಯ ಫಲಿತಾಂಶ, ಸಾಮಾನ್ಯವಾಗಿ ಬಳಕೆದಾರರು ವಿನಂತಿಸಿದ ಪಠ್ಯ ಡೇಟಾ;
- ದೋಷ ಸಂದೇಶಗಳು - ಕಮಾಂಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಉದ್ಭವಿಸಿದ ಅನಿರೀಕ್ಷಿತ ಸಂದರ್ಭಗಳ ಬಗ್ಗೆ ತಿಳಿಸಿ;
- ರಿಟರ್ನ್ ಕೋಡ್ ಎನ್ನುವುದು ಪ್ರೋಗ್ರಾಂ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆಯೇ ಎಂದು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಸಂಖ್ಯೆಯಾಗಿದೆ.
ಲಿನಕ್ಸ್ನಲ್ಲಿ, ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಎಲ್ಲಾ ಪದಾರ್ಥಗಳನ್ನು ಫೈಲ್ಗಳಾಗಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ ಲಿನಕ್ಸ್ ಔಟ್ಪುಟ್- ಕಡತಗಳು. ಪ್ರತಿಯೊಂದು ವಿತರಣೆಯು ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಬಳಸಬಹುದಾದ ಮೂರು ಮುಖ್ಯ ಸ್ಟ್ರೀಮ್ ಫೈಲ್ಗಳನ್ನು ಹೊಂದಿದೆ, ಇವುಗಳನ್ನು ಶೆಲ್ನಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ಮತ್ತು ಅವುಗಳ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಸಂಖ್ಯೆಯಿಂದ ಗುರುತಿಸಲಾಗುತ್ತದೆ:
- STDIN ಅಥವಾ 0- ಈ ಫೈಲ್ ಕೀಬೋರ್ಡ್ಗೆ ಸಂಬಂಧಿಸಿದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಆಜ್ಞೆಗಳು ಇಲ್ಲಿಂದ ಕೆಲಸ ಮಾಡಲು ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸುತ್ತವೆ;
- STDOUT ಅಥವಾ 1- ಇದು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಆಗಿದೆ, ಪ್ರೋಗ್ರಾಂ ತನ್ನ ಕೆಲಸದ ಎಲ್ಲಾ ಫಲಿತಾಂಶಗಳನ್ನು ಇಲ್ಲಿಗೆ ಕಳುಹಿಸುತ್ತದೆ. ಇದು ಪರದೆಯೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದೆ, ಅಥವಾ ಹೆಚ್ಚು ನಿಖರವಾಗಿ ಹೇಳಬೇಕೆಂದರೆ, ಪ್ರೋಗ್ರಾಂ ಚಾಲನೆಯಲ್ಲಿರುವ ಟರ್ಮಿನಲ್ನೊಂದಿಗೆ;
- STDERR ಅಥವಾ 2- ಎಲ್ಲಾ ದೋಷ ಸಂದೇಶಗಳು ಈ ಫೈಲ್ಗೆ ಔಟ್ಪುಟ್ ಆಗಿವೆ.
I/O ಮರುನಿರ್ದೇಶನವು ಈ ಫೈಲ್ಗಳಲ್ಲಿ ಒಂದನ್ನು ನಿಮ್ಮದೇ ಆದ ಫೈಲ್ಗಳೊಂದಿಗೆ ಬದಲಾಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಫೈಲ್ನಿಂದ ಡೇಟಾವನ್ನು ಓದಲು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ನೀವು ಒತ್ತಾಯಿಸಬಹುದು ಕಡತ ವ್ಯವಸ್ಥೆ, ಕೀಬೋರ್ಡ್ ಬದಲಿಗೆ, ನೀವು ಪರದೆಯ ಬದಲಿಗೆ ಫೈಲ್ಗೆ ದೋಷಗಳನ್ನು ಔಟ್ಪುಟ್ ಮಾಡಬಹುದು, ಇತ್ಯಾದಿ. ಇದೆಲ್ಲವನ್ನೂ ಚಿಹ್ನೆಗಳನ್ನು ಬಳಸಿ ಮಾಡಲಾಗುತ್ತದೆ. "<" ಮತ್ತು ">" .
ಫೈಲ್ಗೆ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಿ
ಇದು ತುಂಬಾ ಸರಳವಾಗಿದೆ. ನೀವು > ಚಿಹ್ನೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಫೈಲ್ಗೆ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಮೇಲಿನ ಆಜ್ಞೆಯ ಔಟ್ಪುಟ್ ಅನ್ನು ಉಳಿಸೋಣ:
top -bn 5 > top.log
-b ಆಯ್ಕೆಯು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಸಂವಾದಾತ್ಮಕವಲ್ಲದ ರೀತಿಯಲ್ಲಿ ರನ್ ಮಾಡಲು ಕಾರಣವಾಗುತ್ತದೆ ಬ್ಯಾಚ್ ಮೋಡ್, ಮತ್ತು n - ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲು ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಐದು ಬಾರಿ ಪುನರಾವರ್ತಿಸುತ್ತದೆ. ಈಗ ಬೆಕ್ಕಿನೊಂದಿಗೆ ಏನಾಯಿತು ಎಂದು ನೋಡೋಣ:
ಚಿಹ್ನೆ ">" ಫೈಲ್ನಲ್ಲಿ ಈಗಾಗಲೇ ಏನಾದರೂ ಇದ್ದರೆ ಮಾಹಿತಿಯನ್ನು ತಿದ್ದಿ ಬರೆಯುತ್ತದೆ. ಅಂತಿಮ ಬಳಕೆಗೆ ಡೇಟಾವನ್ನು ಸೇರಿಸಲು ">>" . ಉದಾಹರಣೆಗೆ, ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ linux ಫೈಲ್ಮೇಲಕ್ಕೆ ಸಹ:
top -bn 5 >> top.log
ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಮರುನಿರ್ದೇಶನಕ್ಕಾಗಿ ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಆದರೆ ನೀವು ಇದನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಈ ಆಜ್ಞೆಯು ಅದೇ ಫಲಿತಾಂಶವನ್ನು ನೀಡುತ್ತದೆ:
top -bn 5 1>top.log
ದೋಷಗಳನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಿ
ದೋಷದ ಔಟ್ಪುಟ್ ಅನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಲು, ನೀವು ಮರುನಿರ್ದೇಶಿಸಲು ಹೊರಟಿರುವ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಅನ್ನು ನೀವು ಸ್ಪಷ್ಟವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಅಗತ್ಯವಿದೆ. ದೋಷಗಳಿಗಾಗಿ, ಇದು ಸಂಖ್ಯೆ 2. ಉದಾಹರಣೆಗೆ, ಸೂಪರ್ಯೂಸರ್ ಡೈರೆಕ್ಟರಿಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುವಾಗ, ls ದೋಷವನ್ನು ಎಸೆಯುತ್ತದೆ:
ಈ ರೀತಿಯ ಫೈಲ್ಗೆ ನೀವು ಪ್ರಮಾಣಿತ ದೋಷವನ್ನು ಮರುನಿರ್ದೇಶಿಸಬಹುದು:
ls -l /root/ 2> ls-error.log
$ ಬೆಕ್ಕು ls-error.log
ಫೈಲ್ನ ಅಂತ್ಯಕ್ಕೆ ಡೇಟಾವನ್ನು ಸೇರಿಸಲು, ಅದೇ ಚಿಹ್ನೆಯನ್ನು ಬಳಸಿ:
ls -l /root/ 2>>ls-error.log
ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಮತ್ತು ದೋಷಗಳನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಿ
ನೀವು ಎಲ್ಲಾ ಔಟ್ಪುಟ್, ದೋಷಗಳು ಮತ್ತು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಅನ್ನು ಒಂದೇ ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಬಹುದು. ಇದನ್ನು ಮಾಡಲು ಎರಡು ಮಾರ್ಗಗಳಿವೆ. ಮೊದಲನೆಯದು, ಹಳೆಯದು, ಎರಡೂ ಹಿಡಿಕೆಗಳನ್ನು ರವಾನಿಸುವುದು:
ls -l /root/ >ls-error.log 2>&1
ಮೊದಲಿಗೆ, ಮೊದಲ ಮರುನಿರ್ದೇಶನ ಅಕ್ಷರವನ್ನು ಬಳಸಿಕೊಂಡು ls ಆಜ್ಞೆಯ ಔಟ್ಪುಟ್ ಅನ್ನು ls-error.log ಫೈಲ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ನಂತರ ಎಲ್ಲಾ ದೋಷಗಳನ್ನು ಒಂದೇ ಫೈಲ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಎರಡನೆಯ ವಿಧಾನವು ಸರಳವಾಗಿದೆ:
ls -l /root/ &> ls-error.log
ನೀವು ಪುನಃ ಬರೆಯುವ ಬದಲು ಸೇರಿಸುವಿಕೆಯನ್ನು ಸಹ ಬಳಸಬಹುದು:
ls -l /root/ &>> ls-error.log
ಫೈಲ್ನಿಂದ ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್
ಹೆಚ್ಚಿನ ಪ್ರೋಗ್ರಾಂಗಳು, ಸೇವೆಗಳನ್ನು ಹೊರತುಪಡಿಸಿ, ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ ಮೂಲಕ ತಮ್ಮ ಕೆಲಸಕ್ಕಾಗಿ ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸುತ್ತವೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ ಕೀಬೋರ್ಡ್ನಿಂದ ಇನ್ಪುಟ್ ಅನ್ನು ನಿರೀಕ್ಷಿಸುತ್ತದೆ. ಆದರೆ ಆಪರೇಟರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಫೈಲ್ನಿಂದ ಡೇಟಾವನ್ನು ಓದಲು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ನೀವು ಒತ್ತಾಯಿಸಬಹುದು "<" :
ಬೆಕ್ಕು ನೀವು ತಕ್ಷಣ ಔಟ್ಪುಟ್ ಅನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಪಟ್ಟಿಯನ್ನು ಮರು-ವಿಂಗಡಣೆ ಮಾಡೋಣ: ವಿಂಗಡಿಸಿ ಹೀಗಾಗಿ, ನಾವು ಒಂದು ಆಜ್ಞೆಯಲ್ಲಿ ಲಿನಕ್ಸ್ಗೆ ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುತ್ತೇವೆ. ನೀವು ಫೈಲ್ಗಳೊಂದಿಗೆ ಮಾತ್ರ ಕೆಲಸ ಮಾಡಬಹುದು, ಆದರೆ ಒಂದು ಆಜ್ಞೆಯ ಔಟ್ಪುಟ್ ಅನ್ನು ಇನ್ನೊಂದರ ಇನ್ಪುಟ್ ಆಗಿ ಮರುನಿರ್ದೇಶಿಸಬಹುದು. ಸಂಕೀರ್ಣ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಇದು ತುಂಬಾ ಉಪಯುಕ್ತವಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಐದು ಇತ್ತೀಚೆಗೆ ಮಾರ್ಪಡಿಸಿದ ಫೈಲ್ಗಳನ್ನು ಪ್ರದರ್ಶಿಸೋಣ: ls -lt | ತಲೆ -ಎನ್ 5 xargs ಉಪಯುಕ್ತತೆಯೊಂದಿಗೆ, ನೀವು ಆಜ್ಞೆಗಳನ್ನು ಸಂಯೋಜಿಸಬಹುದು ಇದರಿಂದ ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ ಅನ್ನು ನಿಯತಾಂಕಗಳಾಗಿ ರವಾನಿಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಫೈಲ್ ಅನ್ನು ಹಲವಾರು ಫೋಲ್ಡರ್ಗಳಿಗೆ ನಕಲಿಸೋಣ: ಪ್ರತಿಧ್ವನಿ ಪರೀಕ್ಷೆ/ಟಿಎಂಪಿ/ | xargs -n 1 cp -v testfile.sh ಇಲ್ಲಿ -n 1 ಆಯ್ಕೆಯು ಪ್ರತಿ ಕಮಾಂಡ್ಗೆ ಕೇವಲ ಒಂದು ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಮಾತ್ರ ಪೂರೈಸಬೇಕು ಎಂದು ಸೂಚಿಸುತ್ತದೆ ಮತ್ತು cp ಗೆ -v ಆಯ್ಕೆಯು ಚಲನೆಗಳ ಬಗ್ಗೆ ವಿವರವಾದ ಮಾಹಿತಿಯನ್ನು ಮುದ್ರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಅಂತಹ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮತ್ತೊಂದು ಉಪಯುಕ್ತ ಆಜ್ಞೆಯು ಟೀ ಆಗಿದೆ. ಇದು ಡೇಟಾವನ್ನು ಓದುತ್ತದೆ ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ಮತ್ತು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಅಥವಾ ಫೈಲ್ಗಳಿಗೆ ಬರೆಯುತ್ತದೆ. ಉದಾಹರಣೆಗೆ: ಪ್ರತಿಧ್ವನಿ "ಟೀ ಆಪರೇಷನ್ ಟೆಸ್ಟ್" | ಟೀ ಫೈಲ್ 1 ಇತರ ಆಜ್ಞೆಗಳ ಸಂಯೋಜನೆಯಲ್ಲಿ, ಸಂಕೀರ್ಣ ಬಹು-ಕಮಾಂಡ್ ಸೂಚನೆಗಳನ್ನು ರಚಿಸಲು ಇವುಗಳನ್ನು ಬಳಸಬಹುದು. ಈ ಲೇಖನದಲ್ಲಿ, ನಾವು Linux I/O ಸ್ಟ್ರೀಮ್ ಮರುನಿರ್ದೇಶನದ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಔಟ್ಪುಟ್ ಅನ್ನು ಲಿನಕ್ಸ್ ಫೈಲ್ಗೆ ಅಥವಾ ಫೈಲ್ನಿಂದ ಔಟ್ಪುಟ್ಗೆ ಮರುನಿರ್ದೇಶಿಸುವುದು ಹೇಗೆ ಎಂದು ಈಗ ನಿಮಗೆ ತಿಳಿದಿದೆ. ಇದು ತುಂಬಾ ಸರಳ ಮತ್ತು ಅನುಕೂಲಕರವಾಗಿದೆ. ನೀವು ಯಾವುದೇ ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಕಾಮೆಂಟ್ಗಳಲ್ಲಿ ಕೇಳಿ! ಮರುನಿರ್ದೇಶನವನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಆಜ್ಞೆಗಳ ನಡುವೆ ">" ವಿಶೇಷ ಅಕ್ಷರವನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ಸಾಧಿಸಲಾಗುತ್ತದೆ. ವಿಶಿಷ್ಟವಾಗಿ ಸಿಂಟ್ಯಾಕ್ಸ್ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ: Command1 > file1 ಕಮಾಂಡ್ 1 ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ, ಫೈಲ್ 1 ಗೆ ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಅನ್ನು ಬರೆಯುತ್ತದೆ. ತಂಡ 1< файл1
ಫೈಲ್1 ಅನ್ನು ಇನ್ಪುಟ್ ಮೂಲವಾಗಿ ಬಳಸಿಕೊಂಡು ಕಮಾಂಡ್ 1 ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ (ಕೀಬೋರ್ಡ್ ಬದಲಿಗೆ). ತಂಡ 1< файл1 >ಫೈಲ್2 ಎರಡನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ ಹಿಂದಿನ ಆವೃತ್ತಿಗಳು. file1 ನಿಂದ ಇನ್ಪುಟ್ ಮತ್ತು file2 ಗೆ ಔಟ್ಪುಟ್ನೊಂದಿಗೆ command1 ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಪೈಪ್ಲೈನ್ಗಳು ಒಂದು ಪ್ರೋಗ್ರಾಂನ ಔಟ್ಪುಟ್ ಮಧ್ಯಂತರ ಬಳಕೆಯಿಲ್ಲದೆ ನೇರವಾಗಿ ಇನ್ಪುಟ್ಗೆ ಹೋದಾಗ ಹಲವಾರು ಪ್ರೋಗ್ರಾಂಗಳು ಒಟ್ಟಿಗೆ ಕೆಲಸ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವಾಗಿದೆ. ತಾತ್ಕಾಲಿಕ ಕಡತಗಳು. ವಾಕ್ಯ ರಚನೆ: ತಂಡ1 | ತಂಡ 2 ಕಮಾಂಡ್ 2 ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಾಗ ಅದರ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಆಗಿ ಬಳಸಿಕೊಂಡು ಕಮಾಂಡ್ 1 ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ, ಇದು ಎರಡು ಮರುನಿರ್ದೇಶನಗಳು ಮತ್ತು ತಾತ್ಕಾಲಿಕ ಫೈಲ್ ಅನ್ನು ಬಳಸುವುದಕ್ಕೆ ಸಮನಾಗಿರುತ್ತದೆ: Command1 > TemporaryFile command2< ВременныйФайл
rm ВременныйФайл
ಕಮಾಂಡ್ ಪೈಪ್ಲೈನ್ಗಳ ಉತ್ತಮ ಉದಾಹರಣೆಯೆಂದರೆ ಸಂವಾದಾತ್ಮಕವಲ್ಲದ ಪರಿಸರದಲ್ಲಿ ಸಂವಾದಾತ್ಮಕತೆಯನ್ನು ಸಾಧಿಸಲು ಮತ್ತೊಂದು ಆಜ್ಞೆಯೊಂದಿಗೆ ಪ್ರತಿಧ್ವನಿಯನ್ನು ಸಂಯೋಜಿಸುವುದು, ಉದಾಹರಣೆಗೆ: echo -e "ಬಳಕೆದಾರಹೆಸರು\nಪಾಸ್ವರ್ಡ್" | ftp ಲೋಕಲ್ ಹೋಸ್ಟ್ ಇದು ಸ್ಥಳೀಯ ಹೋಸ್ಟ್ಗೆ ಬಳಕೆದಾರಹೆಸರು ಎಂದು ಸಂಪರ್ಕಿಸುವ ಕ್ಲೈಂಟ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ, Enter ಅನ್ನು ಒತ್ತಿ ಮತ್ತು ನಂತರ ಪಾಸ್ವರ್ಡ್ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸುತ್ತದೆ. IN ಕಮಾಂಡ್ ಶೆಲ್ಬೌರ್ನ್ ಶೆಲ್ನಿಂದ ಬಂದ UNIX, ಮರುನಿರ್ದೇಶನ ಅಕ್ಷರದ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು (ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್) ಸೂಚಿಸುವ ಮೂಲಕ ಹಿಂದಿನ ಎರಡು ಹಂತಗಳನ್ನು ಸುಧಾರಿಸಬಹುದು. ಮರುನಿರ್ದೇಶನಕ್ಕಾಗಿ ಯಾವ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಈ ಸಂಖ್ಯೆ ಸೂಚಿಸುತ್ತದೆ. UNIX ಕೆಳಗಿನ ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಹೊಂದಿದೆ: ಉದಾಹರಣೆಗೆ: Command1 2 > file1 ಸಿ ಶೆಲ್ನಿಂದ ಪಡೆದ ಕಮಾಂಡ್ ಶೆಲ್ಗಳಲ್ಲಿ, ಸಿಂಟ್ಯಾಕ್ಸ್ ನಿಯಮಗಳ ಪ್ರಕಾರ, ಮರುನಿರ್ದೇಶನವನ್ನು ಕೈಗೊಳ್ಳುವ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಸೂಚಿಸಲು, ನೀವು ಮರುನಿರ್ದೇಶನ ಅಕ್ಷರದ ನಂತರ & ಅಕ್ಷರವನ್ನು ಸೇರಿಸಬೇಕಾಗುತ್ತದೆ. ಸಾಮಾನ್ಯವಾಗಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಎರರ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಲಾಗುತ್ತದೆ ಇದರಿಂದ ದೋಷಗಳು ಮತ್ತು ಸಾಮಾನ್ಯ ಪ್ರೋಗ್ರಾಂ ಔಟ್ಪುಟ್ ಅನ್ನು ಒಟ್ಟಿಗೆ ನಿರ್ವಹಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ: / -name .profile> results.txt 2>&1 ಅನ್ನು ಹುಡುಕಿ .profile ಹೆಸರಿನ ಎಲ್ಲಾ ಫೈಲ್ಗಳನ್ನು ಹುಡುಕಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ನೀವು ಮರುನಿರ್ದೇಶನಗಳಿಲ್ಲದೆ ಈ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿದರೆ, ಇದು ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳನ್ನು ಗೆ ನಿರ್ದೇಶಿಸುತ್ತದೆ ಮತ್ತು ದೋಷ ಸಂದೇಶಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, ಸಂರಕ್ಷಿತ ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ ಹುಡುಕಲು ಪ್ರಯತ್ನಿಸುವಾಗ ಸಾಕಷ್ಟು ಪ್ರವೇಶ ಹಕ್ಕುಗಳ ಬಗ್ಗೆ) ಗೆ ನಿರ್ದೇಶಿಸುತ್ತದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಈ ಪಾತ್ರಗಳನ್ನು ಕನ್ಸೋಲ್ ನಿರ್ವಹಿಸುತ್ತದೆ. ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಅನ್ನು ಫಲಿತಾಂಶಗಳ ಫೈಲ್ಗೆ ನಿರ್ದೇಶಿಸಿದರೆ, ದೋಷಗಳನ್ನು ಇನ್ನೂ ಕನ್ಸೋಲ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ದೋಷಗಳು ಮತ್ತು ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳೆರಡನ್ನೂ results.txt ಫೈಲ್ಗೆ ಕಳುಹಿಸಲಾಗಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಪ್ರಮಾಣಿತ ದೋಷ ಮತ್ತು ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಬಳಸಿ ಸಂಯೋಜಿಸಲಾಗಿದೆ 2>&1
. ಬರವಣಿಗೆ 2>&1
ಮೊದಲು >
ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ ಏಕೆಂದರೆ ಇಂಟರ್ಪ್ರಿಟರ್ ಓದಿದಾಗ 2>&1
, ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಎಲ್ಲಿ ಮರುನಿರ್ದೇಶಿಸಲಾಗಿದೆ ಎಂಬುದು ಇನ್ನೂ ತಿಳಿದಿಲ್ಲ, ಆದ್ದರಿಂದ ದೋಷ ಮತ್ತು ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ವಿಲೀನಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ಸಂಯೋಜಿತ ಫಲಿತಾಂಶವನ್ನು ಮತ್ತೊಂದು ಪ್ರೋಗ್ರಾಂನ ಇನ್ಪುಟ್ಗೆ ಪೈಪ್ ಮಾಡಬೇಕಾದರೆ, ನಂತರ ಅನುಕ್ರಮ 2>&1
ಕನ್ವೇಯರ್ ಚಿಹ್ನೆಯ ಮುಂದೆ ಇರಬೇಕು. ಉದಾಹರಣೆಗೆ: ಹುಡುಕಿ / -ಹೆಸರು .ಪ್ರೊಫೈಲ್ 2>&1 | ಕಡಿಮೆ ಸರಳೀಕೃತ ಕಮಾಂಡ್ ಫಾರ್ಮ್: ಕಮಾಂಡ್> ಫೈಲ್2>&1 ಈ ರೀತಿ ಕಾಣುತ್ತದೆ: ಕಮಾಂಡ್ &> ಫೈಲ್ ಕಮಾಂಡ್>&ಫೈಲ್ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಆಜ್ಞೆಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಮರುನಿರ್ದೇಶನ ಮತ್ತು ಪೈಪಿಂಗ್ ಆಜ್ಞೆಗಳನ್ನು ಒಟ್ಟಿಗೆ ಜೋಡಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ: ls | grep ".sh" | ವಿಂಗಡಿಸು> ಪಟ್ಟಿ ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯ ವಿಷಯಗಳ ಪಟ್ಟಿಯನ್ನು ಪಡೆಯುತ್ತದೆ, ಅದನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲಾಗಿದ್ದು, ಒಳಗೊಂಡಿರುವ ಸಾಲುಗಳನ್ನು ಮಾತ್ರ ಬಿಟ್ಟುಬಿಡುತ್ತದೆ ".ಶ್", ನಂತರ ಈ ಫಿಲ್ಟರ್ ಮಾಡಿದ ಪಟ್ಟಿಯನ್ನು ಲೆಕ್ಸಿಕಲಿಯಾಗಿ ವಿಂಗಡಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅಂತಿಮ ಫಲಿತಾಂಶವನ್ನು ಫೈಲ್ಗೆ ಹಾಕಲಾಗುತ್ತದೆ shlist. ಈ ಪ್ರಕಾರದ ರಚನೆಗಳು UNIX ಶೆಲ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಹೆಚ್ಚಾಗಿ ಕಂಡುಬರುತ್ತವೆ. ಪ್ರಮಾಣಿತ ಆಜ್ಞೆಯು ಕಮಾಂಡ್ ಔಟ್ಪುಟ್ ಅನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಅನೇಕ ಸ್ಥಳಗಳಿಗೆ ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ. ಉದಾಹರಣೆ: Ls -lrt | ಟೀ ಫೈಲ್ 1 ಆಜ್ಞೆಯ ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಅನ್ನು ನಿರ್ದೇಶಿಸುತ್ತದೆ ls -lrt(ಫೈಲ್ಗಳ ಪಟ್ಟಿ) ಕನ್ಸೋಲ್ನಲ್ಲಿ ಮತ್ತು ಒಳಗೆ ಫೈಲ್1. ಕಮಾಂಡ್ ಶೆಲ್ನಲ್ಲಿ, ನೀವು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಬಹುದು ಮತ್ತು ಅದನ್ನು ಅಂತ್ಯಕ್ಕೆ ಸೇರಿಸಬಹುದು. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಫೈಲ್ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಮಾಹಿತಿಯನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಎಲ್ಲಾ ಹೊಸ ಮಾಹಿತಿಈ ಫೈಲ್ನ ಅಂತ್ಯಕ್ಕೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. ವಾಕ್ಯ ರಚನೆ: ಕಮಾಂಡ್ 1 >> ಫೈಲ್ 1 ಕೆಲವು ಶೆಲ್ಗಳು, ಮತ್ತು ಅನ್ವಯಿಕ ಭಾಷೆಗಳು (PHP), ಪರ್ಲ್, ಅಂತರ್ನಿರ್ಮಿತ ದಾಖಲೆಗಳ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ (ಹೆರೆಡಾಕ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ನೋಡಿ), ಇದು ಪ್ರೋಗ್ರಾಂ ಫೈಲ್ನಿಂದಲೇ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ನಿರ್ದೇಶಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ: ಬೆಕ್ಕು « EOF ಯಾವುದೇ ಸೇರಿದಂತೆ ಪಠ್ಯವನ್ನು ಇಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ ವಿಶೇಷ ಪಾತ್ರಗಳು EOF ಎಂಬೆಡೆಡ್ ಡಾಕ್ಯುಮೆಂಟ್ EOF ನ ಅಂತ್ಯದ ಅಂತಿಮ ಸಹಿ (ಅನಿಯಂತ್ರಿತ ಮೌಲ್ಯವನ್ನು ಬಳಸಬಹುದು, ಆದರೆ EOF ಅನ್ನು ಹೆಚ್ಚಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ - ಅರ್ಥದ ಪ್ರಕಾರ) ಸಾಲಿನ ಆರಂಭದಲ್ಲಿ ಪ್ರಾರಂಭವಾಗಬೇಕು. ಪ್ರೋಗ್ರಾಂಗಳು ಸಾಮಾನ್ಯವಾಗಿ I/O ಗಾಗಿ ಪ್ರಮಾಣಿತ ಸ್ಟ್ರೀಮ್ಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುತ್ತವೆಯಾದರೂ, ಹೇಳಿದಂತೆ, I/O ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು ಶೆಲ್ ವಿಶೇಷ ಸೌಲಭ್ಯಗಳನ್ನು ಹೊಂದಿದೆ. ಮರುನಿರ್ದೇಶನವನ್ನು ಸೂಚಿಸಲು "ಚಿಹ್ನೆಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ >
", "<
"ಮತ್ತು" >>
". ಕಡತಕ್ಕೆ ಕಮಾಂಡ್ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುವುದು ಸಾಮಾನ್ಯ ಬಳಕೆಯಾಗಿದೆ. ಇಲ್ಲಿ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ: $ ls -l > /home/jim/dir.txt ಈ ಆಜ್ಞೆಯು /home/jim/dir.txt ಫೈಲ್ನಲ್ಲಿ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಸಮಯದಲ್ಲಿ ಪ್ರಸ್ತುತವಾಗಿದ್ದ ಡೈರೆಕ್ಟರಿಯ ಫೈಲ್ಗಳು ಮತ್ತು ಉಪ ಡೈರೆಕ್ಟರಿಗಳ ಪಟ್ಟಿಯನ್ನು ಉಳಿಸುತ್ತದೆ. ls; ಮತ್ತು ವೇಳೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಫೈಲ್ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ, ನಂತರ ಅದನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ; ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಅದನ್ನು ತಿದ್ದಿ ಬರೆಯಲಾಗುತ್ತದೆ; ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫೈಲ್ನ ಅಂತ್ಯಕ್ಕೆ ಕಮಾಂಡ್ ಔಟ್ಪುಟ್ ಅನ್ನು ಸೇರಿಸಲು ನೀವು ಬಯಸಿದರೆ, ನಂತರ ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ಚಿಹ್ನೆಯ ಬದಲಿಗೆ >
ಬಳಸಿ >>
. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಅಕ್ಷರಗಳ ಮೊದಲು ಅಥವಾ ನಂತರದ ಸ್ಥಳಗಳ ಉಪಸ್ಥಿತಿ >
ಅಥವಾ >>
ಇದು ಅಪ್ರಸ್ತುತವಾಗಿದೆ ಮತ್ತು ಬಳಕೆದಾರರ ಅನುಕೂಲಕ್ಕಾಗಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ನೀವು ಫೈಲ್ಗೆ ಮಾತ್ರವಲ್ಲದೆ ಇನ್ನೊಂದು ಆಜ್ಞೆಯ ಇನ್ಪುಟ್ಗೆ ಅಥವಾ ಸಾಧನಕ್ಕೆ (ಪ್ರಿಂಟರ್ನಂತಹ) ಔಟ್ಪುಟ್ ಅನ್ನು ಕಳುಹಿಸಬಹುದು. ಆದ್ದರಿಂದ, /home/jim/report.txt ಫೈಲ್ನಲ್ಲಿನ ಪದಗಳ ಸಂಖ್ಯೆಯನ್ನು ಎಣಿಸಲು, ನೀವು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು: $ cat /home/jim/report.txt > wc -w ಮತ್ತು ಫೈಲ್ ಅನ್ನು ಮುದ್ರಿಸಲು, ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ: $ cat /home/jim/report.txt > lpr ನೀವು ನೋಡುವಂತೆ, ಆಪರೇಟರ್ >
ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ಆಪರೇಟರ್ನಿಂದ ಇದೇ ರೀತಿಯ ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ <
. ನಿರ್ದಿಷ್ಟ ಫೈಲ್ನಲ್ಲಿನ ಪದಗಳ ಸಂಖ್ಯೆಯನ್ನು ಎಣಿಸಲು ಮೇಲಿನ ಉದಾಹರಣೆ ಆಜ್ಞೆಯನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಪುನಃ ಬರೆಯಬಹುದು (ಕಮಾಂಡ್ನ ಅನುಪಸ್ಥಿತಿಯನ್ನು ಗಮನಿಸಿ ಬೆಕ್ಕು): $wc -w< /home/jim/report.txt
ಈ ಮರುನಿರ್ದೇಶನ ಆಯ್ಕೆಯನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಕೀಬೋರ್ಡ್ ಇನ್ಪುಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸುವ (ಅಥವಾ ನಿರೀಕ್ಷಿಸುವ) ಆಜ್ಞೆಗಳಿಗಾಗಿ ವಿವಿಧ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ. ಕೆಲವನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸುವ ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ವಾಡಿಕೆಯ ಕಾರ್ಯಾಚರಣೆಗಳು, ಈ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಏನು ನಮೂದಿಸಬೇಕು ಎಂಬುದನ್ನು ಮೊದಲೇ ರೆಕಾರ್ಡ್ ಮಾಡಲಾದ ಫೈಲ್ನಿಂದ ನೀವು ಆಜ್ಞೆಗೆ ಅಗತ್ಯವಾದ ಮಾಹಿತಿಯನ್ನು ನೀಡಬಹುದು. ಚಿಹ್ನೆಗಳು ಎಂಬ ಅಂಶದಿಂದಾಗಿ <
,
>
ಮತ್ತು >>
ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಸ್ಟ್ರೀಮ್ಗಳ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸಿ, ಅವುಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಮಾಡಿದಂತೆ ಸಾಮಾನ್ಯ ರೀತಿಯಲ್ಲಿ ಮಾತ್ರವಲ್ಲದೆ ಸ್ವಲ್ಪ ವಿಭಿನ್ನ ರೀತಿಯಲ್ಲಿಯೂ ಬಳಸಬಹುದು. ಆದ್ದರಿಂದ, ಕೆಳಗಿನ ಆಜ್ಞೆಗಳು ಸಮಾನವಾಗಿವೆ: $ ಬೆಕ್ಕು > ಫೈಲ್ $cat>ಫೈಲ್ $ >ಫೈಲ್ ಕ್ಯಾಟ್ $ > ಫೈಲ್ ಕ್ಯಾಟ್ ಆದಾಗ್ಯೂ, ಸ್ವತಃ (ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಯಾವುದೇ ಆಜ್ಞೆಯಿಲ್ಲದೆ) ಮರುನಿರ್ದೇಶನ ಚಿಹ್ನೆಯನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಒಬ್ಬರು ಟೈಪ್ ಮಾಡುವ ಮೂಲಕ ಸಾಧ್ಯವಿಲ್ಲ $file1 > file2 ಕಡತದ ನಕಲನ್ನು ಪಡೆಯಿರಿ. ಆದರೆ ಅದು ಕಡಿಮೆ ಪ್ರಾಮುಖ್ಯತೆಯನ್ನು ನೀಡುವುದಿಲ್ಲ ಈ ಕಾರ್ಯವಿಧಾನ, ಏಕೆಂದರೆ ಯಾವುದೇ ಆಜ್ಞೆಗೆ ಪ್ರಮಾಣಿತ ಹರಿವುಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನೀವು ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಅನ್ನು ಮಾತ್ರ ಮರುನಿರ್ದೇಶಿಸಬಹುದು, ಆದರೆ ಇತರ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಸಹ ಮರುನಿರ್ದೇಶಿಸಬಹುದು. ಇದನ್ನು ಮಾಡಲು, ಮರುನಿರ್ದೇಶನ ಚಿಹ್ನೆಯ ಮೊದಲು ಮರುನಿರ್ದೇಶಿಸಲಾದ ಸ್ಟ್ರೀಮ್ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ stdin ಸಂಖ್ಯೆ 0, ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ stdout ಸಂಖ್ಯೆ 1, ಪ್ರಮಾಣಿತ ದೋಷ ಸ್ಟ್ರೀಮ್ stderr ಸಂಖ್ಯೆ 2. ಅಂದರೆ ಪೂರ್ಣ ಸ್ವರೂಪಮರುನಿರ್ದೇಶನ ಆಜ್ಞೆಯು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ (ಸಮೀಪದ ಸ್ಥಳಗಳು ಐಚ್ಛಿಕವಾಗಿರುತ್ತವೆ ಎಂಬುದನ್ನು ನೆನಪಿಡಿ): ಆದೇಶ N>M ಎಲ್ಲಿ ಎನ್ಮತ್ತು ಎಂ- ಪ್ರಮಾಣಿತ ಸ್ಟ್ರೀಮ್ಗಳ ಸಂಖ್ಯೆಗಳು (0,1,2) ಅಥವಾ ಫೈಲ್ ಹೆಸರುಗಳು. ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಚಿಹ್ನೆಗಳ ಬಳಕೆ <
,
>
ಮತ್ತು >>
ಚಾನಲ್ ಸಂಖ್ಯೆ ಅಥವಾ ಫೈಲ್ ಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದೆ ಮಾತ್ರ ಸಾಧ್ಯ ಏಕೆಂದರೆ ಕಾಣೆಯಾದ ಸಂಖ್ಯೆಗೆ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ 1 ಅನ್ನು ಬದಲಿಸಲಾಗಿದೆ, ಅಂದರೆ ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್. ಹೌದು, ಆಪರೇಟರ್ >
ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದೆ ಹೀಗೆ ಅರ್ಥೈಸಲಾಗುತ್ತದೆ 1
>
. ಹೊರತುಪಡಿಸಿ ಸರಳ ಮರುನಿರ್ದೇಶನಪ್ರಮಾಣಿತ ಸ್ಟ್ರೀಮ್ಗಳು, ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಒಂದು ಅಥವಾ ಇನ್ನೊಂದಕ್ಕೆ ಮರುನಿರ್ದೇಶಿಸಲು ಮಾತ್ರವಲ್ಲ, ಪ್ರಮಾಣಿತ ಸ್ಟ್ರೀಮ್ನ ವಿಷಯಗಳ ನಕಲನ್ನು ಮಾಡಲು ಸಹ ಸಾಧ್ಯವಿದೆ. ಇದಕ್ಕಾಗಿ ವಿಶೇಷ ಚಿಹ್ನೆ ಇದೆ &
, ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲಾದ ಚಾನಲ್ ಸಂಖ್ಯೆಯ ಮುಂದೆ ಇರಿಸಲಾಗಿದೆ: ಆದೇಶ N > &M ಈ ಆಜ್ಞೆಯು ಚಾನಲ್ ಸಂಖ್ಯೆಯ ಔಟ್ಪುಟ್ ಎಂದರ್ಥ ಎನ್ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಚಾನಲ್ ಸಂಖ್ಯೆಗೆ ನಕಲಿಸಲಾಗುತ್ತದೆ ಎಂ. ಉದಾಹರಣೆಗೆ, ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ನಲ್ಲಿ ದೋಷ ಸಂದೇಶಗಳನ್ನು ನಕಲು ಮಾಡಲು, ನೀವು ಆಜ್ಞೆಯನ್ನು ನೀಡಬೇಕಾಗುತ್ತದೆ 2>&1,
ಸಮಯದಲ್ಲಿ 1>&2
stdout ನಿಂದ stderr ಗೆ ನಕಲು ಮಾಡುತ್ತದೆ. ಫೈಲ್ಗೆ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುವಾಗ ಈ ವೈಶಿಷ್ಟ್ಯವು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ, ಏಕೆಂದರೆ ನಾವಿಬ್ಬರೂ ಪರದೆಯ ಮೇಲೆ ಸಂದೇಶಗಳನ್ನು ನೋಡುತ್ತೇವೆ ಮತ್ತು ಅವುಗಳನ್ನು ಫೈಲ್ಗೆ ಉಳಿಸುತ್ತೇವೆ. ಔಟ್ಪುಟ್ ಮರುನಿರ್ದೇಶನಕ್ಕೆ ವಿಶೇಷ ಆಯ್ಕೆಯೆಂದರೆ ಸಾಫ್ಟ್ವೇರ್ ಚಾನಲ್ (ಕೆಲವೊಮ್ಮೆ ಪೈಪ್ ಅಥವಾ ಕನ್ವೇಯರ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ). ಇದನ್ನು ಮಾಡಲು, ಎರಡು ಅಥವಾ ಹೆಚ್ಚಿನ ಆಜ್ಞೆಗಳು, ಅಂದರೆ ಹಿಂದಿನದದ ಔಟ್ಪುಟ್ ಮುಂದಿನದಕ್ಕೆ ಇನ್ಪುಟ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಲಂಬ ಬಾರ್ ಅಕ್ಷರದಿಂದ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ (ಅಥವಾ ನೀವು ಬಯಸಿದಲ್ಲಿ ಪ್ರತ್ಯೇಕಿಸಿ) - "|". ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಆಜ್ಞೆಯ ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಚಿಹ್ನೆಯ ಎಡಭಾಗದಲ್ಲಿದೆ |
, ಚಿಹ್ನೆಯ ಬಲಭಾಗದಲ್ಲಿರುವ ಪ್ರೋಗ್ರಾಂನ ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ |
. ಉದಾಹರಣೆಗೆ: $ ಬೆಕ್ಕು ನನ್ನ ಫೈಲ್ | grep Linux | wc -l ಈ ಸಾಲಿನ ಅರ್ಥವೇನೆಂದರೆ ಆಜ್ಞೆಯ ಔಟ್ಪುಟ್ ಬೆಕ್ಕು, ಅಂದರೆ ಫೈಲ್ ಮೈಫೈಲ್ನಿಂದ ಪಠ್ಯವನ್ನು ಕಮಾಂಡ್ ಇನ್ಪುಟ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ grep, ಇದು "Linux" ಪದವನ್ನು ಹೊಂದಿರುವ ಸಾಲುಗಳನ್ನು ಮಾತ್ರ ಹೈಲೈಟ್ ಮಾಡುತ್ತದೆ. ಕಮಾಂಡ್ ಔಟ್ಪುಟ್ grepಪ್ರತಿಯಾಗಿ, ಆಜ್ಞೆಯ ಇನ್ಪುಟ್ಗೆ ನಿರ್ದೇಶಿಸಲಾಗುತ್ತದೆ wc -l, ಇದು ಅಂತಹ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಎಣಿಕೆ ಮಾಡುತ್ತದೆ. ಪ್ರೋಗ್ರಾಂ ಪೈಪ್ಗಳನ್ನು ಹಲವಾರು ಸಣ್ಣ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಸಂಯೋಜಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ, ಪ್ರತಿಯೊಂದೂ ಅದರ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ರೂಪಾಂತರಗಳನ್ನು ಮಾತ್ರ ನಿರ್ವಹಿಸುತ್ತದೆ, ಇದು ಕೆಲವು ಹೆಚ್ಚು ಸಂಕೀರ್ಣ ರೂಪಾಂತರಗಳಿಗೆ ಕಾರಣವಾಗುವ ಸಾಮಾನ್ಯ ಸೂಚನೆಯನ್ನು ರಚಿಸಲು. ಶೆಲ್ ಏಕಕಾಲದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪೈಪ್ಲೈನ್ನಲ್ಲಿ ಸೇರಿಸಲಾದ ಎಲ್ಲಾ ಆಜ್ಞೆಗಳನ್ನು ಕರೆಯುತ್ತದೆ ಎಂದು ಗಮನಿಸಬೇಕು, ಪ್ರತಿಯೊಂದು ಆಜ್ಞೆಗಳಿಗೆ ಶೆಲ್ನ ಪ್ರತ್ಯೇಕ ನಿದರ್ಶನವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಮೊದಲ ಪ್ರೋಗ್ರಾಂ ಅದರ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ಏನನ್ನಾದರೂ ಉತ್ಪಾದಿಸಲು ಪ್ರಾರಂಭಿಸಿದ ತಕ್ಷಣ, ಮುಂದಿನ ಆಜ್ಞೆಯು ಅದನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಅದೇ ರೀತಿಯಲ್ಲಿ, ಪ್ರತಿ ನಂತರದ ಆಜ್ಞೆಯು ತನ್ನದೇ ಆದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ಹಿಂದಿನ ಆಜ್ಞೆಯಿಂದ ಡೇಟಾಕ್ಕಾಗಿ ಕಾಯುತ್ತಿದೆ ಮತ್ತು ಅದರ ಫಲಿತಾಂಶಗಳನ್ನು ಮುಂದಿನ ಇನ್ಪುಟ್ ಆಗಿ ಉತ್ಪಾದಿಸುತ್ತದೆ. ಮುಂದಿನದು ಪ್ರಾರಂಭವಾಗುವ ಮೊದಲು ಆಜ್ಞೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಪೂರ್ಣಗೊಳಿಸಲು ನೀವು ಬಯಸಿದರೆ, ನೀವು ಅದನ್ನು ಪೈಪ್ಲೈನ್ ಸಂಕೇತವಾಗಿ ಒಂದು ಸಾಲಿನಲ್ಲಿ ಬಳಸಬಹುದು |
, ಮತ್ತು ಸೆಮಿಕೋಲನ್ ;
. ಪ್ರತಿ ಅರ್ಧವಿರಾಮ ಚಿಹ್ನೆಯ ಮೊದಲು, ಶೆಲ್ ನಿಲ್ಲುತ್ತದೆ ಮತ್ತು ಪೈಪ್ಲೈನ್ನಲ್ಲಿ ಸೇರಿಸಲಾದ ಎಲ್ಲಾ ಹಿಂದಿನ ಆಜ್ಞೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಕಾಯುತ್ತದೆ. ಪೈಪ್ನಿಂದ ನಿರ್ಗಮನ ಸ್ಥಿತಿ (ಪ್ರೋಗ್ರಾಂ ಪೂರ್ಣಗೊಂಡ ನಂತರ ಹಿಂತಿರುಗಿದ ಬೂಲಿಯನ್ ಮೌಲ್ಯ) ಪೈಪ್ಲೈನ್ನಲ್ಲಿ ಕೊನೆಯ ಆಜ್ಞೆಯಿಂದ ಹಿಂತಿರುಗಿದ ನಿರ್ಗಮನ ಸ್ಥಿತಿಯಂತೆಯೇ ಇರುತ್ತದೆ. ಪೈಪ್ಲೈನ್ನ ಮೊದಲ ಆಜ್ಞೆಯ ಮುಂದೆ ನೀವು "!" ಚಿಹ್ನೆಯನ್ನು ಹಾಕಬಹುದು, ನಂತರ ಪೈಪ್ಲೈನ್ನಿಂದ ನಿರ್ಗಮನ ಸ್ಥಿತಿಯು ಕೊನೆಯ ಆಜ್ಞೆಯಿಂದ ನಿರ್ಗಮನ ಸ್ಥಿತಿಯ ತಾರ್ಕಿಕ ನಿರಾಕರಣೆಯಾಗಿದೆ. ರಿಟರ್ನ್ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸುವ ಮೊದಲು ಎಲ್ಲಾ ಪೈಪ್ಲೈನ್ ಆಜ್ಞೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಶೆಲ್ ಕಾಯುತ್ತದೆ. ಮೇಲಿನ ಕೊನೆಯ ಉದಾಹರಣೆ (ಆಜ್ಞೆಯೊಂದಿಗೆ grep) ಮತ್ತೊಂದು ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಯನ್ನು ವಿವರಿಸಲು ಬಳಸಬಹುದು, ಅವುಗಳೆಂದರೆ ಫಿಲ್ಟರ್ ಪ್ರೋಗ್ರಾಂ. ಫಿಲ್ಟರ್ಗಳು ಆಜ್ಞೆಗಳು (ಅಥವಾ ಪ್ರೋಗ್ರಾಂಗಳು) ಇನ್ಪುಟ್ ಡೇಟಾ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಅದರ ಮೇಲೆ ಕೆಲವು ರೂಪಾಂತರಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ಗೆ ಔಟ್ಪುಟ್ ಮಾಡುತ್ತದೆ (ಅದನ್ನು ಬಳಕೆದಾರರ ವಿವೇಚನೆಯಿಂದ ಬೇರೆಡೆಗೆ ಮರುನಿರ್ದೇಶಿಸಬಹುದು). ಫಿಲ್ಟರ್ ಆಜ್ಞೆಗಳು ಈಗಾಗಲೇ ಮೇಲೆ ತಿಳಿಸಲಾದ ಆಜ್ಞೆಗಳನ್ನು ಒಳಗೊಂಡಿವೆ ಬೆಕ್ಕು, ಹೆಚ್ಚು, ಕಡಿಮೆ, wc, cmp, ವ್ಯತ್ಯಾಸ,
ಹಾಗೆಯೇ ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಗಳು. ಕೋಷ್ಟಕ 5.1.ಆಜ್ಞೆಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿ
ತಂಡ
grep,
fgrep,
ಎಗ್ರೆಪ್ ಹುಡುಕುತ್ತಿದ್ದೇನೆ ಇನ್ಪುಟ್ ಫೈಲ್ಅಥವಾ ಪ್ರಮಾಣಿತ ಡೇಟಾ ಇನ್ಪುಟ್ ಸ್ಟ್ರಿಂಗ್, ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಮಾದರಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ಗೆ ಔಟ್ಪುಟ್ ಮಾಡಿ ನೀಡಿರುವ ಪಟ್ಟಿಯಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾದ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ಸಂಭವಿಸುವ ಎಲ್ಲಾ ಅಕ್ಷರಗಳನ್ನು ಎರಡನೇ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪಟ್ಟಿಯಿಂದ ಅನುಗುಣವಾದ ಅಕ್ಷರಗಳೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ com ಸಾಲಿನಿಂದ ಎರಡು ಫೈಲ್ಗಳನ್ನು ಹೋಲಿಸುತ್ತದೆ ಮತ್ತು 3 ಕಾಲಮ್ಗಳನ್ನು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ಗೆ ಔಟ್ಪುಟ್ ಮಾಡುತ್ತದೆ: ಒಂದು - 1 ಫೈಲ್ನಲ್ಲಿ ಮಾತ್ರ ಸಂಭವಿಸುವ ಸಾಲುಗಳು, ಎರಡನೆಯದು - 2 ನೇ ಫೈಲ್ನಲ್ಲಿ ಮಾತ್ರ ಸಂಭವಿಸುವ ಸಾಲುಗಳು: ಮತ್ತು ಮೂರನೇ - ಎರಡೂ ಫೈಲ್ಗಳಲ್ಲಿ ಗೋಚರಿಸುವ ಸಾಲುಗಳು ಮುದ್ರಣಕ್ಕಾಗಿ ಸ್ವರೂಪಗಳು ಪಠ್ಯ ಫೈಲ್ಅಥವಾ ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ನ ವಿಷಯಗಳು ಸೆಡ್ ಇನ್ಪುಟ್ ಡೇಟಾ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ಕೆಲವು ರೂಪಾಂತರಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸ್ಟ್ರಿಂಗ್ ಎಡಿಟರ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ (ಫೈಲ್ನಿಂದ ಅಥವಾ ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ನಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ) ವಿಶೇಷ ಫಿಲ್ಟರ್ ಆಜ್ಞೆಯಾಗಿದೆ ಟೀ, ಇದು ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು "ವಿಭಜಿಸುತ್ತದೆ", ಅದನ್ನು ಒಂದು ಬದಿಯಲ್ಲಿ ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ಗೆ ಮತ್ತು ಇನ್ನೊಂದು ಫೈಲ್ಗೆ ನಿರ್ದೇಶಿಸುತ್ತದೆ (ಯಾರ ಹೆಸರನ್ನು ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು). ಆಜ್ಞೆಯನ್ನು ಅದರ ಕ್ರಿಯೆಯಿಂದ ನೋಡುವುದು ಸುಲಭ ಟೀಮರುನಿರ್ದೇಶನ ಆಪರೇಟರ್ ಅನ್ನು ಹೋಲುತ್ತದೆ 1>&ಫೈಲ್. ಫಿಲ್ಟರ್ಗಳ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಗಮನಾರ್ಹವಾಗಿ ವಿಸ್ತರಿಸಬಹುದು ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು, ಸಂಘಟಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, ವಿವಿಧ, ಸಾಮಾನ್ಯವಾಗಿ ಅತ್ಯಂತ ಸಂಕೀರ್ಣವಾದ, ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಹುಡುಕಾಟ. ಮರುನಿರ್ದೇಶನ ಮತ್ತು ಫಿಲ್ಟರ್ಗಳ ಬಗ್ಗೆ ಬಹಳಷ್ಟು ಹೇಳಬಹುದು. ಆದರೆ ಈ ವಸ್ತುವು ಯುನಿಕ್ಸ್ ಮತ್ತು ಲಿನಕ್ಸ್ನಲ್ಲಿನ ಹೆಚ್ಚಿನ ಪುಸ್ತಕಗಳಲ್ಲಿ ಲಭ್ಯವಿದೆ, ಉದಾಹರಣೆಗೆ ಪೀಟರ್ಸನ್ [P1.4] ಮತ್ತು ಕೆಲ್ಲಿ-ಬೂಟ್ಲ್ [P1.8]. ಆದ್ದರಿಂದ, ನಾವು ಹೇಳಿದ್ದಕ್ಕೆ ನಮ್ಮನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತೇವೆ ಮತ್ತು ಶೆಲ್ನಿಂದ ರಚಿಸಲ್ಪಟ್ಟ ಪರಿಸರ ಅಥವಾ ಪರಿಸರ ಎಂದು ಕರೆಯಲ್ಪಡುವದನ್ನು ಪರಿಗಣಿಸಲು ಮುಂದುವರಿಯುತ್ತೇವೆ. ಮೂರು I/O ನಿರ್ದೇಶನಗಳನ್ನು ಮೀಸಲಿಡಲಾಗಿದೆ - ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್, ಔಟ್ಪುಟ್ ಮತ್ತು ದೋಷ ಸ್ಟ್ರೀಮ್ ( stdin, stdout, stderr
) ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಎಲ್ಲಾ ಮೂರು ಎಳೆಗಳು ಟರ್ಮಿನಲ್ಗೆ ಸಂಬಂಧಿಸಿವೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಪ್ರೋಗ್ರಾಂ ತನ್ನ ಎಲ್ಲಾ ಸಂದೇಶಗಳನ್ನು ದೋಷಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಟರ್ಮಿನಲ್ಗೆ ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಶೆಲ್
ಈ ಪ್ರಮಾಣಿತ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು, I/O ಮತ್ತು ಥ್ರೆಡ್ ಪೂಲಿಂಗ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. I/O ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ. > ಫೈಲ್
ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಅನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ ಕಡತ
>> ಫೈಲ್
- ಫೈಲ್ಗೆ ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಿ ಕಡತ
ಫೈಲ್ನ ಅಂತ್ಯಕ್ಕೆ ಸೇರಿಸುವುದರೊಂದಿಗೆ. ಪ್ರೋಗ್1 | ಕಾರ್ಯಕ್ರಮ2
-ಪ್ರೋಗ್ರಾಂ prog1 ರ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಂನ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗೆ ವರ್ಗಾಯಿಸಿ ಕಾರ್ಯಕ್ರಮ2.
n> ಫೈಲ್
ಕಡತ.
n >> ಫೈಲ್
- ಫೈಲ್ಗೆ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ n ನೊಂದಿಗೆ ಪ್ರಮಾಣಿತ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಿ ಕಡತ
ಫೈಲ್ನ ಅಂತ್ಯಕ್ಕೆ ಸೇರಿಸುವುದರೊಂದಿಗೆ. n>&m
- ಹಿಡಿಕೆಗಳೊಂದಿಗೆ ಎಳೆಗಳನ್ನು ಸಂಯೋಜಿಸುವುದು ಎನ್
ಮತ್ತು ಮೀ
. $ prog1 >/dev/null 2>&1
/dev/null
ಒಂದು ಹುಸಿ-ಸಾಧನವು ಅದರೊಳಗೆ ನಿರ್ದೇಶಿಸಿದ ಹರಿವನ್ನು ನಾಶಪಡಿಸುತ್ತದೆ. ಒಂದು ಪ್ರೋಗ್ರಾಂನ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಇನ್ನೊಂದರ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗೆ ರವಾನಿಸುವುದನ್ನು ಹೆಚ್ಚಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ: $ gzip -d archive.tar.gz | ಟಾರ್ -xf
ಇಲ್ಲಿಯೇ ಫೈಲ್ ಅನ್ನು ಅನ್ಜಿಪ್ ಮಾಡಲಾಗಿದೆ archive.tar.gz
, ಎರಡು ಆರ್ಕೈವರ್ಗಳಿಂದ ಪ್ಯಾಕ್ ಮಾಡಲಾಗಿದೆ. ಉಪಯುಕ್ತತೆಯಿಂದ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಜಿಜಿಪ್
ಉಪಯುಕ್ತತೆಗೆ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗೆ ರವಾನಿಸಲಾಗಿದೆ ಟಾರ್
. ಅಂತೆಯೇ, ಅದೇ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಇನ್ನೊಂದು ರೀತಿಯಲ್ಲಿ ಮಾಡಬಹುದು: $ gzip -d archive.tar.gz
$ tar -xf archive.tar ಏಕೆಂದರೆ ಭಾಷೆ ಬೌರ್ನ್ ಶೆಲ್
ಕಾರ್ಯವಿಧಾನದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದೆ; ಇದು ಇತರ ರೀತಿಯ ಭಾಷೆಗಳಂತೆ, ಇದು ಕಮಾಂಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಆಪರೇಟರ್ಗಳನ್ನು ಹೊಂದಿದೆ. ಕಾರ್ಯಕ್ರಮದ ಮುಂದಿನ ಕೋರ್ಸ್ ಅನ್ನು ನಿರ್ಧರಿಸುವ ನೆರವೇರಿಕೆಯನ್ನು ಅವಲಂಬಿಸಿ, ಒಂದು ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸುವುದು ಅಗತ್ಯ ನಿರ್ವಾಹಕರು. ಅಂತಹ ಆಪರೇಟರ್ ಆಜ್ಞೆಯಾಗಿದೆ ಪರೀಕ್ಷೆ.
ಈ ಆಜ್ಞೆಯು ಕೆಲವು ಷರತ್ತುಗಳನ್ನು ಪೂರೈಸಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ. ತಂಡ ಪರೀಕ್ಷೆ
ಎರಡು ಕರೆ ಆಯ್ಕೆಗಳಿವೆ: ಪರೀಕ್ಷಾ ಸ್ಥಿತಿ
[ಷರತ್ತು]
ಬ್ರಾಕೆಟ್ ಮತ್ತು ಸ್ಥಿತಿಯ ನಡುವೆ ಅಂತರಗಳು ಇರಬೇಕು ಎಂದು ಗಮನಿಸಬೇಕು, ಇಲ್ಲದಿದ್ದರೆ ಶೆಲ್
"[" ಅನ್ನು ಆಜ್ಞೆಯಂತೆ ಗುರುತಿಸುವುದಿಲ್ಲ ಪರೀಕ್ಷೆ
. ಯಶಸ್ವಿಯಾಗಿ ಪೂರ್ಣಗೊಂಡ ಮೇಲೆ ಪರೀಕ್ಷೆ
ಹಿಂದಿರುಗಿಸುತ್ತದೆ "0"
. ಫೈಲ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಷರತ್ತುಗಳು: -f ಫೈಲ್ಫೈಲ್ "ಫೈಲ್"
ಸಾಮಾನ್ಯ ಫೈಲ್ ಆಗಿದೆ. -ಡಿ ಫೈಲ್
ಫೈಲ್" ಕಡತ"
ಒಂದು ಡೈರೆಕ್ಟರಿ ಆಗಿದೆ. -w ಫೈಲ್
ಫೈಲ್ "ಫೈಲ್"
ಬರೆಯಲು ಅನುಮತಿಯನ್ನು ಹೊಂದಿದೆ. -x ಫೈಲ್
ಫೈಲ್ "ಫೈಲ್"
ನಿರ್ವಹಿಸಲು ಅನುಮತಿಯನ್ನು ಹೊಂದಿದೆ. -s ಫೈಲ್
ಫೈಲ್ "ಫೈಲ್"
ಖಾಲಿ ಇಲ್ಲ. ತಂತಿಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಷರತ್ತುಗಳು: ಸ್ಟ್ರಿಂಗ್1=ಸ್ಟ್ರಿಂಗ್2
ತಂತಿಗಳು ಸ್ಟ್ರಿಂಗ್ 1
ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ 2
ಹೊಂದಾಣಿಕೆ. ಸ್ಟ್ರಿಂಗ್1!=ಸ್ಟ್ರಿಂಗ್2
ತಂತಿಗಳು ಸ್ಟ್ರಿಂಗ್ 1
ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ 2
ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. -ಎನ್ ಸ್ಟ್ರಿಂಗ್ 1
ಸಾಲು ಸ್ಟ್ರಿಂಗ್ 1
ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. -z ಸ್ಟ್ರಿಂಗ್ 1
ಸಾಲು ಸ್ಟ್ರಿಂಗ್ 1
ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. ಪೂರ್ಣಾಂಕಗಳೊಂದಿಗೆ ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ಷರತ್ತುಗಳು: x -eq y
x ಯು ಸಮನಾಗಿರುತ್ತದೆ x -ne ವೈ
x y ಗೆ ಸಮಾನವಾಗಿಲ್ಲ x -gt y x y ಗಿಂತ ದೊಡ್ಡದಾಗಿದೆ x -ge ವೈ
x y ಗಿಂತ ದೊಡ್ಡದು ಅಥವಾ ಸಮನಾಗಿರುತ್ತದೆ x -lt ವೈ
x y ಗಿಂತ ಕಡಿಮೆ x -le y
x y ಗಿಂತ ಕಡಿಮೆ ಅಥವಾ ಸಮಾನವಾಗಿರುತ್ತದೆ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಆಜ್ಞೆ ಪರೀಕ್ಷೆ
ತಂತಿಗಳನ್ನು ನಿಖರವಾಗಿ ಪೂರ್ಣಾಂಕಗಳಂತೆ ಪರಿಗಣಿಸುತ್ತದೆ. ಶೂನ್ಯ ಮೌಲ್ಯಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಸಹ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ. ತಾರ್ಕಿಕ ಕಾರ್ಯಾಚರಣೆಗಳುಸಂದರ್ಭದಲ್ಲಿ ಪರೀಕ್ಷೆ
! (ಅಲ್ಲ)
ತಾರ್ಕಿಕ "ಅಲ್ಲ" -o (ಅಥವಾ)
ತಾರ್ಕಿಕ "OR" -ಎ (ಮತ್ತು)
ತಾರ್ಕಿಕ "ಮತ್ತು" ಷರತ್ತುಬದ್ಧ ಆಪರೇಟರ್ "ಒಂದು ವೇಳೆ"
ಸಾಮಾನ್ಯ ನೋಟಬಳಸಿ ಷರತ್ತುಬದ್ಧ ಆಪರೇಟರ್ಈ ಕೆಳಗಿನಂತೆ ಪ್ರತಿನಿಧಿಸಿದರೆ: ಒಂದು ವೇಳೆ<условие>
ನಂತರ<список команд>
[ಎಲಿಫ್<условие>
ನಂತರ<список> ]
ಚೌಕ ಬ್ರಾಕೆಟ್ಗಳಲ್ಲಿನ ಅಭಿವ್ಯಕ್ತಿಗಳು ಐಚ್ಛಿಕವಾಗಿರುತ್ತವೆ. ಆ. ಷರತ್ತುಬದ್ಧ ಆಪರೇಟರ್ನ ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದ "ಕತ್ತರಿಸಿದ" ಮಾರ್ಪಾಡುಗಳನ್ನು ನಾವು ಊಹಿಸಬಹುದು: ಒಂದು ವೇಳೆ<условие>
ನಂತರ<список команд>
ಈ ಸಂದರ್ಭದಲ್ಲಿ, ವೇಳೆ <условие>
ಪೂರ್ಣಗೊಂಡಿತು (ಪೂರ್ಣಗೊಳಿಸುವಿಕೆ ಕೋಡ್ 0) ನಂತರ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ <список команд>.
ಇಲ್ಲದಿದ್ದರೆ <список команд>
ಬಿಟ್ಟುಬಿಟ್ಟರು. ಆಯ್ಕೆ ಆಪರೇಟರ್ ಪ್ರಕರಣ
ಸಾಮಾನ್ಯವಾಗಿ, ಆಪರೇಟರ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಆಗಿದೆ ಪ್ರಕರಣ
ಈ ರೀತಿ ಕಾಣುತ್ತದೆ: ಪ್ರಕರಣ<строка>ಒಳಗೆ
ಟೆಂಪ್ಲೇಟ್ 1) ........
ಟೆಂಪ್ಲೇಟ್2) ........
........
ಅರ್ಥ <строка>
ಟೆಂಪ್ಲೆಟ್ಗಳೊಂದಿಗೆ ಹೋಲಿಸಿದರೆ, ಕ್ರಮವಾಗಿ. ಹೊಂದಾಣಿಕೆ ಕಂಡುಬಂದರೆ, ಅನುಗುಣವಾದ ವಿಭಾಗದಲ್ಲಿನ ಆಜ್ಞೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಟೆಂಪ್ಲೆಟ್ಗಳು ಮುಖವಾಡಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತವೆ ಎಂದು ಗಮನಿಸಬೇಕು. ಯಾವುದೇ ಹೊಂದಾಣಿಕೆ ಕಂಡುಬಂದಿಲ್ಲದಿದ್ದರೆ, "*" ಮಾದರಿಯೊಂದಿಗೆ ವಿಭಾಗದಿಂದ ಆಜ್ಞೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ (ಇದಕ್ಕೆ ಹೋಲುತ್ತದೆ ಪೂರ್ವನಿಯೋಜಿತ
ಆಯ್ಕೆಗಾರ ಸ್ವಿಚ್
ವಿ ಜೊತೆಗೆ
). ಉದಾಹರಣೆಯಾಗಿ, ಪ್ರಾರಂಭಿಕ ಸ್ಕ್ರಿಪ್ಟ್ನ ಒಂದು ತುಣುಕು ಇಲ್ಲಿದೆ BSD UNIX
. ಅಸ್ಥಿರಗಳು ಇಲ್ಲಿವೆ (inetd_enable ಮತ್ತು inetd_flags)
ಇನ್ನೊಂದು ಕಡತದಿಂದ ಪಡೆಯಲಾಗಿದೆ ( rc.conf).
. /etc/rc.conf
ಸಂದರ್ಭದಲ್ಲಿ ($inetd_enable) ರಲ್ಲಿ
)
[-x /usr/sbin/inetd] ವೇಳೆ; ನಂತರ /usr/sbin/inetd $inetd_flags fi ಎಣಿಕೆಯೊಂದಿಗೆ ಲೂಪ್ ಆಪರೇಟರ್ ಫಾರ್
ಆಪರೇಟರ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಫಾರ್
ಫಾರ್<имя>
<список команд>
ಚದರ ಬ್ರಾಕೆಟ್ಗಳಲ್ಲಿ ಹೈಲೈಟ್ ಮಾಡಲಾದ ತುಣುಕು ಕಾಣೆಯಾಗಿರಬಹುದು. ಆಪರೇಟರ್ ಫಾರ್
ಮೌಲ್ಯಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಪದಗಳಿರುವಷ್ಟು ಬಾರಿ ಲೂಪ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ವೇರಿಯಬಲ್ <имя>
ಪಟ್ಟಿಯಿಂದ ಪದಗಳ ಅರ್ಥಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಇತರ ಆಜ್ಞೆಗಳ ಔಟ್ಪುಟ್ನಿಂದ ಪಟ್ಟಿಯನ್ನು ಸ್ವತಃ ರಚಿಸಬಹುದು. ಪಟ್ಟಿ ಕಾಣೆಯಾಗಿದ್ದರೆ, ನಂತರ <имя>
ಸ್ಕ್ರಿಪ್ಟ್ಗೆ ಸ್ಥಾನಿಕ ನಿಯತಾಂಕಗಳಾಗಿ ರವಾನಿಸಲಾದ ಮೌಲ್ಯಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ನಿಜವಾದ ಸ್ಥಿತಿಯೊಂದಿಗೆ ಲೂಪ್ ಹೇಳಿಕೆ ಸಮಯದಲ್ಲಿ
ಆಪರೇಟರ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಸಮಯದಲ್ಲಿ
ಸಾಮಾನ್ಯವಾಗಿ ಇದು ಹೊಂದಿದೆ ಕೆಳಗಿನ ರಚನೆ: ಸಮಯದಲ್ಲಿ<условие>
<список команд>
ಆಪರೇಟರ್ ಸಮಯದಲ್ಲಿ
ಪ್ಯಾರಾಮೀಟರ್ ಮೌಲ್ಯಗಳ ಪಟ್ಟಿಯು ಮುಂಚಿತವಾಗಿ ತಿಳಿದಿಲ್ಲದಿದ್ದಾಗ ಆದ್ಯತೆ ನೀಡಲಾಗುತ್ತದೆ. ಷರತ್ತು ನಿಜವಾಗಿರುವವರೆಗೆ ಆಜ್ಞೆಗಳ ಪಟ್ಟಿಯನ್ನು ಲೂಪ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ನೀವು ಮೊದಲು ಲೂಪ್ ಅನ್ನು ನಮೂದಿಸಿದಾಗ, ಸ್ಥಿತಿಯು ನಿಜವಾಗಿರಬೇಕು. ಸುಳ್ಳು ಸ್ಥಿತಿಯೊಂದಿಗೆ ಲೂಪ್ ಹೇಳಿಕೆ ತನಕ
ಆಪರೇಟರ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ತನಕ
ಸಾಮಾನ್ಯವಾಗಿ ಇದು ಈ ಕೆಳಗಿನ ರಚನೆಯನ್ನು ಹೊಂದಿದೆ: ತನಕ<условие>
<список команд>
ಷರತ್ತು ತಪ್ಪಾಗಿರುವವರೆಗೆ ಆಜ್ಞೆಗಳ ಪಟ್ಟಿಯನ್ನು ಲೂಪ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ನೀವು ಮೊದಲ ಬಾರಿಗೆ ಲೂಪ್ ಅನ್ನು ನಮೂದಿಸಿದಾಗ, ಸ್ಥಿತಿಯು ನಿಜವಾಗಿರಬಾರದು. ಪ್ರತಿಯೊಂದರ ನಂತರ ಲೂಪ್ ಸ್ಥಿತಿಯನ್ನು ಸುಳ್ಳುಗಾಗಿ ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ ಎಂದು ಗಮನಿಸಬೇಕು, incl. ಮತ್ತು ಲೂಪ್ನಲ್ಲಿ ಮೊದಲ ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಆಜ್ಞೆ. ಮೂಲ ಆಜ್ಞೆಗಳು UNIX OSಫೈಲ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು 1. ತಂಡ pwd.
ವಾಕ್ಯ ರಚನೆ: pwd
. ವಿವರಣೆ: ಆಜ್ಞೆಯು ಚಾಲನೆಯಲ್ಲಿರುವ ಶೆಲ್ಗಾಗಿ ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯ ಹೆಸರನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಕಾರ್ಯ 1. ನಿಮ್ಮ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ಧರಿಸಲು pwd ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ. ವರದಿಯಲ್ಲಿ ತಂಡ ಮತ್ತು ಅದರ ಕೆಲಸದ ಫಲಿತಾಂಶವನ್ನು ಪ್ರತಿಬಿಂಬಿಸಿ. 2. ತಂಡ ಮನುಷ್ಯ.
ವಾಕ್ಯ ರಚನೆ: ಮನುಷ್ಯ
ಹೆಸರು. ಹೆಸರು ನಾವು ಆಸಕ್ತಿ ಹೊಂದಿರುವ ಆಜ್ಞೆ ಅಥವಾ ಉಪಯುಕ್ತತೆಯ ಹೆಸರಾಗಿದೆ, ಸಿಸ್ಟಮ್ ಕರೆ, ಲೈಬ್ರರಿ ಕಾರ್ಯ, ಫೈಲ್. ವಿವರಣೆ : ಯುನಿಕ್ಸ್ ಮ್ಯಾನುಯಲ್
- ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಕೈಪಿಡಿ UNIX.
ಅಲ್ಲಿಂದ ಮಾಹಿತಿ ಲಭ್ಯವಿದೆ ಸಂವಾದಾತ್ಮಕ ಮೋಡ್ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸುವುದು ಮನುಷ್ಯ
. ಕಾರ್ಯ 2. pwd ಆಜ್ಞೆಯ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಹುಡುಕಲು ಮ್ಯಾನ್ ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸಿ. ವರದಿಯಲ್ಲಿ ತಂಡದ ಬಗ್ಗೆ ಸಂಕ್ಷಿಪ್ತ ಮಾಹಿತಿಯನ್ನು ಬರೆಯಿರಿ (ರಷ್ಯನ್ ಭಾಷೆಯಲ್ಲಿ). 3. ತಂಡ ಸಿಡಿ.
ವಾಕ್ಯ ರಚನೆ: ಸಿಡಿ
ಡೈರೆಕ್ಟರಿ_ಹೆಸರು. ವಿವರಣೆ: ಇದು ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬದಲಾಯಿಸುವ ಆಜ್ಞೆಯಾಗಿದೆ. ಡೈರೆಕ್ಟರಿ ನೇಮ್ ನೀವು ಪ್ರಸ್ತುತ ಮಾಡಲು ಬಯಸುವ ಡೈರೆಕ್ಟರಿಯ ಪೂರ್ಣ ಅಥವಾ ಸಂಬಂಧಿತ ಹೆಸರು. ಸಿಡಿನಿಯತಾಂಕಗಳಿಲ್ಲದೆ ಪ್ರಸ್ತುತವು ನಿಮ್ಮ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಮಾಡುತ್ತದೆ. ಕಾರ್ಯ 3. ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯನ್ನು ಒಂದು ಹಂತವನ್ನು ಹೆಚ್ಚಿಸಿ. ಅದನ್ನು ಪರಿಶೀಲಿಸಿ, ನಂತರ ನಿಮ್ಮ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗೆ ಹಿಂತಿರುಗಿ. ಡೈರೆಕ್ಟರಿ ಬದಲಾವಣೆಯನ್ನು ಪರಿಶೀಲಿಸಿ. ಪೂರ್ಣಗೊಂಡ ಆಜ್ಞೆಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯು ವರದಿಯಲ್ಲಿ ಪ್ರತಿಫಲಿಸುತ್ತದೆ. 4. ತಂಡ ls.
ವಾಕ್ಯ ರಚನೆ: ls
ಡೈರೆಕ್ಟರಿ_ಹೆಸರು ವಿವರಣೆ: ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಡೈರೆಕ್ಟರಿಯ ವಿಷಯಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಆಜ್ಞೆ. lsನಿಯತಾಂಕಗಳಿಲ್ಲದೆ, ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯಿಂದ ಫೈಲ್ಗಳ ಪಟ್ಟಿಯನ್ನು ಮುದ್ರಿಸುತ್ತದೆ. ಫಲಿತಾಂಶದ ಪಟ್ಟಿಯಲ್ಲಿ ಹೆಸರುಗಳು " ಚಿಹ್ನೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುವ ಫೈಲ್ಗಳನ್ನು ಒಳಗೊಂಡಿರುವುದಿಲ್ಲ .
” - ವಿವಿಧ ರಚಿಸಿದ ಫೈಲ್ಗಳು ಸಿಸ್ಟಮ್ ಕಾರ್ಯಕ್ರಮಗಳುನಿಮ್ಮ ಸ್ವಂತ ಉದ್ದೇಶಗಳಿಗಾಗಿ. ನೋಡು ಪೂರ್ಣ ಪಟ್ಟಿಆಜ್ಞೆಯಲ್ಲಿ ಫೈಲ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು ls
ಕೀ "-ಎ", ಆ. ls - ಡೈರೆಕ್ಟರಿ_ಹೆಸರು ಫೈಲ್ ಅನುಮತಿಗಳು ಪ್ರತಿ ಫೈಲ್ನೊಂದಿಗೆ UNIX OS
ಫೈಲ್ಗೆ "ಅನುಮತಿಗಳು" ಎಂಬ 12-ಬಿಟ್ ಪದದೊಂದಿಗೆ ಸಂಯೋಜಿಸಲಾಗಿದೆ. ಈ ಪದದ ಕೆಳಗಿನ 9 ಬಿಟ್ಗಳನ್ನು ಮೂರು ಬಿಟ್ಗಳ ಮೂರು ಗುಂಪುಗಳಾಗಿ ಸಂಯೋಜಿಸಲಾಗಿದೆ; ಪ್ರತಿಯೊಂದು ಗುಂಪು ಫೈಲ್ ಮಾಲೀಕರಿಗೆ, ಅವರ ಗುಂಪಿಗೆ ಮತ್ತು ಎಲ್ಲಾ ಇತರ ಬಳಕೆದಾರರಿಗೆ ಪ್ರವೇಶ ಹಕ್ಕುಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಪ್ರತಿ ಗುಂಪಿನಲ್ಲಿರುವ ಮೂರು ಬಿಟ್ಗಳು ಫೈಲ್ ಅನ್ನು ಓದುವ, ಪ್ರಶ್ನಿಸುವ ಮತ್ತು ಬಳಸುವ ಹಕ್ಕಿಗೆ ಜವಾಬ್ದಾರರಾಗಿರುತ್ತಾರೆ. ನಿರ್ದಿಷ್ಟ ಫೈಲ್ಗೆ ಪ್ರವೇಶ ಹಕ್ಕುಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು, ನೀವು ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು , ಉದಾಹರಣೆಗೆ: > ls -l /bin/cat ಒಂದು ಸಾಲಿನ ಆರಂಭದಲ್ಲಿ ಇರುವ ಅಕ್ಷರಗಳ ಗುಂಪು -rwxr-xr-x
ಫೈಲ್ ಪ್ರಕಾರವನ್ನು ತೋರಿಸುತ್ತದೆ (ಮೊದಲ ಅಕ್ಷರ; ಮೈನಸ್ ಚಿಹ್ನೆ ಎಂದರೆ ನಾವು ಸಾಮಾನ್ಯ ಫೈಲ್, ಅಕ್ಷರದೊಂದಿಗೆ ವ್ಯವಹರಿಸುತ್ತಿದ್ದೇವೆ ಡಿ
ಮಾಲೀಕರಿಗೆ ಕ್ರಮವಾಗಿ ಡೈರೆಕ್ಟರಿ, ಇತ್ಯಾದಿ) ಮತ್ತು ಪ್ರವೇಶ ಹಕ್ಕುಗಳನ್ನು ಅರ್ಥೈಸುತ್ತದೆ (ಇನ್ ಈ ಸಂದರ್ಭದಲ್ಲಿ rwx
, ಅಂದರೆ ಓದಲು, ಬರೆಯಲು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಿ), ಗುಂಪು ಮತ್ತು ಎಲ್ಲರೂ (ಈ ಸಂದರ್ಭದಲ್ಲಿ r-x
, ಅಂದರೆ ಬರೆಯುವ ಹಕ್ಕುಗಳಿಲ್ಲ). ಆದ್ದರಿಂದ ಫೈಲ್ /ಬಿನ್/ಬೆಕ್ಕು
ಯಾವುದೇ ಬಳಕೆದಾರರಿಂದ ಓದಬಹುದು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು, ಆದರೆ ಬಳಕೆದಾರರು ಮಾತ್ರ ಅದನ್ನು ಮಾರ್ಪಡಿಸಬಹುದು ಮೂಲ
(ಅಂದರೆ ನಿರ್ವಾಹಕರು). ನೀವು ಫೈಲ್ ಅನುಮತಿಗಳ ಪದವನ್ನು ಹೀಗೆ ಬರೆಯಬಹುದು ಅಷ್ಟಮ ಸಂಖ್ಯೆ(3 ಅಕ್ಷರಗಳು - ಆಕ್ಟಲ್ ಡಿಜಿಟ್), ಮೂರು-ಅಂಕಿಯ (ಮಾಲೀಕರು, ಗುಂಪು, ಇತರ ಬಳಕೆದಾರರು) ಈ ಮೂರು-ಅಂಕಿಯ ಆಕ್ಟಲ್ ಸಂಖ್ಯೆಯ ಪ್ರತಿ ಅಕ್ಷರವು ಹಕ್ಕುಗಳ ಮೊತ್ತವಾಗಿ ರೂಪುಗೊಳ್ಳುತ್ತದೆ: 4 - ಓದುವ ಹಕ್ಕುಗಳು, 2 - ಹಕ್ಕುಗಳನ್ನು ಬರೆಯುವುದು, 1 - ಬಳಕೆ ( ಬೈನರಿ ಟ್ರೈಡ್ನಿಂದ) : (111) 2 =2 0 +2 1 +2 2 =(1+2+4) 10 .
ಉದಾಹರಣೆಗೆ, 7 = 1 + 2 + 4 Þ ಬಲ rwx
4 2 1
6 = 0 + 2+ 4 Þ ಬಲ rw- -
4 2 0
ಮೂರು-ಅಂಕಿಯ ಸಂಖ್ಯೆಯಲ್ಲಿ, ಹಕ್ಕುಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ: 744
ಎಲ್ಲಾ ಹಕ್ಕುಗಳನ್ನು ಮಾಲೀಕರಿಗೆ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ, ಗುಂಪಿಗೆ ಓದಲು ಮಾತ್ರ ಮತ್ತು ಇತರ ಬಳಕೆದಾರರಿಗೆ ಓದಲು ಮಾತ್ರ. ಫೈಲ್ ಅನುಮತಿಗಳನ್ನು ಬಳಸಲು, ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ chmod
, ಇದು ಹೊಸ ಅನುಮತಿಗಳನ್ನು ಆಕ್ಟಲ್ ಸಂಖ್ಯೆಯಂತೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ: $ chmod 744 filel.c. ಕಾರ್ಯ 4. ಎ) ಸ್ವೀಕರಿಸಲು ಸಂಪೂರ್ಣ ಮಾಹಿತಿ ls ಆಜ್ಞೆಯ ಬಗ್ಗೆ, ಮ್ಯಾನ್ ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸಿ. ಕಮಾಂಡ್ ಔಟ್ಪುಟ್ ಅನ್ನು ಕೆಲವು ಪಠ್ಯ ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಿ. ಬಿ) ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯ ಸಂಪೂರ್ಣ ವಿಷಯಗಳನ್ನು ನೋಡಿ ಮತ್ತು ಈ ಔಟ್ಪುಟ್ ಅನ್ನು ಪಠ್ಯ ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ. ಸಿ) ಆಜ್ಞೆಯನ್ನು ಬಳಸುವುದು ls -l<имя_файла> ಹಂತ 4b ನಲ್ಲಿ ನೀವು ಕೆಲಸ ಮಾಡಿದ ಪಠ್ಯ ಫೈಲ್ಗೆ ಪ್ರವೇಶ ಹಕ್ಕುಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಮುದ್ರಿಸಿ, ನಂತರ ಈ ಮಾಹಿತಿಯನ್ನು ಅದೇ ಪಠ್ಯ ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಿ. ನಿಮ್ಮ ತೀರ್ಮಾನವನ್ನು ವಿವರಿಸಿ. 5. ತಂಡ ಬೆಕ್ಕು.
I/O ಮರುನಿರ್ದೇಶನ. ಪರದೆಯ ಮೇಲೆ ಸಣ್ಣ ಪಠ್ಯ ಫೈಲ್ನ ವಿಷಯಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ನೀವು ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು: ಬೆಕ್ಕುಫೈಲ್ ಹೆಸರು ಗಮನ!ಈ ರೀತಿಯಲ್ಲಿ ಡೈರೆಕ್ಟರಿ ಮತ್ತು ಬೈನರಿ ಫೈಲ್ಗಳ ವಿಷಯಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಪ್ರಯತ್ನಿಸಬೇಡಿ. ದೊಡ್ಡ ಪರೀಕ್ಷಾ ಫೈಲ್ ಅನ್ನು ತಂಡವು ಸುಲಭವಾಗಿ ವೀಕ್ಷಿಸಬಹುದು ಹೆಚ್ಚು
(ಬಳಕೆಯ ವಿವರಣೆಗಾಗಿ, ನೋಡಿ UNIX ಕೈಪಿಡಿ
) ಆಜ್ಞೆಯು ಇಲ್ಲಿ ಏಕೆ ಅನಾನುಕೂಲವಾಗಿದೆ? ಬೆಕ್ಕು
? ತಂಡದಲ್ಲಿ ಬೆಕ್ಕು
ನೀವು ಬಹು ಫೈಲ್ ಹೆಸರುಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು: ಬೆಕ್ಕು ಫೈಲ್1 ಫೈಲ್ 2 ... ಫೈಲ್ ಎನ್ ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಸತತವಾಗಿ ಎಲ್ಲಾ ಫೈಲ್ಗಳ ವಿಷಯಗಳನ್ನು ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. ನೀವು ಫೈಲ್ಗೆ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಬಹುದು: cat file 1 file 2 > results_file ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಔಟ್ಪುಟ್ (ಸ್ಕ್ರೀನ್) ನಿಂದ ಫೈಲ್ಗೆ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುವುದು ಎಲ್ಲಾ ಆಜ್ಞೆಗಳಿಗೆ ಪ್ರಮಾಣಿತವಾಗಿದೆ. ನೀವು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಇನ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಬಹುದು (ಕೀಬೋರ್ಡ್ನಿಂದ), ಉದಾಹರಣೆಗೆ, " ಚಿಹ್ನೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಫೈಲ್ನಿಂದ ಪ್ರೋಗ್ರಾಂಗಾಗಿ ಡೇಟಾವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು<”. ಬೆಕ್ಕು > new_file - ನೀವು ಕೀಬೋರ್ಡ್ನಿಂದ ನಮೂದಿಸಿದ ವಿಷಯದೊಂದಿಗೆ ಹೊಸ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ. ಡೇಟಾ ಎಂಟ್ರಿ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಿ -
ಕಾರ್ಯ 5. ಬೆಕ್ಕು ಬಳಸಿ ಹೊಸ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ ಮತ್ತು ಅದರ ವಿಷಯಗಳನ್ನು ವೀಕ್ಷಿಸಿ. ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಸ್ಟ್ರೀಮ್ನಿಂದ ಔಟ್ಪುಟ್ ಅನ್ನು ಮತ್ತೊಂದು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಿ, ನೀವು ಕೀಬೋರ್ಡ್ನಿಂದ ನಮೂದಿಸುವ ಹೆಸರನ್ನು ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ. 6. ಫೈಲ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಸರಳವಾದ ಆಜ್ಞೆಗಳು : cp, rm, mkdir, mv
ಹೊಸ ಡೈರೆಕ್ಟರಿಯನ್ನು ರಚಿಸಲು ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ: mkdirಡೈರೆಕ್ಟರಿ_ಹೆಸರು ಒಂದು ಫೈಲ್ನ ವಿಷಯಗಳನ್ನು ಇನ್ನೊಂದಕ್ಕೆ ನಕಲಿಸಲು, ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ: cp file_source_file_destination. ತಂಡ cp ಫೈಲ್ 1 ಫೈಲ್ 2…. ಫೈಲ್ N ಗಮ್ಯಸ್ಥಾನ ಡೈರೆಕ್ಟರಿ ಫೈಲ್ ಅಥವಾ ಫೈಲ್ಗಳನ್ನು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಡೈರೆಕ್ಟರಿಗೆ ತಮ್ಮ ಹೆಸರಿನಲ್ಲಿ destination_directory ಹೆಸರಿನೊಂದಿಗೆ ನಕಲಿಸಲು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ನಕಲಿಸಿದ ಫೈಲ್ಗಳ ಹೆಸರುಗಳ ಬದಲಿಗೆ, ನೀವು ಅವುಗಳ ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಬಳಸಬಹುದು. ಮೆಟಾಕ್ಯಾರೆಕ್ಟರ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಮಾದರಿಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ: * - ಖಾಲಿ ಅಕ್ಷರಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಎಲ್ಲಾ ಅಕ್ಷರಗಳ ಸಾಲುಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ. ಎಲ್ಲಾ ಒಂದೇ ಪಾತ್ರಗಳು [...] - ಬ್ರಾಕೆಟ್ಗಳಲ್ಲಿ ಸುತ್ತುವರಿದ ಯಾವುದೇ ಅಕ್ಷರಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ. ಮೈನಸ್ ಚಿಹ್ನೆಯಿಂದ ಬೇರ್ಪಡಿಸಲಾದ ಜೋಡಿ ಅಕ್ಷರಗಳು ಅಕ್ಷರಗಳ ಶ್ರೇಣಿಯನ್ನು ಸೂಚಿಸುತ್ತವೆ. ತಂಡ cp-r dir_source dir_destination ಒಂದು ಡೈರೆಕ್ಟರಿಯನ್ನು (source_dir) ಹೊಸ ಡೈರೆಕ್ಟರಿಗೆ (destination_dir) ಪುನರಾವರ್ತಿತವಾಗಿ ನಕಲು ಮಾಡಲು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ನಕಲು ಆಜ್ಞೆಗಳಲ್ಲಿನ ಹೆಸರುಗಳ ಬದಲಿಗೆ, ಅವುಗಳ ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಬಳಸಬಹುದು. ತಂಡ rm ಫೈಲ್ 1 ಫೈಲ್ 2…. ಫೈಲ್ ಎನ್ ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯಿಂದ 1 ಅಥವಾ ಹೆಚ್ಚಿನ ನಿಯಮಿತ ಫೈಲ್ಗಳನ್ನು ಅಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಹೆಸರುಗಳ ಬದಲಿಗೆ ವೈಲ್ಡ್ಕಾರ್ಡ್ಗಳನ್ನು ಬಳಸಬಹುದು. ಆಜ್ಞೆಯಲ್ಲಿ ನೀವು ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ಅವುಗಳ ವಿಷಯಗಳೊಂದಿಗೆ (ಪುನರಾವರ್ತಿತ ಅಳಿಸುವಿಕೆ) ಅಳಿಸಲು ಬಯಸಿದರೆ rm
ಕೀಲಿಯನ್ನು ಬಳಸಿ -ಆರ್
Rm-r dir 1 dir 2 ಆಜ್ಞೆಯನ್ನು ಮರುಹೆಸರಿಸಿ: mv source_name destination_name source_name ಹೆಸರಿನ ಫೈಲ್ ಅನ್ನು destination_name ಹೆಸರಿನ ಫೈಲ್ಗೆ ಮರುಹೆಸರಿಸಲಾಗಿದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೊದಲು, destination_name ಹೆಸರಿನ ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿರಬಾರದು. ಕಾರ್ಯ 6. ನಿಮ್ಮ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಹೊಸ ಡೈರೆಕ್ಟರಿಯನ್ನು ರಚಿಸಿ. ಎರಡು ಸಾಲುಗಳ ವಿಷಯದೊಂದಿಗೆ ಸಣ್ಣ ಪರೀಕ್ಷಾ ಫೈಲ್ ಅನ್ನು ಆಯೋಜಿಸಿ: “ನಾನು UNIX OS ನಲ್ಲಿ ಹೇಗೆ ಕೆಲಸ ಮಾಡಬೇಕೆಂದು ಕಲಿಯುತ್ತಿದ್ದೇನೆ ನಾನು ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಆಯೋಜಿಸುತ್ತೇನೆ. ” ಈ ಫೈಲ್ನ ವಿಷಯಗಳನ್ನು ಅದೇ ಹೆಸರಿನೊಂದಿಗೆ ಇನ್ನೊಂದಕ್ಕೆ ನಕಲಿಸಿ, ಆದರೆ /home ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ. ನಕಲು ಯಶಸ್ವಿಯಾದರೆ ನಿಮ್ಮ ಡೈರೆಕ್ಟರಿಯಿಂದ ಮೂಲತಃ ರಚಿಸಲಾದ ಫೈಲ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ. ಬಳಸಿದ ಡೈರೆಕ್ಟರಿಗಳು ಮತ್ತು ಫೈಲ್ಗಳ ವಿಷಯಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. ಕಾರ್ಯ 7. 1) ಮೂಲ UNIX OS ಆಜ್ಞೆಗಳೊಂದಿಗೆ ಸಂವಾದಾತ್ಮಕವಾಗಿ ಕೆಲಸ ಮಾಡುವುದನ್ನು ನೀವು ಕರಗತ ಮಾಡಿಕೊಂಡ ನಂತರ, ಅನುಕ್ರಮವಾದ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಗೆ ಅನುಗುಣವಾದ ಸ್ಕ್ರಿಪ್ಟ್ನೊಂದಿಗೆ ಸ್ಕ್ರಿಪ್ಟ್ ರಚಿಸಲು Kwriter ಸಂಪಾದಕವನ್ನು ಬಳಸಿ: ಕಾರ್ಯ 3, ಕಾರ್ಯ 4B, 4B, ಕಾರ್ಯ 5, ಕಾರ್ಯ 6. ಕಾರ್ಯ 6 ರಲ್ಲಿ, ಫೈಲ್ ನಕಲು ಯಶಸ್ವಿಯಾಗಿದೆಯೇ, ಪ್ರದರ್ಶಿಸುತ್ತದೆಯೇ ಎಂದು ಪ್ರೋಗ್ರಾಮಿಕ್ ಆಗಿ ಪರಿಶೀಲಿಸಲು ಮರೆಯಬೇಡಿ ಪಠ್ಯ ಸಂದೇಶಗಳುಮತ್ತು ಅನುಗುಣವಾದ ಡೈರೆಕ್ಟರಿಗಳ ವಿಷಯಗಳು. ಒಳಗೆ ಇರುವುದು ಅವಶ್ಯಕ ಬ್ಯಾಚ್ ಫೈಲ್ಕೀಬೋರ್ಡ್ನಿಂದ ಡೇಟಾ ಇನ್ಪುಟ್ಗಾಗಿ ವಿನಂತಿಗಳ ಸಮರ್ಥ ವಿತರಣೆಯನ್ನು ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಆಯೋಜಿಸಲಾಗಿದೆ: $ echo - n “ವಿನಂತಿ ಪಠ್ಯ”. 2) Myscript1 ಎಂಬ ಹೆಸರಿನೊಂದಿಗೆ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಉಳಿಸಿ, ಆಜ್ಞೆಯೊಂದಿಗೆ ಅದನ್ನು ಚಲಾಯಿಸಿ sh Myscript1 ವಿನಂತಿಸಿದ ಡೇಟಾವನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. 3) ಪೂರ್ಣಗೊಂಡ ಪ್ರಯೋಗಾಲಯದ ಕೆಲಸದ ವರದಿಯನ್ನು ಕಂಪೈಲ್ ಮಾಡಿ, ಇದು ಸಂವಾದಾತ್ಮಕ ಮೋಡ್ನಲ್ಲಿ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ನ ಪಠ್ಯವನ್ನು (ಕಾಮೆಂಟ್ಗಳೊಂದಿಗೆ) ಮತ್ತು ಪರದೆಯ ಮೇಲೆ ಮತ್ತು ಫೈಲ್ಗಳಲ್ಲಿ ಪಡೆದ ಫಲಿತಾಂಶಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ಕೆಲಸವನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ. ಸಿಸ್ಟಮ್ ಕರೆಗಳು ಗೆಟುಯಿಡ್ ಮತ್ತು ಗೆಟ್ಪಿಡ್
ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿದ ಬಳಕೆದಾರರ ಗುರುತಿಸುವಿಕೆಯನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ - ಯುಐಡಿ
ಮತ್ತು ಅದು ಸೇರಿರುವ ಗುಂಪಿನ ID ,-ಜಿಐಡಿ
ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಾಧ್ಯ getuid () ಮತ್ತು getpid ()
ಈ ಪ್ರೋಗ್ರಾಂ ಒಳಗೆ ಅವುಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮೂಲಕ. ಸಿಸ್ಟಮ್ ಕರೆ ಮೂಲಮಾದರಿಗಳು: #ಸೇರಿಸು #ಸೇರಿಸು uid_t getuid(ಶೂನ್ಯ); gid_t getgid(ಶೂನ್ಯ); ಕಾರ್ಯ 8. ಪ್ರೋಗ್ರಾಂ ಚಾಲನೆಯಲ್ಲಿರುವ ಬಳಕೆದಾರರ ಬಳಕೆದಾರ ID ಮತ್ತು ಗುಂಪು ID ಅನ್ನು ಮುದ್ರಿಸುವ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಬರೆಯಿರಿ, ಕಂಪೈಲ್ ಮಾಡಿ ಮತ್ತು ರನ್ ಮಾಡಿ. ವರದಿಯಲ್ಲಿ ಫಲಿತಾಂಶಗಳೊಂದಿಗೆ ಕಾರ್ಯಕ್ರಮವನ್ನು ಸೇರಿಸಿ. 1. ಫೈಲ್ನ ಪರಿಕಲ್ಪನೆ UNIX OS
. ಏನಾಯ್ತು ಹೋಮ್ ಡೈರೆಕ್ಟರಿ? 2. ಗ್ರೂಪಿಂಗ್ ಆಜ್ಞೆಗಳ ಅರ್ಥವೇನು? ಶೆಲ್
- ವ್ಯಾಖ್ಯಾನಕಾರ? ಬಳಕೆಯ ಉದಾಹರಣೆಗಳನ್ನು ಒದಗಿಸಿ. 3. I/O ಅನ್ನು ಹೇಗೆ ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತದೆ? 4. ಕಮಾಂಡ್ ಪೈಪ್ಲೈನ್ ಎಂದರೇನು? ಒಂದು ಉದಾಹರಣೆ ನೀಡಿ. 5. ಮೂಲಕ ಶೆಲ್
ಅಂಕಗಣಿತದ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ ಶೆಲ್
-ವೇರಿಯಬಲ್? 6. ಫೈಲ್ ಹೆಸರುಗಳನ್ನು ರಚಿಸುವ ನಿಯಮಗಳು ಯಾವುವು? 7. ಕಮಾಂಡ್ ಪರ್ಯಾಯವನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ? 8. ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಹೇಗೆ ಅರ್ಥೈಸುವುದು cmd1&cmd2&
? 9. ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಹೇಗೆ ಅರ್ಥೈಸುವುದು cmd1 && cmd2 &
? 10. ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಹೇಗೆ ಅರ್ಥೈಸುವುದು cmd1 || cmd2&
? 11. ನಲ್ಲಿರುವಂತೆ UNIX
ಫೈಲ್ ಅನುಮತಿಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆಯೇ? ನಿರ್ದಿಷ್ಟ ಫೈಲ್ಗಾಗಿ ಅವುಗಳನ್ನು ವೀಕ್ಷಿಸಲು ನೀವು ಯಾವ ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು? 12. ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿದ ಬಳಕೆದಾರರ ಗುರುತಿಸುವಿಕೆಯನ್ನು ಮತ್ತು ಅವರ ಗುಂಪಿನ ಗುರುತಿಸುವಿಕೆಯನ್ನು ಹೇಗೆ ನಿರ್ಧರಿಸುವುದು? ಪ್ರಯೋಗಾಲಯದ ಕೆಲಸ № 3.
ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನಲ್ಲಿನ ಪ್ರಕ್ರಿಯೆಗಳು UNIX.
ಕೆಲಸದ ಉದ್ದೇಶ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ರಚಿಸಲು ಕಲಿಯಿರಿ ಮತ್ತು ಭಾಷೆಯಲ್ಲಿನ ಪ್ರೋಗ್ರಾಂಗಳಲ್ಲಿ ಬಳಸುವ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರಕ್ರಿಯೆಗಳ ಬಳಕೆದಾರ ಸಂದರ್ಭವನ್ನು ಬದಲಾಯಿಸುವುದನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳಿ ಜೊತೆಗೆ, ವಿ UNIX OS.
1. ಪ್ರಕ್ರಿಯೆಗಳ ಸಂಘಟನೆಯನ್ನು ಅಧ್ಯಯನ ಮಾಡಿ UNIX
: ಪ್ರಕ್ರಿಯೆಯ ಪರಿಕಲ್ಪನೆ, ಪ್ರಕ್ರಿಯೆಯ ಸಂದರ್ಭ, ಜೀವನ ಚಕ್ರಪ್ರಕ್ರಿಯೆ, ಪ್ರಕ್ರಿಯೆ ಗುರುತಿಸುವಿಕೆ, ಕ್ರಮಾನುಗತ ರಚನೆಪ್ರಕ್ರಿಯೆಗಳು. ಗೆ ಬರೆಯಿರಿ ಜೊತೆಗೆ
ಮತ್ತು ಕಾರ್ಯ 1 ರ ಪ್ರಕಾರ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಡೀಬಗ್ ಮಾಡಿ. 2. ಪ್ರಕ್ರಿಯೆಯನ್ನು ರಚಿಸುವುದರೊಂದಿಗೆ ನೀವೇ ಪರಿಚಿತರಾಗಿರಿ UNIX
, ಪ್ರಕ್ರಿಯೆಯ ಪೂರ್ಣಗೊಳಿಸುವಿಕೆಯ ಸಂಘಟನೆಯೊಂದಿಗೆ. ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಬರೆಯಿರಿ ಮತ್ತು ಡೀಬಗ್ ಮಾಡಿ (ಭಾಷೆ ಜೊತೆಗೆ
) ಕಾರ್ಯ 2 ರ ಪ್ರಕಾರ, ಅದನ್ನು ವರದಿಯಲ್ಲಿ ಸೇರಿಸಿ. 3. ಕಾರ್ಯ ನಿಯತಾಂಕಗಳನ್ನು ಅನ್ವೇಷಿಸಿ ಮುಖ್ಯ()
ಭಾಷೆಯಲ್ಲಿ ಜೊತೆಗೆ
, ಪರಿಸರ ಅಸ್ಥಿರಮತ್ತು ವಾದಗಳು ಆಜ್ಞಾ ಸಾಲಿನ. ಒಂದು ಭಾಷೆಯಲ್ಲಿ ಪ್ರೋಗ್ರಾಂ ಬರೆಯಿರಿ ಜೊತೆಗೆ
ಕಾರ್ಯ 3 ಗೆ ಅನುಗುಣವಾಗಿ, ಡೀಬಗ್ ಮಾಡಿ ಮತ್ತು ಫಲಿತಾಂಶಗಳೊಂದಿಗೆ ವರದಿಯಲ್ಲಿ ಸೇರಿಸಿ. 4. ಸಿಸ್ಟಮ್ ಕರೆಯನ್ನು ಸಂಘಟಿಸಲು ಕಾರ್ಯಗಳ ಕುಟುಂಬವನ್ನು ಅನ್ವೇಷಿಸಿ ಎಕ್ಸಿಕ್ ().
5. ಭಾಷೆಯಲ್ಲಿ ಪ್ರೋಗ್ರಾಂ ಬರೆಯಿರಿ ಜೊತೆಗೆ
ಶಿಕ್ಷಕರು ನೀಡಿದ ಟಾಸ್ಕ್ 4 ರ ಆವೃತ್ತಿಗೆ ಅನುಗುಣವಾಗಿ, ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಡೀಬಗ್ ಮಾಡಿ ಮತ್ತು ಶಿಕ್ಷಕರಿಗೆ ಪಡೆದ ಫಲಿತಾಂಶಗಳನ್ನು ಪ್ರದರ್ಶಿಸಿ. ವರದಿಯಲ್ಲಿ ಫಲಿತಾಂಶಗಳೊಂದಿಗೆ ಕಾರ್ಯಕ್ರಮವನ್ನು ಸೇರಿಸಿ. 6. ಪರೀಕ್ಷಾ ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸುವ ಮೂಲಕ ಶಿಕ್ಷಕರಿಗೆ ಕೆಲಸವನ್ನು ರಕ್ಷಿಸಿ. ಆಜ್ಞಾ ಸಾಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ಗಳ ಔಟ್ಪುಟ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ನೀವು ಈಗಾಗಲೇ ಎರಡು ವಿಧಾನಗಳೊಂದಿಗೆ ಪರಿಚಿತರಾಗಿರುವಿರಿ: ಪ್ರತಿ ಪ್ರಕ್ರಿಯೆಯು ಒಂಬತ್ತು ತೆರೆದ ಫೈಲ್ ಹ್ಯಾಂಡಲ್ಗಳನ್ನು ಹೊಂದಲು ಅನುಮತಿಸಲಾಗಿದೆ. ಬ್ಯಾಷ್ ಶೆಲ್ ID ಗಳು 0, 1 ಮತ್ತು 2 ನೊಂದಿಗೆ ಮೊದಲ ಮೂರು ಹ್ಯಾಂಡಲ್ಗಳನ್ನು ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ. ಅವುಗಳ ಅರ್ಥ ಇಲ್ಲಿದೆ. ಅನೇಕ ಬ್ಯಾಷ್ ಆಜ್ಞೆಗಳುಡೇಟಾವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕಾದ ಫೈಲ್ ಅನ್ನು ಆಜ್ಞಾ ಸಾಲಿನ ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ STDIN ನಿಂದ ಇನ್ಪುಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿ. ಉದಾಹರಣೆಗೆ, ಬೆಕ್ಕು ಆಜ್ಞೆಗೆ ಇದು ನಿಜ. ನೀವು ಪ್ರವೇಶಿಸಿದಾಗ ಬೆಕ್ಕು ಆಜ್ಞೆಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ, ಯಾವುದೇ ನಿಯತಾಂಕಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದೆ, ಇದು STDIN ನಿಂದ ಇನ್ಪುಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ನೀವು ಮುಂದಿನ ಸಾಲನ್ನು ನಮೂದಿಸಿದ ನಂತರ, ಬೆಕ್ಕು ಅದನ್ನು ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ ನಾವು ಈ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಹೆಚ್ಚಿನ ಡೇಟಾವನ್ನು ಸೇರಿಸಬಹುದಾದ ಡೇಟಾ ಫೈಲ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ: Pwd >> myfile ಕಮಾಂಡ್ ಔಟ್ಪುಟ್ ಅನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ
ಇಲ್ಲಿಯವರೆಗೆ ಉತ್ತಮವಾಗಿದೆ, ಆದರೆ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ xfile ಅನ್ನು ಪ್ರವೇಶಿಸುವ ಮೂಲಕ ನೀವು ಈ ಕೆಳಗಿನಂತೆ ಏನನ್ನಾದರೂ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿದರೆ ಏನು ಮಾಡಬೇಕು, ಎಲ್ಲವನ್ನೂ myfile ಗೆ ದೋಷ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. Ls –l xfile > myfile ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಫೈಲ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸುವಾಗ ದೋಷ ಉಂಟಾಗುತ್ತದೆ, ಆದರೆ ಶೆಲ್ ದೋಷ ಸಂದೇಶಗಳನ್ನು ಪರದೆಯ ಮೇಲೆ ಮುದ್ರಿಸುವ ಮೂಲಕ ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಿಲ್ಲ. ಆದರೆ ಫೈಲ್ನಲ್ಲಿ ದೋಷ ಸಂದೇಶಗಳನ್ನು ಸೇರಿಸಬೇಕೆಂದು ನಾವು ಬಯಸಿದ್ದೇವೆ. ಏನು ಮಾಡಬೇಕು? ಉತ್ತರ ಸರಳವಾಗಿದೆ - ಮೂರನೇ ಗುಣಮಟ್ಟದ ವಿವರಣೆಯನ್ನು ಬಳಸಿ. ಆದ್ದರಿಂದ, ನಾವು ದೋಷ ಸಂದೇಶಗಳನ್ನು ಪರದೆಯ ಮೇಲೆ ಮುದ್ರಿಸುವ ಬದಲು ಲಾಗ್ ಫೈಲ್ ಅಥವಾ ಬೇರೆಡೆಗೆ ಮರುನಿರ್ದೇಶಿಸಲು ಬಯಸುತ್ತೇವೆ ಎಂದು ಹೇಳೋಣ. Ls -l xfile 2>myfile cat ./myfile Ls –l myfile xfile anotherfile 2> ದೋಷವಿಷಯ 1> ಸರಿಯಾದ ವಿಷಯ 1> ರಚನೆಗೆ ಧನ್ಯವಾದಗಳು ಸರಿಯಾದ ವಿಷಯ ಫೈಲ್ಗೆ ls ಆಜ್ಞೆಯು ಸಾಮಾನ್ಯವಾಗಿ STDOUT ಗೆ ಕಳುಹಿಸುವದನ್ನು ಶೆಲ್ ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ. 2> ಮರುನಿರ್ದೇಶನ ಆಜ್ಞೆಯಿಂದಾಗಿ STDERR ಗೆ ಹೋಗುವ ದೋಷ ಸಂದೇಶಗಳು ದೋಷದ ವಿಷಯ ಫೈಲ್ನಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತವೆ. ಅಗತ್ಯವಿದ್ದರೆ, &> ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು STDERR ಮತ್ತು STDOUT ಎರಡನ್ನೂ ಒಂದೇ ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಬಹುದು: ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ನಂತರ, STDERR ಮತ್ತು STDOUT ಗಾಗಿ ಉದ್ದೇಶಿಸಿರುವುದು ವಿಷಯ ಫೈಲ್ನಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ. #!/bin/bash echo "ಇದು ದೋಷ" >&2 ಪ್ರತಿಧ್ವನಿ "ಇದು ಸಾಮಾನ್ಯ ಔಟ್ಪುಟ್" STDERR ಔಟ್ಪುಟ್ ಫೈಲ್ಗೆ ಹೋಗುವಂತೆ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡೋಣ. ./myscript 2> myfile #!/bin/bash exec 1>ಔಟ್ಫೈಲ್ ಪ್ರತಿಧ್ವನಿ "ಇದು ಎಲ್ಲಾ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುವ ಪರೀಕ್ಷೆ" ಪ್ರತಿಧ್ವನಿ "ಶೆಲ್ ಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಮತ್ತೊಂದು ಫೈಲ್ಗೆ." ಪ್ರತಿಧ್ವನಿ "ಪ್ರತಿ ಸಾಲನ್ನು ಮರುನಿರ್ದೇಶಿಸದೆಯೇ" ಔಟ್ಪುಟ್ ಮರುನಿರ್ದೇಶನ ಆಜ್ಞೆಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಫೈಲ್ ಅನ್ನು ನೀವು ನೋಡಿದರೆ, ಪ್ರತಿಧ್ವನಿ ಆಜ್ಞೆಗಳಿಂದ ಔಟ್ಪುಟ್ ಮಾಡಿದ ಎಲ್ಲವೂ ಆ ಫೈಲ್ನಲ್ಲಿ ಕೊನೆಗೊಂಡಿರುವುದನ್ನು ನೀವು ಕಾಣಬಹುದು. exec ಆಜ್ಞೆಯನ್ನು ಸ್ಕ್ರಿಪ್ಟ್ನ ಪ್ರಾರಂಭದಲ್ಲಿ ಮಾತ್ರವಲ್ಲದೆ ಇತರ ಸ್ಥಳಗಳಲ್ಲಿಯೂ ಬಳಸಬಹುದು: #!/bin/bash exec 2>myerror echo "ಇದು ಆರಂಭಸ್ಕ್ರಿಪ್ಟ್ನ" ಪ್ರತಿಧ್ವನಿ "ಈಗ ಎಲ್ಲಾ ಔಟ್ಪುಟ್ ಅನ್ನು ಮತ್ತೊಂದು ಸ್ಥಳಕ್ಕೆ ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ" ಎಕ್ಸಿಕ್ 1>ಮೈಫೈಲ್ ಎಕೋ "ಇದು ಮೈಫೈಲ್ ಫೈಲ್ಗೆ ಹೋಗಬೇಕು" ಎಕೋ "ಮತ್ತು ಇದು ಮೈರರ್ ಫೈಲ್ಗೆ ಹೋಗಬೇಕು" >&2 exec ಆಜ್ಞೆಯು ಮೊದಲು STDERR ನಿಂದ ಫೈಲ್ myerror ಗೆ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ. ಹಲವಾರು ಪ್ರತಿಧ್ವನಿ ಆಜ್ಞೆಗಳ ಔಟ್ಪುಟ್ ಅನ್ನು ನಂತರ STDOUT ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪರದೆಯ ಮೇಲೆ ಮುದ್ರಿಸಲಾಗುತ್ತದೆ. exec ಆಜ್ಞೆಯು ನಂತರ STDOUT ನಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುವ ಯಾವುದನ್ನಾದರೂ ಫೈಲ್ myfile ಗೆ ಕಳುಹಿಸಲು ಕಾರಣವಾಗುತ್ತದೆ ಮತ್ತು ಅಂತಿಮವಾಗಿ ನಾವು ಎಕೋ ಆಜ್ಞೆಯಲ್ಲಿ STDERR ಗೆ ಮರುನಿರ್ದೇಶನ ಆಜ್ಞೆಯನ್ನು ಬಳಸುತ್ತೇವೆ, ಇದು ಫೈಲ್ myerror ಗೆ ಅನುಗುಣವಾದ ಸಾಲನ್ನು ಬರೆಯಲು ಕಾರಣವಾಗುತ್ತದೆ. ಒಮ್ಮೆ ನೀವು ಇದನ್ನು ಮಾಸ್ಟರಿಂಗ್ ಮಾಡಿದ ನಂತರ, ನೀವು ಎಲ್ಲಿ ಹೋಗಬೇಕೆಂದು ನೀವು ಬಯಸುತ್ತೀರಿ ಅಲ್ಲಿ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಈಗ ಇನ್ಪುಟ್ ಮರುನಿರ್ದೇಶನದ ಬಗ್ಗೆ ಮಾತನಾಡೋಣ. Exec 0< myfile
#!/bin/bash exec 0< testfile
count=1
while read line
do
echo "Line #$count: $line"
count=$(($count + 1))
done
ಹಿಂದಿನ ಲೇಖನದಲ್ಲಿ, ಕೀಬೋರ್ಡ್ನಿಂದ ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ ಅನ್ನು ಓದಲು ಓದುವ ಆಜ್ಞೆಯನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂದು ನೀವು ಕಲಿತಿದ್ದೀರಿ. ಡೇಟಾ ಮೂಲವನ್ನು ಫೈಲ್ ಮಾಡುವ ಮೂಲಕ ನೀವು ಇನ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಿದರೆ, STDIN ನಿಂದ ಡೇಟಾವನ್ನು ಓದಲು ಪ್ರಯತ್ನಿಸುವಾಗ ಓದುವ ಆಜ್ಞೆಯು ಅದನ್ನು ಫೈಲ್ನಿಂದ ಓದುತ್ತದೆ ಮತ್ತು ಕೀಬೋರ್ಡ್ನಿಂದ ಅಲ್ಲ. ಕೆಲವು ಲಿನಕ್ಸ್ ನಿರ್ವಾಹಕರು ಲಾಗ್ ಫೈಲ್ಗಳನ್ನು ಓದಲು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಈ ವಿಧಾನವನ್ನು ಬಳಸುತ್ತಾರೆ. exec ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾವನ್ನು ಔಟ್ಪುಟ್ ಮಾಡಲು ನೀವು ಹ್ಯಾಂಡಲ್ ಅನ್ನು ನಿಯೋಜಿಸಬಹುದು: #!/bin/bash exec 3>myfile echo "ಇದು ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಬೇಕು" ಪ್ರತಿಧ್ವನಿ "ಮತ್ತು ಇದನ್ನು ಫೈಲ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಬೇಕು" >&3 ಪ್ರತಿಧ್ವನಿ "ಮತ್ತು ಇದು ಪರದೆಯ ಮೇಲೆ ಹಿಂತಿರುಗಬೇಕು" ಫೈಲ್ ಅನ್ನು ಓದಿದ ನಂತರ, ನೀವು STDIN ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಬಹುದು ಮತ್ತು ಅದನ್ನು ಎಂದಿನಂತೆ ಬಳಸಬಹುದು: #!/bin/bash exec 6<&0
exec 0< myfile
count=1
while read line
do
echo "Line #$count: $line"
count=$(($count + 1))
done
exec 0<&6
read -p "Are you done now? " answer
case $answer in
y) echo "Goodbye";;
n) echo "Sorry, this is the end.";;
esac
ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, STDIN ಗೆ ಉಲ್ಲೇಖವನ್ನು ಸಂಗ್ರಹಿಸಲು ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ 6 ಅನ್ನು ಬಳಸಲಾಗಿದೆ. ನಂತರ ಇನ್ಪುಟ್ ಮರುನಿರ್ದೇಶನವನ್ನು ಮಾಡಲಾಯಿತು, ಫೈಲ್ STDIN ಗಾಗಿ ಡೇಟಾ ಮೂಲವಾಯಿತು. ನಂತರ ರೀಡ್ ಕಮಾಂಡ್ಗೆ ಇನ್ಪುಟ್ ಮರುನಿರ್ದೇಶಿಸಲಾದ STDIN ನಿಂದ ಬಂದಿದೆ, ಅಂದರೆ ಫೈಲ್ನಿಂದ. ಫೈಲ್ ಅನ್ನು ಓದಿದ ನಂತರ, ಅದನ್ನು ಹ್ಯಾಂಡಲ್ 6 ಗೆ ಮರುನಿರ್ದೇಶಿಸುವ ಮೂಲಕ ನಾವು STDIN ಅನ್ನು ಮರುಹೊಂದಿಸುತ್ತೇವೆ. ಈಗ, ಎಲ್ಲವೂ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು, ಸ್ಕ್ರಿಪ್ಟ್ ಬಳಕೆದಾರರಿಗೆ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುತ್ತದೆ, ಕೀಬೋರ್ಡ್ ಇನ್ಪುಟ್ಗಾಗಿ ಕಾಯುತ್ತದೆ ಮತ್ತು ನಮೂದಿಸಿದದನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ. #!/bin/bash exec 3> myfile echo "ಇದು ಡೇಟಾದ ಪರೀಕ್ಷಾ ಸಾಲು" >&3 exec 3>&- ಪ್ರತಿಧ್ವನಿ "ಇದು ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ" >&3 ವಿಷಯವೆಂದರೆ ನಾವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ವಿವರಣೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಿದ್ದೇವೆ. ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಫೈಲ್ ಹ್ಯಾಂಡಲ್ಗಳನ್ನು ಮುಚ್ಚುವಾಗ ಜಾಗರೂಕರಾಗಿರಿ. ನೀವು ಫೈಲ್ಗೆ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿದರೆ, ನಂತರ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಮುಚ್ಚಿ, ನಂತರ ಅದನ್ನು ಮತ್ತೆ ತೆರೆದರೆ, ಶೆಲ್ ಬದಲಾಯಿಸುತ್ತದೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫೈಲ್ಹೊಸ ಅಂದರೆ, ಈ ಫೈಲ್ಗೆ ಹಿಂದೆ ಬರೆಯಲಾದ ಎಲ್ಲವೂ ಕಳೆದುಹೋಗುತ್ತದೆ. ಈ ಆಜ್ಞೆಯು ಅನೇಕ ಕೀಲಿಗಳನ್ನು ಹೊಂದಿದೆ, ಪ್ರಮುಖವಾದವುಗಳನ್ನು ನೋಡೋಣ. ಇತರ ಎರಡು ಸ್ವಿಚ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಹಿಂತಿರುಗಿದ ಫಲಿತಾಂಶಗಳ ಮೇಲೆ ತಾರ್ಕಿಕ ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿರ್ವಹಿಸಲು -a ಸ್ವಿಚ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ: Lsof -a -p $$ -d 0,1,2 STDIN, STDOUT ಮತ್ತು STDERR ಗೆ ಸಂಬಂಧಿಸಿದ ಫೈಲ್ಗಳ ಪ್ರಕಾರವು CHR (ಕ್ಯಾರೆಕ್ಟರ್ ಮೋಡ್) ಆಗಿದೆ. ಅವೆಲ್ಲವೂ ಟರ್ಮಿನಲ್ಗೆ ಸೂಚಿಸುವುದರಿಂದ, ಫೈಲ್ ಹೆಸರು ಟರ್ಮಿನಲ್ಗೆ ನಿಯೋಜಿಸಲಾದ ಸಾಧನದ ಹೆಸರಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ. ಎಲ್ಲಾ ಮೂರು ಪ್ರಮಾಣಿತ ಫೈಲ್ಓದಲು ಮತ್ತು ಬರೆಯಲು ಎರಡೂ ಲಭ್ಯವಿದೆ. ಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ lsof ಆಜ್ಞೆಯನ್ನು ಕರೆಯುವುದನ್ನು ನೋಡೋಣ, ಇದರಲ್ಲಿ ಪ್ರಮಾಣಿತ ಪದಗಳಿಗಿಂತ ಹೆಚ್ಚುವರಿಯಾಗಿ, ಇತರ ವಿವರಣೆಗಳು ತೆರೆದಿರುತ್ತವೆ: #!/bin/bash exec 3> myfile1 exec 6> myfile2 exec 7< myfile3
lsof -a -p $$ -d 0,1,2,3,6,7
ಸ್ಕ್ರಿಪ್ಟ್ ಔಟ್ಪುಟ್ಗಾಗಿ (3 ಮತ್ತು 6) ಮತ್ತು ಇನ್ಪುಟ್ಗಾಗಿ (7) ಎರಡು ಹಿಡಿಕೆಗಳನ್ನು ತೆರೆಯಿತು. ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಬಳಸಲಾದ ಫೈಲ್ಗಳಿಗೆ ಮಾರ್ಗಗಳನ್ನು ಸಹ ತೋರಿಸಲಾಗಿದೆ. ದೋಷ ಸಂದೇಶಗಳನ್ನು ಹೇಗೆ ನಿಗ್ರಹಿಸುವುದು ಎಂಬುದರ ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ: Ls -al ಬ್ಯಾಡ್ಫೈಲ್ ಇನ್ನೊಂದು ಫೈಲ್ 2> /dev/null Cat /dev/null > myfile ಮುಂದಿನ ಬಾರಿ ನಾವು ಮಾತನಾಡುತ್ತೇವೆ ಲಿನಕ್ಸ್ ಸಂಕೇತಗಳು, ಅವುಗಳನ್ನು ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಹೇಗೆ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದು, ನಿಗದಿತ ಕೆಲಸಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವ ಬಗ್ಗೆ ಮತ್ತು ಹಿನ್ನೆಲೆ ಕಾರ್ಯಗಳ ಬಗ್ಗೆ. ಆತ್ಮೀಯ ಓದುಗರೇ! ಈ ವಸ್ತುವು ಇನ್ಪುಟ್, ಔಟ್ಪುಟ್ ಮತ್ತು ದೋಷ ಸ್ಟ್ರೀಮ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ನಿಮ್ಮ ನಡುವೆ ಅನುಭವದೊಂದಿಗೆ ಮಾತ್ರ ಬರುವ ಎಲ್ಲದರ ಬಗ್ಗೆ ನಿಮಗೆ ತಿಳಿಸುವ ವೃತ್ತಿಪರರು ಇದ್ದಾರೆ ಎಂದು ನಮಗೆ ಖಚಿತವಾಗಿದೆ. ಹಾಗಿದ್ದಲ್ಲಿ, ನಾವು ನಿಮಗೆ ನೆಲವನ್ನು ರವಾನಿಸುತ್ತೇವೆ.ಸುರಂಗಗಳ ಬಳಕೆ
ತೀರ್ಮಾನಗಳು
ಕನ್ವೇಯರ್ಗಳು
ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳಿಗೆ ಮರುನಿರ್ದೇಶನ
ಕನ್ವೇಯರ್ ಚೈನ್
ಬಹು ಪಿನ್ಗಳಿಗೆ ಮರುನಿರ್ದೇಶನ
ಅನುಬಂಧದೊಂದಿಗೆ ಮರುನಿರ್ದೇಶನ
ಎಂಬೆಡೆಡ್ ಡಾಕ್ಯುಮೆಂಟ್
5.5.1 ನಿರ್ವಾಹಕರು >,< и >>
5.5.2 ಆಪರೇಟರ್ |
5.5.3 ಶೋಧಕಗಳು
-ಸಿ ಫೈಲ್
ಫೈಲ್ "ಫೈಲ್"
ವಿಶೇಷ ಫೈಲ್ ಆಗಿದೆ.
-ಆರ್ ಫೈಲ್
ಫೈಲ್ "ಫೈಲ್"
ಅನುಮತಿ ಓದಿದೆ.
;;
ಇಸಾಕ್
ಕೆಲವೊಮ್ಮೆ ನೀವು ಪರದೆಯ ಮೇಲೆ ಏನನ್ನಾದರೂ ತೋರಿಸಬೇಕು ಮತ್ತು ಫೈಲ್ಗೆ ಏನನ್ನಾದರೂ ಬರೆಯಬೇಕು, ಆದ್ದರಿಂದ ಲಿನಕ್ಸ್ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು, ಅಂದರೆ ಸ್ಕ್ರಿಪ್ಟ್ಗಳ ಫಲಿತಾಂಶಗಳನ್ನು ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ಸ್ಥಳಕ್ಕೆ ಕಳುಹಿಸುವುದು ಹೇಗೆ ಎಂದು ಕಲಿಯುವುದು. ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳ ಬಗ್ಗೆ ಮಾತನಾಡುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸೋಣ. ಪ್ರಮಾಣಿತ ಫೈಲ್ ವಿವರಣೆಗಳು
ಲಿನಕ್ಸ್ನಲ್ಲಿರುವ ಎಲ್ಲವೂ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಸೇರಿದಂತೆ ಫೈಲ್ಗಳಾಗಿವೆ. ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಫೈಲ್ಗಳನ್ನು ಗುರುತಿಸುತ್ತದೆ.
ಈ ಮೂರು ವಿಶೇಷ ಹ್ಯಾಂಡಲ್ಗಳು ಸ್ಕ್ರಿಪ್ಟ್ಗೆ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ.
ನೀವು ಪ್ರಮಾಣಿತ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ನಿಜವಾಗಿಯೂ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು. ಅವುಗಳನ್ನು ಸ್ಕ್ರಿಪ್ಟ್ಗಳ ಪರಸ್ಪರ ಕ್ರಿಯೆಯ ಅಡಿಪಾಯಕ್ಕೆ ಹೋಲಿಸಬಹುದು ಹೊರಗಿನ ಪ್ರಪಂಚ. ಅವರ ಬಗ್ಗೆ ವಿವರಗಳನ್ನು ನೋಡೋಣ. STDIN
STDIN ಶೆಲ್ನ ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಆಗಿದೆ. ಟರ್ಮಿನಲ್ಗಾಗಿ, ಪ್ರಮಾಣಿತ ಇನ್ಪುಟ್ ಕೀಬೋರ್ಡ್ ಆಗಿದೆ. ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ಇನ್ಪುಟ್ ಮರುನಿರ್ದೇಶನ ಅಕ್ಷರವನ್ನು ಬಳಸಿದಾಗ -< , Linux заменяет дескриптор файла стандартного ввода на тот, который указан в команде. Система читает файл и обрабатывает данные так, будто они введены с клавиатуры.STDOUT
STDOUT ಶೆಲ್ನ ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಆಗಿದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಇದು ಪರದೆಯಾಗಿದೆ. ಹೆಚ್ಚಿನ ಬ್ಯಾಷ್ ಆದೇಶಗಳು STDOUT ಗೆ ಡೇಟಾವನ್ನು ಔಟ್ಪುಟ್ ಮಾಡುತ್ತದೆ, ಅದು ಕನ್ಸೋಲ್ನಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳಲು ಕಾರಣವಾಗುತ್ತದೆ. >> ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಅದರ ವಿಷಯಗಳಿಗೆ ಸೇರಿಸುವ ಮೂಲಕ ಡೇಟಾವನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಬಹುದು.
myfile ಫೈಲ್ಗೆ ಯಾವ pwd ಔಟ್ಪುಟ್ಗಳನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಈಗಾಗಲೇ ಅದರಲ್ಲಿರುವ ಡೇಟಾ ಎಲ್ಲಿಯೂ ಹೋಗುವುದಿಲ್ಲ.
ಈ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ನಂತರ, ನಾವು ಪರದೆಯ ಮೇಲೆ ದೋಷ ಸಂದೇಶಗಳನ್ನು ನೋಡುತ್ತೇವೆ.
ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಫೈಲ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ
STDERR
STDERR ಶೆಲ್ನ ಪ್ರಮಾಣಿತ ದೋಷ ಸ್ಟ್ರೀಮ್ ಆಗಿದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಈ ಹ್ಯಾಂಡಲ್ STDOUT ಸೂಚಿಸುವ ಅದೇ ವಿಷಯವನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಅದಕ್ಕಾಗಿಯೇ ದೋಷ ಸಂಭವಿಸಿದಾಗ ನಾವು ಪರದೆಯ ಮೇಲೆ ಸಂದೇಶವನ್ನು ನೋಡುತ್ತೇವೆ. ▍ಮರುನಿರ್ದೇಶನ ದೋಷ ಹರಿವು
ನಿಮಗೆ ಈಗಾಗಲೇ ತಿಳಿದಿರುವಂತೆ, ಫೈಲ್ ಹ್ಯಾಂಡಲ್ STDERR 2 ಆಗಿದೆ. ಮರುನಿರ್ದೇಶನ ಆಜ್ಞೆಯ ಮೊದಲು ಈ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಇರಿಸುವ ಮೂಲಕ ನಾವು ದೋಷಗಳನ್ನು ಮರುನಿರ್ದೇಶಿಸಬಹುದು:
ದೋಷ ಸಂದೇಶವು ಈಗ myfile ಗೆ ಹೋಗುತ್ತದೆ.
ದೋಷ ಸಂದೇಶವನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ
▍ ಮರುನಿರ್ದೇಶನ ದೋಷ ಮತ್ತು ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗಳು
ಆಜ್ಞಾ ಸಾಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಬರೆಯುವಾಗ, ನೀವು ದೋಷ ಸಂದೇಶಗಳು ಮತ್ತು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಎರಡನ್ನೂ ಮರುನಿರ್ದೇಶಿಸಬೇಕಾದ ಸಂದರ್ಭಗಳು ಇರಬಹುದು. ಇದನ್ನು ಸಾಧಿಸಲು, ನೀವು ಸರಿಯಾದ ವಿವರಣೆಗಳಿಗಾಗಿ ಮರುನಿರ್ದೇಶನ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ, ದೋಷಗಳು ಮತ್ತು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಹೋಗಬೇಕಾದ ಫೈಲ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ:
ಮರುನಿರ್ದೇಶನ ದೋಷಗಳು ಮತ್ತು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್
STDERR ಮತ್ತು STDOUT ಅನ್ನು ಒಂದೇ ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ
ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ
ಆಜ್ಞಾ ಸಾಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು ಎರಡು ವಿಧಾನಗಳಿವೆ: ▍ತಾತ್ಕಾಲಿಕ ಔಟ್ಪುಟ್ ಮರುನಿರ್ದೇಶನ
ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ, ನೀವು ಒಂದೇ ಸಾಲಿನ ಔಟ್ಪುಟ್ ಅನ್ನು STDERR ಗೆ ಮರುನಿರ್ದೇಶಿಸಬಹುದು. ಇದನ್ನು ಮಾಡಲು, ಮರುನಿರ್ದೇಶನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ, STDERR ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ ಮತ್ತು ಆಂಪರ್ಸಂಡ್ ಅಕ್ಷರದೊಂದಿಗೆ (&):
ನೀವು ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಿದರೆ, ಎರಡೂ ಸಾಲುಗಳು ಪರದೆಯ ಮೇಲೆ ಗೋಚರಿಸುತ್ತವೆ, ಏಕೆಂದರೆ ನೀವು ಈಗಾಗಲೇ ತಿಳಿದಿರುವಂತೆ, ಡೀಫಾಲ್ಟ್ ದೋಷಗಳು ಸಾಮಾನ್ಯ ಡೇಟಾದಂತೆಯೇ ಅದೇ ಸ್ಥಳದಲ್ಲಿ ಔಟ್ಪುಟ್ ಆಗಿರುತ್ತವೆ.
ತಾತ್ಕಾಲಿಕ ಪುನರ್ನಿರ್ದೇಶನ
ನೀವು ನೋಡುವಂತೆ, ಈಗ ಸಾಮಾನ್ಯ ಔಟ್ಪುಟ್ ಅನ್ನು ಕನ್ಸೋಲ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ದೋಷ ಸಂದೇಶಗಳು ಫೈಲ್ಗೆ ಹೋಗುತ್ತವೆ.
ದೋಷ ಸಂದೇಶಗಳನ್ನು ಫೈಲ್ಗೆ ಬರೆಯಲಾಗಿದೆ
▍ಶಾಶ್ವತ ಔಟ್ಪುಟ್ ಮರುನಿರ್ದೇಶನ
ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ಬಹಳಷ್ಟು ಔಟ್ಪುಟ್ ಅನ್ನು ಪರದೆಯ ಮೇಲೆ ಮರುನಿರ್ದೇಶಿಸಬೇಕಾದರೆ, ಪ್ರತಿ ಪ್ರತಿಧ್ವನಿ ಕರೆಗೆ ಸೂಕ್ತವಾದ ಆಜ್ಞೆಯನ್ನು ಸೇರಿಸುವುದು ಅನಾನುಕೂಲವಾಗಿದೆ. ಬದಲಿಗೆ, ನೀವು exec ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಕ್ರಿಪ್ಟ್ನ ಅವಧಿಗೆ ನಿರ್ದಿಷ್ಟ ಹ್ಯಾಂಡಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸುವಂತೆ ಔಟ್ಪುಟ್ ಅನ್ನು ಹೊಂದಿಸಬಹುದು:
ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡೋಣ.
ಎಲ್ಲಾ ಔಟ್ಪುಟ್ ಅನ್ನು ಫೈಲ್ಗೆ ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ
ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡಿದ ನಂತರ ಮತ್ತು ನಾವು ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಿದ ಫೈಲ್ಗಳನ್ನು ನೋಡಿದ ನಂತರ ನೀವು ಪಡೆಯುವುದು ಇದನ್ನೇ.
ವಿಭಿನ್ನ ಫೈಲ್ಗಳಿಗೆ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ
ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಇನ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ
ಇನ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು, ನಾವು ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು ಬಳಸಿದ ಅದೇ ತಂತ್ರವನ್ನು ನೀವು ಬಳಸಬಹುದು. ಉದಾಹರಣೆಗೆ, STDIN ಗಾಗಿ ಫೈಲ್ ಅನ್ನು ಡೇಟಾದ ಮೂಲವನ್ನಾಗಿ ಮಾಡಲು exec ಆಜ್ಞೆಯು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ:
ಈ ಆಜ್ಞೆಯು ಶೆಲ್ಗೆ ಇನ್ಪುಟ್ ಮೂಲವು ಸಾಮಾನ್ಯ STDIN ಗಿಂತ ಮೈಫೈಲ್ ಆಗಿರಬೇಕು ಎಂದು ಹೇಳುತ್ತದೆ. ಕ್ರಿಯೆಯಲ್ಲಿ ಇನ್ಪುಟ್ ಮರುನಿರ್ದೇಶನವನ್ನು ನೋಡೋಣ:
ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡಿದ ನಂತರ ಇದು ಪರದೆಯ ಮೇಲೆ ಕಾಣಿಸುತ್ತದೆ.
ಇನ್ಪುಟ್ ಮರುನಿರ್ದೇಶನ
ನಿಮ್ಮ ಸ್ವಂತ ಔಟ್ಪುಟ್ ಮರುನಿರ್ದೇಶನವನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ
ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುವ ಮೂಲಕ, ನೀವು ಮೂರು ಪ್ರಮಾಣಿತ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳಿಗೆ ಸೀಮಿತವಾಗಿರುವುದಿಲ್ಲ. ಹೇಳಿದಂತೆ, ನೀವು ಒಂಬತ್ತು ತೆರೆದ ಹ್ಯಾಂಡಲ್ಗಳನ್ನು ಹೊಂದಬಹುದು. 3 ರಿಂದ 8 ರವರೆಗಿನ ಉಳಿದ ಆರು, ಇನ್ಪುಟ್ ಅಥವಾ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲು ಬಳಸಬಹುದು. ಅವುಗಳಲ್ಲಿ ಯಾವುದನ್ನಾದರೂ ಫೈಲ್ಗೆ ನಿಯೋಜಿಸಬಹುದು ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್ನಲ್ಲಿ ಬಳಸಬಹುದು.
ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಿದ ನಂತರ, ಔಟ್ಪುಟ್ನ ಭಾಗವು ಪರದೆಯ ಮೇಲೆ ಕಾಣಿಸುತ್ತದೆ, ಭಾಗ - ಡಿಸ್ಕ್ರಿಪ್ಟರ್ 3 ನೊಂದಿಗೆ ಫೈಲ್ನಲ್ಲಿ.
ಸ್ವಂತ ಹ್ಯಾಂಡಲ್ ಬಳಸಿ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ
ಡೇಟಾ ಎಂಟ್ರಿಗಾಗಿ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ
ನೀವು ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುವ ರೀತಿಯಲ್ಲಿಯೇ ನೀವು ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಇನ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಬಹುದು. ಇನ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುವ ಮೊದಲು STDIN ಅನ್ನು ಮತ್ತೊಂದು ಹ್ಯಾಂಡಲ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿ.
ಸನ್ನಿವೇಶವನ್ನು ಪ್ರಯತ್ನಿಸೋಣ.
ಇನ್ಪುಟ್ ಮರುನಿರ್ದೇಶನ
ಫೈಲ್ ಹ್ಯಾಂಡಲ್ಗಳನ್ನು ಮುಚ್ಚಲಾಗುತ್ತಿದೆ
ಸ್ಕ್ರಿಪ್ಟ್ ಪೂರ್ಣಗೊಂಡ ನಂತರ ಶೆಲ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಫೈಲ್ ಹ್ಯಾಂಡಲ್ಗಳನ್ನು ಮುಚ್ಚುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಸ್ಕ್ರಿಪ್ಟ್ ರನ್ ಆಗುವ ಮೊದಲು ಹ್ಯಾಂಡಲ್ಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಮುಚ್ಚುವುದು ಅವಶ್ಯಕ. ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಮುಚ್ಚಲು, ಅದನ್ನು &- ಗೆ ಮರುನಿರ್ದೇಶಿಸಬೇಕು. ಇದು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:
ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ನಂತರ, ನಾವು ದೋಷ ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸುತ್ತೇವೆ.
ಮುಚ್ಚಿದ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ
ತೆರೆದ ಹಿಡಿಕೆಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯುವುದು
Linux ನಲ್ಲಿ ತೆರೆದಿರುವ ಎಲ್ಲಾ ಹ್ಯಾಂಡಲ್ಗಳ ಪಟ್ಟಿಯನ್ನು ಪಡೆಯಲು, ನೀವು lsof ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು. ಫೆಡೋರಾದಂತಹ ಅನೇಕ ವಿತರಣೆಗಳಲ್ಲಿ, lsof ಉಪಯುಕ್ತತೆಯು /usr/sbin ನಲ್ಲಿದೆ. ಈ ಆಜ್ಞೆಯು ಸಾಕಷ್ಟು ಉಪಯುಕ್ತವಾಗಿದೆ ಏಕೆಂದರೆ ಇದು ಸಿಸ್ಟಂನಲ್ಲಿ ತೆರೆದಿರುವ ಪ್ರತಿಯೊಂದು ಹ್ಯಾಂಡಲ್ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಹಿನ್ನಲೆಯಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಏನು ತೆರೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಲಾಗ್-ಇನ್ ಮಾಡಿದ ಬಳಕೆದಾರರಿಂದ ಏನು ತೆರೆಯಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಇದು ಒಳಗೊಂಡಿರುತ್ತದೆ.
ಪ್ರಸ್ತುತ ಪ್ರಕ್ರಿಯೆಯ PID ಅನ್ನು ಕಂಡುಹಿಡಿಯಲು, ನೀವು ವಿಶೇಷವನ್ನು ಬಳಸಬಹುದು ಪರಿಸರ ವೇರಿಯಬಲ್ಶೆಲ್ ಪ್ರಸ್ತುತ PID ಅನ್ನು ಬರೆಯುವ $$.
ತೆರೆದ ಹಿಡಿಕೆಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ
ನೀವು ಈ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡಿದರೆ ಏನಾಗುತ್ತದೆ.
ಸ್ಕ್ರಿಪ್ಟ್ ಮೂಲಕ ತೆರೆಯಲಾದ ಫೈಲ್ ಹ್ಯಾಂಡಲ್ಗಳನ್ನು ವೀಕ್ಷಿಸಿ
ಔಟ್ಪುಟ್ ನಿಗ್ರಹ
ಕೆಲವೊಮ್ಮೆ ನೀವು ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿರುವ ಆಜ್ಞೆಗಳನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕು, ಉದಾಹರಣೆಗೆ, ಹಾಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು ಹಿನ್ನೆಲೆ ಪ್ರಕ್ರಿಯೆ, ಪರದೆಯ ಮೇಲೆ ಏನನ್ನೂ ಪ್ರದರ್ಶಿಸಲಾಗಿಲ್ಲ. ಇದನ್ನು ಮಾಡಲು, ನೀವು ಔಟ್ಪುಟ್ ಅನ್ನು /dev/null ಗೆ ಮರುನಿರ್ದೇಶಿಸಬಹುದು. ಇದು "ಕಪ್ಪು ರಂಧ್ರ" ದಂತಿದೆ.
ಉದಾಹರಣೆಗೆ, ನೀವು ಫೈಲ್ ಅನ್ನು ಅಳಿಸದೆಯೇ ಅದನ್ನು ತೆರವುಗೊಳಿಸಬೇಕಾದರೆ ಅದೇ ವಿಧಾನವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ:ಫಲಿತಾಂಶಗಳು
ಆಜ್ಞಾ ಸಾಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಇಂದು ನೀವು ಕಲಿತಿದ್ದೀರಿ. ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು, ಅವುಗಳನ್ನು ರಚಿಸುವುದು, ವೀಕ್ಷಿಸುವುದು ಮತ್ತು ಮುಚ್ಚುವುದು ಮತ್ತು ಇನ್ಪುಟ್, ಔಟ್ಪುಟ್ ಮತ್ತು ದೋಷ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಮರುನಿರ್ದೇಶಿಸುವ ಬಗ್ಗೆ ಈಗ ನಿಮಗೆ ತಿಳಿದಿದೆ. ಬ್ಯಾಷ್ ಲಿಪಿಗಳ ಬೆಳವಣಿಗೆಯಲ್ಲಿ ಇದೆಲ್ಲವೂ ಬಹಳ ಮುಖ್ಯ.