Skip to content

Latest commit

ย 

History

History
184 lines (147 loc) ยท 8.75 KB

File metadata and controls

184 lines (147 loc) ยท 8.75 KB

Chapter1. UNIX ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

20180903

  • UNIX ํ”„๋กœ๊ทธ๋ž˜๋ฐ : UNIX์˜ system call (OS๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” function์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ)์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ. ์˜ˆ๋ฅผ ๋“ค์–ด ์šด์˜์ฒด์ œ์— ๊ตฌํ˜„์ด ๋ผ์žˆ๋Š” SemaphoreWait ํ•จ์ˆ˜๋ฅผ ํ”„๋กœ์„ธ์Šค์—์„œ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ.

  • XShell ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

    • ์ƒˆ๋กœ๋งŒ๋“ค๊ธฐ์—์„œ ์ด๋ฆ„ ์•„๋ฌด๊ฑฐ๋‚˜

    • Host name : 203.250.148.93

    • User name : s13011022

    • Port : 1074

    • Password : ๋น„๋ฐ€๋ฒˆํ˜ธ

      //ํŒจ์Šค์›Œ๋“œ ๋ฐ”๊พธ๊ธฐ
      $ passwd
      Current UNIX password : ์ง€๊ธˆ ๋น„๋ฐ€๋ฒˆํ˜ธ
      New UNIX password : ์ƒˆ๋กœ์šด ๋น„๋ฐ€๋ฒˆํ˜ธ
      Retype new UNIX password : ์ƒˆ๋กœ์šด ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์ž…๋ ฅ
      
  • Mac Terminal์—์„œ ssh๋กœ ์‹œ์Šคํ…œ์— ๋กœ๊ทธ์ธํ•˜๊ธฐ

    • $ ssh [ID]@[HOST]
    • $ ssh root@127.0.0.1
    • SSH ์ ‘์†์˜ ๊ธฐ๋ณธํฌํŠธ๋Š” 22๋ฒˆ์ธ๋ฐ, ๊ฐ•์˜์—์„œ๋Š” 1074 ํฌํŠธ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ”๊ฟ€ ๋•Œ์—๋Š” -p [ํฌํŠธ๋ฒˆํ˜ธ] ์˜ต์…˜์„ ๋ถ™ํ˜€์ฃผ๋ฉด ๋œ๋‹ค
    • ์ตœ์ดˆ SSH ์—ฐ๊ฒฐ ์‹œ RSA ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์—ฐ๊ฒฐ์„ ๊ณ„์†ํ•˜๋ ค๋Š”์ง€ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ด. yes๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ ์š”์ฒญ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚จ.
    $ ssh -p 1074 s13011022@203.250.148.93
    $ s13011022@203.250.148.93's password : ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ
    
  • vi ์—๋””ํ„ฐ

    • ์ตœ์ดˆ์˜ UNIX ์šฉ ํ™”๋ฉด ํŽธ์ง‘๊ธฐ
    • ์ž‘๊ณ , ๋น ๋ฅด๊ณ , ๋ชจ๋“  ์œ ๋‹‰์Šค/๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ–์ถ”๊ณ  ์žˆ์Œ
    • ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ๋งŒ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์œผ๋‚˜ ์œ ๋‹‰์Šค์˜ ๋‹ค๋ฅธ ๋ช…๋ น๋“ค๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋งค์šฐ ๋‹ค์–‘ํ•˜๊ฒŒ ํ™•์žฅ, ์‘์šฉ ๊ฐ€๋Šฅ
    • ๋…ํŠนํ•˜์ง€๋งŒ ๋งค์šฐ ๋น ๋ฅด๊ณ  ๊ฐ•๋ ฅํ•œ ๋ช…๋ น ์ฒด๊ณ„
    // $ ํ‘œ์‹œ๋Š” ๋ช…๋ น์„ ๋ฐ›์•„๋“ค์ผ ์ค€๋น„๊ฐ€ ๋๋‹ค๋Š” ์˜๋ฏธ
    // vi ํŒŒ์ผ์ด ์—†์œผ๋ฉด ๋งŒ๋“ค์–ด์„œ ํŒŒ์ผ ์‹คํ–‰, ์žˆ์œผ๋ฉด ์—๋””ํ„ฐ๋กœ ํŒŒ์ผ ์‹คํ–‰
    $ vi myfile.c
    
  • ๋ช…๋ น๋ชจ๋“œ : vi ์‹œ์ž‘ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๋ชจ๋“œ. ํ…์ŠคํŠธ ํŽธ์ง‘์— ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๋ช…๋ น๋“ค์„ ์ž…๋ ฅํ•˜๋Š” ๋ชจ๋“œ. ๋ฉ”๋‰ด(ํŒŒ์ผ, ํŽธ์ง‘, ๋„๊ตฌ ๋“ฑ๋“ฑ) ๋‹จ๊ณ„ / ์ œ์ผ ์•„๋ž˜ ์•„๋ฌด๊ฒƒ๋„ ์—†์Œ

    • ํŽธ์ง‘๋ชจ๋“œ : i, a ๋ˆ„๋ฅด๋ฉด ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ ๋ฐ ์ˆ˜์ •ํ•˜๋Š” ๋ชจ๋“œ / ์ œ์ผ ์•„๋ž˜ ๋ผ์›Œ๋„ฃ๊ธฐ or insert ๋œธ
    • ex๋ชจ๋“œ : ์ฃผ๋กœ ์™ธ๋ถ€ ํŒŒ์ผ์ด๋‚˜ ํ™•์žฅ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“œ. ํŽธ์ง‘ ์ข…๋ฃŒ๋„ ex๋ชจ๋“œ์—์„œ ์‹คํ–‰ / ์ œ์ผ ์•„๋ž˜ : ์ฝœ๋ก  ํ‘œ์‹œ. w์ €์žฅ q์ข…๋ฃŒ
    :w			- ์ €์žฅ
    :q			- ์ข…๋ฃŒ
    :wq			- ์ €์žฅ ๋ฐ ์ข…๋ฃŒ
    :q!			- ๊ฐ•์ œ ์ข…๋ฃŒ. ํŽธ์ง‘ ์ค‘์ธ ํŒŒ์ผ์„ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  vi๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜ ์—†์Œ. ์ด ๋•Œ ๊ฐ•์ œ ์ข…๋ฃŒ๋ฅผ ๊ตณ์ด ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ๋จ
    
    ctrl + f	- ํ•œ ํ™”๋ฉด๋งŒํผ ์•„๋ž˜๋กœ ์ด๋™
    ctrl + b	- ํ•œ ํ™”๋ฉด๋งŒํผ ์œ„๋กœ ์ด๋™
    ctrl + d	- ํ™”๋ฉดํฌ๊ธฐ์˜ ๋ฐ˜ ๋งŒํผ ์•„๋ž˜๋กœ ์ด๋™
    ctrl + u	- ํ™”๋ฉดํฌ๊ธฐ์˜ ๋ฐ˜ ๋งŒํผ ์œ„๋กœ ์ด๋™
    
    H			- ํ™”๋ฉด์˜ ์ฒซ ์ค„ ์ฒซ ์นธ์œผ๋กœ ์ด๋™
    L			- ํ™”๋ฉด์˜ ๋งˆ์ง€๋ง‰ ์ค„ ์ฒซ ์นธ์œผ๋กœ ์ด๋™
    M			- ํ™”๋ฉด์˜ ์ค‘๊ฐ„ ์ค„ ์ฒซ ์นธ์œผ๋กœ ์ด๋™
    ^			- ํ˜„์žฌ ์ค„์˜ ์ œ์ผ ์ฒซ ๋‹จ์–ด๋กœ ์ด๋™
    $			- ํ˜„์žฌ ์ค„์˜ ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๋กœ ์ด๋™
    w			- ํ•œ ๋‹จ์–ด์”ฉ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™
    b			- ํ•œ ๋‹จ์–ด์”ฉ ์™ผ์ชฝ์œผ๋กœ ์ด๋™
    15G			- 15๋ฒˆ์งธ ์ค„๋กœ ์ด๋™
    G			- ํŒŒ์ผ์˜ ์ œ์ผ ๋งˆ์ง€๋ง‰ ์ค„๋กœ ์ด๋™
    /string		- string ๊ฒ€์ƒ‰
    x			- ์ปค์„œ ์œ„์น˜์˜ ํ•œ ๋ฌธ์ž ์‚ญ์ œ
    5x			- ์ปค์„œ ์œ„์น˜์˜ ๋‹ค์„ฏ ๋ฌธ์ž ์‚ญ์ œ
    dw			- ํ˜„์žฌ ์ปค์„œ ์˜ค๋ฅธ์ชฝ ํ•œ ๋‹จ์–ด ์‚ญ์ œ
    db			- ํ˜„์žฌ ์ปค์„œ ์™ผ์ชฝ ํ•œ ๋‹จ์–ด ์‚ญ์ œ
    dd			- ํ˜„์žฌ ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ค„ ํ•œ ์ค„ ์‚ญ์ œ
    15dd		- ํ˜„์žฌ ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ค„๋ถ€ํ„ฐ 15์ค„ ์‚ญ์ œ
    o			- ํ˜„์žฌ ์ปค์„œ ์œ„์น˜ ์•„๋ž˜์— ํ•œ ์ค„ ์ƒ์„ฑ
    O			- ํ˜„์žฌ ์ปค์„œ ์œ„์น˜ ์œ„์— ํ•œ ์ค„ ์ƒ์„ฑ
    Y			- ํ˜„์žฌ ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ค„ ๋ณต์‚ฌ
    15Y			- ํ˜„์žฌ ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ค„๋ถ€ํ„ฐ 15์ค„ ๋ณต์‚ฌ
    P			- ๋ณต์‚ฌ ํ•œ ๋‚ด์šฉ์„ ํ˜„์žฌ ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ค„ ์•„๋ž˜์— ์‚ฝ์ž…
    u			- ๋ฐ”๋กœ ์ „ ๋ช…๋ น์˜ ์‹คํ–‰์„ ์ทจ์†Œ
    .			- ๋ฐ”๋กœ ์ด์ „ ๋ช…๋ น์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋” ์‹คํ–‰
    %s/aa/bb/g	- ๋ฌธ์„œ ์ „์ฒด์˜ aa๋ฅผ bb๋กœ ์น˜ํ™˜
    
  • ์ปดํŒŒ์ผ ๋ฐ ์‹คํ–‰

    • gcc test1.c ๋งŒ ์ž…๋ ฅ ํ›„ ์‹คํ–‰ํ•˜๋ฉด ์‹คํ–‰ํŒŒ์ผ์ด a.out ์œผ๋กœ ๋งŒ๋“ค์–ด์ ธ์„œ ์ปดํŒŒ์ผ๋œ๋‹ค. -o ์˜ต์…˜ ๋ถ™์—ฌ์„œ ์‹คํ–‰ํŒŒ์ผ ์ด๋ฆ„์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
    • -o ๋ถ™์ผ ๋•Œ ํ”„๋กœ๊ทธ๋žจ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ๊ธฐ์กด์˜ ํ”„๋กœ๊ทธ๋žจ ํŒŒ์ผ ๋‚ด์šฉ์— ๋ฎ์–ด์”Œ์›Œ์ ธ์„œ ์ž‘์—… ๋‚ด์šฉ์ด ๋‚ ๋ผ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•  ๊ฒƒ
    $ gcc test1.c -o test1.out
    
    $ ./test1.out
    $ ./a.out
    
  • unix

    $ ls [ํ˜„ directory ๋‚ด์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  subdirectory ๋ฐ file๋“ค์„ listing ํ•˜๋Š” ๋ช…๋ น]
    $ ls -l [๊ฐ subdirectory ๋ฐ file์— ๊ด€ํ•œ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ํ‘œ์‹œํ•˜๋Š” ๋ช…๋ น]
    $ cat filename [ํ•ด๋‹น file์˜ ๋‚ด์šฉ์„ ํ™”๋ฉด์— ์ถœ๋ ฅ]
    $ more filename [ํ•ด๋‹น file์˜ ๋‚ด์šฉ์„ ํ•œ ํŽ˜์ด์ง€ ์”ฉ ํ™”๋ฉด์— ์ถœ๋ ฅ. enter or spacebar๋กœ ๋‹ค์ŒํŽ˜์ด์ง€]
    $ cp file1 file2 [file1์˜ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜์—ฌ file2๋ฅผ ์ƒ์„ฑ]
    $ mv file1 file2 [file1์˜ ์ด๋ฆ„์„ file2๋กœ ๋ณ€๊ฒฝ]
    $ mv file1 dir1 [file1์„ dir1์œผ๋กœ ์ด๋™]
    $ rm filename [ํ•ด๋‹น file ์‚ญ์ œ, ๋ฐ”๋กœ ์‚ญ์ œ๋˜๋‹ˆ๊นŒ ์ฃผ์˜, ์ค‘์š”ํ•œ ๊ฒƒ๋“ค copy ๋ฏธ๋ฆฌ ํ•ด๋‘๊ธฐ]
    $ rmdir dirname [directory ์‚ญ์ œ, dir ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด ์‚ญ์ œ ๋ถˆ๊ฐ€, ์•ˆ์— ํŒŒ์ผ/ํด๋” ๋‹ค ์ง€์šฐ๊ณ  ์ˆ˜ํ–‰ํ•˜๊ธฐ]
    $ mkdir dirname [ํ•ด๋‹นํ•˜๋Š” ์ด๋ฆ„์˜ directory๋ฅผ ์ƒ์„ฑ]
    $ cd dirname [ํ•ด๋‹น directory๋กœ ์ด๋™]
    $ chmod 0700 filename (or dirname) [ํ•ด๋‹น file(๋˜๋Š” directory)์˜ access permission ๋ณ€๊ฒฝ]
    

