ํ…Œ์Šคํ„ฐ ๋“ฑ์„ ์œ„ํ•œ ๊ธฐ๋ณธ Linux ๋ช…๋ น

๋จธ๋ฆฌ๋ง

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„! ์ œ ์ด๋ฆ„์€ Sasha์ด๊ณ  XNUMX๋…„ ๋„˜๊ฒŒ ๋ฐฑ์—”๋“œ(Linux ์„œ๋น„์Šค ๋ฐ API)๋ฅผ ํ…Œ์ŠคํŠธํ•ด ์™”์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋Š” ํ…Œ์Šคํ„ฐ ์นœ๊ตฌ๊ฐ€ ์ธํ„ฐ๋ทฐ ์ „์— Linux ๋ช…๋ น์— ๋Œ€ํ•ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์„ ์•Œ๋ ค ๋‹ฌ๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ์š”์ฒญ์„ ๋ฐ›์€ ํ›„์— ๋‚˜์—๊ฒŒ ์™”์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ QA ์—”์ง€๋‹ˆ์–ด ์ง์ฑ…์˜ ํ›„๋ณด์ž๋Š” ๊ธฐ๋ณธ ๋ช…๋ น์„ ์•Œ์•„์•ผ ํ•˜์ง€๋งŒ(๋ฌผ๋ก  Linux ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ๊ฒฝ์šฐ), ์ธํ„ฐ๋ทฐ๋ฅผ ์ค€๋น„ํ•˜๋Š” ๋™์•ˆ ์ฝ์–ด๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๋ช…๋ น์ด ๋ฌด์—‡์ธ์ง€ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด Linux์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ์—†์Šต๋‹ˆ๊นŒ?

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ ์ด๋ฏธ ์—ฌ๋Ÿฌ ๋ฒˆ ์ž‘์„ฑ๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ "์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ Linux"๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ๊ธฐ์‚ฌ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๊ณ  Linux๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€์„œ(๋˜๋Š” ํšŒ์‚ฌ)์—์„œ ์ธํ„ฐ๋ทฐํ•˜๊ธฐ ์ „์— ์•Œ์•„์•ผ ํ•  ๊ธฐ๋ณธ ๋ช…๋ น์„ ์—ฌ๊ธฐ์— ๋‚˜์—ดํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ช…๋ น๊ณผ ์œ ํ‹ธ๋ฆฌํ‹ฐ, ์–ด๋–ค ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ƒ๊ฐํ•ด ๋ณด๊ณ , ๋™๋ฃŒ๋“ค๋กœ๋ถ€ํ„ฐ ํ”ผ๋“œ๋ฐฑ์„ ์ˆ˜์ง‘ํ•˜์—ฌ ๋ชจ๋‘ ํ•˜๋‚˜์˜ ๋ฌธ์„œ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ๋Š” ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € Linux ํ„ฐ๋ฏธ๋„์˜ I/O ๊ธฐ๋ณธ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์ •๋ณด, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ช…๋ น์— ๋Œ€ํ•œ ๊ฐœ์š”, ์„ธ ๋ฒˆ์งธ ๋ถ€๋ถ„์—์„œ๋Š” Linux์—์„œ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๋ช…๋ น์—๋Š” ๋งŽ์€ ์˜ต์…˜์ด ์žˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์— ๋ชจ๋‘ ๋‚˜์—ด๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์–ธ์ œ๋“ ์ง€ `๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋‚จ์ž <๋ช…๋ น์–ด>`` ๋˜๋Š” `<๋ช…๋ น> --help`` ํŒ€์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

์˜ˆ :

[user@testhost ~]$ mkdir --help
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.

Mandatory arguments to long options are mandatory for short options too.
  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask
  -p, --parents     no error if existing, make parent directories as needed
  -v, --verbose     print a message for each created directory
  -Z                   set SELinux security context of each created directory
                         to the default type
      --context[=CTX]  like -Z, or if CTX is specified then set the SELinux
                         or SMACK security context to CTX
      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'mkdir invocation'

๋ช…๋ น์„ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ ์ฝ˜์†”์—์„œ ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋ช…๋ น์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Ctrl + C (ํ”„๋กœ์„ธ์Šค์— ์‹ ํ˜ธ๊ฐ€ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์ธํŠธ).

๋ช…๋ น ์ถœ๋ ฅ์— ๋Œ€ํ•ด ์กฐ๊ธˆ

Linux์—์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด 3๊ฐœ์˜ ํ‘œ์ค€ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€, ํ‘œ์ค€ ์ถœ๋ ฅ ะธ ํ‘œ์ค€ ์˜ค๋ฅ˜. ๊ฐ๊ฐ 0, 1, 2๋กœ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ œ ์šฐ๋ฆฌ๋Š” ๊ด€์‹ฌ์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ ์ถœ๋ ฅ ๊ทธ๋ฆฌ๊ณ  ๋œํ•˜์ง€๋งŒ, ํ‘œ์ค€ ์˜ค๋ฅ˜. ์ด๋ฆ„๋งŒ ๋ด๋„ ์ง์ž‘ํ•˜๊ธฐ ์‰ฝ์ฃ  ํ‘œ์ค€ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ํ‘œ์ค€ ์˜ค๋ฅ˜ โ€” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Linux์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‘œ์ค€ ์ถœ๋ ฅ ะธ ํ‘œ์ค€ ์˜ค๋ฅ˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ช…๋ น ์ถœ๋ ฅ์ด ํฐ ๊ฒฝ์šฐ ํŒŒ์ผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ man signal > man_signal

ํŒŒ์ผ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๋ฉด ๋งจ_์‹œ๊ทธ๋„, ๊ทธ๋Ÿฌ๋ฉด ๋‹จ์ˆœํžˆ ` ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ์˜ ๊ฒฐ๊ณผ์™€ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋‚จ์ž ์‹ ํ˜ธ`.

๋ฆฌ๋””๋ ‰์…˜ ์ž‘์—…`>` ๊ธฐ๋ณธ๊ฐ’์€ ํ‘œ์ค€ ์ถœ๋ ฅ. ๋ฆฌ๋””๋ ‰์…˜์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ ์ถœ๋ ฅ ๋ช…์‹œ์ ์œผ๋กœ: `1>`. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฆฌ๋””๋ ‰์…˜์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ ์˜ค๋ฅ˜:`2>`. ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ผ๋ฐ˜ ๋ช…๋ น ์ถœ๋ ฅ๊ณผ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ man signal 1> man_signal 2> man_signal_error_log

๋ฆฌ๋””๋ ‰์…˜ ๋ฐ ํ‘œ์ค€ ์ถœ๋ ฅ๊ณผ ํ‘œ์ค€ ์˜ค๋ฅ˜ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

[user@testhost ~]$ man signal > man_signal 2>&1

๋ฆฌ๋””๋ ‰์…˜ ์ž‘์—…`2> ๋ฐ 1`๋Š” ๋ฆฌ๋””๋ ‰์…˜์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ์˜ค๋ฅ˜ ์•ˆ๋‚ด๋ฐ›์€ ๊ณณ๊ณผ ๊ฐ™์€ ๊ณณ์œผ๋กœ ํ‘œ์ค€ ์ถœ๋ ฅ.

