Егер бізде GNU / Linux каталогтар ағашы туралы түсініктер болса, біз, кем дегенде, / dev / сілтемесімен таныс болуымыз керек, бұл барлық файлдармен байланысты болады. аппараттық құрылғылар.
Егер анықтамалықты қарастыратын болсақ / dev / деп аталатын «файлды» көреміз NULL, бірақ егер біз оның мазмұнын көру үшін ашқымыз келсе, жүйе бұл мүмкін емес екенін айтады, өйткені бұл қарапайым мазмұн емес. Мен файл сөзін қосып қойдым, өйткені Linux үшін бәрін білесіздер (аппараттық және бағдарламалық жасақтама) файл түрінде ұсынылады. |
/ Dev / null қандай құрылғыға сәйкес келеді?
Практикалық мақсаттар үшін қоқыс жәшігін, түбі жоқ шұңқырды немесе оны қалпына келтіру мүмкіндігіне қарамастан кез-келген затты лақтыратын кеңістікті елестетіп көріңіз (NASA жігіттері қанша тырысса да).
Егер менде rm тәрізді пәрмендер болса, неге жаңа нәрсе жойылғанын қалаймын?
Екі «қара тесік» жұмысының тәсілі мүлдем басқаша болғандықтан: жұмыс кезінде қабықшалар сценарийіндегі команданың қатесінің стандартты нәтижесін қалай жоюға болады? Мұнда / dev / null кіреді.
Мұны мысалмен көрейік.
Біз «Hello World» жолын қамтитын тесттер деп аталатын файл құрдық. Егер біз осы файлдың мазмұнын пәрмен жолында ұсынғымыз келсе, оны келесі жолмен жасай аламыз:
user @ laptop: ~ $ мысық сынағы
Сәлем Әлем
Егер файл жоқ болса немесе тест ретінде аталған болса (соңында 's' болса), консольде келесі қате пайда болады:
user @ laptop: ~ $ мысық сынақтары
мысық: тесттер: файл немесе каталог жоқ
Қате туралы хабардан аулақ болу үшін не істей аламыз? Пәрменнің нәтижесін қате болған жағдайда «қоқыс жәшігіне» қайта бағыттаңыз, яғни / dev / null
Қате болған жағдайда оны қалай көрсетеміз? Мұнда сіз бағдарлама үшін стандартты енгізу, шығару және қателік мәндерін енгізесіз: STDIN, STDOUT және STDERR (оларды сәйкесінше 0, 1 және 2-ге ауыстыруға болады). Осылайша, егер біз ...
user @ ноутбук: ~ $ мысық сынақтары 2> / dev / null
пайдаланушы @ ноутбук: ~ $
… Қате туралы хабар консольде жасалмайтынын көреміз.
Мұқият болуыңыз керек, өйткені синтаксис өте маңызды: 2 мен> таңбалары арасында бос орын болмауы керек. Әйтпесе, бұл келесілерді береді:
user @ ноутбук: ~ $ мысық сынақтары 2> / dev / null
мысық: тесттер: файл немесе каталог жоқ
мысық: 2: файл немесе каталог жоқ
Керісінше,> мен / dev / null арасындағы бос орын нәтижеге кері әсер етпейді.
Қателерді қайта бағыттауды, мысалы, журнал файлындағы қателерді келесідей түсіру үшін пайдалануымыз мүмкін:
user @ laptop: ~ $ мысық сынақтары 2> err.log
Тағы бір қызықты жағдай, егер қате болмаса, нәтижені басқа файлға жинау болар еді, біз оны қоямыз:
user @ laptop: ~ $ cat test 1> output_result 2> err.log
Сонымен, «> / dev / null 2> & 1» өрнегін қою керек, онда стандартты шығыс пен қате шығысы біріктіріліп, оларды ешқандай жағдайда шығыс туралы ақпарат алынбайтын етіп қайта бағыттаңыз.
8 пікір, өз пікіріңізді қалдырыңыз
Ах, бірақ ең көп қолданылатын утилиталардың бірі жоқ, ол файлдарды босатады: $ cat / dev / null> file.log Осылайша, file.log файлы бос болады. Қосыңыз!
Ол дәл осы түсініктемені іздеді.
Мен оны қосу туралы ұсынысты қолдаймын =)
Сәлемдесу!
Сәлеметсіз бе, ең алдымен мақала өте жақсы! екіншісі, мен осы тақырып бойынша осы сілтеме арқылы бірдеңе қосқым келеді Cpanel-ден PHP-дегі cron жұмысы және блог үшін үшінші құттықтаулар!
Dev / null туралы жақсы мақала, мен бұған дейін қате пікір жазғанмын деп ойлаймын! Мен кешірім сұраймын
рахмет жақсы үлес
Сәлемдесулер маған шабуыл жасайды. Мен андриркті қолданамын және мен өзімнің лақабымнан Null сөзімен қатардағы адамды аламын. 2 секундтан кейін бағдарлама жабылады, мен оқыдым және мұны тек сыртқы адам емес, Shell ғана жасай алады. Мен өзімді елемеуге тырыстым / -lrpcntikd-ді елемеуге тырыстым, және мені ешнәрсе таң қалдырмайды. Егер сізде бұған тосқауыл қоюдың қандай-да бір әдісі болса, мен мұны бағалаймын. Алақай!
Егер сөйлемді орындау кезінде> белгісі қойылмаса не болады?
Маған біреу жол көрсете ала ма?
Қайырлы таң, мен Debian netinst бағдарламасын ACER Extensa 5620Z – 32 битке орнаттым. USB құрылғысынан орнату аяқталғаннан кейін және дискі қатты дискіден жүктелетіндей (қаламнан қайта орнатпаңыз), бірақ жүктелу сәтінде жойылады. ол менен сұрайтын жүйе:
debian логин: xxxxxxxx (жарайды)
Құпия сөз: xxxxxxxx (жарайды)
nil@debian:~$ ???? бұл не? Онда не қоюым керек?
Бұл пәрменсіз жүйені жүктеуді жалғастыра алмаймын.
Сен маған көмектесе аласың ба? Мен қалай жалғастыру керектігін білмеймін.
Көп рақмет. Ең жақсы тілектер.