Jos olet oppinut shell-ohjelmointia, olet ehkä jo törmännyt sellaiseen kuin /dev/null. Tässä artikkelissa ymmärrämme, mikä se on ja miten sitä käytetään. Aloitetaan ymmärtämällä, mikä /dev on.
Mikä on /dev?
Linux-tiedostojärjestelmässä kaikki on tiedostoa tai hakemistoa. Jopa laitteita käytetään tiedostoina. Kiintolevyosiot, kynäasema, kaiuttimet, kaikkia näitä varten on olemassa tiedosto, josta niihin pääsee käsiksi. Ymmärtääksesi, kuinka laitteita käytetään tiedostoina, ajattele sitä tällä tavalla: mitä teemme tiedostolla? Luemme siitä dataa ja kirjoitamme siihen dataa. Laite, kuten kaiutin, voi syöttää dataa äänen tuottamiseksi, kiintolevyä voidaan käyttää tietojen lukemiseen ja kirjoittamiseen, tulostin ottaa syötteen tiedostojen tulostamiseen jne. Tiedostot ja laitteet ovat tällä tavalla samanlaisia
/dev on hakemisto, joka tallentaa kaikki Linux-järjestelmän fyysiset ja virtuaaliset laitteet. Fyysisiä laitteita on helppo ymmärtää, ne ovat konkreettisia laitteita, kuten kynäasema, kaiuttimet, tulostimet jne. Linux-järjestelmässä on myös virtuaalisia laitteita, jotka toimivat laitteena, mutta eivät edusta fyysistä laitetta.
Mikä on /dev/null?
Se on virtuaalinen laite, jolla on erityinen ominaisuus: Kaikki tiedostoon /dev/null kirjoitetut tiedot katoavat tai katoavat. Tämän ominaisuuden vuoksi sitä kutsutaan myös bitbucketiksi tai blackholeksi. Katsotaanpa mielenosoitus.
arduinon toiminnot
Uudelleenohjaa tulos hakemistoon /dev/null

Tässä esittelyssä voit nähdä, että lisäsimme tietoja, mutta niitä ei tallennettu. Tällä /dev/null-ominaisuudella on joitain käyttötapauksia. Katsotaanpa niitä.
Tiedoston /dev/null käyttö
Koska se hylkää kaiken siihen kirjoitetun, voit poistaa ne siirtämällä tiedostot kansioon /dev/null. Mutta tämä ei ole laajalti käytetty tapaus. Sitä käytetään pääasiassa standardilähdön ja standardivirheen hylkäämiseen lähdöstä.
Mitä ovat vakiotulostus ja standardivirhe?
Linux-komennon tulos sisältää kaksi tietovirtaa: vakiolähtö (stdout) ja vakiovirhe (stderr0), kun taas vakiotuloste on normaali tulos, jos komennossa ei ole virheitä, vakiovirhe on komennon luoma virhe. Lähtö voi sisältää sekä vakiolähdön että vakiotulon. Esimerkki stdoutista ja stderr:stä:
Suoritetaan seuraava shell-skripti
# /bin/sh ls apt update>

Ensimmäinen komento suoritettiin onnistuneesti, mutta toinen aiheutti virheen. Koska stdout ja stderr ovat kaksi erillistä tietovirtaa, niitä voidaan käsitellä erikseen.
Kuinka päästä stderriin ja stdoutiin?
Stdout ja stderr ovat tietovirtoja, joita molempia käsitellään tiedostoina Linuxissa. Jos haluat suorittaa näille jotain, käytä tiedostokuvaajaa, joka yksilöi tiedostovirran. Tiedoston stdout-kuvaus on 1 ja stderr on 2.
päivitys sql:ssä liittymällä
Jos haluat käyttää niitä erikseen, katsotaan seuraava komento, joka suoritetaan samalle komentosarjatiedostolle, jota käytettiin edellisessä esimerkissä.
Tästä voit nähdä, että tulos sisältää vakiovirheitä, mutta vakiotulostetta ei näy. Tämä johtuu siitä, että stdout-virta lähetettiin stdout.txt-tiedostoon, ja voit nähdä, että stdout.txt-tiedosto sisältää vakiotulosteen.
Kun kirjoitamme komentosarjan komentosarjaa, saatamme haluta hylätä vakiovirheen tulosteesta. Minkä virran haluammekin estää lähdöstä, se tietovirta voidaan kirjoittaa tiedostoon /dev/null. Voit kirjoittaa tiedot toiseen tiedostoon, aivan kuten yllä olevassa esimerkissä, mutta jos sinulla ei ole käyttöä niille, miksi haluat tuhlata muistia niihin, on parempi hylätä se kokonaan. Katsotaanpa seuraava esimerkki
Ja juuri näin, olemme poistaneet stderrin lähdöstä. Jos haluat hylätä koko tulosteen, voit käyttää seuraavaa komentoa
lateksi fontti
Suojattu tiedostojen poisto
'/dev/null' löytää apuohjelman suojatussa tiedostojen poistamisessa. Uudelleenohjaamalla '/dev/null' tiedostoon, voit tehokkaasti korvata sen sisällön nollatavuilla, mikä tekee merkityksellisten tietojen palauttamisesta haastavaa.
Esimerkiksi:
dfs-algoritmi
Lokitiedostojen puhdistaminen
Lokitiedostot voivat kerätä paljon tietoa ajan myötä. Voit tyhjentää lokitiedostot keskeyttämättä käynnissä olevia palveluita ohjaamalla niiden sisällön osoitteeseen /dev/null.
Esimerkiksi:
Vinkkejä ja temppuja:
- Vakiolähdön uudelleenohjaus osoitteeseen '/dev/null': 'komento> /dev/null'
- Vakiovirheen uudelleenohjaus osoitteeseen '/dev/null': 'komento 2> /dev/null'
- Sekä lähdön että virheen uudelleenohjaus osoitteeseen '/dev/null': 'komento>/dev/null 2>&1'
Johtopäätös
Tässä artikkelissa keskustelimme `/dev/null' Linuxissa on virtuaalinen musta aukko, johon data katoaa, kun siihen kirjoitetaan. Sitä käytetään yleisesti hylkäämään tulosteet ja virheet, mikä tekee komennon suorittamisesta puhtaampaa. Sitä voidaan käyttää myös suojattuun tiedostojen poistamiseen ja lokitiedostojen puhdistamiseen. Sen toiminnallisuuden ymmärtäminen mahdollistaa tehokkaat komentorivitoiminnot Linuxissa.