UNIX/Linux ๋ก๊ทธ์ธ ๊ณผ์ ์ ์ฌ์ฉ์ ๊ณ์ ๊ณผ ํจ์ค์๋ ์ ๋ ฅ์ /etc/passwd ํ์ผ์ passwd๋ฅผ ๋น๊ตํ๋ค.
๊ทธ ํ, ์ด๊ธฐํ๊ฒฝ์ ์ค์ ํ๊ณ ๋ก๊ทธ์ธ ์์ ์คํํ๋ค.
*/etc/passwd ํ์ผ
: UNIX์์ ์์คํ ๊ด๋ฆฌ์๊ฐ ์ฌ์ฉ์ ๊ณ์ ์ ๋ง๋ค ๋ ๋ง๋ค ํด๋น ์ฌ์ฉ์์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ํ์ผ
-7๊ฐ์ ํ๋๋ก ๊ตฌ๋ถ๋๋ฉฐ ' : ' ๊ฐ ๊ตฌ๋ถ์
| [user]:[passwd]:[user_id]:[group_id]:[comment]:[home_directory]:[login_shell] |
| root:x:0:0:root:/root:/bin/bash |
- root : ์ฌ์ฉ์ ๊ณ์ ๋ช
- x : ์ฌ์ฉ์ ํจ์ค์๋ (x๋ shadow ํจ์ค์๋ ์ฌ์ฉ ์๋ฏธ)
- 0 : UID
- 0 : GID
- root : ์ฌ์ฉ์ ๊ด๋ จ ๊ธฐํ ์ ๋ณด
- /root : ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ ํ ์ฌ์ฉ์๊ฐ ์์นํ ํ ๋๋ ํฐ๋ฆฌ
- /bin/bash : ๋ก๊ทธ์ธ ์
UID, GID ๊ธฐ์ค ๊ถํ ๋ถ์ฌ์ด๋ฏ๋ก root๊ฐ ์๋๋ผ๋
UID, GID๊ฐ 0์ด๋ฉด root๊ฐ ๋๋ฏ๋ก ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํ์ฌ์ผ ํจ.
| id [user_account] // ์ฌ์ฉ์ ํ์ธ |
| $ id //๋ช
๋ น ์คํํ ์ฌ์ฉ์ ํ์ธ $ id me //me ์ฌ์ฉ์ ํ์ธ |
$ id me
uid=500 (me) gid=522(me) groups=522(me)
| passwd [user_account] // ํจ์ค์๋ ๋ณ๊ฒฝ |
| $ passwd //๋ช
๋ น ์คํํ ์ฌ์ฉ์ ํจ์ค์๋ ๋ณ๊ฒฝ $ passwd me //root(์ํผ์ ์ )๊ฐ me ์ฌ์ฉ์ ํจ์ค์๋ ๋ณ๊ฒฝ |
# passwd me
Changing password for user me.
New password:
Retype new password:
*/etc/group ํ์ผ
: ํ์ฌ ์์คํ ์ ์ ์๋์ด ์๋ ๋ชจ๋ ๊ทธ๋ฃน์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ํ์ผ
| [group_name]:[unvariable]:[group_id]:[user_account_entry_in_group] |
| bin:x:1:root,bin,daemon |
- bin : ๊ทธ๋ฃน๋ช
- x : ๊ทธ๋ฃน์ ์ํธํ๋ ํจ์ค์๋(์ฌ์ฉ X)
-1 : GID. ๊ทธ๋ฃน๋ช ์ ๋์ ํจ
- root, bin, daemon : ์์๋ ์ฌ์ฉ์ ๊ณ์ ๋ค
*์ ์ถ๋ ฅ ์ฌ์ง์ (I/O Redirection)
: ์ ์ถ๋ ฅ ๋์์ผ๋ก ํ์ค ์ ๋ ฅ, ํ์ค ์ถ๋ ฅ, ํ์ค ์๋ฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ค๋ฅธ ํ์ผ๋ก ์ฌ์ง์ ํ๋ ๊ฒ
| command [0]< file_name //์
๋ ฅ ์ฌ์ง์ : ํ์ค์
๋ ฅ์์ ๋ค์ด์ค๋ ์
๋ ฅ์ ํ์ผ๋ก ๋ฐ๋๋ก ๋์ฒด command [1 or 2]> file_name //์ถ๋ ฅ ์ฌ์ง์ : ๋ช ๋ น ์คํ ๊ฒฐ๊ณผ ๋๋ ์๋ฌ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ์ง ์๊ณ ํ์ผ๋ก ๋์ฒด. 1: ํ์ค์ถ๋ ฅ, 2: ํ์ค์๋ฌ |
| $ who -l > who.txt //์ถ๋ ฅ ์ฌ์ง์ (ํ์ผ ์กด์ฌ์ ์๋กญ๊ฒ ์ถ๋ ฅ) $ who -l >> who.txt //์ถ๋ ฅ ์ฌ์ง์ (ํ์ผ ์กด์ฌ์ ์ถ๊ฐํ์ฌ ์ถ๋ ฅ) |
*ํ์ดํ(Pipe)
: ๋ ์ด์์ ๋ช ๋ น์ ํจ๊ป ๋ฌถ์ด ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ ๋ ฅ์ผ๋ก ์ ํ
| command1 | command 2 [| command 3...] |
| $ ls -l | more // ls -l ๋ช
๋ น ๊ฒฐ๊ณผ๋ฅผ ๋์ด์ ๋ณด์ฌ์ค๋ค $ ps -ef / grep vsftpd // ps -ef ๊ฒฐ๊ณผ์์ ํํฐ๋ง ๊ธฐ๋ฅ ์ํ |
*ํน์ ๋ฌธ์
: ์ ๋ช ๋ น์์ ์ฌ์ ์ ์ ์๋ ํน๋ณํ ๊ธฐ๋ฅ์ด ์๋ ์ผ๋ถ ๋ฌธ์
- ~ : ํ ๋๋ ํฐ๋ฆฌ
- . : ํ์ฌ ๋๋ ํฐ๋ฆฌ
- .. : ์์ ๋๋ ํฐ๋ฆฌ
- # : ์ฃผ์
- $ : ์ ๋ณ์
- & : ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
- * : ์์ผ๋ ์นด๋
- ? : ํ๋ฌธ์ ์์ผ๋ ์นด๋
- ; : ์ ๋ช ๋ น ๊ตฌ๋ถ์
- | :ํ์ดํ
- < :์ ๋ ฅ ์ฌ์ง์
- > : ์ถ๋ ฅ ์ฌ์ง์

