2>/dev/null ఖచ్చితంగా ఏమి చేస్తుంది?

What Exactly Does 2 Dev Null Do



మీరు కొత్త లైనక్స్ యూజర్ అయినా లేదా అనుభవజ్ఞుడైన బాష్ ప్రోగ్రామర్ అయినా, మీరు 2>/dev/null అనే క్రిప్టిక్ కమాండ్‌ని ఎదుర్కొనే అవకాశం ఉంది. ఈ ఆదేశం సాంకేతికంగా సంక్లిష్టంగా కనిపించినప్పటికీ, దాని ప్రయోజనం చాలా సులభం. ఇది వివిధ ఆదేశాల అవుట్‌పుట్‌లను అణిచివేసేందుకు ఉపయోగించే శూన్య పరికరాన్ని సూచిస్తుంది. ఈ వ్యాసం 2>/dev/null ఆదేశంలోని ప్రతి భాగాన్ని విచ్ఛిన్నం చేస్తుంది, దాని ప్రయోజనాన్ని వివరిస్తుంది మరియు అది ఎలా ఉపయోగించబడుతుందో ఉదాహరణలను చూడండి.

శూన్య పరికరం - ‘/dev/null’

అన్ని లైనక్స్ ఆధారిత సిస్టమ్‌లలో వర్చువల్ పరికరాలు అనే ఫీచర్ ఉంది. ఈ వర్చువల్ పరికరాలు ఆపరేటింగ్ సిస్టమ్‌లోని వాస్తవ ఫైల్‌ల వలె సంకర్షణ చెందుతాయి. అటువంటి వర్చువల్ పరికరాల పని నిజమైన పరికరాల మాదిరిగానే ఉంటుంది; వారు డేటాను వ్రాయడానికి మరియు చదవడానికి ఉపయోగిస్తారు. రెండింటి మధ్య ప్రధాన వ్యత్యాసం ఏమిటంటే వర్చువల్ పరికరాల కోసం డేటా ఆపరేటింగ్ సిస్టమ్ ద్వారా సరఫరా చేయబడుతుంది.







/dev/null అనేది శూన్య పరికరం - వర్చువల్ పరికరం యొక్క ప్రత్యేక రకం. ఇది ప్రతి లైనక్స్ సిస్టమ్‌లో ఉంటుంది, మరియు ఈ పరికరం యొక్క ఉద్దేశ్యం, దానికి పంపిన దేనినైనా విస్మరించి, ఎండ్ ఆఫ్ ఫైల్ (EOF) చదవడమే. డేటాను చదవడానికి చాలా వర్చువల్ పరికరాలు ఉపయోగించబడతాయి; అయితే, /dev /null ప్రత్యేకమైనది ఎందుకంటే దీనికి వ్రాయబడిన ఏదైనా డేటాను అణచివేయడానికి ఇది ఉపయోగించబడుతుంది. సరళంగా చెప్పాలంటే, ఇది Linux ఆపరేటింగ్ సిస్టమ్‌లలో వ్రాయబడిన ఏదైనా డేటాకు బ్లాక్ హోల్‌గా పనిచేస్తుంది.



ఇప్పుడు, 2> /dev /null కమాండ్ యొక్క మిగిలిన భాగాలను చూద్దాం



ఫైల్ డిస్క్రిప్టర్ - ‘2’

లైనక్స్‌లోని ప్రతి కమాండ్ ఎగ్జిక్యూషన్ మూడు అనుబంధ ఫైళ్లను ఉత్పత్తి చేస్తుంది: స్టాండర్డ్ ఇన్‌పుట్, స్టాండర్డ్ అవుట్‌పుట్ మరియు స్టాండర్డ్ ఎర్రర్ ఫైల్‌లు. Linux ఆపరేటింగ్ సిస్టమ్ ఈ ప్రతి ఫైల్‌ని ఒక ప్రత్యేకమైన నాన్-నెగటివ్ పూర్ణాంకంతో సూచిస్తుంది.





  • ప్రామాణిక ఇన్‌పుట్ కోసం '0'
  • ప్రామాణిక అవుట్‌పుట్ కోసం '1'
  • ప్రామాణిక లోపం కోసం '2'

స్టాండర్డ్ ఇన్‌పుట్, స్టాండర్డ్ అవుట్‌పుట్ మరియు స్టాండర్డ్ ఎర్రర్ స్ట్రీమ్‌ల కోసం సాంకేతిక నిబంధనలు వరుసగా stdin, stdout మరియు stderr.

‘2>/dev/null’ ఆదేశంలోని ‘2’ సంఖ్య ప్రామాణిక లోపం (stderr) స్ట్రీమ్‌ను సూచిస్తుందని మాకు తెలుసు.



