-
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 ๋ณ๊ฒฝ]
-
์ค์ต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 -rwxrwxrwx0777 read, write, & execute for owner, group and others ---x--x--x0111 execute --w--w--w-0222 write --wx-wx-wx0333 write & execute -r--r--r--0444 read -r-xr-xr-x0555 read & execute -rw-rw-rw-0666 read & write -rwxr-----0740 owner can read, write, & execute; group can only read; others have no permissions