அத்தகைய ஒரு உதாரணம் /dev /null. இது ஒவ்வொரு லினக்ஸ் அமைப்பிலும் இருக்கும் ஒரு சிறப்பு கோப்பு. இருப்பினும், மற்ற மெய்நிகர் கோப்புகளைப் போலன்றி, வாசிப்பதற்குப் பதிலாக, அது எழுதப் பயன்படுகிறது. நீங்கள் /dev /null க்கு எதை எழுதினாலும் அது நிராகரிக்கப்படும், வெற்றிடத்தில் மறந்துவிடும். இது யுனிக்ஸ் அமைப்பில் பூஜ்ய சாதனம் என்று அழைக்கப்படுகிறது.
வெற்றிடத்திற்குள் எதையாவது நிராகரிக்க ஏன் விரும்புகிறீர்கள்? /Dev /null என்றால் என்ன மற்றும் அதன் பயன்பாட்டைப் பார்ப்போம்.
முன்நிபந்தனைகள்
/Dev /null இன் பயன்பாட்டில் ஆழமாக மூழ்குவதற்கு முன், நாம் அதன் தெளிவான புரிதலைக் கொண்டிருக்க வேண்டும் stdout மற்றும் stderr தரவு ஸ்ட்ரீம். இதைப் பாருங்கள் ஆழமான வழிகாட்டி ஸ்ட்டின் , stderr , மற்றும் stdout .
விரைவில் புதுப்பிப்போம். எந்த கட்டளை வரி பயன்பாடு இயங்கும் போதெல்லாம், அது இரண்டு வெளியீடுகளை உருவாக்குகிறது. வெளியீடு செல்கிறது stdout மற்றும் பிழை (உருவாக்கினால்) செல்கிறது stderr . இயல்பாக, இந்த இரண்டு தரவு ஸ்ட்ரீம்களும் முனையத்துடன் தொடர்புடையவை.
எடுத்துக்காட்டாக, பின்வரும் கட்டளை இரட்டை மேற்கோள் குறிக்குள் சரத்தை அச்சிடும். இங்கே, வெளியீடு சேமிக்கப்படுகிறது stdout .
$வெளியே எறிந்தார்வணக்கம் உலகம்
அடுத்த கட்டளை முன்பு இயக்கப்பட்ட கட்டளையின் வெளியேறும் நிலையை நமக்குக் காட்டும்.
$வெளியே எறிந்தார் $?
முந்தைய கட்டளை வெற்றிகரமாக இயங்குவதால், வெளியேறும் நிலை 0. இல்லையெனில், வெளியேறும் நிலை வித்தியாசமாக இருக்கும். நீங்கள் ஒரு தவறான கட்டளையை இயக்க முயற்சிக்கும்போது என்ன நடக்கும்?
$ adfadsf$வெளியே எறிந்தார் $?
இப்போது, கோப்பு விளக்கத்தை பற்றி நாம் தெரிந்து கொள்ள வேண்டும். யுனிக்ஸ் சுற்றுச்சூழல் அமைப்பில், இவை ஒரு கோப்பிற்கு ஒதுக்கப்பட்ட முழு மதிப்புகள். இரண்டும் stdout (கோப்பு விளக்கம் = 1) மற்றும் stderr (கோப்பு விளக்கம் = 2) ஒரு குறிப்பிட்ட கோப்பு விவரிப்பைக் கொண்டுள்ளது. கோப்பு விளக்கத்தை பயன்படுத்தி (இந்த சூழ்நிலையில் 1 மற்றும் 2), நாம் திசைதிருப்பலாம் stdout மற்றும் stderr மற்ற கோப்புகளுக்கு.
தொடக்கத்திற்கு, பின்வரும் எடுத்துக்காட்டு திசைமாற்றப்படும் stdout ஒரு உரை கோப்பிற்கு எதிரொலி கட்டளை. இங்கே, கோப்பு விளக்கத்தை நாங்கள் குறிப்பிடவில்லை. குறிப்பிடப்படவில்லை என்றால், பேஷ் பயன்படுத்தும் stdout இயல்பாக
$வெளியே எறிந்தார்வணக்கம் உலகம்>log.txt
பின்வரும் கட்டளை திசைமாற்றப்படும் stderr ஒரு உரை கோப்புக்கு.
$asdfadsa2>பிழை. உரை
பயன்படுத்தி /dev /null
வெளியீட்டை /dev /null க்கு திருப்பிவிடுகிறது
இப்போது, /dev /null ஐ எவ்வாறு பயன்படுத்துவது என்பதை அறிய நாங்கள் தயாராக உள்ளோம். முதலில், சாதாரண வெளியீடு மற்றும் பிழையை எப்படி வடிகட்டுவது என்று பார்க்கலாம். பின்வரும் கட்டளையில், grep /sys கோப்பகத்தில் ஒரு சரத்தை (ஹலோ, இந்த விஷயத்தில்) தேட முயற்சிக்கும்.
$பிடியில் -ஆர்வணக்கம்/sys/
இருப்பினும், ரூட் சலுகை இல்லாமல் இது நிறைய பிழைகளை உருவாக்கும், grep பல கோப்புகளை அணுக முடியாது. இதுபோன்ற சந்தர்ப்பங்களில், இது அனுமதி மறுக்கப்பட்ட பிழைகளுக்கு வழிவகுக்கும். இப்போது, திசைதிருப்பலைப் பயன்படுத்தி, நாம் தெளிவான வெளியீட்டைப் பெறலாம்.
$பிடியில் -ஆர்வணக்கம்/sys/ 2> /தேவ்/ஏதுமில்லை
வெளியீடு மிகவும் நன்றாக இருக்கிறது, இல்லையா? ஒன்றுமில்லை! இந்த விஷயத்தில், grep க்கு நிறைய கோப்புகளுக்கான அணுகல் இல்லை மற்றும் அணுகக்கூடியவற்றில் சரம் ஹலோ இல்லை.
பின்வரும் எடுத்துக்காட்டில், நாங்கள் கூகிளை பிங் செய்வோம்.
$பிங்கூகுள் காம்
இருப்பினும், அந்த வெற்றிகரமான பிங் முடிவுகளை நாங்கள் பார்க்க விரும்பவில்லை. அதற்கு பதிலாக, பிங் கூகிளை அடைய முடியாதபோது பிழைகளில் மட்டுமே கவனம் செலுத்த விரும்புகிறோம். நாம் அதை எப்படி செய்வது?
$பிங்கூகுள் காம்1> /தேவ்/ஏதுமில்லை
இங்கே, உள்ளடக்கங்கள் stdout /dev /null க்கு வீசப்படுகிறது, பிழைகள் மட்டுமே உள்ளன.
அனைத்து வெளியீடுகளையும் /dev /null க்கு திருப்பிவிடவும்
சில சூழ்நிலைகளில், வெளியீடு பயனுள்ளதாக இருக்காது. திசைதிருப்பலைப் பயன்படுத்தி, நாம் அனைத்து வெளியீடுகளையும் வெற்றிடத்திற்குள் தள்ளலாம்.
$பிடியில் -ஆர்வணக்கம்/sys/ > /தேவ்/ஏதுமில்லை2> &1
இந்த கட்டளையை கொஞ்சம் உடைப்போம். முதலில், நாங்கள் அனைத்தையும் கொட்டுகிறோம் stdout to /dev /null. பிறகு, இரண்டாம் பாகத்தில், பாஷ் அனுப்ப சொல்கிறோம் stderr க்கு stdout . இந்த எடுத்துக்காட்டில், வெளியீடு செய்ய எதுவும் இல்லை. இருப்பினும், நீங்கள் குழப்பத்தில் இருந்தால், கட்டளை வெற்றிகரமாக இயங்குகிறதா என்பதை நீங்கள் எப்போதும் சரிபார்க்கலாம்.
$வெளியே எறிந்தார் $?
கட்டளை நிறைய பிழைகளை உருவாக்கியதால் மதிப்பு 2 ஆகும்.
நீங்கள் கோப்பு விளக்கத்தை மறந்துவிட்டால் stdout மற்றும் stderr , பின்வரும் கட்டளை நன்றாக வேலை செய்யும். இது முந்தைய கட்டளையின் மிகவும் பொதுவான வடிவம். இரண்டும் stdout மற்றும் stderr /dev /null க்கு திருப்பி விடப்படும்.
$பிடியில் -ஆர்வணக்கம்/sys/ &> /தேவ்/ஏதுமில்லை
மற்ற உதாரணங்கள்
இது ஒரு சுவாரஸ்யமான ஒன்று. டிடி கருவி ஞாபகம் இருக்கிறதா? கோப்புகளை மாற்றுவதற்கும் நகலெடுப்பதற்கும் இது ஒரு சக்திவாய்ந்த கருவியாகும். டிடி பற்றி மேலும் அறியவும். டிடியைப் பயன்படுத்தி, உங்கள் வட்டின் தொடர்ச்சியான வாசிப்பு வேகத்தை நாங்கள் சோதிக்கலாம். நிச்சயமாக, இது துல்லியமான அளவீடு அல்ல. இருப்பினும், விரைவான சோதனைக்கு, இது மிகவும் பயனுள்ளதாக இருக்கும்.
$DD என்றால்=<பெரிய_ கோப்பு> இன்=/தேவ்/ஏதுமில்லைநிலை= முன்னேற்றம்bs= 1Miflag= நேரடி
இங்கே, நான் உபுண்டு 18.04.4 ஐஎஸ்ஓவை பெரிய கோப்பாகப் பயன்படுத்தினேன்.
இதேபோல், உங்கள் இணைய இணைப்பின் பதிவிறக்க வேகத்தையும் நீங்கள் சோதிக்கலாம்.
$wget -அல்லது /தேவ்/ஏதுமில்லை<பெரிய_ கோப்பு_ இணைப்பு>
இறுதி எண்ணங்கள்
இந்த /dev /null கோப்பு என்ன என்பதை நீங்கள் தெளிவாக புரிந்துகொள்வீர்கள் என்று நம்புகிறோம். இது ஒரு சிறப்பு சாதனம், அதில் எழுதப்பட்டால், நிராகரிக்கப்படும் மற்றும் இருந்து படித்தால், பூஜ்யத்தைப் படிக்கிறது. இந்த சுவாரஸ்யமான அம்சத்தின் உண்மையான திறன் சுவாரஸ்யமான பாஷ் ஸ்கிரிப்ட்களில் உள்ளது.
பேஷ் ஸ்கிரிப்டிங்கில் உங்களுக்கு ஆர்வம் உள்ளதா? சரிபார் பேஷ் ஸ்கிரிப்டிங்கிற்கான தொடக்க வழிகாட்டி .
மகிழுங்கள்!