ఫైల్ మళ్లింపు ఆపరేటర్ - ‘>’

'>' చిహ్నాన్ని ఫైల్ దారి మళ్లింపు ఆపరేటర్ అంటారు. దాని ఉద్దేశ్యం దాని ఎడమ వైపున ఉన్నది కుడి వైపున ఉన్న ఆదేశాలకు దర్శకత్వం వహించడం. సరళంగా చెప్పాలంటే, ఎడమవైపు ఉన్న ఏదైనా స్ట్రింగ్ డేటా ఆపరేటర్ యొక్క కుడి వైపుకు మళ్ళించబడుతుంది.

ఇప్పటివరకు, 2>/dev/null కమాండ్ యొక్క ప్రతి భాగం వెనుక ఉన్న ఉద్దేశ్యాన్ని మేము అర్థం చేసుకున్నాము. ఇది లోపం స్ట్రీమ్‌ను /dev /null కి పంపుతుంది, అది దానిని విస్మరిస్తుంది. మరో మాటలో చెప్పాలంటే, ఈ ఆదేశం లోపం అవుట్‌పుట్‌లను విస్మరించడానికి మరియు అణచివేయడానికి ఉపయోగించబడుతుంది. అయితే, మీరు అనుభవజ్ఞులైన లైనక్స్ అనుభవజ్ఞులైతే, టెర్మినల్‌లో కింది ఆదేశాన్ని అమలు చేయడం ద్వారా మీరు /dev /null ఫైల్‌లోని విషయాలను చూడవచ్చు:

$ls -ది /దేవ్/శూన్య

ఈ ఆదేశం సాధారణంగా లోపాల ఆధారంగా అవుట్‌పుట్‌ను ఫిల్టర్ చేయాల్సిన సందర్భాలలో లేదా తప్పుడు వివరణలతో సంబంధం ఉన్న ఏదైనా అవుట్‌పుట్‌ను విస్మరించాలనుకున్నప్పుడు ఉపయోగించబడుతుంది. ముందుకు సాగడం, మేము ఉబుంటు సిస్టమ్‌లో దాని వినియోగానికి ఉదాహరణలను చూస్తాము.

2>/dev/null ఉపయోగించి

2>/dev/null ఆదేశం లోపాలను విస్మరించడానికి ఉపయోగించబడుతుందని మాకు తెలుసు కాబట్టి, ఇది ఎల్లప్పుడూ ఇతర ఆదేశాలతో కలిపి ఉపయోగించబడుతుంది. కింది ఉదాహరణలలో మనం ఇదే విధానాన్ని చూస్తాము. మీరు టెర్మినల్‌ను అప్లికేషన్స్ మెనూ ద్వారా యాక్సెస్ చేయడం ద్వారా లేదా కీబోర్డ్ సత్వరమార్గం Ctrl + Alt + T ని ఉపయోగించడం ద్వారా తెరవవచ్చు.

మొదటి ఉదాహరణలో, మేము యాదృచ్ఛిక స్ట్రింగ్ కోసం ఒక శోధనను / sys / డైరెక్టరీలో నిర్వహిస్తాము (ఈ సందర్భంలో helloworld). శోధన కోసం ఆదేశం grep, మరియు దాని వాదన శోధన స్ట్రింగ్ అవుతుంది. మీ స్ట్రింగ్ కోసం శోధించడానికి కింది ఆదేశాన్ని నమోదు చేయండి.

$పట్టు -ఆర్helloworld/sys/

రూట్ యాక్సెస్ లేకుండా ఉపయోగించబడుతున్నందున ఈ సెర్చ్ కమాండ్ అనేక లోపాలను ప్రదర్శిస్తుంది. ఈ లోపాలను విస్మరించడానికి 2>/dev/null ఆదేశాన్ని ఉపయోగించడం ద్వారా మేము దాని దోష ప్రసారాన్ని/dev/null కి పంపుతాము.

$పట్టు -ఆర్helloworld/sys/ 2> /దేవ్/శూన్య

కమాండ్ యొక్క అవుట్‌పుట్ చివరిదాని కంటే చాలా చక్కగా మరియు సరళంగా ఉందని మనం చూడవచ్చు. కారణం ఏమిటంటే, 2> /dev /null ఉపయోగించి లోపాలు విస్మరించబడుతున్నాయి, మరియు grep కమాండ్ మా స్ట్రింగ్ 'helloworld' కు సరిపోయే ఫైల్‌ను కనుగొనలేకపోయింది కాబట్టి, అది ఎలాంటి అవుట్‌పుట్‌ను చూపదు.

