అలాంటి ఒక ఉదాహరణ /dev /null. ఇది ప్రతి ఒక్క లైనక్స్ సిస్టమ్లో ఉండే ప్రత్యేక ఫైల్. అయితే, చాలా ఇతర వర్చువల్ ఫైల్స్ కాకుండా, చదవడానికి బదులుగా, ఇది రాయడానికి ఉపయోగించబడుతుంది. మీరు దేవ్ /శూన్యానికి ఏది వ్రాసినా అది విస్మరించబడుతుంది, శూన్యంలోకి మర్చిపోతుంది. దీనిని యునిక్స్ సిస్టమ్లో శూన్య పరికరం అంటారు.
శూన్యంలోకి మీరు ఎందుకు విస్మరించాలనుకుంటున్నారు? /Dev /null అంటే ఏమిటి మరియు దాని వినియోగాన్ని చూద్దాం.
ముందస్తు అవసరాలు
/Dev /null వాడకంలో లోతుగా డైవ్ చేయడానికి ముందు, మేము దాని గురించి స్పష్టమైన అవగాహన కలిగి ఉండాలి stdout మరియు stderr డేటా స్ట్రీమ్. దీనిని తనిఖీ చేయండి లోతైన గైడ్ stdin , stderr , మరియు stdout .
త్వరగా రిఫ్రెష్ చేద్దాం. ఏదైనా కమాండ్-లైన్ యుటిలిటీ అమలు చేయబడినప్పుడు, అది రెండు అవుట్పుట్లను ఉత్పత్తి చేస్తుంది. అవుట్పుట్ దీనికి వెళుతుంది stdout మరియు లోపం (జనరేట్ అయితే) కు వెళుతుంది stderr . డిఫాల్ట్గా, ఈ రెండు డేటా స్ట్రీమ్లు టెర్మినల్తో అనుబంధించబడ్డాయి.
ఉదాహరణకు, కింది ఆదేశం డబుల్ కొటేషన్ మార్క్ లోపల స్ట్రింగ్ను ప్రింట్ చేస్తుంది. ఇక్కడ, అవుట్పుట్ నిల్వ చేయబడుతుంది stdout .
$బయటకు విసిరారుహలో వరల్డ్
తదుపరి ఆదేశం గతంలో అమలు చేసిన కమాండ్ యొక్క నిష్క్రమణ స్థితిని చూపుతుంది.
$బయటకు విసిరారు $?
మునుపటి కమాండ్ విజయవంతంగా అమలు చేయబడినందున, నిష్క్రమణ స్థితి 0. లేకపోతే, నిష్క్రమణ స్థితి భిన్నంగా ఉంటుంది. మీరు చెల్లని ఆదేశాన్ని అమలు చేయడానికి ప్రయత్నించినప్పుడు ఏమి జరుగుతుంది?
$ adfadsf$బయటకు విసిరారు $?
ఇప్పుడు, ఫైల్ డిస్క్రిప్టర్ గురించి మనం తెలుసుకోవాలి. UNIX పర్యావరణ వ్యవస్థలో, ఇవి ఒక ఫైల్కు కేటాయించిన పూర్ణాంక విలువలు. రెండు stdout (ఫైల్ డిస్క్రిప్టర్ = 1) మరియు stderr (ఫైల్ డిస్క్రిప్టర్ = 2) నిర్దిష్ట ఫైల్ డిస్క్రిప్టర్ని కలిగి ఉంటుంది. ఫైల్ డిస్క్రిప్టర్ని ఉపయోగించి (1 మరియు 2 ఈ పరిస్థితిలో), మేము దానిని దారి మళ్లించవచ్చు stdout మరియు stderr ఇతర ఫైళ్లకు.
స్టార్టర్ కోసం, కింది ఉదాహరణ దారిమార్పు చేస్తుంది stdout టెక్స్ట్ ఫైల్కు ఎకో కమాండ్. ఇక్కడ, మేము ఫైల్ డిస్క్రిప్టర్ను పేర్కొనలేదు. పేర్కొనబడకపోతే, బాష్ ఉపయోగించబడుతుంది stdout అప్రమేయంగా.
$బయటకు విసిరారుహలో వరల్డ్>log.txt
కింది ఆదేశం దారి మళ్ళిస్తుంది stderr టెక్స్ట్ ఫైల్కు.
$asdfadsa2>error.txt
ఉపయోగించి /dev /null
అవుట్పుట్ను /dev /null కి దారి మళ్లిస్తోంది
ఇప్పుడు, /dev /null ఎలా ఉపయోగించాలో తెలుసుకోవడానికి మేము సిద్ధంగా ఉన్నాము. ముందుగా, సాధారణ అవుట్పుట్ మరియు ఎర్రర్ను ఎలా ఫిల్టర్ చేయాలో చూద్దాం. కింది ఆదేశంలో, grep /sys డైరెక్టరీలో స్ట్రింగ్ (హలో, ఈ సందర్భంలో) కోసం శోధించడానికి ప్రయత్నిస్తుంది.
$పట్టు -ఆర్హలో/sys/
ఏదేమైనా, రూట్ విశేషాధికారం లేనందున ఇది చాలా లోపాన్ని సృష్టిస్తుంది, grep అనేక ఫైళ్ళను యాక్సెస్ చేయదు. అటువంటప్పుడు, అది అనుమతి నిరాకరించబడిన లోపాలకు దారి తీస్తుంది. ఇప్పుడు, దారి మళ్లింపును ఉపయోగించి, మనం స్పష్టమైన అవుట్పుట్ పొందవచ్చు.
$పట్టు -ఆర్హలో/sys/ 2> /దేవ్/శూన్య
అవుట్పుట్ చాలా మెరుగ్గా కనిపిస్తుంది, సరియైనదా? ఏమిలేదు! ఈ సందర్భంలో, grep కి చాలా ఫైల్లకు యాక్సెస్ లేదు మరియు యాక్సెస్ చేయగల వాటికి స్ట్రింగ్ హలో లేదు.
కింది ఉదాహరణలో, మేము Google ని పింగ్ చేస్తాము.
$పింగ్Google com
అయితే, ఆ విజయవంతమైన పింగ్ ఫలితాలన్నింటినీ మనం చూడాలనుకోవడం లేదు. బదులుగా, పింగ్ Google ని చేరుకోలేనప్పుడు మాత్రమే మేము లోపాలపై దృష్టి పెట్టాలనుకుంటున్నాము. మేము దానిని ఎలా చేస్తాము?
$పింగ్Google com1> /దేవ్/శూన్య
ఇక్కడ, యొక్క విషయాలు stdout /dev /null కు డంప్ చేయబడతాయి, లోపాలను మాత్రమే వదిలివేస్తాయి.
అన్ని అవుట్పుట్లను /dev /null కి దారి మళ్లించండి
కొన్ని పరిస్థితులలో, అవుట్పుట్ అస్సలు ఉపయోగపడకపోవచ్చు. మళ్లింపును ఉపయోగించి, మేము అన్ని అవుట్పుట్ని శూన్యంగా డంప్ చేయవచ్చు.
$పట్టు -ఆర్హలో/sys/ > /దేవ్/శూన్య2> &1
ఈ ఆదేశాన్ని కొద్దిగా విచ్ఛిన్నం చేద్దాం. మొదట, మేము అన్నింటినీ డంప్ చేస్తున్నాము stdout to /dev /null. అప్పుడు, రెండవ భాగంలో, మేము బాష్ పంపమని చెబుతున్నాము stderr కు stdout . ఈ ఉదాహరణలో, అవుట్పుట్ చేయడానికి ఏమీ లేదు. అయితే, మీరు గందరగోళంలో ఉంటే, కమాండ్ విజయవంతంగా నడుస్తుందో లేదో మీరు ఎల్లప్పుడూ చెక్ చేయవచ్చు.
$బయటకు విసిరారు $?
విలువ 2 ఎందుకంటే కమాండ్ చాలా లోపాలను సృష్టించింది.
మీరు ఫైల్ డిస్క్రిప్టర్ను మర్చిపోతే stdout మరియు stderr , కింది ఆదేశం బాగా పనిచేస్తుంది. ఇది మునుపటి కమాండ్ యొక్క మరింత సాధారణీకరించిన ఫార్మాట్. రెండు stdout మరియు stderr /dev /null కు మళ్ళించబడుతుంది.
$పట్టు -ఆర్హలో/sys/ &> /దేవ్/శూన్య
ఇతర ఉదాహరణలు
ఇది ఒక ఆసక్తికరమైన విషయం. డిడి టూల్ గుర్తుందా? ఫైల్లను మార్చడానికి మరియు కాపీ చేయడానికి ఇది శక్తివంతమైన సాధనం. డిడి గురించి మరింత తెలుసుకోండి. Dd ఉపయోగించి, మీ డిస్క్ యొక్క సీక్వెన్షియల్ రీడ్ స్పీడ్ని మేము పరీక్షించవచ్చు. వాస్తవానికి, ఇది ఖచ్చితమైన కొలత కాదు. అయితే, శీఘ్ర పరీక్ష కోసం, ఇది చాలా ఉపయోగకరంగా ఉంటుంది.
$డిడి ఉంటే=<పెద్ద_ఫైల్> యొక్క=/దేవ్/శూన్యస్థితి= పురోగతిbs= 1 మిiflag= ప్రత్యక్ష
ఇక్కడ, నేను ఉబుంటు 18.04.4 ISO ని పెద్ద ఫైల్గా ఉపయోగించాను.
అదేవిధంగా, మీరు మీ ఇంటర్నెట్ కనెక్షన్ డౌన్లోడ్ వేగాన్ని కూడా పరీక్షించవచ్చు.
$wget -ఓఆర్ /దేవ్/శూన్య<పెద్ద_ఫైల్_లింక్>
తుది ఆలోచనలు
ఆశాజనక, ఈ /dev /null ఫైల్ అంటే ఏమిటో మీకు స్పష్టమైన అవగాహన ఉంది. ఇది ఒక ప్రత్యేక పరికరం, దానికి వ్రాస్తే, విస్మరించబడుతుంది మరియు చదివితే, శూన్యంగా చదవబడుతుంది. ఈ ఆసక్తికరమైన ఫీచర్ యొక్క నిజమైన సంభావ్యత ఆసక్తికరమైన బాష్ స్క్రిప్ట్లలో ఉంది.
మీకు బాష్ స్క్రిప్టింగ్పై ఆసక్తి ఉందా? తనిఖీ చేయండి బాష్ స్క్రిప్టింగ్ కోసం బిగినర్స్ గైడ్ .
ఆనందించండి!