*๋ถํธ ๋ธ๋ญ(Boot block) : ์ด์์ฒด์ ๋ฅผ ๋ถํ ํ๊ฑฐ๋ ์ด๊ธฐํ ํ๊ธฐ ์ํ ๋ถํธ์คํธ๋ฉ ์ฝ๋๋ฅผ ๋ด๊ณ ์๋ ๋ธ๋ญ
*์ํผ ๋ธ๋ญ(Super block) : ํด๋น ํ์ผ์์คํ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋ธ๋ญ
*์์ด๋ ธ๋ ๋ฆฌ์คํธ(inode list) : ํ์ผ๋ค์ ๋ํ ์์ฑ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ inode ๊ตฌ์กฐ์ฒด ๋ฆฌ์คํธ
| inode number | ํ์ผ์์คํ ๋ด์์ ํด๋น ํ์ผ ์๋ณ์ ์ํ ์๋ณ์ |
| ํ์ผ ํ์ | ์ผ๋ฐ ํ์ผ, ๋๋ ํฐ๋ฆฌ, ์ฅ์น ํ์ผ ๋ฑ์ ์ ํ |
| ์ ๊ทผ ๊ถํ | ํ์ผ์ ๋ํ ์ ๊ทผ ๊ถํ |
| link count | ํด๋น inode๋ฅผ ์ฐธ์กฐํ๋ ๋งํฌ ๊ฐ์ ( ํ๋๋งํฌ ์ ) |
| ์์ ์ | ํ์ผ ์์ ์ UID |
| ์์ ๊ทธ๋ฃน | ํ์ผ ์์ ๊ทธ๋ฃน GID |
| ํ์ผ ํฌ๊ธฐ | ํ์ผ ํฌ๊ธฐ |
| MAC Time | *last Modification Time : ํ์ผ์ ๋ด์ฉ์ ๋ง์ง๋ง์ผ๋ก ์์ ํ ์๊ฐ *last Access Time : ํ์ผ์ ๋ง์ง๋ง์ผ๋ก ์ ๊ทผํ ์๊ฐ *last Change Time : ํ์ผ์ ์์ฑ์ ๋ง์ง๋ง์ผ๋ก ๋ณ๊ฒฝํ ์๊ฐ ( ์์ ์, ์ ๊ทผ๊ถํ ๋ฑ์ ๋ณ๊ฒฝ) |
| Block index | Data blocks์ ์ ์ฅ๋์ด ์๋ ํ์ผ ๋ด์ฉ์ ๋ํ ์์ธ |

