/ Dev / null дегеніміз не және ол сізге қалай көмектесе алады?

Егер бізде GNU / Linux каталогтар ағашы туралы түсініктер болса, біз, кем дегенде, / dev / сілтемесімен таныс болуымыз керек, бұл барлық файлдармен байланысты болады. аппараттық құрылғылар.

Егер анықтамалықты қарастыратын болсақ / dev / деп аталатын «файлды» көреміз NULL, бірақ егер біз оның мазмұнын көру үшін ашқымыз келсе, жүйе бұл мүмкін емес екенін айтады, өйткені бұл қарапайым мазмұн емес. Мен файл сөзін қосып қойдым, өйткені Linux үшін бәрін білесіздер (аппараттық және бағдарламалық жасақтама) файл түрінде ұсынылады.

Бұл Даниэль Дурантаның қосқан үлесі, осылайша біздің апта сайынғы байқауымыздың жеңімпаздарының бірі болады: «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 пікір, өз пікіріңізді қалдырыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.

  1.   Гидо Игнасио Игнасио дижо

    Ах, бірақ ең көп қолданылатын утилиталардың бірі жоқ, ол файлдарды босатады: $ cat / dev / null> file.log Осылайша, file.log файлы бос болады. Қосыңыз!

    1.    Эдуардо Х дижо

      Ол дәл осы түсініктемені іздеді.
      Мен оны қосу туралы ұсынысты қолдаймын =)

      Сәлемдесу!

  2.   Пабло дижо

    Сәлеметсіз бе, ең алдымен мақала өте жақсы! екіншісі, мен осы тақырып бойынша осы сілтеме арқылы бірдеңе қосқым келеді Cpanel-ден PHP-дегі cron жұмысы және блог үшін үшінші құттықтаулар!

  3.   Пабло дижо

    Dev / null туралы жақсы мақала, мен бұған дейін қате пікір жазғанмын деп ойлаймын! Мен кешірім сұраймын

  4.   аноним дижо

    рахмет жақсы үлес

  5.   Джерс дижо

    Сәлемдесулер маған шабуыл жасайды. Мен андриркті қолданамын және мен өзімнің лақабымнан Null сөзімен қатардағы адамды аламын. 2 секундтан кейін бағдарлама жабылады, мен оқыдым және мұны тек сыртқы адам емес, Shell ғана жасай алады. Мен өзімді елемеуге тырыстым / -lrpcntikd-ді елемеуге тырыстым, және мені ешнәрсе таң қалдырмайды. Егер сізде бұған тосқауыл қоюдың қандай-да бір әдісі болса, мен мұны бағалаймын. Алақай!

  6.   София Мартинез дижо

    Егер сөйлемді орындау кезінде> белгісі қойылмаса не болады?

    Маған біреу жол көрсете ала ма?

  7.   Nil дижо

    Қайырлы таң, мен Debian netinst бағдарламасын ACER Extensa 5620Z – 32 битке орнаттым. USB құрылғысынан орнату аяқталғаннан кейін және дискі қатты дискіден жүктелетіндей (қаламнан қайта орнатпаңыз), бірақ жүктелу сәтінде жойылады. ол менен сұрайтын жүйе:
    debian логин: xxxxxxxx (жарайды)
    Құпия сөз: xxxxxxxx (жарайды)
    nil@debian:~$ ???? бұл не? Онда не қоюым керек?

    Бұл пәрменсіз жүйені жүктеуді жалғастыра алмаймын.
    Сен маған көмектесе аласың ба? Мен қалай жалғастыру керектігін білмеймін.
    Көп рақмет. Ең жақсы тілектер.