Gå til innhold

hva er /dev/null ?


Anbefalte innlegg

Videoannonse
Annonse

/dev/null er ingen ting. Prøv å ta cat /dev/null så ser du. Hvis du f.eks flytter en fil ditt så blir den borte. Også kjekt hvis man har et program som spytter ut mye unødvendig tekst, så kan man sende det til /dev/null så slipper man å se det.

Lenke til kommentar

men hva er egentlig /dev/zero

 

akkurat som dev/null er det verken fil eller mappe og alt annet virker også stort sett likt, men jeg leste litt rundt og fant dette:

 

/dev/zero is an infinite source of zero bytes.

 

i mine øyne virker dette litt motsigende, men men.

 

uansett så lekte jeg litt og fant ut at:

cat /dev/null viser ingenting (visste egentlig det på forhånd)

cat /dev/zero henger maskinen (omtrent samme effekt som en forkbomb gjør)

Lenke til kommentar
Jeg vet ikke om du har programmet "yes" på boksen din, i tilfelle kan du jo prøve det.  :lol:  

 

Baq

 yes & > /dev/null 

Skriver så mange "y"er som den bare kan og sender alt til /dev/null som spiser det opp.. Ikke bare dét, men yes kjører også flere tråder (eller, skal, jeg er ikke 100% stabil på flertrådskjøring) pga & tegnet. Det betyr at maskina vil overarbeide seg ganske snart. Får nok en kernelpanic ;)

 

Dessuten har jeg sett mange av /dev/null vitsene, de er kuuuule! :D:D

Lenke til kommentar
Jeg vet ikke om du har programmet "yes" på boksen din, i tilfelle kan du jo prøve det.  :lol:  

 

Baq

 yes & > /dev/null 

Skriver så mange "y"er som den bare kan og sender alt til /dev/null som spiser det opp.. Ikke bare dét, men yes kjører også flere tråder (eller, skal, jeg er ikke 100% stabil på flertrådskjøring) pga & tegnet. Det betyr at maskina vil overarbeide seg ganske snart. Får nok en kernelpanic ;)

 

Dessuten har jeg sett mange av /dev/null vitsene, de er kuuuule! :D:D

 

Hey! Å sende til /dev/null er feigt! :lol:

 

Baq

Lenke til kommentar
Skriver så mange "y"er som den bare kan og sender alt til /dev/null som spiser det opp.. Ikke bare dét, men yes kjører også flere tråder (eller, skal, jeg er ikke 100% stabil på flertrådskjøring) pga & tegnet. Det betyr at maskina vil overarbeide seg ganske snart. Får nok en kernelpanic ;)

At du slenger på & betyr bare at du starter en bakgrunnsprosess - det blir altså ikke flere prosesser (eller tråder) av den grunn. Forskjellen på forgrunn- og bakgrunnsprosess er at med førstnevnte blir shellet ditt "okkupert" slik at du må vente til programmet du har startet avslutter før du kan fortsette å jobbe i shellet (eller ta en frekk en med ctrl+c). Med en bakgrunnsprosess skjer altså ikke dette og du kan fortsette å jobbe med en gang.

 


/root$ yes > /dev/null &

[1] 21306

Maskinen sender nå uendelig remse med y'er til /dev/null

 

Med 'top' kan man se at maskinen får nok å bryne seg på med tett oppunder 100% cpu usage, men minnebruken er konstant (yes bruker ikke mange kilobytes), og det er derfor ingen fare for havari:


load averages:  1.11,  0.82,  0.48                                     01:01:35

25 processes:  2 running, 23 idle

CPU states: 96.7% user,  0.0% nice,  3.1% system,  0.2% interrupt,  0.0% idle

Memory: Real: 7412K/30M act/tot  Free: 59M  Swap: 0K/127M used/tot



 PID USERNAME PRI NICE  SIZE   RES STATE WAIT     TIME    CPU COMMAND

21306 root      64    0   84K  336K run   -        6:27 99.02% yes

31563 root       2    0  908K  840K sleep select   0:01  0.00% sendmail

17620 root       2    0  448K 1232K sleep select   0:01  0.00% sshd

21333 root       3    0  400K  328K idle  ttyin    0:01  0.00% ksh

21701 www        2    0 1124K 1468K sleep select   0:02  0.00% httpd

9227 root       2    0  356K  876K idle  select   0:00  0.00% sshd

13447 root       2    0  104K  384K sleep select   0:00  0.00% syslogd

9658 root       2    0  232K  460K idle  select   0:00  0.00% cron

   1 root      10    0  348K  212K idle  wait     0:00  0.00% init

6536 root      18    0  396K  312K idle  pause    0:00  0.00% ksh

25271 root       2    0  440K  272K idle  poll     0:00  0.00% dhclient

3437 root      28    0  152K  716K run   -        0:00  0.00% top

12026 www        2    0 1136K  892K idle  netcon   0:00  0.00% httpd

3926 www        2    0 1124K  524K idle  netcon   0:00  0.00% httpd

32310 www        2    0 1136K  900K idle  netcon   0:00  0.00% httpd

14525 root       3    0   48K  404K idle  ttyin    0:00  0.00% getty

16840 root       3    0   48K  404K idle  ttyin    0:00  0.00% getty

24501 www        2    0 1124K  524K idle  netcon   0:00  0.00% httpd

21524 root       3    0   48K  404K idle  ttyin    0:00  0.00% getty

PS. Dette var på OpenBSD 3.3 men det skjer nok akkurat det samme i Linux.

Lenke til kommentar
hva er "yes"

yes er et idiotisk program som skriver ut en hel haug med y-er.

ehem, yes er ikke idiotisk. som alle andre unix-programmer er de laget for en grunn. yes brukes f.eks. å svare "y" eller noe annet til program som leser fra stdin. f.eks. et config-program!

 

eks:

yes | make config

^ hvis du vil svare "y" til alle svarene i kernel make config.. :p

eller et annet eksempel:

 

lagde et program som leser fra stdin:

#include <stdio.h>



int main(void)

{

       char buf[16];

       

       printf("Do you like me? (yes|no) ");

       fgets(buf, sizeof(buf), stdin);



       printf("You answered %sn", buf);



       return 0;

}

og kjørte det:

$ ./input 

Do you like me? (yes|no) nope

You answered nope



$ yes | ./input

Do you like me? (yes|no) You answered y



 

so, you see?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...