Управљање датотекама

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

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

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

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

Предуслови

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

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

На пример, следећа наредба ће исписати низ унутар двоструког наводника. Овде се излаз чува у стдоут.

$ ецхо „Хелло Ворлд“

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

$ ецхо $?

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

$ адфадсф
$ ецхо $?

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

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

$ ецхо “Хелло Ворлд”> лог.ткт

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

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

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

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

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

$ греп -р здраво / сис /

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

$ греп -р хелло / сис / 2> / дев / нулл

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

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

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

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

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

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

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

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

$ греп -р хелло / сис /> / дев / нулл 2> & 1

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

$ ецхо $?

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

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

$ греп -р хелло / сис / &> / дев / нулл

Остали примери

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

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

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

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

$ вгет -О / дев / нулл

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

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

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

Уживати!

Вулкан за кориснике Линука
Са сваком новом генерацијом графичких картица видимо да програмери игара помичу границе графичке верности и долазе на корак од фотореализма. Али упрко...
ОпенТТД вс Симутранс
Стварање сопствене симулације превоза може бити забавно, опуштајуће и изузетно примамљиво. Због тога морате да испробате што више игара како бисте про...
Водич за ОпенТТД
ОпенТТД је једна од најпопуларнијих игара за пословну симулацију. У овој игри морате створити диван посао превоза. Међутим, почет ћете у почетку око 1...