I/O ์ž‘์—…์„ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ํŽธ๋ฆฌํ•œ ๋„๊ตฌ(๋˜๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ ํŽธ๋ฆฌํ•œ ๋„๊ตฌ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŒŒ์ดํ”„ (๋˜๋Š” ์ปจ๋ฒ ์ด์–ด). ํŒŒ์ดํ”„๋ผ์ธ์€ ์ข…์ข… ์—ฌ๋Ÿฌ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ์ถœ๋ ฅ ๋ช…๋ น์€ ๋‹ค์Œ์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜๋ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ๋‹ค์Œ ๋“ฑ์ด ์ฒด์ธ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ ps aux | grep docker | tail -n 2
root     1045894  0.0  0.0   7512  3704 ?        Sl   16:04   0:00 docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/2fbfddaf91c1bb7b9a0a6f788f3505dd7266f1139ad381d5b51ec1f47e1e7b28 -address /var/run/docker/containerd/docker-containerd.sock -containerd-binary /usr/bin/docker-containerd -runtime-root /var/run/docker/runtime-runc
531      1048313  0.0  0.0 110520  2084 pts/2    S+   16:12   0:00 grep --color=auto docker

๊ธฐ๋ณธ Linux ๋ช…๋ น

pwd

ํ˜„์žฌ(์ž‘์—…) ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ pwd
/home/user

๋ฐ์ดํ„ฐ

ํ˜„์žฌ ์‹œ์Šคํ…œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ date
Mon Dec 16 13:37:07 UTC 2019
[user@testhost ~]$ date +%s
1576503430

w

์ด ๋ช…๋ น์€ ์‹œ์Šคํ…œ์— ๋กœ๊ทธ์ธํ•œ ์‚ฌ๋žŒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ€๋™ ์‹œ๊ฐ„๊ณผ LA(๋ถ€ํ•˜ ํ‰๊ท )๋„ ํ™”๋ฉด์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ w
 05:47:17 up 377 days, 17:57,  1 user,  load average: 0,00, 0,01, 0,05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user     pts/0    32.175.94.241    05:47    2.00s  0.01s  0.00s w

ls

๋””๋ ‰ํ† ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ pwd
/home/user
[user@testhost ~]$ ls
qqq
[user@testhost ~]$ ls /home/user
qqq
[user@testhost ~]$ ls /
bin  boot  cgroup  dev  etc  home  lib  lib64  local  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  swap  sys  tmp  usr  var

๊ฐœ์ธ์ ์œผ๋กœ ์˜ต์…˜์„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ -l (๊ธด ๋ชฉ๋ก ํ˜•์‹ - ํŒŒ์ผ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์—ด๋กœ ์ถœ๋ ฅ) -t (ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ์ˆ˜์ • ์‹œ๊ฐ„๋ณ„๋กœ ์ •๋ ฌ) ๋ฐ -r (์—ญ๋ฐฉํ–ฅ ์ •๋ ฌ - ๋‹ค์Œ๊ณผ ๊ฒฐํ•ฉ -t ๊ฐ€์žฅ ์ตœ๊ทผ ํŒŒ์ผ์ด ๋งจ ์•„๋ž˜์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค):

[user@testhost ~]$ ls -ltr /
total 4194416
drwxr-xr-x    2 root root       4096 Jan  6  2012 srv
drwxr-xr-x    2 root root       4096 Jan  6  2012 selinux
drwxr-xr-x    2 root root       4096 Jan  6  2012 mnt
drwxr-xr-x    2 root root       4096 Jan  6  2012 media
drwx------    2 root root      16384 Oct  1  2017 lost+found
drwxr-xr-x    2 root root       4096 Oct  1  2017 local
drwxr-xr-x   13 root root       4096 Oct  1  2017 usr
drwxr-xr-x   11 root root       4096 Apr 10  2018 cgroup
drwxr-xr-x    4 root root       4096 Apr 10  2018 run
-rw-------    1 root root 4294967296 Sep 10  2018 swap
dr-xr-xr-x   10 root root       4096 Dec 13  2018 lib
drwxr-xr-x    6 root root       4096 Mar  7  2019 opt
drwxr-xr-x   20 root root       4096 Mar 19  2019 var
dr-xr-xr-x   10 root root      12288 Apr  9  2019 lib64
dr-xr-xr-x    2 root root       4096 Apr  9  2019 bin
dr-xr-xr-x    4 root root       4096 Apr  9  2019 boot
dr-xr-xr-x    2 root root      12288 Apr  9  2019 sbin
dr-xr-xr-x 3229 root root          0 Jul  2 10:19 proc
drwxr-xr-x   34 root root       4096 Oct 28 13:27 home
drwxr-xr-x   93 root root       4096 Oct 30 16:00 etc
dr-xr-x---   11 root root       4096 Nov  1 13:02 root
dr-xr-xr-x   13 root root          0 Nov 13 20:28 sys
drwxr-xr-x   16 root root       2740 Nov 26 08:55 dev
drwxrwxrwt    3 root root       4096 Nov 26 08:57 tmp

2๊ฐœ์˜ ํŠน๋ณ„ํ•œ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์ด ์žˆ์Šต๋‹ˆ๋‹ค: "."๊ทธ๋ฆฌ๊ณ "..". ์ฒซ ๋ฒˆ์งธ๋Š” ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์˜๋ฏธํ•˜๊ณ  ๋‘ ๋ฒˆ์งธ๋Š” ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋‹ค์–‘ํ•œ ํŒ€์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ls:

[user@testhost home]$ pwd
/home
[user@testhost home]$ ls ..
bin  boot  cgroup  dev  etc  home  lib  lib64  local  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  swap  sys  tmp  usr  var
[user@testhost home]$ ls ../home/user/
qqq

์ˆจ๊ฒจ์ง„ ํŒŒ์ผ์„ ํ‘œ์‹œํ•˜๋Š” ์œ ์šฉํ•œ ์˜ต์…˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(".") - -a:

[user@testhost ~]$ ls -a
.  ..  1  .bash_history  .bash_logout  .bash_profile  .bashrc  .lesshst  man_signal  man_signal_error_log  .mongorc.js  .ssh  temp  test  .viminfo

์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -h โ€” ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค(ํŒŒ์ผ ํฌ๊ธฐ์— ์ฃผ์˜):

[user@testhost ~]$ ls -ltrh
total 16K
-rwxrwx--x 1 user user   31 Nov 26 11:09 temp
-rw-rw-r-- 1 user user 6.0K Dec  3 16:02 1
drwxrwxr-x 2 user user 4.0K Dec  4 10:39 test

cd

ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ pwd
/home/user
[user@testhost ~]$ cd /home/
[user@testhost home]$ pwd
/home

๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์„ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. $ HOME, ์ฆ‰ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. `๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ํŽธ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.~`๋Š” ํŠน์ˆ˜ ๋ฌธ์ž ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. $ HOME:

[user@testhost etc]$ pwd
/etc
[user@testhost etc]$ cd ~/test/
[user@testhost test]$ pwd
/home/user/test

mkdir

๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

[user@testhost ~]$ mkdir test
[user@testhost ~]$ ls -ltr
total 38184
-rw-rw-r-- 1 user user 39091284 Nov 22 14:14 qqq
drwxrwxr-x 2 user user     4096 Nov 26 10:29 test

๋•Œ๋กœ๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ๊ฐ™์ด ํŠน์ • ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ์†์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด mkdir, ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -p โ€” ๊ณ„์ธต ๊ตฌ์กฐ์—์„œ ๋ˆ„๋ฝ๋œ ๋ชจ๋“  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด mkdir ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ ls
qqq  test
[user@testhost ~]$ mkdir test2/subtest
mkdir: cannot create directory โ€˜test2/subtestโ€™: No such file or directory
[user@testhost ~]$ mkdir -p test2/subtest
[user@testhost ~]$ ls
qqq  test  test2
[user@testhost ~]$ ls test2/
subtest
[user@testhost ~]$ mkdir test2/subtest
mkdir: cannot create directory โ€˜test2/subtestโ€™: File exists
[user@testhost ~]$ mkdir -p test2/subtest
[user@testhost ~]$ ls test2/
subtest

rm

ํŒŒ์ผ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ ls
qqq  test  test2
[user@testhost ~]$ rm qqq
[user@testhost ~]$ ls
test  test2

์˜ต์…˜ -r ๋ชจ๋“  ๋‚ด์šฉ์ด ํฌํ•จ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜ -f ์‚ญ์ œ ์‹œ ์˜ค๋ฅ˜(์˜ˆ: ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ ๊ด€๋ จ ์˜ค๋ฅ˜)๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ€๋žต์ ์œผ๋กœ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ „์ฒด ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ(์‚ฌ์šฉ์ž์—๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ) ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ณ ์ „์ ์ธ ๋†๋‹ด ์˜ˆ๋Š” "rm-rf /", ํŠน์ • ์ƒํ™ฉ์—์„œ๋Š” ์ „์ฒด ์‹œ์Šคํ…œ์€ ์•„๋‹ˆ๋”๋ผ๋„ ์„ฑ๋Šฅ์— ์ค‘์š”ํ•œ ๋งŽ์€ ํŒŒ์ผ์ด ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.)

[user@testhost ~]$ ls
test  test2
[user@testhost ~]$ ls -ltr test2/
total 4
-rw-rw-r-- 1 user user    0 Nov 26 10:40 temp
drwxrwxr-x 2 user user 4096 Nov 26 10:40 temp_dir
[user@testhost ~]$ rm -rf test2
[user@testhost ~]$ ls
test

