જો આપણી પાસે પહેલેથી જ GNU / Linux ડિરેક્ટરી ટ્રીના કેટલાક વિચારો છે, તો આપણે ઓછામાં ઓછા / dev / સંદર્ભ સાથે પરિચિત હોવા જોઈએ, જે અસરકારક રીતે છે જ્યાં બધી ફાઇલોને સંબંધિત હાર્ડવેર ઉપકરણો.
જો આપણે ડિરેક્ટરીમાં જોઈએ / દેવ / આપણે "ફાઈલ" કહેવાશે નલ, પરંતુ જો આપણે તેની સામગ્રી જોવા માટે તેને ખોલવા માંગીએ છીએ, તો સિસ્ટમ અમને જણાવે છે કે તે શક્ય નથી કારણ કે તે સામાન્ય સામગ્રી નથી. મેં શબ્દ ફાઇલને બંધ કરી છે કારણ કે, તમે બધા લિનક્સ માટે જાણો છો (હાર્ડવેર અને સ softwareફ્ટવેર) ફાઇલ તરીકે રજૂ થાય છે. |
કયા ઉપકરણ સાથે સંબંધિત છે / dev / null?
વ્યવહારિક હેતુઓ માટે, કચરો કચરો, એક તળિયા વગરના ખાડા અથવા બાહ્ય અવકાશમાં કલ્પના કરો કે જેમાં કંઇપણ પુન .પ્રાપ્ત થવાની સંભાવના વિના કંઈપણ ફેંકી શકાય (નાસાના શખ્સો ગમે તેટલા મુશ્કેલ હોવા છતાં).
પરંતુ જો મારી પાસે પહેલાથી જ rm જેવી આદેશો છે, તો હું કંઈક નવું કેમ કા whyી નાખવા માંગું છું?
કારણ કે બંને "બ્લેક હોલ" નું કાર્ય સંપૂર્ણપણે અલગ છે: રનટાઈમ પર શેલ સ્ક્રિપ્ટ અંદરના આદેશમાં ભૂલના પ્રમાણભૂત આઉટપુટને તમે કેવી રીતે ઓવરરાઇડ કરી શકો છો? આ તે છે જ્યાં / દેવ / નલ આવે છે.
ચાલો તેને એક ઉદાહરણ સાથે જોઈએ.
આપણે પરીક્ષણો નામની એક ફાઇલ બનાવી છે, જેમાં "હેલો વર્લ્ડ" શબ્દમાળા છે. જો આપણે કમાન્ડ લાઇન પર તે ફાઇલની સામગ્રીનું પ્રતિનિધિત્વ કરવા માંગતા હો, તો અમે તેને નીચેની રીતે કરી શકીએ:
વપરાશકર્તા @ લેપટોપ: $ $ બિલાડી પરીક્ષણ
હેલો વર્લ્ડ
જો ફાઇલ અસ્તિત્વમાં ન હોત અથવા તેને પરીક્ષણો તરીકે નામ આપવામાં આવ્યું હતું (અંતમાં 'ઓ' સાથે), તો અમને કન્સોલમાં નીચેની ભૂલ મળશે:
વપરાશકર્તા @ લેપટોપ: $ $ બિલાડી પરીક્ષણો
બિલાડી: પરીક્ષણો: ફાઇલ અથવા ડિરેક્ટરી અસ્તિત્વમાં નથી
ભૂલ સંદેશ ટાળવા માટે આપણે શું કરી શકીએ? ઠીક છે, ખાલી આદેશનું આઉટપુટ, ભૂલ હોવાના કિસ્સામાં, "કચરાપેટી" પર રીડાયરેક્ટ કરવું, તે / dev / null છે
ભૂલના કિસ્સામાં તેને કેવી રીતે નિર્દિષ્ટ કરીએ છીએ? અહીં તમે પ્રોગ્રામ માટે માનક ઇનપુટ, આઉટપુટ અને ભૂલ મૂલ્યો દાખલ કરો: STDIN, STDOUT અને STDERR (જે અનુક્રમે 0, 1 અને 2 માટે બદલી શકાય છે). આ રીતે, જો આપણે મૂકીએ ...
વપરાશકર્તા @ લેપટોપ: $ $ બિલાડી પરીક્ષણો 2> / દેવ / નલ
વપરાશકર્તા @ લેપટોપ: ~ $
… અમે જોશું કે કન્સોલ પર એરર મેસેજ બનાવવામાં આવશે નહીં.
તમારે સાવચેત રહેવું જોઈએ કારણ કે વાક્યરચના આવશ્યક છે: 2 અને> અક્ષરો વચ્ચે કોઈ જગ્યા હોવી જોઈએ નહીં. નહિંતર, તે નીચે આપશે:
વપરાશકર્તા @ લેપટોપ: $ $ બિલાડી પરીક્ષણો 2> / દેવ / નલ
બિલાડી: પરીક્ષણો: ફાઇલ અથવા ડિરેક્ટરી અસ્તિત્વમાં નથી
બિલાડી: 2: ફાઇલ અથવા ડિરેક્ટરી અસ્તિત્વમાં નથી
તેનાથી વિપરિત,> અને / દેવ / નલ વચ્ચેની જગ્યા પરિણામને નકારાત્મક અસર કરશે નહીં.
આપણે ભૂલ રીડાયરેક્શનનો ઉપયોગ પણ કરી શકીએ છીએ, ઉદાહરણ તરીકે, લ logગ ફાઇલમાં ભૂલોને નીચે પ્રમાણે કેપ્ચર કરવા માટે:
વપરાશકર્તા @ લેપટોપ: $ $ બિલાડી પરીક્ષણો 2> err.log
બીજો રસપ્રદ કેસ, જ્યાં સુધી ભૂલ ન થાય ત્યાં સુધી બીજી ફાઇલમાં પરિણામોનો સંગ્રહ હશે, જેના માટે અમે મૂકીશું:
વપરાશકર્તા @ લેપટોપ: $ $ બિલાડી પરીક્ષણ 1> આઉટપુટ_સ્સલ્ટ 2> એરઅરલોગ
અંતે, તે અભિવ્યક્તિ «> / dev / null 2> & 1 putting મૂકવા યોગ્ય છે જેમાં પ્રમાણભૂત આઉટપુટ અને ભૂલ આઉટપુટ સંયુક્ત થાય છે, તેમને રીડાયરેક્ટ કરે છે જેથી કોઈ પણ સંજોગોમાં આઉટપુટ માહિતી પ્રાપ્ત ન થાય.
આહ, પરંતુ / dev / null એ સૌથી વધુ ઉપયોગમાં લેવાતી યુટિલિટીઝ ગુમ થયેલ છે, જે ફાઇલો ખાલી કરી રહી છે: $ કેટ / દેવ / નલ> file.log આ રીતે, ફાઇલ.લોગ ફાઇલ ખાલી હશે. તેને ઉમેરો!
તે શોધી રહ્યું હતું તે સ્પષ્ટપણે સ્પષ્ટતા હતી.
હું તેને ઉમેરવા માટે ગતિને સપોર્ટ કરું છું =)
શુભેચ્છાઓ!
હેલો, સૌ પ્રથમ લેખ ખૂબ જ સારો છે! બીજું હું આ વિષય પરની આ લિંક સાથે કંઈક ફાળો આપવા માંગુ છું સી.પી.એન.એલ. થી પી.એચ.પી. માં ક્રોન જોબ અને બ્લોગ માટે ત્રીજી અભિનંદન!
દેવ / નલ પર સરસ લેખ, મને શું શરમ લાગે છે કે મેં પહેલાં ભૂલથી ખોટી જગ્યાએ ટિપ્પણી કરી છે! હું માફી માંગુ છું
આભાર સારા યોગદાન
શુભેચ્છાઓ મને નલ એટેક આવી રહ્યો છે. હું એન્ડ્રિકનો ઉપયોગ કરું છું અને હું મારા ઉપનામથી નલ શબ્દ સાથે ખાનગી છું. 2 સેકંડ પછી પ્રોગ્રામ બંધ થાય છે હું વાંચતો રહ્યો છું અને જે હું જોઉં છું તે ફક્ત શેલ દ્વારા જ થઈ શકે છે, કોઈ બાહ્ય નહીં. મેં મારી જાતને અવગણવાનો / અવગણવાનો પ્રયત્ન કર્યો છે -lrpcntikd અને કંઈપણ મને આદેશ આવતા જતા આશ્ચર્ય નહીં કરે. જો તમારી પાસે તેને અવરોધિત કરવાનો પ્રયાસ કરવાની કોઈ રીત છે, તો હું તેની પ્રશંસા કરીશ. ચીર્સ
જો વાક્ય ચલાવતો હોય ત્યારે પ્રતીક> ન મૂકવામાં આવે તો શું થાય છે?
કૃપા કરી કોઈ મને માર્ગદર્શન આપી શકે?
ગુડ મોર્નિંગ, મેં ACER Extensa 5620Z – 32 bit માં Debian netinst ઇન્સ્ટોલ કર્યું છે. એકવાર USB માંથી ઇન્સ્ટોલેશન પૂર્ણ થઈ જાય અને પેનડ્રાઈવ કાઢી નાખવામાં આવે જેથી તે હાર્ડ ડિસ્કમાંથી બુટ થઈ જાય (પેનથી પુનઃસ્થાપિત કરશો નહીં) પરંતુ બુટ થવાની ક્ષણે સિસ્ટમ તેણી મને પૂછે છે:
ડેબિયન લૉગિન: xxxxxxxx (ઠીક)
પાસવર્ડ: xxxxxxxx (ઓકે)
nil@debian:~$ ???? આ શું છે? મારે ત્યાં શું મૂકવું જોઈએ?
આ આદેશ વિના હું સિસ્ટમ બુટ સાથે આગળ વધી શકતો નથી.
શું તમે મને મદદ કરી શકશો? મને ખબર નથી કે મારે કેવી રીતે ચાલુ રાખવું જોઈએ.
ખુબ ખુબ આભાર. શ્રેષ્ઠ શુભેચ્છા.