/Dev /null యొక్క ఉపయోగాన్ని బాగా అర్థం చేసుకోవడానికి, మేము ఏదైనా వెబ్‌సైట్‌ను పింగ్ చేయడానికి క్రింది ఉదాహరణను చూస్తాము (మా విషయంలో google.com). కింది ఆదేశాన్ని అమలు చేయడం ద్వారా మీరు google.com ని పింగ్ చేయవచ్చు:

$పింగ్Google com

మేము అన్ని విఫలమైన పింగ్‌లను మినహాయించాలనుకుంటే, మేము 2>/dev/null ఆదేశాన్ని ఉపయోగించవచ్చు:

$పింగ్Google com2> /దేవ్/శూన్య

ఈ సందర్భంలో, ప్రామాణిక లోపం స్ట్రీమ్ (google.com కి విఫలమైన పింగ్‌లను చూపుతుంది) వాటిని విస్మరించే వర్చువల్ పరికరం /dev /null కి పంపబడుతుంది.

అయితే, మేము విఫలమైన పింగ్‌లను మాత్రమే చూడాలనుకుంటే, మేము కింది ఆదేశాన్ని అమలు చేయవచ్చు:

$పింగ్Google com1> /దేవ్/శూన్య

ఇక్కడ, మేము ప్రామాణిక అవుట్‌పుట్ స్ట్రీమ్ (stdout) ను విస్మరించే /dev /null పరికరానికి పంపుతాము. పర్యవసానంగా, google.com సర్వర్‌ని చేరుకోలేకపోయిన పింగ్‌లు మాత్రమే మాకు మిగిలి ఉన్నాయి. అయితే, మా విషయంలో, విఫలమైన పింగ్‌లు లేవు. మేము వివిధ ప్రదేశాలకు stdout మరియు stderr ని కూడా డైరెక్ట్ చేయవచ్చు. మేము అవుట్‌పుట్‌ను విస్మరించాలనుకుంటే మరియు దోషాలను లాగ్‌లో లేదా స్టోర్‌లో స్టోర్ చేయాలనుకుంటే ఇది సహాయపడుతుంది. పింగ్ కమాండ్ యొక్క ప్రామాణిక అవుట్‌పుట్‌ను విస్మరించేటప్పుడు విఫలమైన పింగ్‌లను ఎర్రర్ లాగ్‌లో నిల్వ చేయడానికి మీరు కింది ఆదేశాన్ని అమలు చేయవచ్చు:

$పింగ్Google com1> /దేవ్/శూన్య2>లోపం. లాగ్

సందర్భాలలో, మీరు కమాండ్ యొక్క అన్ని అవుట్‌పుట్‌లను అణచివేయాలనుకోవచ్చు (ప్రామాణిక అవుట్‌పుట్ మరియు ప్రామాణిక లోపాలతో సహా). /Dev /null పరికరాన్ని కొద్దిగా భిన్నమైన రీతిలో ఉపయోగించడం ద్వారా మనం దీనిని సాధించవచ్చు. అన్ని అవుట్‌పుట్‌లను అణచివేయడానికి మీరు కింది ఆదేశాన్ని టైప్ చేయవచ్చు:

$పింగ్Google com> /దేవ్/శూన్య2> &1

ఇక్కడ ఆదేశాల క్రమం చాలా ముఖ్యమైనదని గమనించండి. పింగ్ ఆదేశాన్ని అమలు చేసిన తర్వాత, '>/dev/null' సిస్టమ్ అవుట్‌పుట్‌ను అణచివేయమని చెబుతుంది మరియు '2> & 1' ప్రామాణిక లోపం స్ట్రీమ్‌ను ప్రామాణిక అవుట్‌పుట్‌కు నిర్దేశిస్తుంది. ఈ విధంగా, కమాండ్ యొక్క అన్ని అవుట్‌పుట్ విస్మరించబడుతుంది.

ముగింపు

మేము ఈ వ్యాసంలోని 2>/dev/null ఆదేశం మరియు సరళమైన ఉదాహరణలను విడదీశాము, మరియు ఆశాజనక, దానిలోని ప్రతి బిట్ ఏమి చేస్తుందో ఇప్పుడు మీరు అర్థం చేసుకున్నారు. అయితే, ఇది మంచుకొండ యొక్క కొన మాత్రమే; శూన్య పరికరాలను బాష్ ప్రోగ్రామింగ్‌లో అనేక విధాలుగా ఉపయోగిస్తారు. కొన్ని అధునాతన ఉపయోగాలలో ఫైల్ ఉనికిని తనిఖీ చేయడం, ప్యాకేజీ ఇన్‌స్టాలేషన్‌లను ఆటోమేట్ చేయడం మరియు స్క్రిప్ట్‌లను అవాంఛిత మినహాయింపుల్లోకి రాకుండా చేయడం వంటివి ఉన్నాయి.