cp

ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ ls
temp  test
[user@testhost ~]$ cp temp temp_clone
[user@testhost ~]$ ls
temp  temp_clone  test

์ด ๋ช…๋ น์—๋Š” ์˜ต์…˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค -r ะธ -f, ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ ํด๋”์˜ ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ๋‹ค๋ฅธ ์œ„์น˜์— ๋ณต์‚ฌ๋˜๋„๋ก ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mv

ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

[user@testhost ~]$ ls -ltr
total 4
drwxrwxr-x 2 user user 4096 Nov 26 10:29 test
-rw-rw-r-- 1 user user    0 Nov 26 10:45 temp
-rw-rw-r-- 1 user user    0 Nov 26 10:46 temp_clone
[user@testhost ~]$ ls test
[user@testhost ~]$ mv test test_renamed
[user@testhost ~]$ mv temp_clone test_renamed/
[user@testhost ~]$ ls
temp  test_renamed
[user@testhost ~]$ ls test_renamed/
temp_clone

๋ฐฉ๋ฒ•

ํŒŒ์ผ(๋“ค)์˜ ๋‚ด์šฉ์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ cat temp
Content of a file.
Lalalala...

๋ช…๋ น์—์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จธ๋ฆฌ (์‚ฐ์ถœ n ํŒŒ์ผ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„ ๋˜๋Š” ๋ฐ”์ดํŠธ) ๋ฐ ๊ผฌ๋ฆฌ (๋‚˜์ค‘์— ๊ทธ๋…€์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค).

๊ผฌ๋ฆฌ

์ฒ ์ˆ˜ n ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ์ค„์ด๋‚˜ ๋ฐ”์ดํŠธ.

[user@testhost ~]$ tail -1 temp
Lalalala...

์ด ์˜ต์…˜์€ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค -f โ€” ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŒŒ์ผ์˜ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ๊ฒŒ

๋•Œ๋กœ๋Š” ํ…์ŠคํŠธ ํŒŒ์ผ์ด ๋„ˆ๋ฌด ์ปค์„œ ๋ช…๋ น์œผ๋กœ ํ‘œ์‹œํ•˜๊ธฐ๊ฐ€ ๋ถˆํŽธํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์ ๊ฒŒ: ํŒŒ์ผ์ด ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์œผ๋กœ ์ถœ๋ ฅ๋˜๋ฉฐ, ํ•ด๋‹น ๋ถ€๋ถ„์„ ํ†ตํ•œ ํƒ์ƒ‰, ๊ฒ€์ƒ‰ ๋“ฑ ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ less temp

์ด์šฉํ•˜๊ธฐ์—๋„ ํŽธ๋ฆฌํ•  ๊ฒƒ ๊ฐ™์•„์š” ์ ๊ฒŒ ์ปจ๋ฒ ์ด์–ด ํฌํ•จ(ํŒŒ์ดํ”„):

[user@testhost ~]$ grep "ERROR" /tmp/some.log | less

ps

ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ ps
    PID TTY          TIME CMD
 761020 pts/2    00:00:00 bash
 809720 pts/2    00:00:00 ps

๋‚˜ ์ž์‹ ์€ ๋ณดํ†ต BSD ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค "์™€" - ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค(ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋งŽ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜์Œ 5๊ฐœ๋งŒ ํ‘œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค(ํŒŒ์ดํ”„) ๋ฐ ํŒ€ ๋จธ๋ฆฌ):

[user@testhost ~]$ ps aux | head -5
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0  19692  2600 ?        Ss   Jul02   0:10 /sbin/init
root           2  0.0  0.0      0     0 ?        S    Jul02   0:03 [kthreadd]
root           4  0.0  0.0      0     0 ?        I<   Jul02   0:00 [kworker/0:0H]
root           6  0.0  0.0      0     0 ?        I<   Jul02   0:00 [mm_percpu_wq]

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด BSD ์˜ต์…˜๋„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค."์ถ•"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค ํŠธ๋ฆฌ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์—ฌ๊ธฐ์—์„œ๋Š” ๋ฐ๋ชจ๋ฅผ ์œ„ํ•ด ์ถœ๋ ฅ์˜ ์ผ๋ถ€๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค).

[user@testhost ~]$ ps axjf
   PPID     PID    PGID     SID TTY        TPGID STAT   UID   TIME COMMAND
      0       2       0       0 ?             -1 S        0   0:03 [kthreadd]
      2       4       0       0 ?             -1 I<       0   0:00  _ [kworker/0:0H]
      2       6       0       0 ?             -1 I<       0   0:00  _ [mm_percpu_wq]
      2       7       0       0 ?             -1 S        0   4:08  _ [ksoftirqd/0]
...
...
...
      1    4293    4293    4293 tty6        4293 Ss+      0   0:00 /sbin/mingetty /dev/tty6
      1  532967  532964  532964 ?             -1 Sl     495   0:00 /opt/td-agent/embedded/bin/ruby /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --use-v1-config --group td-agent --daemon /var/run/td-agent/td-agent.pid
 532967  532970  532964  532964 ?             -1 Sl     495 803:06  _ /opt/td-agent/embedded/bin/ruby /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --use-v1-config --group td-agent --daemon /var/run/td-agent/td-agent.pid
      1  537162  533357  532322 ?             -1 Sl       0 5067:43 /usr/bin/dockerd --default-ulimit nofile=262144:262144 --dns=172.17.0.1
 537162  537177  537177  537177 ?             -1 Ssl      0 4649:28  _ docker-containerd --config /var/run/docker/containerd/containerd.toml
 537177  537579  537579  537177 ?             -1 Sl       0   4:48  |   _ docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/0ee89b20deb3cf08648cd92e1f3e3c661ccffef7a0971
 537579  537642  537642  537642 ?             -1 Ss    1000  32:11  |   |   _ /usr/bin/python /usr/bin/supervisord -c /etc/supervisord/api.conf
 537642  539764  539764  537642 ?             -1 S     1000   0:00  |   |       _ sh -c echo "READY"; while read -r line; do echo "$line"; supervisorctl shutdown; done
 537642  539767  539767  537642 ?             -1 S     1000   5:09  |   |       _ php-fpm: master process (/etc/php73/php-fpm.conf)
 539767  783097  539767  537642 ?             -1 S     1000   0:00  |   |       |   _ php-fpm: pool test
 539767  783131  539767  537642 ?             -1 S     1000   0:00  |   |       |   _ php-fpm: pool test
 539767  783185  539767  537642 ?             -1 S     1000   0:00  |   |       |   _ php-fpm: pool test
...
...
...

์ด ๋ช…๋ น์—๋Š” ๋‹ค์–‘ํ•œ ์˜ต์…˜์ด ์žˆ์œผ๋ฏ€๋กœ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์„ค๋ช…์„œ๋ฅผ ์ฝ์–ด ๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ''๋ฅผ ์•„๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.ps aux".

์ฃฝ์ด๊ธฐ

ํ”„๋กœ์„ธ์Šค์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ ํ˜ธ๊ฐ€ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์‹œ๊ทธํ…€, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ ps ux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
531      1027147  0.0  0.0 119956  4260 ?        S    14:51   0:00 sshd: user@pts/1
531      1027149  0.0  0.0 115408  3396 pts/1    Ss   14:51   0:00 -bash
531      1027170  0.0  0.0 119956  4136 ?        R    14:51   0:00 sshd: user@pts/2
531      1027180  0.0  0.0 115408  3564 pts/2    Ss   14:51   0:00 -bash
531      1033727  0.0  0.0 107960   708 pts/1    S+   15:17   0:00 sleep 300
531      1033752  0.0  0.0 117264  2604 pts/2    R+   15:17   0:00 ps ux
[user@testhost ~]$ kill 1033727
[user@testhost ~]$ ps ux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
531      1027147  0.0  0.0 119956  4260 ?        S    14:51   0:00 sshd: user@pts/1
531      1027149  0.0  0.0 115408  3396 pts/1    Ss+  14:51   0:00 -bash
531      1027170  0.0  0.0 119956  4136 ?        R    14:51   0:00 sshd: user@pts/2
531      1027180  0.0  0.0 115408  3564 pts/2    Ss   14:51   0:00 -bash
531      1033808  0.0  0.0 117268  2492 pts/2    R+   15:17   0:00 ps ux

