Шта је /дев /нулл и како га користити

What Is Dev Null How Use It



Линук је занимљив оперативни систем који хостује неке виртуелне уређаје у бројне сврхе. Што се тиче програма који се изводе у систему, ти виртуелни уређаји се понашају као да су праве датотеке. Алати могу захтевати и хранити податке из ових извора. ОС генерише податке уместо да их чита са диска.

Један такав пример је /дев /нулл. То је посебна датотека која је присутна у сваком Линук систему. Међутим, за разлику од већине других виртуелних датотека, уместо читања, користи се за писање. Све што напишете /дев /нулл биће одбачено, заборављено у празнину. Познат је као нулти уређај у УНИКС систему.







Зашто желите да баците нешто у празнину? Хајде да проверимо шта је /дев /нулл и његову употребу.



Предуслови

Пре него што дубоко заронимо у употребу /дев /нулл, морамо јасно да разумемо стдоут и стдерр ток података. Погледајте ово дубински водич о стдин , стдерр , и стдоут .



Хајде да се брзо освежимо. Кад год се покрене било који помоћни програм командне линије, он генерише два излаза. Излаз иде на стдоут а грешка (ако је генерисана) иде на стдерр . Подразумевано, оба ова тока података су повезана са терминалом.





На пример, следећа команда ће одштампати низ унутар двоструких наводника. Овде је излаз ускладиштен у стдоут .

$ИзбациоЗдраво Свете



Следећа команда ће нам показати излазни статус претходно покренуте команде.

$Избацио $?

Пошто је претходна команда успешно покренута, статус излаза је 0. У супротном, статус излаза ће бити другачији. Шта се дешава када покушате да покренете неважећу команду?

$ адфадсф
$Избацио $?

Сада морамо знати о дескриптору датотеке. У УНИКС екосистему, то су целобројне вредности додељене датотеци. Обоје стдоут (дескриптор датотеке = 1) и стдерр (дескриптор датотеке = 2) имају одређени дескриптор датотеке. Користећи дескриптор датотеке (1 и 2 у овој ситуацији), можемо преусмерити стдоут и стдерр у друге датотеке.

За почетак, следећи пример ће преусмерити стдоут наредбе ецхо у текстуалну датотеку. Овде нисмо навели дескриптор датотеке. Ако није наведено, користит ће басх стдоут подразумевано.

$ИзбациоЗдраво Свете>лог.ткт

Следећа команда ће преусмерити стдерр у текстуалну датотеку.

$асдфадса2>еррор.ткт

Коришћење /дев /нулл

Преусмеравање излаза на /дев /нулл

Сада смо спремни да научимо како да користимо /дев /нулл. Прво, хајде да проверимо како да филтрирамо нормалне излазе и грешке. У следећој команди, греп ће покушати да потражи низ (здраво, у овом случају) у директоријуму /сис.

$дршка Здраво/сис/

Међутим, генерисаће много грешака јер без привилегија роот -а греп не може приступити одређеном броју датотека. У том случају то ће довести до грешака у одбијању дозволе. Сада, користећи преусмеравање, можемо добити јаснији излаз.

$дршка Здраво/сис/ 2> /дев/нула

Излаз изгледа много боље, зар не? Ништа! У овом случају, греп нема приступ великом броју датотека, а оне које су доступне немају стринг хелло.

У следећем примеру ћемо пингати Гоогле.

$пингГоогле цом

Међутим, не желимо да видимо све те успешне пинг резултате. Уместо тога, желимо само да се усредсредимо на грешке када пинг није могао да дође до Гоогле -а. Како то да урадимо?

$пингГоогле цом1> /дев/нула

Овде је садржај стдоут се избацују у /дев /нулл, остављајући само грешке.

Преусмери сав излаз на /дев /нулл

У одређеним ситуацијама излаз можда неће бити од користи. Користећи преусмеравање, можемо све податке избацити у празнину.

$дршка Здраво/сис/ > /дев/нула2> &1

Прекинимо мало ову наредбу. Прво, бацамо све стдоут у /дев /нулл. Затим, у другом делу, кажемо басху да пошаље стдерр до стдоут . У овом примеру нема ништа за исписати. Међутим, ако сте збуњени, увек можете да проверите да ли је команда успешно покренута.

$Избацио $?

Вредност је 2 јер је команда генерисала много грешака.

Ако сте склони да заборавите дескриптор датотеке за стдоут и стдерр , следећа команда ће бити сасвим у реду. То је генерализованији формат претходне команде. Обоје стдоут и стдерр биће преусмерени на /дев /нулл.

$дршка Здраво/сис/ &> /дев/нула

Други примери

Ово је занимљиво. Сећате ли се дд алата? То је моћан алат за претварање и копирање датотека. Сазнајте више о дд. Помоћу дд -а можемо тестирати брзину узастопног читања вашег диска. Наравно, то није тачно мерење. Међутим, за брзи тест, то је прилично корисно.

$дд ако=<биг_филе> оф=/дев/нуластатус= напредакбс= 1Мифлаг= директно

Овде сам користио Убунту 18.04.4 ИСО као велику датотеку.

Слично, можете тестирати и брзину преузимања интернетске везе.

$вгет -ОР /дев/нула<биг_филе_линк>

Последње мисли

Надајмо се да имате јасно разумевање шта је ова /дев /нулл датотека. То је посебан уређај који, ако се на њега напише, одбацује и ако се чита, чита нулл. Прави потенцијал ове занимљиве особине је у занимљивим басх скриптама.

Да ли сте заинтересовани за басх скрипт? Проверити водич за почетнике за басх скрипт .

Уживати!