# os

***

### 1. Get Current Working Directory

```js
const os = require('os');

console.log(os.cwd());
```

### 2. Get Temporary Directory

```js
const os = require('os');

console.log(os.tmpdir());
```

### 3. Get Home Directory

```js
const os = require('os');

console.log(os.homedir());
```

### 4. Get Username

```js
const os = require('os');

console.log(os.userInfo().username);
```

### 5. Get Platform

```js
const os = require('os');

console.log(os.platform());
// e.g. 'linux', 'darwin', 'win32'
```

### 6. Get Architecture

```js
const os = require('os');

console.log(os.arch());
// e.g. 'x64', 'arm'
```

### 7. Get Hostname

```js
const os = require('os');

console.log(os.hostname());
```

### 8. Get Release

```js
const os = require('os');

console.log(os.release());
// e.g. '10.15.7'
```

### 9. Get CPU Information (Physical)

```js
const os = require('os');

console.log(os.cpus());
/*
[
  {
    model: 'Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz',
    speed: 1300,
    times: {
      user: 1103000,
      nice: 0,
      sys: 547000,
      idle: 7244000
    }
  },
  // ...
]
*/
```

### 10. Get CPU Information (Logical)

```js
const os = require('os');

console.log(os.cpus().length);
// e.g. 4
```

### 11. Get Free Memory

```js
const os = require('os');

console.log(os.freemem());
// e.g. 16252236800
```

### 12. Get Total Memory

```js
const os = require('os');

console.log(os.totalmem());
// e.g. 33554432000
```

### 13. Get Network Interfaces

```js
const os = require('os');

const networkInterfaces = os.networkInterfaces();
for (const key in networkInterfaces) {
  console.log(key, networkInterfaces[key]);
}
```

### 14. Restart the System

```js
const os = require('os');

// Note: This requires root privileges.
os.reboot();
```

### 15. Shutdown the System

```js
const os = require('os');

// Note: This requires root privileges.
os.shutdown();
```

### 16. Get System Uptime

```js
const os = require('os');

console.log(os.uptime());
// e.g. 123456
```

### 17. Get Load Average

```js
const os = require('os');

const [oneMinAvg, fiveMinAvg, fifteenMinAvg] = os.loadavg();
console.log(oneMinAvg, fiveMinAvg, fifteenMinAvg);
```

### 18. Check If Process Is Running

```js
const os = require('os');

console.log(os.getPriority(process.pid));
// e.g. 0
```

### 19. Change Process Priority

```js
const os = require('os');

// Note: This requires root privileges.
os.setPriority(process.pid, 10);
```

### 20. Get File System Information

```js
const os = require('os');

console.log(os.stats('/usr/local'));
/*
{
  dev: 16777221,
  mode: 16877,
  nlink: 2,
  uid: 0,
  gid: 0,
  rdev: 0,
  blksize: 4096,
  ino: 18392942,
  size: 4096,
  blocks: 8,
  atimeMs: 1645227746653.946,
  mtimeMs: 1645227746653.946,
  ctimeMs: 1645227746653.946,
  birthtimeMs: 1645227746653.946
}
*/
```

### 21. Check File Access

```js
const os = require('os');

console.log(os.access('/usr/local', os.constants.R_OK));
// e.g. true
```

### 22. Read File

```js
const os = require('os');

console.log(os.readFileSync('/usr/local/bin/node', 'utf-8'));
// e.g. '#!/usr/bin/env node'
```

### 23. Write File

```js
const os = require('os');

os.writeFileSync('/tmp/test.txt', 'Hello, world!', 'utf-8');
```

### 24. Rename File

```js
const os = require('os');

os.rename('/tmp/test.txt', '/tmp/new-test.txt');
```

### 25. Delete File

```js
const os = require('os');

os.unlink('/tmp/new-test.txt');
```

### 26. Create Directory

```js
const os = require('os');

os.mkdir('/tmp/new-directory');
```

### 27. Delete Directory

```js
const os = require('os');

os.rmdir('/tmp/new-directory');
```

### 28. Change Directory

```js
const os = require('os');

os.chdir('/tmp');
```

### 29. List Files in Directory

```js
const os = require('os');

console.log(os.readdirSync('/usr/local/bin'));
// e.g. ['node', 'npm', 'npx', 'tsc']
```

### 30. Check If Path Exists

```js
const os = require('os');

console.log(os.pathExists('/usr/local/bin/node'));
// e.g. true
```

### 31. Get File Size

```js
const os = require('os');

console.log(os.statSync('/usr/local/bin/node').size);
// e.g. 123456
```

### 32. Convert Path to Absolute Path

```js
const os = require('os');

console.log(os.realpathSync('/usr/local/bin/node'));
// e.g. '/usr/local/bin/node'
```

### 33. Normalize Path

```js
const os = require('os');

console.log(os.normalize('/usr/local/bin//node'));
// e.g. '/usr/local/bin/node'
```

### 34. Resolve Path

```js
const os = require('os');

console.log(os.resolve('/usr/local/bin/node'));
// e.g. '/usr/local/bin/node'
```

### 35. Get Temporary File Name

```js
const os = require('os');

console.log(os.tmpDir() + '/file.txt');
```

### 36. Create Temporary File

```js
const os = require('os');
const fs = require('fs');

const tmpFile = os.tmpDir() + '/file.txt';
fs.writeFileSync(tmpFile, 'Hello, world!');
```