ํ”„๋กœ์„ธ์Šค์—๋Š” ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃฝ์ด๊ธฐ ํ•ญ์ƒ ์˜ˆ์ƒ๋œ ๊ฒฐ๊ณผ๋กœ ์ด์–ด์ง€๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฆ‰์‹œ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™•์‹คํžˆ "์ข…๋ฃŒ"ํ•˜๋ ค๋ฉด ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์— ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ทธํ‚ฌ. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ(์˜ˆ: ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ์ผ๋ถ€ ์ •๋ณด๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ) ์ด ๋ช…๋ น์„ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ ํ˜ธ๋ฒˆํ˜ธ ์‹œ๊ทธํ‚ฌ - 9์ด๋ฏ€๋กœ ๋ช…๋ น์˜ ์งง์€ ๋ฒ„์ „์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ ps ux | grep sleep
531      1034930  0.0  0.0 107960   636 pts/1    S+   15:21   0:00 sleep 300
531      1034953  0.0  0.0 110516  2104 pts/2    S+   15:21   0:00 grep --color=auto sleep
[user@testhost ~]$ kill -9 1034930
[user@testhost ~]$ ps ux | grep sleep
531      1035004  0.0  0.0 110516  2092 pts/2    S+   15:22   0:00 grep --color=auto sleep

์–ธ๊ธ‰๋œ ๊ฒƒ ์™ธ์—๋„ ์‹œ๊ทธํ…€ ะธ ์‹œ๊ทธํ‚ฌ ๋” ๋งŽ์€ ์‹ ํ˜ธ๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ทธ ๋ชฉ๋ก์€ ์ธํ„ฐ๋„ท์—์„œ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ ํ˜ธ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š” ์‹œ๊ทธํ‚ฌ ะธ ์‹œ๊ทธ์Šคํ†ฑ ๊ฐ€๋กœ์ฑ„๊ฑฐ๋‚˜ ๋ฌด์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ•‘

ICMP ํŒจํ‚ท์„ ํ˜ธ์ŠคํŠธ๋กœ ๋ณด๋‚ด๊ธฐ ECHO_REQUEST.

[user@testhost ~]$ ping google.com
PING google.com (172.217.15.78) 56(84) bytes of data.
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=1 ttl=47 time=1.85 ms
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=2 ttl=47 time=1.48 ms
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=3 ttl=47 time=1.45 ms
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=4 ttl=47 time=1.46 ms
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=5 ttl=47 time=1.45 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 1.453/1.541/1.850/0.156 ms

๊ธฐ๋ณธ์ ์œผ๋กœ ํ•‘ ์ˆ˜๋™์œผ๋กœ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์˜ต์…˜์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -c โ€” ์ „์†ก ํ›„ ํŒจํ‚ท ์ˆ˜ ํ•‘ ์ž์ฒด์ ์œผ๋กœ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๊ฐ€๋” ์‚ฌ์šฉํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ -i, ํŒจํ‚ท ์ „์†ก ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์ž…๋‹ˆ๋‹ค.

[user@testhost ~]$ ping -c 3 -i 5 google.com
PING google.com (172.217.5.238) 56(84) bytes of data.
64 bytes from iad30s07-in-f238.1e100.net (172.217.5.238): icmp_seq=1 ttl=47 time=1.55 ms
64 bytes from iad30s07-in-f14.1e100.net (172.217.5.238): icmp_seq=2 ttl=47 time=1.17 ms
64 bytes from iad30s07-in-f14.1e100.net (172.217.5.238): icmp_seq=3 ttl=47 time=1.16 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 10006ms
rtt min/avg/max/mdev = 1.162/1.295/1.551/0.181 ms

SSH

OpenSSH SSH ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MacBook-Pro-User:~ user$ ssh [email protected]
Last login: Tue Nov 26 11:27:39 2019 from another_host
[user@testhost ~]$ hostname
testhost

SSH ์‚ฌ์šฉ์—๋Š” ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๊ฐ€ ๋งŽ์ด ์žˆ์œผ๋ฉฐ ์ด ํด๋ผ์ด์–ธํŠธ์—๋„ ๋งŽ์€ ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฏ€๋กœ ์›ํ•˜๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด์— ๋Œ€ํ•ด ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ์ž์„ธํžˆ.

scp

ํ˜ธ์ŠคํŠธ ๊ฐ„ ํŒŒ์ผ ๋ณต์‚ฌ(์ด ์šฉ๋„๋กœ SSH).

[user@testhost ~]$ pwd
/home/user
[user@testhost ~]$ ls
temp  test_renamed
[user@testhost ~]$ exit
logout
Connection to 11.11.22.22 closed.
MacBook-Pro-Aleksandr:~ user$ scp [email protected]:/home/user/temp Downloads/
temp                                                                                                                                                                                                        100%   31     0.2KB/s   00:00
MacBook-Pro-Aleksandr:~ user$ cat Downloads/temp
Content of a file.
Lalalala...

rsync

ํ˜ธ์ŠคํŠธ ๊ฐ„์— ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. rsync (-a โ€” ์•„์นด์ด๋ธŒ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ „์ฒด ๋‚ด์šฉ์„ "์žˆ๋Š” ๊ทธ๋Œ€๋กœ" ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -v โ€” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ฝ˜์†”์— ์ถœ๋ ฅ):

MacBook-Pro-User:~ user$ ls Downloads/user
ls: Downloads/user: No such file or directory
MacBook-Pro-User:~ user$ rsync -av user@testhost:/home/user Downloads
receiving file list ... done
user/
user/.bash_history
user/.bash_logout
user/.bash_profile
user/.bashrc
user/.lesshst
user/.mongorc.js
user/.viminfo
user/1
user/man_signal
user/man_signal_error_log
user/temp
user/.ssh/
user/.ssh/authorized_keys
user/test/
user/test/created_today
user/test/temp_clone

sent 346 bytes  received 29210 bytes  11822.40 bytes/sec
total size is 28079  speedup is 0.95
MacBook-Pro-User:~ user$ ls -a Downloads/user
.                    .bash_history        .bash_profile        .lesshst             .ssh                 1                    man_signal_error_log test
..                   .bash_logout         .bashrc              .mongorc.js          .viminfo             man_signal           temp

์—์ฝ”

ํ…์ŠคํŠธ ํ•œ ์ค„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ echo "Hello"
Hello

์—ฌ๊ธฐ์„œ ๊ณ ๋ คํ•ด ๋ณผ ๋งŒํ•œ ์˜ต์…˜ -n - ๋์— ์ค„ ๋ฐ”๊ฟˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค„์„ ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. -e โ€” ""๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์Šค์ผ€์ดํ”„ ํ•ด์„์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ echo "tHellon"
tHellon
[user@testhost ~]$ echo -n "tHellon"
tHellon[user@testhost ~]$
[user@testhost ~]$ echo -ne "tHellon"
	Hello

์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ํ‘œ์‹œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Linux์—์„œ๋Š” ๋งˆ์ง€๋ง‰์œผ๋กœ ์™„๋ฃŒ๋œ ๋ช…๋ น์˜ ์ข…๋ฃŒ ์ฝ”๋“œ๊ฐ€ ํŠน์ˆ˜ ๋ณ€์ˆ˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. $?, ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ •ํ™•ํžˆ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ ls    # ะพัˆะธะฑะบะธ ะฝะต ะฑัƒะดะตั‚
1  man_signal  man_signal_error_log  temp  test
[user@testhost ~]$ echo $?    # ะฟะพะปัƒั‡ะธะผ 0 โ€” ะพัˆะธะฑะบะธ ะฝะต ะฑั‹ะปะพ
0
[user@testhost ~]$ ls qwerty    # ะฑัƒะดะตั‚ ะพัˆะธะฑะบะฐ
ls: cannot access qwerty: No such file or directory
[user@testhost ~]$ echo $?    # ะฟะพะปัƒั‡ะธะผ 2 โ€” Misuse of shell builtins (according to Bash documentation)
2
[user@testhost ~]$ echo $?    # ะฟะพัะปะตะดะฝะธะน echo ะพั‚ั€ะฐะฑะพั‚ะฐะป ะฑะตะท ะพัˆะธะฑะพะบ, ะฟะพะปัƒั‡ะธะผ 0
0

ํ…”๋„ท

