குனு / லினக்ஸ் அடைவு மரத்தின் சில கருத்துக்கள் நம்மிடம் ஏற்கனவே இருந்தால், குறைந்தபட்சம் / dev / reference ஐ நாம் அறிந்திருக்க வேண்டும், இது தொடர்பான அனைத்து கோப்புகளும் திறம்பட இருக்கும் வன்பொருள் சாதனங்கள்.
நாம் கோப்பகத்தில் பார்த்தால் / dev / ஒரு "கோப்பு" என்று அழைக்கப்படுவோம் பூஜ்ய, ஆனால் அதன் உள்ளடக்கத்தைக் காண அதைத் திறக்க விரும்பினால், அது சாதாரண உள்ளடக்கம் அல்ல என்பதால் அது சாத்தியமில்லை என்று கணினி நமக்குச் சொல்லும். லினக்ஸ் எல்லாவற்றையும் நீங்கள் அறிந்திருப்பதால் (வன்பொருள் மற்றும் மென்பொருள்) ஒரு கோப்பாக குறிப்பிடப்படுவதால், நான் கோப்பு வார்த்தையை இணைத்துள்ளேன். |
/ Dev / null எந்த சாதனத்துடன் ஒத்துப்போகிறது?
நடைமுறை நோக்கங்களுக்காக, ஒரு குப்பைத் தொட்டி, அடிமட்ட குழி அல்லது விண்வெளியை எதையும் மீட்டெடுக்கும் சாத்தியம் இல்லாமல் எறியலாம் என்று கற்பனை செய்து பாருங்கள் (நாசாவிலிருந்து வந்தவர்கள் எவ்வளவு கடினமாக முயற்சி செய்தாலும்).
நான் ஏற்கனவே rm போன்ற கட்டளைகளை வைத்திருந்தால், நான் நீக்கும் புதிய ஒன்றை ஏன் விரும்புகிறேன்?
ஏனெனில் “கருந்துளைகள்” இரண்டும் செயல்படும் முறை முற்றிலும் வேறுபட்டது: இயக்க நேரத்தில் ஷெல் ஸ்கிரிப்டுக்குள் ஒரு கட்டளையில் பிழையின் நிலையான வெளியீட்டை எவ்வாறு மீறுவது? இங்குதான் / dev / null வருகிறது.
அதை ஒரு எடுத்துக்காட்டுடன் பார்ப்போம்.
"ஹலோ வேர்ல்ட்" என்ற சரம் அடங்கிய சோதனைகள் என்ற கோப்பை உருவாக்கியுள்ளோம். கட்டளை வரியில் அந்த கோப்பின் உள்ளடக்கத்தை பிரதிநிதித்துவப்படுத்த விரும்பினால், அதை பின்வரும் வழியில் செய்யலாம்:
பயனர் @ மடிக்கணினி: $ $ பூனை சோதனை
ஹலோ வேர்ல்ட்
கோப்பு இல்லை அல்லது சோதனைகள் என பெயரிடப்பட்டிருந்தால் (இறுதியில் ஒரு 'கள்' உடன்), கன்சோலில் பின்வரும் பிழையைப் பெறுவோம்:
பயனர் @ மடிக்கணினி: $ $ பூனை சோதனைகள்
பூனை: சோதனைகள்: கோப்பு அல்லது அடைவு இல்லை
பிழை செய்தியைத் தவிர்க்க நாம் என்ன செய்ய முடியும்? சரி, கட்டளையின் வெளியீட்டை பிழையாக இருந்தால், ஒரு "குப்பை கேன்" க்கு திருப்பி விடுங்கள், அதாவது / dev / null
பிழை ஏற்பட்டால் அதை எவ்வாறு குறிப்பிடுவது? ஒரு நிரலுக்கான நிலையான உள்ளீடு, வெளியீடு மற்றும் பிழை மதிப்புகள் இங்குதான் நுழைகின்றன: STDIN, STDOUT மற்றும் STDERR (முறையே 0, 1 மற்றும் 2 க்கு மாற்றாக). இந்த வழியில், நாம் வைத்தால் ...
பயனர் @ மடிக்கணினி: ~ $ பூனை சோதனைகள் 2> / dev / null
பயனர் @ மடிக்கணினி: ~ $
… பிழை செய்தி கன்சோலில் உருவாக்கப்படாது என்பதைக் காண்போம்.
நீங்கள் கவனமாக இருக்க வேண்டும், ஏனெனில் தொடரியல் அவசியம்: 2 மற்றும்> எழுத்துக்களுக்கு இடையில் இடைவெளி இருக்கக்கூடாது. இல்லையெனில், இது பின்வருவனவற்றைக் கொடுக்கும்:
பயனர் @ மடிக்கணினி: ~ $ பூனை சோதனைகள் 2> / dev / null
பூனை: சோதனைகள்: கோப்பு அல்லது அடைவு இல்லை
பூனை: 2: கோப்பு அல்லது அடைவு இல்லை
இதற்கு மாறாக,> மற்றும் / dev / null க்கு இடையில் ஒரு இடைவெளி முடிவை எதிர்மறையாக பாதிக்காது.
பிழை திருப்பிவிடலை நாம் பயன்படுத்தலாம், எடுத்துக்காட்டாக, ஒரு பதிவு கோப்பில் பிழைகள் பின்வருமாறு பிடிக்க:
பயனர் @ மடிக்கணினி: ~ $ பூனை சோதனைகள் 2> err.log
மற்றொரு சுவாரஸ்யமான நிகழ்வு பிழை ஏற்படாத வரை மற்றொரு கோப்பில் முடிவுகளை சேகரிப்பதாக இருக்கும், இதற்காக நாங்கள் இடுவோம்:
பயனர் @ மடிக்கணினி: ~ $ பூனை சோதனை 1> வெளியீடு_ முடிவு 2> err.log
இறுதியாக, output> / dev / null 2> & 1 expression என்ற வெளிப்பாட்டை வைக்க முடியும், இதில் நிலையான வெளியீடும் பிழை வெளியீடும் ஒன்றிணைக்கப்பட்டு, அவற்றை திருப்பி விடுகிறது, இதனால் எந்தவொரு சந்தர்ப்பத்திலும் வெளியீட்டு தகவல் பெற முடியாது.
ஆ, ஆனால் / dev / null இல் அதிகம் பயன்படுத்தப்பட்ட பயன்பாடுகளில் ஒன்று இல்லை, இது கோப்புகளை காலி செய்கிறது: $ cat / dev / null> file.log இந்த வழியில், file.log கோப்பு காலியாக இருக்கும். அதைச் சேர்!
அவர் தேடும் விளக்கம் அதுதான்.
அதைச் சேர்க்க இயக்கத்தை ஆதரிக்கிறேன் =)
நன்றி!
வணக்கம், முதலில் கட்டுரை மிகவும் நல்லது! இரண்டாவது இந்த விஷயத்தில் இந்த இணைப்பைக் கொண்டு ஏதாவது பங்களிக்க விரும்புகிறேன் Cpanel இலிருந்து php இல் கிரான் வேலை வலைப்பதிவிற்கு மூன்றாவது வாழ்த்துக்கள்!
தேவ் / பூஜ்யம் பற்றிய நல்ல கட்டுரை, இதற்கு முன்பு தவறான இடத்தில் தவறாக கருத்து தெரிவித்திருப்பது என்ன அவமானம்! நான் மன்னிப்பு வேண்டுகிறேன்
நல்ல பங்களிப்பு நன்றி
வாழ்த்துக்கள் நான் பூஜ்ய தாக்குதலைப் பெறுகிறேன். நான் andrirc ஐப் பயன்படுத்துகிறேன், என் புனைப்பெயரை Null என்ற வார்த்தையுடன் தனியாகப் பெறுகிறேன். 2 விநாடிகள் கழித்து நிரல் நான் படித்துக்கொண்டிருக்கிறேன், நான் பார்ப்பதிலிருந்து இதை ஷெல் மட்டுமே செய்ய முடியும், வெளிப்புறம் அல்ல. நான் என்னைப் புறக்கணிக்க முயற்சித்தேன் / புறக்கணிக்க -lrpcntikd மற்றும் எதுவும் எனக்கு ஆச்சரியமில்லை கட்டளை தொடர்ந்து வருகிறது. அதைத் தடுக்க உங்களுக்கு ஏதேனும் வழி இருந்தால் நான் அதைப் பாராட்டுகிறேன். சியர்ஸ்
வாக்கியத்தை செயல்படுத்தும்போது சின்னம்> வைக்கப்படாவிட்டால் என்ன ஆகும்?
தயவுசெய்து யாராவது எனக்கு வழிகாட்ட முடியுமா?
காலை வணக்கம், ACER Extensa 5620Z – 32 bit இல் Debian netinst ஐ நிறுவியுள்ளேன். USB இலிருந்து நிறுவல் முடிந்ததும் பென்டிரைவ் அகற்றப்பட்டதும் அது ஹார்ட் டிஸ்கில் இருந்து துவங்கும் (பேனாவில் இருந்து மீண்டும் நிறுவ வேண்டாம்) ஆனால் பூட் செய்யும் தருணத்தில் அவள் என்னிடம் கேட்கும் அமைப்பு:
டெபியன் உள்நுழைவு: xxxxxxxx (சரி)
கடவுச்சொல்: xxxxxxxx (சரி)
nil@debian:~$ ???? இது என்ன? நான் அங்கு என்ன வைக்க வேண்டும்?
இந்த கட்டளை இல்லாமல் நான் கணினி துவக்கத்துடன் தொடர முடியாது.
நீங்கள் எனக்கு உதவ முடியுமா? எப்படி தொடர வேண்டும் என்று தெரியவில்லை.
மிக்க நன்றி. அன்பான வாழ்த்துக்கள்.