File System Permissions

  • ์‹ค์Šต4 ์ž…๋ ฅ 10๊ฐœ ๋‹ค ๋ฐ›๊ณ  ๋ง์…ˆ๋งŒ ํ•จ์ˆ˜์—์„œ ์‹คํ–‰ํ•˜๋ฉด ๋จ. ๋งž๊ฒŒ ํ•จ

  • File System Permissions

    $ ls -l
    $ ls -al
    
    ํ•ฉ๊ณ„ 4
    drwx------. 2 s13011022 class 4096  9์›”  5 00:56 LAB09-03
    
    ํ•ฉ๊ณ„ 64
    -rw-------. 1 s13011022 class  233  9์›”  3 12:35 test1.c
    -rwx------. 1 s13011022 class 8624  9์›”  3 21:45 test1.out
    -rw-------. 1 s13011022 class  260  9์›”  3 21:43 test2.c
    -rwx------. 1 s13011022 class 8664  9์›”  3 21:45 test2.out
    -rw-------. 1 s13011022 class  254  9์›”  3 21:49 test3.c
    -rwx------. 1 s13011022 class 8664  9์›”  3 21:49 test3.out
    -rw-------. 1 s13011022 class  262  9์›”  3 21:55 test4.c
    -rwx------. 1 s13011022 class 8664  9์›”  3 21:55 test4.out
    
    • ๊ฐ subdirectory ๋ฐ file์— ๊ด€ํ•œ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ํ‘œ์‹œ
    • rwx == 4+2+1 == 7
    • d : ๋””๋ ‰ํ† ๋ฆฌ ํ‘œ์‹œ, r : ์ฝ๊ธฐ ๊ฐ€๋Šฅ, w : ์“ฐ๊ธฐ ๊ฐ€๋Šฅ, x : ์‹คํ–‰ ๊ฐ€๋Šฅ
    • 0 rwx rwx rwx : ๋‚ด๊ฐ€ / ๋‚˜๋ž‘ ๊ฐ™์€ ๊ทธ๋ฃน์˜ ์œ ์ €๋“ค์ด / ๋‚˜ ๋ฐ ๋‚˜๋ž‘ ๊ฐ™์€ ๊ทธ๋ฃน ์ด์™ธ์˜ ์œ ์ €๋“ค์ด ์ฝ/์“ฐ/์‹ค ๊ฐ€๋Šฅ
    • chmod 0700 filename(or dirname) ํ•  ๋•Œ 0700์˜ ์˜๋ฏธ๊ฐ€ ์ด๊ฒƒ์ž„
    • https://www.tutorialspoint.com/unix/unix-file-permission.htm
    • https://en.wikipedia.org/wiki/File_system_permissions
    Number Octal Permission Representation Ref
    0 No permission ---
    1 Execute permission --x
    2 Write permission -w-
    3 Execute and write permission: 1 (execute) + 2 (write) = 3 -wx
    4 Read permission r--
    5 Read and execute permission: 4 (read) + 1 (execute) = 5 r-x
    6 Read and write permission: 4 (read) + 2 (write) = 6 rw-
    7 All permissions: 4 (read) + 2 (write) + 1 (execute) = 7 rwx
    Symbolic Notation Numeric Notation English
    ---------- 0000 no permissions
    -rwx------ 0700 read, write, & execute only for owner
    -rwxrwx--- 0770 read, write, & execute for owner and group
    -rwxrwxrwx 0777 read, write, & execute for owner, group and others
    ---x--x--x 0111 execute
    --w--w--w- 0222 write
    --wx-wx-wx 0333 write & execute
    -r--r--r-- 0444 read
    -r-xr-xr-x 0555 read & execute
    -rw-rw-rw- 0666 read & write
    -rwxr----- 0740 owner can read, write, & execute; group can only read; others have no permissions