TELNET ํ”„๋กœํ† ์ฝœ์šฉ ํด๋ผ์ด์–ธํŠธ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ telnet example.com 80
Trying 93.184.216.34...
Connected to example.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Tue, 26 Nov 2019 11:59:18 GMT
Etag: "3147526947+gzip+ident"
Expires: Tue, 03 Dec 2019 11:59:18 GMT
Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
Server: ECS (dcb/7F3B)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256

... ะทะดะตััŒ ะฑั‹ะปะพ ั‚ะตะปะพ ะพั‚ะฒะตั‚ะฐ, ะบะพั‚ะพั€ะพะต ั ะฒั‹ั€ะตะทะฐะป ั€ัƒะบะฐะผะธ ...

TLS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ(SSL์ด ์˜ค๋ž˜ ์ „๋ถ€ํ„ฐ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๋Š” ์ ์„ ์ƒ๊ธฐ์‹œ์ผœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค) ํ…”๋„ท ์ด๋Ÿฌํ•œ ๋ชฉ์ ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณ ๊ฐ์ด ์˜ฌ ๊ฒƒ์ด๋‹ค ํ•˜๋ ค๋ฉด openssl:

GET ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ถœ๋ ฅํ•˜๋ฉด์„œ openssl์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ

[user@testhost ~]$ openssl s_client -connect example.com:443
CONNECTED(00000003)
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, CN = DigiCert SHA2 Secure Server CA
verify return:1
depth=0 C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, OU = Technology, CN = www.example.org
verify return:1
---
Certificate chain
 0 s:/C=US/ST=California/L=Los Angeles/O=Internet Corporation for Assigned Names and Numbers/OU=Technology/CN=www.example.org
   i:/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
 1 s:/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
 2 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIHQDCCBiigAwIBAgIQD9B43Ujxor1NDyupa2A4/jANBgkqhkiG9w0BAQsFADBN
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
aWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMTgxMTI4MDAwMDAwWhcN
MjAxMjAyMTIwMDAwWjCBpTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3Ju
aWExFDASBgNVBAcTC0xvcyBBbmdlbGVzMTwwOgYDVQQKEzNJbnRlcm5ldCBDb3Jw
b3JhdGlvbiBmb3IgQXNzaWduZWQgTmFtZXMgYW5kIE51bWJlcnMxEzARBgNVBAsT
ClRlY2hub2xvZ3kxGDAWBgNVBAMTD3d3dy5leGFtcGxlLm9yZzCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBANDwEnSgliByCGUZElpdStA6jGaPoCkrp9vV
rAzPpXGSFUIVsAeSdjF11yeOTVBqddF7U14nqu3rpGA68o5FGGtFM1yFEaogEv5g
rJ1MRY/d0w4+dw8JwoVlNMci+3QTuUKf9yH28JxEdG3J37Mfj2C3cREGkGNBnY80
eyRJRqzy8I0LSPTTkhr3okXuzOXXg38ugr1x3SgZWDNuEaE6oGpyYJIBWZ9jF3pJ
QnucP9vTBejMh374qvyd0QVQq3WxHrogy4nUbWw3gihMxT98wRD1oKVma1NTydvt
hcNtBfhkp8kO64/hxLHrLWgOFT/l4tz8IWQt7mkrBHjbd2XLVPkCAwEAAaOCA8Ew
ggO9MB8GA1UdIwQYMBaAFA+AYRyCMWHVLyjnjUY4tCzhxtniMB0GA1UdDgQWBBRm
mGIC4AmRp9njNvt2xrC/oW2nvjCBgQYDVR0RBHoweIIPd3d3LmV4YW1wbGUub3Jn
ggtleGFtcGxlLmNvbYILZXhhbXBsZS5lZHWCC2V4YW1wbGUubmV0ggtleGFtcGxl
Lm9yZ4IPd3d3LmV4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5lZHWCD3d3dy5leGFt
cGxlLm5ldDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG
AQUFBwMCMGsGA1UdHwRkMGIwL6AtoCuGKWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNv
bS9zc2NhLXNoYTItZzYuY3JsMC+gLaArhilodHRwOi8vY3JsNC5kaWdpY2VydC5j
b20vc3NjYS1zaGEyLWc2LmNybDBMBgNVHSAERTBDMDcGCWCGSAGG/WwBATAqMCgG
CCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAEC
AjB8BggrBgEFBQcBAQRwMG4wJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
ZXJ0LmNvbTBGBggrBgEFBQcwAoY6aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
L0RpZ2lDZXJ0U0hBMlNlY3VyZVNlcnZlckNBLmNydDAMBgNVHRMBAf8EAjAAMIIB
fwYKKwYBBAHWeQIEAgSCAW8EggFrAWkAdwCkuQmQtBhYFIe7E6LMZ3AKPDWYBPkb
37jjd80OyA3cEAAAAWdcMZVGAAAEAwBIMEYCIQCEZIG3IR36Gkj1dq5L6EaGVycX
sHvpO7dKV0JsooTEbAIhALuTtf4wxGTkFkx8blhTV+7sf6pFT78ORo7+cP39jkJC
AHYAh3W/51l8+IxDmV+9827/Vo1HVjb/SrVgwbTq/16ggw8AAAFnXDGWFQAABAMA
RzBFAiBvqnfSHKeUwGMtLrOG3UGLQIoaL3+uZsGTX3MfSJNQEQIhANL5nUiGBR6g
l0QlCzzqzvorGXyB/yd7nttYttzo8EpOAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkC
wQApBo2yCJo32RMAAAFnXDGWnAAABAMARzBFAiEA5Hn7Q4SOyqHkT+kDsHq7ku7z
RDuM7P4UDX2ft2Mpny0CIE13WtxJAUr0aASFYZ/XjSAMMfrB0/RxClvWVss9LHKM
MA0GCSqGSIb3DQEBCwUAA4IBAQBzcIXvQEGnakPVeJx7VUjmvGuZhrr7DQOLeP4R
8CmgDM1pFAvGBHiyzvCH1QGdxFl6cf7wbp7BoLCRLR/qPVXFMwUMzcE1GLBqaGZM
v1Yh2lvZSLmMNSGRXdx113pGLCInpm/TOhfrvr0TxRImc8BdozWJavsn1N2qdHQu
N+UBO6bQMLCD0KHEdSGFsuX6ZwAworxTg02/1qiDu7zW7RyzHvFYA4IAjpzvkPIa
X6KjBtpdvp/aXabmL95YgBjT8WJ7pqOfrqhpcmOBZa6Cg6O1l4qbIFH/Gj9hQB5I
0Gs4+eH6F9h3SojmPTYkT+8KuZ9w84Mn+M8qBXUQoYoKgIjN
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Los Angeles/O=Internet Corporation for Assigned Names and Numbers/OU=Technology/CN=www.example.org
issuer=/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
---
No client certificate CA names sent
Peer signing digest: SHA256
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 4643 bytes and written 415 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 91950DC50FADB57BF026D2661E6CFAA1F522E5CA60D2310E106EE0E0FD6E70BD
    Session-ID-ctx:
    Master-Key: 704E9145253EEB4E9DC47E3DC6725D296D4A470EA296D54F71D65E74EAC09EB096EA1305CBEDD9E7020B8F72FD2B68A5
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - 68 84 4e 77 be e3 f5 00-49 c5 44 40 53 4d b9 61   [email protected]
    0010 - c9 fe df e4 05 51 d0 53-ae cf 89 4c b6 ef 6c 9e   .....Q.S...L..l.
    0020 - fe 12 9a f0 e8 e5 4e 87-42 89 ac af ca e5 4a 85   ......N.B.....J.
    0030 - 38 08 26 e3 22 89 08 b5-62 c0 8b 7e b8 05 d3 54   8.&."...b..~...T
    0040 - 8c 24 91 a7 b4 4f 79 ad-36 59 7c 69 2d e5 7f 62   .$...Oy.6Y|i-..b
    0050 - f6 73 a3 8b 92 63 c1 e3-df 78 ba 8c 5a cc 82 50   .s...c...x..Z..P
    0060 - 33 4e 13 4b 10 e4 97 31-cc b4 13 65 45 60 3e 13   3N.K...1...eE`>.
    0070 - ac 9e b1 bb 4b 18 d9 16-ea ce f0 9b 5b 0c 8b bf   ....K.......[...
    0080 - fd 78 74 a0 1a ef c2 15-2a 0a 14 8d d1 3f 52 7a   .xt.....*....?Rz
    0090 - 12 6b c7 81 15 c4 c4 af-7e df c2 20 a8 dd 4b 93   .k......~.. ..K.

    Start Time: 1574769867
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
GET / HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Tue, 26 Nov 2019 12:04:38 GMT
Etag: "3147526947+ident"
Expires: Tue, 03 Dec 2019 12:04:38 GMT
Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
Server: ECS (dcb/7EC8)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256

<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

Linux์˜ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ

ํŒŒ์ผ ์†Œ์œ ์ž ๋ณ€๊ฒฝ

๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์†Œ์œ ์ž๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. chownํ•˜์ง€:

[user@testhost ~]$ chown user:user temp
[user@testhost ~]$ ls -l temp
-rw-rw-r-- 1 user user 31 Nov 26 11:09 temp

์ด ๋ช…๋ น์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์—๋Š” ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์ƒˆ ์†Œ์œ ์ž ๋ฐ ๊ทธ๋ฃน(์„ ํƒ ์‚ฌํ•ญ)์ด ์ œ๊ณต๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ ์†Œ์œ ์ž๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ์ด ์˜ต์…˜์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -R - ๊ทธ๋Ÿฌ๋ฉด ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ๋‚ด์šฉ์— ๋Œ€ํ•œ ์†Œ์œ ์ž๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ ๊ถŒํ•œ ๋ณ€๊ฒฝ

์ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. chmod๋ฅผ. ์˜ˆ๋ฅผ ๋“ค์–ด, "์†Œ์œ ์ž๋Š” ์ฝ๊ธฐ, ์“ฐ๊ธฐ ๋ฐ ์‹คํ–‰์ด ํ—ˆ์šฉ๋˜๊ณ  ๊ทธ๋ฃน์—๋Š” ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ๊ฐ€ ํ—ˆ์šฉ๋˜๋ฉฐ ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๊ถŒํ•œ ์„ค์ •์„ ์ œ๊ณตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ ls -l temp
-rw-rw-r-- 1 user user 31 Nov 26 11:09 temp
[user@testhost ~]$ chmod 760 temp
[user@testhost ~]$ ls -l temp
-rwxrw---- 1 user user 31 Nov 26 11:09 temp

๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ 7(๋น„ํŠธ ํ‘œํ˜„์—์„œ 0b111)์€ "์†Œ์œ ์ž์˜ ๋ชจ๋“  ๊ถŒ๋ฆฌ"๋ฅผ ์˜๋ฏธํ•˜๊ณ , ๋‘ ๋ฒˆ์งธ 6(๋น„ํŠธ ํ‘œํ˜„์—์„œ 0b110)์€ "์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ"๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, 0์€ ๋‚˜๋จธ์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ฌด ์˜๋ฏธ๋„ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. . ๋น„ํŠธ๋งˆ์Šคํฌ๋Š” XNUMX๊ฐœ์˜ ๋น„ํŠธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ตœํ•˜์œ„("์˜ค๋ฅธ์ชฝ") ๋น„ํŠธ๋Š” ์‹คํ–‰์„ ๋‹ด๋‹นํ•˜๊ณ , ๋‹ค์Œ("์ค‘๊ฐ„") ๋น„ํŠธ๋Š” ์“ฐ๊ธฐ๋ฅผ, ์ตœ์ƒ์œ„("์™ผ์ชฝ") ๋น„ํŠธ๋Š” ์ฝ๊ธฐ๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
ํŠน์ˆ˜ ๋ฌธ์ž(๋‹ˆ๋ชจ๋‹‰ ๊ตฌ๋ฌธ). ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ์˜ˆ์—์„œ๋Š” ๋จผ์ € ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ ์‹คํ–‰ ๊ถŒํ•œ์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ ๋‹ค์‹œ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ ls -l temp
-rwxrw---- 1 user user 31 Nov 26 11:09 temp
[user@testhost ~]$ chmod -x temp
[user@testhost ~]$ ls -l temp
-rw-rw---- 1 user user 31 Nov 26 11:09 temp
[user@testhost ~]$ chmod +x temp
[user@testhost ~]$ ls -l temp
-rwxrwx--x 1 user user 31 Nov 26 11:09 temp

์ด ๋ช…๋ น์€ ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์ด์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์ฝ์–ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค(ํŠนํžˆ ๋‹ˆ๋ชจ๋‹‰ ๊ตฌ๋ฌธ์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—).

๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์˜ ๋‚ด์šฉ ์ธ์‡„

์ด ์ž‘์—…์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ฅ์Šค ๋คํ”„. ์•„๋ž˜๋Š” ๊ทธ ์‚ฌ์šฉ ์˜ˆ์ž…๋‹ˆ๋‹ค.

[user@testhost ~]$ cat temp
Content of a file.
Lalalala...
[user@testhost ~]$ hexdump -c temp
0000000   C   o   n   t   e   n   t       o   f       a       f   i   l
0000010   e   .  n   L   a   l   a   l   a   l   a   .   .   .  n
000001f
[user@testhost ~]$ hexdump -x temp
0000000    6f43    746e    6e65    2074    666f    6120    6620    6c69
0000010    2e65    4c0a    6c61    6c61    6c61    2e61    2e2e    000a
000001f
[user@testhost ~]$ hexdump -C temp
00000000  43 6f 6e 74 65 6e 74 20  6f 66 20 61 20 66 69 6c  |Content of a fil|
00000010  65 2e 0a 4c 61 6c 61 6c  61 6c 61 2e 2e 2e 0a     |e..Lalalala....|
0000001f

์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Š” ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์žฅ ์œ ์šฉํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ ๊ฒ€์ƒ‰

๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ์—์„œ ์ด๋ฆ„์˜ ์ผ๋ถ€๋กœ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐœ๊ฒฌ:

[user@testhost ~]$ find test_dir/ -name "*le*"
test_dir/file_1
test_dir/file_2
test_dir/subdir/file_3

๋‹ค๋ฅธ ๊ฒ€์ƒ‰ ์˜ต์…˜๊ณผ ํ•„ํ„ฐ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํด๋”์—์„œ ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. test์ƒ์„ฑ๋œ ์ง€ 5์ผ์ด ๋„˜์—ˆ์Šต๋‹ˆ๋‹ค:

[user@testhost ~]$ ls -ltr test
total 0
-rw-rw-r-- 1 user user 0 Nov 26 10:46 temp_clone
-rw-rw-r-- 1 user user 0 Dec  4 10:39 created_today
[user@testhost ~]$ find test/ -type f -ctime +5
test/temp_clone

ํŒŒ์ผ์—์„œ ํ…์ŠคํŠธ ๊ฒ€์ƒ‰

ํŒ€์€ ๊ท€ํ•˜๊ฐ€ ์ด ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค GREP. ์šฉ๋„๋Š” ๋‹ค์–‘ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์šฉ๋„๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ grep -nr "content" test_dir/
test_dir/file_1:1:test content for file_1
test_dir/file_2:1:test content for file_2
test_dir/subdir/file_3:1:test content for file_3

๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜ GREP - ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์‚ฌ์šฉ(ํŒŒ์ดํ”„):

[user@testhost ~]$ sudo tail -f /var/log/test.log | grep "ERROR"

์˜ต์…˜ -v ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค GREP'๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ฐ˜๋Œ€ - ์ „๋‹ฌ๋œ ํŒจํ„ด์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์ค„๋งŒ GREP.

์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ณด๊ธฐ

๋ชจ๋“  ๊ฒƒ์ด Linux ๋ฐฐํฌํŒ๊ณผ ์‚ฌ์šฉ๋œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ”์šฉ ๋ช…๋ น์€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

yum list installed
apt list --installed
zypper se โ€”installed-only
pacman -Qqe
dpkg -l
rpm -qa

๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„ ํ™•์ธ

๋ช…๋ น ์‚ฌ์šฉ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜ du:

[user@testhost ~]$ du -h -d 1 test_dir/
8,0K test_dir/subdir
20K test_dir/

๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -d๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์–ป์œผ๋ ค๋ฉด ๋ช…๋ น์„ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…๋ฅ˜:

[user@testhost ~]$ du -h -d 1 test_dir/ | sort -h
8,0K test_dir/subdir
16K test_dir/subdir_2
36K test_dir/
[user@testhost ~]$ du -h -d 1 test_dir/ | sort -h -r
36K test_dir/
16K test_dir/subdir_2
8,0K test_dir/subdir

์˜ต์…˜ -h ํŒ€ ์ข…๋ฅ˜ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹(์˜ˆ: 1K, 2G)์œผ๋กœ ์ž‘์„ฑ๋œ ํฌ๊ธฐ๋ฅผ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -r ๋ฐ์ดํ„ฐ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ, ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ์—์„œ "์ฐพ๊ธฐ ๋ฐ ๋ฐ”๊พธ๊ธฐ"

์ด ์ž‘์—…์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. SED (ํ”Œ๋ž˜๊ทธ ์—†์Œ g ๋งˆ์ง€๋ง‰์—๋Š” ํ•ด๋‹น ์ค„์—์„œ ์ฒ˜์Œ ๋‚˜ํƒ€๋‚˜๋Š” "old-text"๋งŒ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

sed -i 's/old-text/new-text/g' input.txt

ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ํŒŒ์ผ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ cat test_dir/file_*
test content for file_1
test content for file_2
[user@testhost ~]$ sed -i 's/test/edited/g' test_dir/file_*
[user@testhost ~]$ cat test_dir/file_*
edited content for file_1
edited content for file_2

์ถœ๋ ฅ์—์„œ ์—ด ๊ทธ๋ฆฌ๊ธฐ

์ด ์ž‘์—…์— ๋Œ€์ฒ˜ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค AWK. ์ด ์˜ˆ์—์„œ๋Š” ๋ช…๋ น ์ถœ๋ ฅ `์˜ ๋‘ ๋ฒˆ์งธ ์—ด์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.์ถ”์‹  ux`:

[user@testhost ~]$ ps ux | awk '{print $2}'
PID
11023
25870
25871
25908
25909

๋™์‹œ์— ๋‹ค์Œ ์‚ฌํ•ญ๋„ ๋ช…์‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. AWK ๊ธฐ๋Šฅ์ด ํ›จ์”ฌ ํ’๋ถ€ํ•˜๋ฏ€๋กœ ๋ช…๋ น์ค„์—์„œ ํ…์ŠคํŠธ ์ž‘์—…์„ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋ช…๋ น์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์ฝ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ IP ์ฃผ์†Œ ์ฐพ๊ธฐ

๋‹ค์Œ ๋ช…๋ น ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

[user@testhost ~]$ host ya.ru
ya.ru has address 87.250.250.242
ya.ru has IPv6 address 2a02:6b8::2:242
ya.ru mail is handled by 10 mx.yandex.ru.

[user@testhost ~]$ dig +short ya.ru
87.250.250.242

[user@testhost ~]$ nslookup ya.ru
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
Name: ya.ru
Address: 87.250.250.242

๋„คํŠธ์›Œํฌ ์ •๋ณด

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ifconfig๋ฅผ:

[user@testhost ~]$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 47.89.93.67  netmask 255.255.224.0  broadcast 47.89.95.255
        inet6 fd90::302:57ff:fe79:1  prefixlen 64  scopeid 0x20<link>
        ether 04:01:57:79:00:01  txqueuelen 1000  (Ethernet)
        RX packets 11912135  bytes 9307046034 (8.6 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14696632  bytes 2809191835 (2.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 10  bytes 866 (866.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10  bytes 866 (866.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

์•„๋‹ˆ๋ฉด ์–ด์ฉŒ๋ฉด ip:

[user@testhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 04:01:57:79:00:01 brd ff:ff:ff:ff:ff:ff
    inet 47.89.93.67/19 brd 47.89.95.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd90::302:57ff:fe79:1/64 scope link
       valid_lft forever preferred_lft forever
3: ip_vti0: <NOARP> mtu 1500 qdisc noop state DOWN group default
    link/ipip 0.0.0.0 brd 0.0.0.0

๋˜ํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด IPv4์—๋งŒ ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -4:

[user@testhost ~]$ ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 47.89.93.67/19 brd 47.89.95.255 scope global eth0
       valid_lft forever preferred_lft forever

์—ด๋ฆฐ ํฌํŠธ ๋ณด๊ธฐ

์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. NETSTAT. ์˜ˆ๋ฅผ ๋“ค์–ด, ํฌํŠธ์—์„œ ์ˆ˜์‹  ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ PID ํ‘œ์‹œ์™€ ํฌํŠธ์˜ ์ˆซ์ž ํ‘œํ˜„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  TCP ๋ฐ UDP ์ˆ˜์‹  ํฌํŠธ๋ฅผ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ netstat -lptnu

์‹œ์Šคํ…œ ์ •๋ณด

์ด ์ •๋ณด๋Š” ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. uname.

[user@testhost ~]$ uname -a
Linux alexander 3.10.0-123.8.1.el7.x86_64 #1 SMP Mon Sep 22 19:06:58 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

์ถœ๋ ฅ์ด ์ƒ์„ฑ๋˜๋Š” ํ˜•์‹์„ ์ดํ•ดํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๋„์›€'์ด ๋ช…๋ น์˜ ๊ฒฝ์šฐ:

[user@testhost ~]$ uname --help
ะ˜ัะฟะพะปัŒะทะพะฒะฐะฝะธะต: uname [ะšะ›ะฎะง]โ€ฆ
ะŸะตั‡ะฐั‚ะฐะตั‚ ะพะฟั€ะตะดะตะปะตะฝะฝั‹ะต ัะฒะตะดะตะฝะธั ะพ ัะธัั‚ะตะผะต.  ะ•ัะปะธ ะšะ›ะฎะง ะฝะต ะทะฐะดะฐะฝ,
ะฟะพะดั€ะฐะทัƒะผะตะฒะฐะตั‚ัั -s.

  -a, --all          ะฝะฐะฟะตั‡ะฐั‚ะฐั‚ัŒ ะฒััŽ ะธะฝั„ะพั€ะผะฐั†ะธัŽ, ะฒ ัะปะตะดัƒัŽั‰ะตะผ ะฟะพั€ัะดะบะต,
                       ะบั€ะพะผะต -p ะธ -i, ะตัะปะธ ะพะฝะธ ะฝะตะธะทะฒะตัั‚ะฝั‹:
  -s, --kernel-name  ะฝะฐะฟะตั‡ะฐั‚ะฐั‚ัŒ ะธะผั ัะดั€ะฐ
  -n, --nodename     ะฝะฐะฟะตั‡ะฐั‚ะฐั‚ัŒ ะธะผั ะผะฐัˆะธะฝั‹ ะฒ ัะตั‚ะธ
  -r, --release      ะฝะฐะฟะตั‡ะฐั‚ะฐั‚ัŒ ะฝะพะผะตั€ ะฒั‹ะฟัƒัะบะฐ ะพะฟะตั€ะฐั†ะธะพะฝะฝะพะน ัะธัั‚ะตะผั‹
  -v, --kernel-version     ะฝะฐะฟะตั‡ะฐั‚ะฐั‚ัŒ ะฒะตั€ัะธัŽ ัะดั€ะฐ
  -m, --machine            ะฝะฐะฟะตั‡ะฐั‚ะฐั‚ัŒ ั‚ะธะฟ ะพะฑะพั€ัƒะดะพะฒะฐะฝะธั ะผะฐัˆะธะฝั‹
  -p, --processor          ะฝะฐะฟะตั‡ะฐั‚ะฐั‚ัŒ ั‚ะธะฟ ะฟั€ะพั†ะตััะพั€ะฐ ะธะปะธ ยซะฝะตะธะทะฒะตัั‚ะฝะพยป
  -i, --hardware-platform  ะฝะฐะฟะตั‡ะฐั‚ะฐั‚ัŒ ั‚ะธะฟ ะฐะฟะฟะฐั€ะฐั‚ะฝะพะน ะฟะปะฐั‚ั„ะพั€ะผั‹ ะธะปะธ ยซะฝะตะธะทะฒะตัั‚ะฝะพยป
  -o, --operating-system   ะฝะฐะฟะตั‡ะฐั‚ะฐั‚ัŒ ะธะผั ะพะฟะตั€ะฐั†ะธะพะฝะฝะพะน ัะธัั‚ะตะผั‹
      --help     ะฟะพะบะฐะทะฐั‚ัŒ ัั‚ัƒ ัะฟั€ะฐะฒะบัƒ ะธ ะฒั‹ะนั‚ะธ
      --version  ะฟะพะบะฐะทะฐั‚ัŒ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ะพ ะฒะตั€ัะธะธ ะธ ะฒั‹ะนั‚ะธ

๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด

RAM์ด ์–ผ๋งˆ๋‚˜ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€ ๋˜๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์–ด ์žˆ๋Š”.

[user@testhost ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3,9G        555M        143M         56M        3,2G        3,0G
Swap:            0B          0B          0B

ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ •๋ณด(์—ฌ์œ  ๋””์Šคํฌ ๊ณต๊ฐ„)

ํŒ€ df ๋งˆ์šดํŠธ๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„๊ณผ ์ ์œ ๋œ ๊ณต๊ฐ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ df -hT
ะคะฐะนะปะพะฒะฐั ัะธัั‚ะตะผะฐ ะขะธะฟ      ะ ะฐะทะผะตั€ ะ˜ัะฟะพะปัŒะทะพะฒะฐะฝะพ  ะ”ะพัั‚ ะ˜ัะฟะพะปัŒะทะพะฒะฐะฝะพ% Cะผะพะฝั‚ะธั€ะพะฒะฐะฝะพ ะฒ
/dev/vda1        ext4        79G          21G   55G           27% /
devtmpfs         devtmpfs   2,0G            0  2,0G            0% /dev
tmpfs            tmpfs      2,0G            0  2,0G            0% /dev/shm
tmpfs            tmpfs      2,0G          57M  1,9G            3% /run
tmpfs            tmpfs      2,0G            0  2,0G            0% /sys/fs/cgroup
tmpfs            tmpfs      396M            0  396M            0% /run/user/1001

์˜ต์…˜ -T ํŒŒ์ผ ์‹œ์Šคํ…œ ์œ ํ˜•์„ ์ถ”๋ก ํ•ด์•ผ ํ•จ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์˜ ์ž‘์—… ๋ฐ ๊ฐ์ข… ํ†ต๊ณ„์— ๋Œ€ํ•œ ์ •๋ณด

์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ƒ๋‹จ. ์˜ˆ๋ฅผ ๋“ค์–ด RAM ์‚ฌ์šฉ๋Ÿ‰ ๊ธฐ์ค€ ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค, CPU ์‹œ๊ฐ„ ์‚ฌ์šฉ๋Ÿ‰ ๊ธฐ์ค€ ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ, CPU, ๊ฐ€๋™ ์‹œ๊ฐ„ ๋ฐ LA(๋กœ๋“œ ํ‰๊ท )์— ๋Œ€ํ•œ ์ •๋ณด๋„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

[user@testhost ~]$ top | head -10
top - 17:19:13 up 154 days,  6:59,  3 users,  load average: 0.21, 0.21, 0.27
Tasks: 2169 total,   2 running, 2080 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.7%us,  0.7%sy,  0.0%ni, 97.5%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:  125889960k total, 82423048k used, 43466912k free, 16026020k buffers
Swap:        0k total,        0k used,        0k free, 31094516k cached

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  25282 user      20   0 16988 3936 1964 R  7.3  0.0   0:00.04 top
   4264 telegraf  20   0 2740m 240m  22m S  1.8  0.2  23409:39 telegraf
   6718 root      20   0 35404 4768 3024 S  1.8  0.0   0:01.49 redis-server

์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ์—๋Š” ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฏ€๋กœ ์ž์ฃผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์„ค๋ช…์„œ๋ฅผ ์ฝ์–ด ๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ๋คํ”„

Linux์—์„œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑ„๊ธฐ ์œ„ํ•ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. TCP ๋คํ”„. ํฌํŠธ 12345์—์„œ ํŠธ๋ž˜ํ”ฝ์„ ๋คํ”„ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ sudo tcpdump -i any -A port 12345

์˜ต์…˜ -A ์ถœ๋ ฅ์„ ASCII๋กœ ๋ณด๊ณ  ์‹ถ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ž˜์„œ ํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ์— ์ข‹์Šต๋‹ˆ๋‹ค). -๋‚˜๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๊ด€์‹ฌ์ด ์—†์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํฌํŠธ โ€” ๋คํ”„ํ•  ํฌํŠธ ํŠธ๋ž˜ํ”ฝ. ๋Œ€์‹ ์— ํฌํŠธ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋‹ค. ์ฃผ์ธ๋˜๋Š” ์กฐํ•ฉ ์ฃผ์ธ ะธ ํฌํŠธ (ํ˜ธ์ŠคํŠธ A ๋ฐ ํฌํŠธ X). ๋˜ ๋‹ค๋ฅธ ์œ ์šฉํ•œ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -n โ€” ์ถœ๋ ฅ์—์„œ โ€‹โ€‹์ฃผ์†Œ๋ฅผ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
ํŠธ๋ž˜ํ”ฝ์ด ๋ฐ”์ด๋„ˆ๋ฆฌ์ธ ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? ๊ทธ๋Ÿฌ๋ฉด ์˜ต์…˜์ด ์šฐ๋ฆฌ์—๊ฒŒ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค -X โ€” XNUMX์ง„์ˆ˜ ๋ฐ ASCII๋กœ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ:

[user@testhost ~]$ sudo tcpdump -i any -X port 12345

๋‘ ๊ฐ€์ง€ ์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ชจ๋‘ IP ํŒจํ‚ท์ด ์ถœ๋ ฅ๋˜๋ฏ€๋กœ ๊ฐ ํŒจํ‚ท์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ๋ฐ”์ด๋„ˆ๋ฆฌ IP ๋ฐ TCP ํ—ค๋”๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ฟผ๋ฆฌ "์— ๋Œ€ํ•œ ์ถœ๋ ฅ ์˜ˆ์ž…๋‹ˆ๋‹ค.123"๊ฐ€ ํฌํŠธ 12345์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•˜๋Š” ์„œ๋ฒ„๋กœ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

[user@testhost ~]$ sudo tcpdump -i any -X port 12345
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
14:27:13.224762 IP localhost.49794 > localhost.italk: Flags [P.], seq 2262177478:2262177483, ack 3317210845, win 342, options [nop,nop,TS val 3196604972 ecr 3196590131], length 5
    0x0000:  4510 0039 dfb6 4000 4006 5cf6 7f00 0001  E..9..@.@......
    0x0010:  7f00 0001 c282 3039 86d6 16c6 c5b8 9edd  ......09........
    0x0020:  8018 0156 fe2d 0000 0101 080a be88 522c  ...V.-........R,
    0x0030:  be88 1833 3132 330d 0a00 0000 0000 0000  ...3123.........
    0x0040:  0000 0000 0000 0000 00                   .........

์ถœ๋ ฅ ๋Œ€์‹ 

๋ฌผ๋ก  Linux์—๋Š” Habrรฉ, StackOverflow ๋ฐ ๊ธฐํƒ€ ์‚ฌ์ดํŠธ์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋” ๋งŽ์€ ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์ค„์˜ ์˜ˆ์ˆ , ์ด๋Š” ๋˜ํ•œ ๋ฒˆ์—ญ์—์„œ). ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์™€ DevOps๋Š” ๋” ๋งŽ์€ ๋ช…๋ น๊ณผ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜์ง€๋งŒ ํ…Œ์Šคํ„ฐ์กฐ์ฐจ๋„ ๋‚˜์—ด๋œ ๋ช…๋ น์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ๊นŒ๋‹ค๋กœ์šด ์‹œ๊ฐ„ ์ดˆ๊ณผ์˜ ์ •ํ™•์„ฑ์ด๋‚˜ ์—ฌ์œ  ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์—†์„ ๋•Œ ์„œ๋ฒ„์˜ ์ž‘๋™์„ ํ™•์ธํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ๋งŽ์€ ํšŒ์‚ฌ์—์„œ ํ™œ๋ฐœํžˆ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” Docker์— ๋Œ€ํ•ด ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด ์ฐธ์กฐ ๊ธฐ์‚ฌ์— ์ด์–ด ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ ๊ณผ์ •์—์„œ ๋‹ค์–‘ํ•œ Linux ์ฝ˜์†” ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กœ์šธ๊นŒ์š”? ๋˜ํ•œ ๋Œ“๊ธ€๋กœ ์ตœ๊ณ ์˜ ํŒ€์„ ๊ณต์œ ํ•ด ์ฃผ์„ธ์š” :)

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€