*๋งํฌ(link)
: ๊ธฐ์กด ํ์ผ์ ๋ํ ๋ ๋ค๋ฅธ ์ ๊ทผ ํฌ์ธํธ๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ธฐ๋ฅ
| ln [-s] source_file | source_directory target_file |
| -s // ํด๋น ์ต์ ์ด ์กด์ฌ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ, ์์ผ๋ฉด ํ๋ ๋งํฌ |
-ํ๋ ๋งํฌ : ๊ธฐ์กด ํ์ผ๊ณผ ๋์ผํ inode number๋ฅผ ๊ฐ์ง๋ ํ์ผ
(1) ๋์ผ ํ์ผ์์คํ ๋ด์์๋ง ํ๋๋งํฌ ๊ฐ๋ฅ
(2) ๋๋ ํฐ๋ฆฌ๋ ํ๋๋งํฌ ๋ถ๊ฐ๋ฅ
(3) ํ๋๋งํฌ ํ์ผ ์์ฑ์ inode ๋งํฌ ์นด์ดํธ 1 ์ฆ๊ฐ
(4) ํ์ผ ์ญ์ ์ ๋งํฌ ์นด์ดํธ 1 ๊ฐ์ ํ ๊ทธ ๊ฐ์ด 0 ๋๋ฉด ํ์ผ์ inode ์ ๋ณด ๋ฐ ๋ฐ์ดํฐ ์ญ์
#ln test.txt test_a.txt
-์ฌ๋ณผ๋ฆญ ๋งํฌ : ํ๋๋งํฌ์ ๋จ์ ์ ๋ณด์
(1) ์๋ณธ ํ์ผ์ ๋ํ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋ด์ฉ์ผ๋ก ํ๋ ์๋ก์ด ํ์ผ์ ์์ฑํ์ฌ ์ ๊ทผ
(2) inode number๊ฐ ์๋ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ผ์์คํ ์ ์ ํ ์์
(3) ๋๋ ํฐ๋ฆฌ๋ ๊ฐ๋ฅ
(4) ์๋ณธ ํ์ผ ์ญ์ or ์ด๋ ์ ๊ฒฝ๋ก ๋ณ๊ฒฝ์ผ๋ก ๋งํฌ ๋์ด์ง
#ln -s text.txt text_b.txt
*์ผ๋ฐ ํ์ผ : ๋ฐ์ดํฐ ๋๋ ํ๋ก๊ทธ๋จ ์ฝ๋์ ํด๋นํ๋ ์ผ๋ จ์ ๋ฐ์ดํธ ์คํธ๋ฆผ ํ์ผ
*๋๋ ํฐ๋ฆฌ : ๋๋ ํฐ๋ฆฌ์ ํฌํจ๋ ํ์ผ๋ช ๊ณผ ํด๋น ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋
inode number ๋ชฉ๋ก์ ๋ด์ฉ์ผ๋ก ๊ฐ์ง๊ณ ์๋ ํน์ํ์ผ
*ํน์ ํ์ผ : ๊ธฐ๋ฅ์ ๋ฐ๋ผ ๋ค์ํ ํํ๋ก ์กด์ฌ
-ํ์ดํ, ์์ผ ๋ฑ : ํ๋ก์ธ์ค ๊ฐ ํต์ (IPC)
-๋ธ๋ก ์ฅ์น ํ์ผ(๋ฒํผ๋ง), ๋ฌธ์ ์ฅ์น ํ์ผ(๋น ๋ฒํผ๋ง) : ๋์คํฌ, ํ๋ฆฐํธ, ํฐ๋ฏธ๋ ๋ฑ ์ฃผ๋ณ์ฅ์น ์ฌ์ฉ์ ์ํ ์ฅ์นํ์ผ
| ls [-ailFR] [file_name | directory_name] //๋๋ ํฐ๋ฆฌ ๋ด์ฉ ์ถ๋ ฅ |
| -l //๋ชฉ๋ก ํํ๋ก ๋๋ ํฐ๋ฆฌ ๋ฐ ํ์ผ ์ ๋ณด ์์ธํ ์ถ๋ ฅ -a //๋ํธ(.)ํ์ผ ํฌํจ ๋๋ ํฐ๋ฆฌ ๋ด์ ๋ชจ๋ ๋๋ ํฐ๋ฆฌ ๋ฐ ํ์ผ ๋ณด์ฌ์ค -R //ํ์ ๋๋ ํฐ๋ฆฌ ๋ด์ฉ๊น์ง ๋ณด์ฌ์ค -F //์ด๋ค ์ข ๋ฅ์ ํ์ผ or ๋๋ ํฐ๋ฆฌ์ธ์ง ๋ณด์ฌ์ค (๋๋ ํฐ๋ฆฌ : '/' , ์คํํ์ผ : '*', ์ฌ๋ณผ๋ฆญ๋งํฌ '@') -i //๋๋ ํฐ๋ฆฌ ๋ฐ ํ์ผ์ ์ง์ ๋ inode number ์ถ๋ ฅ |
drwxrwxrwx 3 test test 512 Feb 16 11:53 test/
-drwxrwxrwx : ํ์ผ์ข ๋ฅ ๋ฐ ์ ๊ทผ๊ถํ
(1) ํ์ผ ์ข ๋ฅ
| d | ๋๋ ํฐ๋ฆฌ |
| b | ๋ธ๋ก ์ฅ์น ํ์ผ |
| c | ๋ฌธ์ ์ฅ์น ํ์ผ |
| l | ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ผ |
| p | ๋ค์๋ ํ์ดํ |
| s | ์ ๋์ค ๋๋ฉ์ธ ์์ผ |
| - | ์ผ๋ฐ ํ์ผ |
(2) ์ ๊ทผ ๊ถํ
- ํ์ผ : r(์ฝ๊ธฐ), w(์ฐ๊ธฐ), x(์คํ ๊ฐ๋ฅ)
- ๋๋ ํฐ๋ฆฌ : r(๋๋ ํฐ๋ฆฌ ๋ด์ฉ ๋ณผ ์ ์์ ex.ls), w(๋๋ ํฐ๋ฆฌ ๋ด ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ ์์ฑ, ์ญ์ ๊ฐ๋ฅ), x(๋๋ ํฐ๋ฆฌ ์ ์ด๋ ๊ฐ๋ฅ)
-3 : ํ๋๋งํฌ ์
-test : ์์ ์ฃผ
-test : ์์ ๊ทธ๋ฃน
-512 : ํฌ๊ธฐ
-Feb 16 : ์ต์ข ์์ ์ผ
-11:53 : ์ต์ข ์์ ์๊ฐ
-test/ : ํ์ผ ๋ช
| cd [directory_name] //๋๋ ํฐ๋ฆฌ ๊ฐ์ ์ด๋ |
| $cd ~ //ํ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ |
| mkdir [-m mode] [-p] directory_name //์๋ก์ด ๋๋ ํฐ๋ฆฌ ์์ฑ |
| -m //์๋ก ๋ง๋ค ๋๋ ํฐ๋ฆฌ์ ์ ๊ทผ๊ถํ์ ๋ช
์์ ์ผ๋ก ์ ์ธ -p //๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ํ๊บผ๋ฒ์ ๋ง๋ฆ |
| rmdir [-p] directory_name //๊ธฐ์กด ๋๋ ํฐ๋ฆฌ ์ญ์ |
| -p //๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ ๋๋ ํฐ๋ฆฌ ํ๊บผ๋ฒ์ ์ญ์ |
| chmod [-R] permission file_name1 | directory_name1 //์ ๊ทผ ๊ถํ ๋ณ๊ฒฝ |
| -R //ํ์ ๋๋ ํฐ๋ฆฌ์ ํ์ผ ๊ถํ๊น์ง ๋ณ๊ฒฝ permission //๊ธฐํธ๋ 8์ง์๋ก ์ ๊ทผ๊ถํ ์ง์ |
| chown [-hR] owner file_name1 | directory_name1 //์์ ์ฃผ ๋ณ๊ฒฝ chgrp [-hR] group file_name1 | directory_name1 //์์ ๊ทธ๋ฃน ๋ณ๊ฒฝ |
| -R //ํ์ ๋๋ ํฐ๋ฆฌ์ ๋๋ ํฐ๋ฆฌ ํ์์ ๋ชจ๋ ํ์ผ ์์ ์ฃผ ๋ณ๊ฒฝ -h //์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ผ ์์ฒด์ ์์ ์ฃผ๋ ๊ทธ๋ฃน ๋ณ๊ฒฝ |
*umask : ์์ผ๋ก ๋ง๋ค์ด์ง ํ์ผ์ ์ํฅ์ ๋ฏธ์น๋ ๋ช ๋ น
-๋ช ๋ น ์ ์ง์ ํ 8์ง์๋ ์๋ก์ด ํ์ผ์์ ์ ๊ฑฐ๋ ๊ถํ ๋ช ์
| umask [mask] |
| mask // ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ์ ์ ๊ทผ๊ถํ์ผ๋ก ๊ฐ์ง ๋ง์์ผ ํ ๊ถํ์ 8์ง์๋ก ์ง์ |
ex)
-๊ธฐ๋ณธ ํ์ผ ์์ฑ์ 666์ด๊ณ , umask 022์ ๊ทธ๋ฃน, ๊ทธ์ธ ์ฌ์ฉ์ w๊ถํ ์ ๊ฑฐ๋ก 644๊ฐ ๋๊ณ ,
umask 333์ ์์ ์ฃผ, ๊ทธ๋ฃน, ๊ทธ์ธ ์ฌ์ฉ์ w์ x ๊ถํ ์ ๊ฑฐ๋ก 444๊ฐ ๋๋ค.
| find path [expression] [action] //์์คํ ๋ด ํ์ผ ์ค ์ํ๋ ํ์ผ ์ฐพ์ ๋ ์ฌ์ฉ |
| -name file_name //ํ์ผ๋ช
์ ์ง์ -type //ํ์ผ ์ข ๋ฅ ์ง์ -user uname //์์ ์๋ช ๋๋ UID -group gname //๊ทธ๋ฃน ์ด๋ฆ ๋๋ GID -size [+-]num[๋จ์] //ํ์ผ ํฌ๊ธฐ ์ง์ -perm mde //ํ์ผ์ ์ ๊ทผ๊ถํ ์ง์ -atime [+-]n //access time ์ง์ -ctime [+-]n //change time ์ง์ -mtime [+-]n //modification time ์ง์ |
# find . \(-perm -4000 -o -perm -2000 \) -exec ls -al {} \;
(1) -perm [-] mode : - ๊ฐ ์์ผ๋ฉด ์ ํํ mode ๊ถํ๊ณผ ์ผ์นํ๋ ํ์ผ. - ๊ฐ ์์ผ๋ฉด mode ๊ถํ ํฌํจ ํ์ผ
(2) -exec ์ต์ ์ ํตํด ์ถ๊ฐ์ ์ธ ๋ช ๋ น ์คํ. {}์ ์๋ฏธ๋ ๊ฒ์ ๊ฒฐ๊ณผ ํ์ผ๋ค์ "ls -al" ๋ช ๋ น์ ์ธ์๋ก ์ ๋ฌ
(3) -o ๋ or
ํ๋ก์ธ์ค ์์ฑ์ ์ปค๋/์ด์์ฒด์ ๋ ๊ฐ๋ณ ํ๋ก์ธ์ค๋ณ๋ก ๊ด๋ฆฌ์ ๋ณด ๋ด๋ PCB(Process Control Block) ์์ฑ
-ํ๋ก์ธ์ค ์ํ : ํ๋ก์ธ์ค ํ ์ํ์ ๋ณด๋ฅผ ์ ์ฅ (ready, run ๋ฑ..)
-ํ๋ก์ธ์ค ๋ฒํธ : ํ๋ก์ธ์ค ์๋ณ ๋ฒํธ
-ํ๋ก๊ทธ๋จ ์นด์ดํฐ : ๋ฌธ๋งฅ๊ตํ์ด ๋ฐ์์ ๋ค์์ ์คํํ ๋ช ๋ น์ด์ ์์น๊ฐ
-๋ ์ง์คํฐ : ๋ฌธ๋งฅ ๊ตํ ๋ฐ์ ์ ํ์ฌ ํ๋ก์ธ์ค์ ์คํ ์ํ์ ๋ณด ์ ์ฅ
-๋ฉ๋ชจ๋ฆฌ ์ ๋ณด : ํ๋ก์ธ์ค ์ฌ์ฉ ๋ฉ๋ชจ๋ฆฌ page ๋๋ segment ํ ์ด๋ธ ์ ๋ณด
ํ๋ก์ธ์ค ์์ฑ ์ ๊ฐ๋ณ ํ๋ก์ธ์ค๋ณ๋ก ์คํํ ํ์ผ ๊ด๋ฆฌ๋ฅผ ์ํ FDT(File Descriptor Table) ์์ฑ
-3๊ฐ์ ํ์ผ ์๋ ์คํ
(1)stdin(ํ์ค ์ ๋ ฅ)
(2)stdout(ํ์ค ์ถ๋ ฅ)
(3)stderr(ํ์ค ์๋ฌ)
(4)system open-file table์ open_mode
-FD(File Descriptor) : ํ๋ก์ธ์ค ๋ด ์คํํ ๊ฐ๊ฐ ํ์ผ ์๋ณ์ ์ํ ์์ ์ ์๊ฐ
์ปค๋/์ด์์ฒด์ ๊ฐ ์์คํ ๋ด์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ค์ ์ํด ์คํ๋ ํ์ผ ๊ด๋ฆฌํ๋ ์๋ฃ๊ตฌ์กฐ๊ฐ System open-file tables
-open_mode : ํ์ผ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋ชจ๋
-offset : ํ์ฌ ํ์ผ์ I/O ์ํ์ ์ํ ์์น๊ฐ
-reference_count : ํด๋น ํ์ผ ์ฐธ์กฐ ๊ฐ์
-vnode ptr : Active vnode table์ vnode info
Active vnode table : ํด๋น ํ์ผ์ inode ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ผ์ข ์ ์บ์์ญํ ์ํ
-๋ค์ํ ํ์ผ ์์คํ ์ inode ์ ๋ณด ๊ด๋ฆฌ๋ฅผ ์ํ ์ค๊ณ์ ์ญํ
*fork() ํจ์ : ์์ ํ๋ก์ธ์ค ์์ฑ ์์คํ ํจ์
-์์ ํ๋ก์ธ์ค : pid(ํ๋ก์ธ์ค ID)
-๋ถ๋ชจ ํ๋ก์ธ์ค : ppid(๋ถ๋ชจ ํ๋ก์ธ์ค ID)
-๋ชจ๋ ํ๋ก์ธ์ค๋ ๋ถ๋ชจ ํ๋ก์ธ์ค ๊ฐ์ง
(1)์์คํ ๋ถํ ๋ด๋น boot ํ๋ก์ธ์ค(0๋ฒ) ์ ์ธ ๋ชจ๋ ํ๋ก์ธ์ค๋ ๋ถ๋ชจ ํ๋ก์ธ์ค ๊ฐ์ง
(2)์์ ํ๋ก์ธ์ค ์ด์์๋ ์ํ์์ ๋ถ๋ชจ ํ๋ก์ธ์ค ์ข ๋ฃ์ ์์ ํ๋ก์ธ์ค๋ ๊ณ ์ ํ๋ก์ธ์ค๊ฐ ๋จ
(3)๊ณ ์ ํ๋ก์ธ์ค๋ init (1๋ฒ) ํ๋ก์ธ์ค๊ฐ ๋ถ๋ชจ ์ญํ ์ํ
ํ๋ก์ธ์ค ์กฐ์ ์ ์์ ์ ์ข ๋ฃ์ํ์ ๋ณด๋ฅผ ๋ถ๋ชจ ํ๋ก์ธ์ค์๊ฒ ๋ฐํํด์ผ ์ ์์ ์ผ๋ก ์๋ฉธ ๊ฐ๋ฅ
-์ข ๋ฃ ์ํ ์ ๋ณด : ์์ ์ pid, exit code(์ข ๋ฃ์ ๋ฐํ๊ฐ), cpu time(cpu ์ฌ์ฉ์๊ฐ) ๋ฑ์ ์ ๋ณด
-์ข๋น ํ๋ก์ธ์ค(Zombie Process)
: ํ๋ก์ธ์ค ์ํ ์ข ๋ฃํ์ผ๋ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ์ํ์ ๋ณด๋ฅผ ํ์ธํ์ง ์์ ์๋ฉธํ์ง ์๊ณ ๋จ์์๋ ์ํ์ ํ๋ก์ธ์ค
$ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1 Z 500 4555 4554 0 80 0 - 0 exit pts/0 00:00:00 a.out <defunct>
-์์ ํ๋ก์ธ์ค (pid:4555) ์ข ๋ฃ(WCHAN์ exit) ํ์ผ๋, ์๋ฉธํ์ง ์๊ณ ์ํ์ ๋ณด(S)๊ฐ Z(Zombie)์ํ
-<defunct>๋ ์กด์ฌํ์ง ์๋ค๋ ์๋ฏธ
ps -l ํ๋ ์๋ฏธ
| F | ํ๋ก์ธ์ค ํ๋๊ทธ -1 : fork()๋ฅผ ํตํด ์์ฑ. exec() ์๋จ -4 : ์ํผ์ ์ ๊ถํ์ผ๋ก ์คํ |
| S | ํ๋ก์ธ์ค์ ํ์ฌ ์ํ -R : ํ๋ก์ธ์ค ์คํ ์ค or CPU ์ ์ ๋ฅผ ์ํด ๋๊ธฐ์ค์ธ ์ํ (Run/Ready) -S : ์ธํฐ๋ฝํธ ๊ฐ๋ฅํ Sleep ์ํ -D : ์ธํฐ๋ฝํธ ๋ถ๊ฐ๋ฅํ Sleep ์ํ ( IO ๋๊ธฐ์ค) -T : ํ๋ก์ธ์ค ์ ์ง ์ํ(Stop) -Z : ์ข๋น ์ํ (Zombie) |
| PRI | ํ๋ก์ธ์ค ์ฐ์ ์์ (๋ฎ์์๋ก ์ฐ์ ์์ ๋์) |
| NI | ํ๋ก์ธ์ค ์ฐ์ ์์ ๊ณ์ฐ์ ์ฌ์ฉํ๋ ๊ฐ |
| ADDR | ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ |
| SZ | ํ๋ก์ธ์ค๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ |
| WCHAN | Sleeping ์ํ ํ๋ก์ธ์ค๊ฐ ๋๊ธฐํ๋ ์ปค๋ ํจ์ ๋ช |
ํ๋ก๊ทธ๋จ ์์ฑ๊ณผ ๋์์ ํ๋ก์ธ์ค ๊ทธ๋ฃน์ด ์์ฑ๋๋ค.
1.fork()๋ฅผ ํตํ ์์ ํ๋ก์ธ์ค ์์ฑ ( ํฐ๋ฏธ๋ ์ ์ด๊ถ์ด ์์ ํ๋ก์ธ์ค๋ก)
2.exec()์ ํตํ ํ๋ก์ธ์ค ์ด๋ฏธ์ง ์ ์ด
3.์คํ ์ข ๋ฃ ํ ํฐ๋ฏธ๋ ์ ์ด๊ถ์ ์๋ก ๋ฐํ
-ํ๋ก์ธ์ค ๊ทธ๋ฃน : ์ปค๋์ด ํฐ๋ฏธ๋ ์ ์ด๊ถ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ํ๋ก์ธ์ค๋ค์ ์งํฉ
(1)์์์ ์คํ๋ ํ๋ก์ธ์ค์ ๊ทธ ์์ ํ๋ก์ธ์ค๋ค์ด ํ๋์ ํ๋ก์ธ์ค ๊ทธ๋ฃน์ผ๋ก ๊ด๋ฆฌ๋จ
-ํฐ๋ฏธ๋ ์ ์ด๊ถ : ํฐ๋ฏธ๋๋ก๋ถํฐ ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ํฐ๋ฏธ๋๋ก๋ถํฐ ๋ฐ์ํ๋ ์๊ทธ๋์ ๋ํ ์ ์ด๊ถ
(1)ํ๋ก์ธ์ค ๊ทธ๋ฃน ๋จ์๋ก ์ ์ด๊ถ ๋ถ์ฌ
-PGID : ์ปค๋์ด ํ๋ก์ธ์ค ๊ทธ๋ฃน์ ์๋ณํ๊ธฐ ์ํ ์๋ณ์๋ก ๋ถ์ฌ
(1)๋ณ๋๋ก ๋ถ์ฌํ๋ ์๋ณ์๊ฐ ์๋ ํด๋น ๊ทธ๋ฃน์ ๋ฆฌ๋ ํ๋ก์ธ์ค(์๋ก๋ถํฐ ์คํ๋ ํ๋ก์ธ์ค)์ PID
*ํฌ๊ทธ๋ผ์ด๋ ๋ชจ๋(Foreground Mode)
: ํฐ๋ฏธ๋์ ๋ํ ์ ์ด๊ถ์ ๊ฐ์ง๊ณ ๋์ํ๋ ๋ชจ๋
*๋ฐฑ๊ทธ๋ผ์ด๋ ๋ชจ๋(Background Mode)
: ํฐ๋ฏธ๋์ ๋ํ ์ ์ด๊ถ ์์ด ๋์ํ๋ ๋ชจ๋
| ps [-flaAe] [-G gid_list] [-g egid_list] [-U uid_list] [-u euid_list] [-t terminal_list] |
| -f //ํ๋ก์ธ์ค ์ ๋ณด๊ฐ ํ ์ค์ฉ ์ถ๋ ฅ ex)UserName PID PPID C STIME TTY TIME CMD -l //-f ์ต์ ๋ณด๋ค ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ถ๋ ฅ ex)F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD -a //์ต๊ทผ์ ๋ง์ด ์คํ๋ ์ ์ด ํฐ๋ฏธ๋์ ๊ฐ์ง ํ๋ก์ธ์ค ์ ๋ณด ์ถ๋ ฅ -A,-e //ํ์ฌ ์์คํ ์์ ์คํ ์ค์ธ ๋ชจ๋ ํ๋ก์ธ์ค ์ ๋ณด ์ถ๋ ฅ |
*์๊ทธ๋ : UNIX ์์คํ ์์ ์ง์ํ๋ ์ํํธ์จ์ด ์ธํฐ๋ฝํธ
-๋ฐ์ํ๋ ๊ฒฝ์ฐ : ์ธ๋ถ, ์๋ฌ, ์ด๋ฒคํธ, ์ธ์์
| kill [-signal_number | -signal_name] PID //ํ๋ก์ธ์ค ๊ฐ ํต์ kill -l [signal] |
| -signal_number | -signal_name //์๊ทธ๋ ๋ฒํธ ๋๋ ์๊ทธ๋๋ช
-l //์ง์ ๊ฐ๋ฅํ ์๊ทธ๋ ๋ชฉ๋ก ์ถ๋ ฅ |
| $ kill -9 3000 $ kill -KILL 3000 |
| SIGINT | 2 | [Ctrl+c] ์กฐํฉํค ๋๋ฅด๋ฉด ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค ๊ทธ๋ฃน ๋ด ๋ชจ๋ ํ๋ก์ธ์ค์๊ฒ ์ด ์๊ทธ๋ ์ ๋ฌ. ์๊ทธ๋ ๋ฐ์ ํ๋ก์ธ์ค๋ ๋ํดํธ๋ก ์ข ๋ฃ |
| SIGKILL | 9 | ๋ฌด์ํ๊ฑฐ๋ ์์๋ก ์ฒ๋ฆฌํ ์ ์๋ ์๊ทธ๋. ์๊ทธ๋ ๋ฐ์ ํ๋ก์ธ์ค๋ ์ข ๋ฃ |
| SIGSTOP | 23 | ํ๋ก์ธ์ค ์ ์ง ์๊ทธ๋. ๋ฌด์ํ๊ฑฐ๋ ์์๋ก ์ฒ๋ฆฌ ๋ถ๊ฐ๋ฅ |
| SIGTERM | 15 | ์๊ทธ๋ ๋ฐ์ ํ๋ก์ธ์ค๋ ๋ํดํธ ์ข ๋ฃ |
| SIGFOE | 8 | ์ปค๋์ ์ํด ๋ฐ์. ์ฐ์ ์ฐ์ฐ ์๋ฌ ํ๋ก์ธ์ค์๊ฒ ์ ๋ฌ |
| SIGCHLD | 18 | ํ๋ก์ธ์ค์ ์ข ๋ฃ๋ ์ ์ง์ ๊ฒฝ์ฐ ๋ถ๋ชจ ํ๋ก์ธ์ค์๊ฒ ์๊ทธ๋ ์ ๋ฌ |
| SIGALRM | 14 | alarm() ํจ์๊ฐ ์ค์ ๋ ํ์ด๋จธ์ ์ํด ๋ฐ์ |
| SIGQUIT | 3 | [Ctrl+\]์กฐํฉํค ๋๋ฅด๋ฉด ์ ์ ํ๋ก์ธ์ค ๊ทธ๋ฃน ๋ด ๋ชจ๋ ํ๋ก์ธ์ค์๊ฒ ์๊ทธ๋ ์ ๋ฌ. ์๊ทธ๋ ๋ฐ์ ํ๋ก์ธ์ค๋ ๋ํดํธ๋ก ์ข ๋ฃ๋๋ฉฐ Core ํ์ผ ์์ฑ |
| SIGSEGV | 11 | ์ปค๋์ ์ํด ๋ฐ์. ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐํ๋ ํ๋ก์ธ์ค์๊ฒ ์๊ทธ๋ ์ ๋ฌ |
| SIGHUP | 1 | ํฐ๋ฏธ๋ ์ฐ๊ฒฐ์ด ๋์ด์ง๋ ๊ฒฝ์ฐ์ ํ๋ก์ธ์ค์๊ฒ ์ด ์๊ทธ๋ ์ ๋ฌ. ํ๊ฒฝ์ค์ ํ์ผ์ ์ฌ์ค์ ์ ์ฌ์ฉ |
'์ฌ๋ฌ๊ฐ์ง > ์ ๋ณด๋ณด์ ์ ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ ๋ณด๋ณด์ ์ ๋ฆฌ] ์์คํ - UNIX/Linux ์๋ฒ ์ทจ์ฝ์ (0) | 2023.03.15 |
|---|---|
| [์ ๋ณด๋ณด์ ์ ๋ฆฌ] ์์คํ - ์์คํ ํดํน (0) | 2023.03.11 |
| [์ ๋ณด๋ณด์ ์ ๋ฆฌ] ์์คํ - UNIX/Linux ์๋ฒ ๋ณด์ (0) | 2023.03.09 |
| [์ ๋ณด๋ณด์ ์ ๋ฆฌ] ์์คํ - UNIX/Linux ์์คํ ๊ด๋ฆฌ (0) | 2023.03.08 |
| [์ ๋ณด๋ณด์ ์ ๋ฆฌ] ์์คํ - ์๋์ฐ (1) | 2023.03.02 |