๋๋ ํ ๋ฆฌ ๊ด๋ จ ๋ช
๋ น์ด
๋๋ ํ ๋ฆฌ ๋ชฉ๋ก ํ์ธ
$ ls
$ ls -al : ๊ฐ์ถฐ์ง ํ์ผ์ .์ด ๋ถ๋๋ค. a ์ต์
์ ์ฌ์ฉํ๋ฉด ํด๋น ํ์ผ์ ํ์ธํ ์ ์๋ค.
$ ls -l
์ ๋๋ ํ ๋ฆฌ ์์ฑ
$ mkdir [๋๋ ํ ๋ฆฌ๋ช
]
$ mkdir -p [๋๋ ํ ๋ฆฌ๋ช
/๋๋ ํ ๋ฆฌ๋ช
/๋๋ ํ ๋ฆฌ๋ช
...] : ์ฌ๋ฌ ๋๋ ํ ๋ฆฌ ์์ฑ
๋๋ ํ ๋ฆฌ ์ด๋
$ cd [๋๋ ํ ๋ฆฌ๋ช
]
$ cd .. : ๋ถ๋ชจ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
tip) ๋๋ ํ ๋ฆฌ๋ช
์ด ๋๋ฌด ๊ธธ ๋, ์กฐ๊ธ๋ง ์ฐ๊ณ tabํค ๋๋ฅด๋ฉด ์๋์์ฑ
๋๋ ํ ๋ฆฌ ์ญ์
$ rm -r [๋๋ ํ ๋ฆฌ๋ช
]-r (remove directories and their contents recursively; ํด๋น ๋๋ ํ ๋ฆฌ ์๋ ์๋ ๋ด์ฉ๋ค๋ ์ญ์ ํ๋ค.)
ํ์ผ ๊ด๋ จ ๋ช
๋ น์ด
๋น์ด์๋ ํ์ผ ์์ฑ
$ touch [ํ์ผ๋ช
]
ํ์ผ ์ญ์
$ rm [ํ์ผ๋ช
]
ํ์ผ ๋ณต์ฌ
$ cp [ํ์ผ์์น ๋ฐ ํ์ผ์ด๋ฆ] [๋ชฉ์ ์ง ํ์ผ์์น ๋ฐ ํ์ผ ์ด๋ฆ]
ํ์ผ ์ด๋ (ํ์ผ ์ด๋ฆ์ ๋ฐ๊ฟ ๋์๋ ์ฌ์ฉ)
$ mv [ํ์ผ์์น ๋ฐ ํ์ผ์ด๋ฆ] [๋ชฉ์ ์ง ํ์ผ์์น ๋ฐ ํ์ผ ์ด๋ฆ]
$ mv [์๋ ํ์ผ ์ด๋ฆ] [๋ฐ๊พธ๊ณ ์ถ์ ํ์ผ ์ด๋ฆ]
ํ์ผ ๋ง๋ค๊ณ ํธ์ง (nano ์๋ํฐ)
$ nano [ํ์ผ๋ช
] : ์ ํ์ผ ์์ฑ or ์กด์ฌํ๋ ํ์ผ ์์
ํ์ผ ๋ด์ฉ ๋ณด๊ธฐ
$ cat [ํ์ผ๋ช
]
ํ์ผ ์์น ๊ฒ์
$ locate *.log
: (ํ์ฅ์๊ฐ .log์ธ ํ์ผ ์ฐพ๊ธฐ)๋๋ ํ ๋ฆฌ๋ฅผ ๋ค์ง๋๊ฒ ์๋๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค(mlocate)๋ฅผ ๋ค์ ธ์ ์ฐพ๋๋ค.
$ find . *.log : ๋๋ ํ ๋ฆฌ ๋ค์ง
$ whereis ls$ whereis rm์คํํ์ผ ์์น ์ฐพ๊ธฐ
ํ์ฌ ์์น ํ์ธ
$ pwd
๋ช
๋ น์ฐฝ ๋ด์ฉ ์ญ์
$ clear
๋ช
๋ น์ด ๋์๋ง ํ์ธ
$ [๋ช
๋ น์ด] --help $ man [๋ช
๋ น์ด] : /[์ฐพ๊ณ ์ถ์๋จ์ด] ์ฌ์ฉํด์ ๋จ์ด์ฐพ๊ธฐ ๊ฐ๋ฅ, ๊ทธ ์ํ๋ก n์ ๋๋ฅด๋ฉด ๋ค์ ๋จ์ด ์ฐพ๊ธฐ
ํจํค์ง ๋งค๋์ (Package Manager)
- ๊ธฐ๋ณธ์ผ๋ก ๋ด์ฅ๋์ด ์๋ ํจํค์ง(ํ๋ก๊ทธ๋จ)๊ฐ ์๋ ์๋ก์ด ํจํค์ง(ํ๋ก๊ทธ๋จ)๋ฅผ ์ค์นํ๋ ค๊ณ ํ ๋ ๋์์ฃผ๋ ์ํํธ์จ์ด (์๋๋ก์ด๋์ ๊ตฌ๊ธํ๋ ์ด, iOS์ ์ฑ์คํ ์ด ๊ฐ์ ..)
- apt, yum ๋ฑ์ด ์์.
ํจํค์ง ๋ชฉ๋ก ์
๋ฐ์ดํธ
$ apt-get update
- ํจํค์ง ๋งค๋์ ๋ฅผ ํตํด ์ค์นํ ์ ์๋ ํจํค์ง ๋ชฉ๋ก๋ค์ ์
๋ฐ์ดํธํ๋ค. (์ค์นํ๊ธฐ์ ์)
- ํจํค์ง๊ฐ ์ค์น๋๋๊ฒ ์๋๋ผ ํจํค์ง ๋ชฉ๋ก๋ค์ด ์
๋ฐ์ดํธ ๋๋ ๊ฒ.
ํจํค์ง ์ฐพ๊ธฐ
$ apt-cache search [ํจํค์ง๋ช
]
- ์ ์ฅ๋ ํจํค์ง ๋ชฉ๋ก ์ค์ ํด๋น ํจํค์ง ์ฐพ๊ธฐ..?
- ๊ด๋ จ๋ ํจํค์ง ๋ชฉ๋ก๊น์ง ๋์จ๋ค.
ํจํค์ง ์ค์น
$ apt-get install [ํจํค์ง๋ช
]
ํจํค์ง ์
๊ทธ๋ ์ด๋
$ apt-get upgrade $ apt-get upgrade [ํจํค์ง๋ช
]
ํจํค์ง ์ญ์
$ apt-get remove [ํจํค์ง๋ช
]
ํจํค์ง๋ฅผ ์ค์นํ๋ ์์ (ํญ์ ์ด ์์๋ฅผ ๋ฐ๋ฅด๋๊ฒ ์ข์.)
- ํจํค์ง ๋ชฉ๋ก ์
๋ฐ์ดํธ (apt-get update)
- ํจํค์ง ์ค์น (apt-get install)
๋ค์ด๋ก๋
ํ์ผ์ ๋ค์ด๋ก๋ (wget ์ฌ์ฉ)
$ wget -O [์ ์ฅํ ํ์ผ๋ช
] [๋ค์ด๋ก๋ url]
์์ค์ฝ๋ ๋ค์ด๋ก๋ (git ์ฌ์ฉ)
1. git ์ค์น
$ apt-get install git 2. ์์ค์ฝ๋ ๋ค์ด
$ git clone [์์ค์ฝ๋ url] [๋๋ ํ ๋ฆฌ๋ช
] : ๋ช
์ํ ๋๋ ํ ๋ฆฌ์ ์์ค์ฝ๋ ๋ค์ด๋ฐ๋๋ค.
why CLI?
1. ์์ฐจ์ ์คํ (using semicolon) ‘ex) $ mkdir why; cd why’ + ์ธ์ ์ ์ฉํ๊ฐ? + ํ๋ํ๋์ ๋ช
๋ น๋ค์ด 1000์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๊ณ ํ ๋, ๋ช
๋ น์ด ํ๋ํ๋์ฉ ์น๋ ๊ฒ๊ณผ ์ฌ๋ฌ๊ฐ๋ฅผ ํ๋ฒ์ ์น๋ ๊ฒ์ ์ฐจ์ด๊ฐ ์์. (์ฌ๋ฌ ๊ฐ ๋ช
๋ น์ด๋ฅผ ํ ๋ฒ์ ์น๋ฉด ์์์ ๋ง์ง๋ง ๊ฒฐ๊ณผ๋ง ๋ํ๋จ.)
2. ํ์ดํ๋ผ์ธ + ๋ช
๋ น์ด์ ์ฐ๊ฒฐ + ์ด๋ค ํ๋ก์ธ์ค์ ์ถ๋ ฅ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์
๋ ฅ์ผ๋ก . . . + ์ํ๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ ํ์ ์ถ๋ ฅ
ex) $ grep linux linux.txt : ‘linux’๊ฐ ํฌํจ๋ ํ ์ถ๋ ฅ
$ ls --help | grep sort : ls –help์์ ‘sort’๊ฐ ํฌํจ๋ ํ์ ์ถ๋ ฅ (ls –help์ ์ถ๋ ฅ์ grep์ ์
๋ ฅ์ผ๋ก)
$ ls --help | grep sort | grep file : ls –help์์ ‘sort’์ ‘file’์ด ํฌํจ๋ ํ์ ์ถ๋ ฅ
IO Redirection
1. output
$ ls -l > result.txt : result.txt ํ์ธํด๋ณด๋ฉด ls -l ์ถ๋ ฅ๋ฌผ ๋ด๊ฒจ์์.
2. error (์๋ฌ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ค๋ฉด? ‘2>’ ๋ฅผ ์ฌ์ฉํ๋ค. (standard error๋ฅผ ๊ฐ๋ฆฌํด))
ex) ํด๋น ๋๋ ํ ๋ฆฌ์ rename2.txt๊ฐ ์์ ๋
$ rm rename2.txt 2> error.log : error.log์ ์๋ฌ ๋ด์ฉ์ด ๋ด๊ฒจ์์.
3. input
$ cat hello.txt : cat์ cammand-line arguments๋ก์จ ์ญํ
$ cat < hello.txt : hello.txt ๋ด์ฉ์ standard input์ผ๋ก..
$ head -n1 < linux.txt > one.txt : linux.txt ๋ด์ฉ์ input, one.txt์ ์ถ๋ ฅ๋ฌผ์ ์ ์ฅ
๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
- /bin: ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ๋ช
๋ น์ด ๋ชจ์
- /sbin: ๊ด๋ฆฌ์๊ฐ ์ฌ์ฉํ๋ ๋ช
๋ น์ด ๋ชจ์
- /etc: ํ๋ก๊ทธ๋จ ์ค์ ์ ๊ด๋ฆฌํ๋ ๋๋ ํ ๋ฆฌ
- /etc/init.d: daemon์ ๋ชฉ์ ์ ๊ฐ์ง ํ๋ก๊ทธ๋จ๋ค ์์.
- /var: ๋ด์ฉ์ด ๋ฐ๋ ์ ์๋ ํ์ผ๋ค ๋ชจ์
- /tmp: ์์ํ์ผ๋ค. ์ปดํจํฐ๊ฐ ๊บผ์ง๋ฉด ๋ ์๊ฐ๋ค.
- /home: ์ฌ์ฉ์๋ค์ ํ์ผ๋ค์ด ์ ์ฅ๋๋ ๋๋ ํ ๋ฆฌ
- /lib: /bin๊ณผ /sbin์ ์๋ ํ๋ก๊ทธ๋จ๋ค์ด ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ์
- /usr: ์ ์ ๊ฐ ๋ค์ด๋ฐ์ ํ๋ก๊ทธ๋จ๋ค ์ ์ฅ..
ํ๋ก์ธ์ค ๊ด๋ จ ๋ช
๋ น์ด
ํ๋ก์ธ์ค ๋ชฉ๋ก ํ์ธ
$ ps
๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค ๋ชฉ๋ก๊น์ง ํ์ธ
$ ps aux
$ ps aux | grep apache2 : ‘ps aux’์ ์ถ๋ ฅ์์ apache2๊ฐ ํฌํจ๋ ํ ์ถ๋ ฅ
ํ๋ก์ธ์ค ๊ฐ์ ์ข
๋ฃ
$ kill [pid]
๊ทธ ์ธ ํ๋ก์ธ์ค ๋ชฉ๋ก ํ์ธ ๋ช
๋ น์ด
$ top
$ htop (top๊ณผ ๋น์ทํ์ง๋ง, ์๊ฐ์ ์ธ ๋ฉด์์ ๋ ์ข์)
๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ
ex) nano ์๋ํฐ ์คํํ๋ค๊ฐ ctrl + z -> ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋์๊ฐ๋๋ก ๋ฑ๋ก
๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋์๊ฐ๋ ํ๋ก๊ทธ๋จ ํ์ธ
$ jobs+๊ฐ ๋ถ์ด์๋ ํ๋ก๊ทธ๋จ -> fg ์คํํ์ ๋, ์คํ๋๋ ํ๋ก๊ทธ๋จ-๊ฐ ๋ถ์ด์๋ ํ๋ก๊ทธ๋จ -> fg ์คํํ์ ๋, + ๋ค์์ผ๋ก ์คํ๋ ํ๋ก๊ทธ๋จ
foreground๋ก ๋์๊ฐ๊ธฐ
$ fg
$ fg %๋ฒํธ : ํด๋น ๋ฒํธ ํ๋ก๊ทธ๋จ์ผ๋ก ๋์๊ฐ๋ค.
๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก๊ทธ๋จ ์ฃฝ์ด๊ธฐ
$ kill
$ kill -9 %๋ฒํธ : ๊ฐ์ ์ข
๋ฃ
daemon : ํญ์ ์คํ๋๊ณ ์๋ค.
ํ
์คํธ๋ฅผ ์ํด apache2 ์น์๋ฒ ์ค์น
$ sudo apt-get install apache2
์ค์น ํ /etc/init.d์ ๊ฐ๋ณด๋ฉด apache2๊ฐ ์๋ค.
apache2 ์ผ๊ธฐ
$ sudo service apache2 start
์ ์ผ์ง์ง ํ์ธ
$ ps aux | grep apache2
apache2 ๋๊ธฐ
$ sudo service apache2 stop
๊บผ์ ธ์๋์ง ํ์ธ
$ ps aux | grep apache2 : ๋ชฉ๋ก์ ๋ํ๋์ง ์์.
cron (์ ๊ธฐ์ ์ผ๋ก ์คํ์ํค๊ณ ์ถ์ ์์
์ด ์์ ๋)
$ crontab -e : ์ฒ์ ์คํํ์ ๋, ์๋ํฐ ๊ณจ๋ผ์ผ ํจ
m h dom mon dow command
- m: ๋ถ ์ฃผ๊ธฐ ex) 10: ๋งค ์๊ฐ 10๋ถ์ ํ ๋ฒ
ex) */1: 1๋ถ์ ํ ๋ฒ
- h: ์๊ฐ ์ฃผ๊ธฐ ex) *: ์๊ฐ์ ์๊ด ์์ด
ex) 1: ๋งค 1์์
- dom: day of month ex) 24: ๋งค ๋ฌ 24์ผ์ ํ ๋ฒ
- mon: month
- dow: day of week (์์ผ)
- command: ์ฃผ๊ธฐ์ ์ผ๋ก ์คํํ ๋ช
๋ น์ด
ํ
์คํธ
- command ์๋ฆฌ์ date >> date.log ์
๋ ฅ (»๋ ํด๋น ํ์ผ ์๋๋ก ์ญ ์ถ๋ ฅ๊ฒฐ๊ณผ๊ฐ ์์)
- $ tail -f date.log (๊ผฌ๋ฆฌ์ ์๋ก์ด ํ
์คํธ๊ฐ ์ถ๊ฐ ๋ ๋, ์ค์๊ฐ์ผ๋ก ํ์ํด์ค.)
์๋ฌ๊ฐ ๋ ๊ฒฝ์ฐ๋ ๋ก๊ทธ๋ก ๋จ๊ธฐ๋๊ฒ ์ข๋ค.
*/1 * * * * date >> date.log 2>&1ํ์ค ์ถ๋ ฅ์ date.log์ ๋จ๊ธฐ๊ณ ํ์ค ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ํ์ค ์ถ๋ ฅ์ผ๋ก ๋ฆฌ๋ค์ด๋ ์
date.log์ ์๋ฌ๋ ํจ๊ป ์ ์ฅ๋จ
๋จ์ถํค ๋ง๋ค๊ธฐ
$ alias l='ls -al'
-> l์ ์
๋ ฅํ๋ฉด ls -al์ ์ถ๋ ฅ์ด ๋์ด
.bashrc ํ์ผ
bash๊ฐ ์์๋์์ ๋ ์คํ๋จ.
๋ค์ค ์ฌ์ฉ์
$ id : ํ์ฌ ์ ์ํ ๊ณ์ ์ ์ ๋ณด ํ์ธ
$ who : ์ด ์ปดํจํฐ์ ๋๊ฐ ์ ์ํด์๋๊ฐ
~$๋ก ๋๋๋ฉด ์ผ๋ฐ ์ฌ์ฉ์
~#๋ก ๋๋๋ฉด root ์ฌ์ฉ์
sudo (super user do)
- ๋ฆฌ๋
์ค๋ ๋ค์ค ์ฌ์ฉ์ ์ด์์ฒด์ ์.
- ์ฌ์ฉ์๋ง๋ค ์ด๋ค ์ผ์ ๋ํ ๊ถํ์ด ์์.
- ์ค์ํ ์ผ์ ๋ํ ๊ถํ์ super user(root)๋ง ๊ฐ์ง๊ณ ์์. ๋ฐ๋ผ์ super user์ ๊ถํ์ด ํ์ํ ๋ sudo๋ฅผ ์ฌ์ฉํ๋ค.
์ง์ root๊ณ์ ์ ์ ์ํด์ ๋ช
๋ น์ด๋ฅผ ์คํ ์ํฌ ์๋ ์์ง๋ง, ์์ ์ ์ํด ์ผ๋ฐ ์ฌ์ฉ์๋ก ๋ก๊ทธ์ธ ํ sudo๋ฅผ ์ฌ์ฉํ๋๋ก ํ์.
์ฌ์ฉ์ ์ถ๊ฐ
$ sudo useradd -m [์ฌ์ฉ์๋ช
]
-> /home์ ๊ฐ๋ณด๋ฉด ์ฌ์ฉ์๊ฐ ์ถ๊ฐ๋ ๊ฑธ ๋ณผ ์ ์์.
-> ๊ทธ๋ฌ๋, ์ด๋ ๊ฒ ๋ง๋ค๋ฉด ํด๋น ๊ณ์ ์์ sudo ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์.
sudo ์ฌ์ฉํ ์ ์๋๋ก ๋ณ๊ฒฝ
$ sudo usermod -a -G sudo [์ฌ์ฉ์๋ช
]
๋น๋ฐ๋ฒํธ ์ค์
$ sudo passwd [์ฌ์ฉ์๋ช
]
๋ก๊ทธ์ธ (su ์ฌ์ฉ)
$ su - [์ฌ์ฉ์๋ช
]
permission (๊ถํ)
$ ls -l
-> -rw-rw-r– 1 egoing egoing 0 Dec 4 23:19 perm.txt
type |
access mode (r : read, w : write, x : execute) |
owner |
group |
- file : -, directory : d |
[owner์ ๊ถํ] rw- [group์ ๊ถํ] rw- [other์ ๊ถํ] r-- |
gracenam |
gracenam |
๊ถํ ๋ณ๊ฒฝ (chmod)
u: owner
g: group
o: other (not owner, not group)
a: all
$ chmod o-r perm.txtperm.txtํ์ผ์ other read ๊ถํ ์ญ์ $ chmod o+r perm.txtperm.txtํ์ผ์ other read ๊ถํ ํ๊ฐ
execute
$ nano hi-machine.sh
#!/bin/bash
echo 'hi hi hi hi'
ํ์ผ ์คํ ์๋ 1
$ ./hi-machine.sh -> ํ๊ฐ ๊ฑฐ๋ถ ๋ธ
ํ์ผ ์คํ ์๋ 2
$ /bin/bash hi-machine.sh -> ์คํ๋จ
owner ์คํ ๊ถํ ์ถ๊ฐํ๊ธฐ
$ chmod u+x hi-mashine.sh -> ํด๋น ํ์ผ ์ด๋ก์์ผ๋ก ํ์๋จ
ํ์ผ ์คํ ์๋ 3
$ ./hi-machine.sh -> ์คํ๋จ
directory
- r ๋ชจ๋: ํด๋น ๋๋ ํ ๋ฆฌ์ ์์๋ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ด๋ํ ์ ์๋์ง?
- w ๋ชจ๋: ํด๋น ๋๋ ํ ๋ฆฌ ๋ด๋ถ๋ฅผ ์์ ํ ์ ์๋์ง? (ํ์ผ ์์ฑ, ์์ , ์ญ์ , ํ์ผ์ด๋ฆ ๋ณ๊ฒฝ ๋ฑ)
- x ๋ชจ๋: ํด๋น ๋๋ ํ ๋ฆฌ๋ก ๋ค์ด๊ฐ ์ ์๋์ง?
- chmod ๋ช
๋ น์ด์ -R ์ต์
: ์ฌ๊ท์ ์ผ๋ก ํด๋น ๋๋ ํ ๋ฆฌ ์์ ์๋ ๊ฒ๋ค์ mode๋ฅผ ๋ชจ๋ ๋ฐ๊พผ๋ค.
Numerical permissions
์ซ์ |
์๋ฏธ |
์๋ฌธ ํํ |
0 |
none |
--- |
1 |
execute only |
--x |
2 |
write only |
-w- |
3 |
write and execute |
-wx |
4 |
read only |
r-- |
5 |
read and execute |
r-x |
6 |
read and write |
rw- |
7 |
read, write and execute |
rwx |
ex) $ chmod 111 perm.txt -> –x–x–x๋ก ๋ณ๊ฒฝ๋จ.
’=’ ์ฌ์ฉ
์ถ๊ฐ/์ญ์ ๊ฐ๋
์ด ์๋๋ผ ์์ ๋ฐ๋๋ ๊ฒ
$ chmod a=r perm.txt -> owner, group, other read๋ง ๊ฐ๋ฅ
$ chmod a= perm.txt -> owner, group, other ์๋ฌด ๊ถํ ์์.
IP ์ฃผ์ ํ์ธ
$ ip addr : ์ปดํจํฐ IP ํ์ธ (private ip)
$ curl ipinfo.io/ip : ipinfo.io/ip ์
์ฅ์์ ์ ์๋ ip (public ip)
์น์๋ฒ
์น์๋ฒ ์ค์น (apache2)
$ sudo apt-get update
$ sudo apt-get install apache2
์น์๋ฒ ์์, ์ค์ง, ์ฌ์์
$ sudo service apache2 start
$ sudo service apache2 stop
$ sudo service apache2 restart
์์ ํตํด ์น์๋ฒ ์ ์ (์์์ ์น๋ธ๋ผ์ฐ์ง) : elinks ์ฌ์ฉ
$ sudo apt-get install elinks
$ elinks http://10.0.2.15/ (์ปดํจํฐ IP ์
๋ ฅ) -> local ์๋ฒ ์ ์
์น์๋ฒ์ ์ค์
/etc/apache2 ์ ์ํ์น ์ค์ ํ์ผ ์์. (apache2.conf)
์น์๋ฒ๊ฐ ์ด๋ค storage์์ ํ์ผ์ ์ฐพ์ ๊ฒ์ธ๊ฐ๋ ์ค์ ํ์ผ์์ ํ์ธ.
default๋ /var/www/html ์ธ๋ฐ, ์ค์ ๋ฐ๊ฟ์ ๋ณ๊ฒฝ์ํฌ ์ ์์.
์ด๋ /var/www/html๋ฅผ document root๋ผ๊ณ ๋ถ๋ฅธ๋ค. (์นํ์ด์ง๋ฅผ ์ฐพ๋ ์ต์์ ๋๋ ํ ๋ฆฌ)
์น์๋ฒ์ ๋ก๊ทธ ํ์ธ
/etc/apache2/sites-enabled/000-default.conf ๊ฐ๋ณด๋ฉด ๋ก๊ทธ๋ ์ด๋์ ๊ธฐ๋กํ ์ง ๋ช
์ํด๋ ๋ถ๋ถ์ด ์๋ค. (/var/log/apache2)
access.log: ๋๊ตฐ๊ฐ๊ฐ ์น์๋ฒ์ ์ ์ํ ๋๋ง๋ค ๊ธฐ๋ก์ด ๋จ๊ฒจ์ง.
error.log: ์๋ฌ ๋ก๊ทธ ํ์ธ ๊ฐ๋ฅ
์ค์๊ฐ์ผ๋ก ํ์ธํ๋ ค๋ฉด?
$ tail -f /var/log/apache2/access.log
SSH
- ๋ค๋ฅธ ์ปดํจํฐ๋ฅผ ์๊ฒฉ์ ์ด ํ ๋ ์ฌ์ฉ
- ํด๋ผ์ด์ธํธ๋ฅผ ์๊ฒฉ์ ์ ์๋ํ๋ ค๋ ์ปดํจํฐ, ์๋ฒ๋ฅผ ์๊ฒฉ์ ์ ๋นํ๋ ์ปดํจํฐ๋ผ๊ณ ํ๋ค๋ฉด, ํด๋ผ์ด์ธํธ ์ปดํจํฐ์๋ ssh client ํ๋ก๊ทธ๋จ์ด ์์ด์ผํ๊ณ ์๋ฒ์๋ ssh server ํ๋ก๊ทธ๋จ์ด ์์ด์ผ ํ๋ค.
- ์ค๋๋ ๋๋ถ๋ถ์ ์ ๋์ค ๊ณ์ด ์์คํ
์์๋ ssh ์๋ฒ๊ฐ ์ค์น๋์ด์๊ธฐ ๋๋ฌธ์ ์ค์นํ ํ์๊ฐ ๊ฑฐ์ ์๋ค.
- ์๊ฒฉ ์ ์ ์๋ $ ssh ๊ณ์ ๋ช
@์ ์์์ดํผ
(์ฒ์ ์ ์ํ๋ฉด ์ง์ง ์ ์ํ ๊ฑด์ง ๋ฌผ์ด๋ณด๋๋ฐ yes ํ๋ฉด ๋จ.)
- ํฌํธ๋ฒํธ์ ํจ๊ป ์ ์ ์๋ $ ssh -p ํฌํธ๋ฒํธ ๊ณ์ ๋ช
@์ ์์์ดํผ
ssh ์ฌํ์์
- ๋น๋ฐ๋ฒํธ ์
๋ ฅ์์ด ๋ก๊ทธ์ธํ๊ธฐ
์ ์์ ์๋ํ๋ ์ปดํจํฐ: ๋ด ์ปดํจํฐ
์ ์ ๋์์ด ๋๋ ์ปดํจํฐ: ์๊ฒฉ ์ปดํจํฐ
์๊ฒฉ ์ปดํจํฐ์ ๋ด ์ปดํจํฐ์ ๊ณต๊ฐํค๋ฅผ ์ ์ฅํด๋๋ฉด, ์๊ฒฉ ์ปดํจํฐ์ ๋ก๊ทธ์ธ ์์ด (๋น๋ฐ๋ฒํธ ์
๋ ฅ์์ด/์ธ์ฆ ์์ด) ๋ก๊ทธ์ธ ๊ฐ๋ฅ
์ด๋ค ์ปดํจํฐ๊ฐ ์ธ์ฆ๋ ์ปดํจํฐ?
์๊ฒฉ ์ปดํจํฐ์ ~/.ssh/authorized_keys ํ์ผ์ ๋ค์ด์๋ ํค ๋ชฉ๋ก์ ๋ณด๊ณ ํ๋จํ๋ค. (authorized_keys ํ์ผ์ ์์ ์๋ ์๊ณ ์์ ์๋ ์์.)
์๊ฒฉ ์ปดํจํฐ์ ๋ด ์ปดํจํฐ๋ฅผ ์ธ์ฆ์ํค๋ ๋ฐฉ๋ฒ
1. ssh ๊ณต๊ฐํค ๋น๋ฐํค ๋ง๋ค๊ธฐ [๋ด ์ปดํจํฐ์์ ์คํ]
$ ssh-keygen
Q. Enter file in which to save the key? : (์ ์ฅ๋๋ ์์น) ์ํฐ
Q. Enter passphrase : ๋น๋ฐ๋ฒํธ ์ฐ๋ ค๋ฉด ์
๋ ฅํ๊ณ ์๋๋ฉด ๊ทธ๋ฅ ์ํฐ
~/.ssh ๋ค์ด๊ฐ๋ณด๋ฉด id_rsa(ssh private key), id_rsa.pub(ssh public key)๊ฐ ์์. (id_rsa๋ ์ ๋๋ก ๋น๊ณต๊ฐ)
2. authorized_keys ํ์ผ ๋์๋ค๊ฐ ๋ด ์ปดํจํฐ์ id_rsa.pub ๋ด์ฉ์ ๋ถ์ฌ๋ฃ๋๋ค. (ssh-copy-id ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ๊ฒ ๋ถ์ฌ๋ฃ์.) [๋ด ์ปดํจํฐ์์ ์คํ] -> $ ssh-copy-id (์๊ฒฉ ์ปดํจํฐ ๊ณ์ )@(์๊ฒฉ ์ปดํจํฐ ์ฃผ์) -> ์๊ฒฉ ์ปดํจํฐ์ ๋น๋ฐ๋ฒํธ ์
๋ ฅ
3. ์ ๋ถ์ฌ๋ฃ์ด์ก๋์ง ํ์ธ [์๊ฒฉ ์ปดํจํฐ์์ ์คํ] $ cat ~/.ssh/authorized_keys
4. ๋ก๊ทธ์ธ ์์ด ๋ก๊ทธ์ธ ์๋ [๋ด ์ปดํจํฐ์์ ์คํ] $ ssh (์๊ฒฉ ์ปดํจํฐ ๊ณ์ )@(์๊ฒฉ ์ปดํจํฐ ์ฃผ์) -> ๋น๋ฐ๋ฒํธ ์
๋ ฅ ์์ด ๋ก๊ทธ์ธ ๊ฐ๋ฅ
ํฌํธ (port)
default port (๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ๋๋ก ์ฝ์)
ex) ์น์๋ฒ๋ 80, ssh ์๋ฒ๋ 22
- ๊ฐ ์๋ฒ๋ค์ ํด๋น ํฌํธ์์ ๋๊ธฐ์ค์ด๋ค. (listen)
- ์ฝ 65000๊ฐ์ ํฌํธ๊ฐ ์๋๋ฐ, ๊ทธ ์ค์ 1024๊ฐ์ well-known ํฌํธ๊ฐ ์๋ค. (์ ์๋ ค์ง ํฌํธ)
๋๋ฉ์ธ๊ณผ DNS (Domain Name System)
1. ์ฌ์ฉ์๊ฐ google.com ์ด๋ผ๊ณ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ ์
๋ ฅํ๋ฉด 2. DNS ์๋ฒ๊ฐ google.com ์ด๋ฆ์ ๊ฐ์ง IP๋ฅผ ์ฐพ์์ ์ฌ์ฉ์ ์ปดํจํฐ์ ์๋ ค์ค๋ค. 3. ์ฌ์ฉ์ ์ปดํจํฐ๋ ๊ทธ IP ์ ๋ณด๋ก google.com์ ์ ์
- /etc/hosts ํ์ผ: ์์ดํผ-๋๋ฉ์ธ ๋ช
์ํด๋ ๊ฒ?
- ex) hostsํ์ผ์ 127.0.0.1 google.com ์ถ๊ฐํ๊ณ ๋ธ๋ผ์ฐ์ ์ google.com ์ด๋ผ๊ณ ์
๋ ฅํ์ ๋, 127.0.0.1 ์น์๋ฒ์ ๋งค์นญ๋จ.
- /etc/hosts์์ ๋จผ์ ์ฐพ์๋ณด๊ณ , ์ฐพ์๋ดค์ ๋ ์์ผ๋ฉด, DNS ์๋ฒ์์ ์ฐพ๊ณ …
- ๋ง์ฝ /etc/hosts์ ์์ผ๋ฉด DNS ์๋ฒ๋ ๊ด๋ จ์์.
- /etc/resolv.conf -> nameserver ์ ํ์์.
- $ host [๋๋ฉ์ธ] -> ํธ์คํธ ์ ๋ณด ๋์ด (์ด๋ค ์์ดํผ๋ก ์ฐ๊ฒฐ๋์ด ์๋์ง)
์๋ธ๋๋ฉ์ธ
ํ๋์ ๋๋ฉ์ธ ๊ตฌ์
์ผ๋ก ์ฌ๋ฌ ๋๋ฉ์ธ ์ฌ์ฉํ ์ ์์.
ex) admin.egoing.ga, blog.egoing.ga, news.egoing.ga
- ์๋ก ๋ค๋ฅธ ์์ดํผ๋ฅผ ๊ฐ๋ฆฌํค๊ฒ
- ํ๋์ ๋๋ฉ์ธ์ผ๋ก ์ฌ๋ฌ ์ฌ์ดํธ๋ฅผ ์ด์!
rsync
๋์๋ฐฉ๋ฒ ์์
$ mkdir src
$ mkdir dest
src ๋๋ ํ ๋ฆฌ์์ ํ์ผ ์์ฑ
$ touch test{1..10} : test1 ~ test10๊น์ง ์์ฑ๋จ.
$ rsync -a src/ dest -> src ์๋ ์๋ ํ์ผ๋ค์ด dest ํด๋์์ผ๋ก ๋ณต์ฌ๋๋ค.
(a ์ต์
: ์์นด์ด๋ธ ๋ชจ๋๋ก ๋์. ํ์ผ ๋ฟ๋ง ์๋๋ผ ๋๋ ํ ๋ฆฌ๋ ๋ณต์ฌ๋๊ณ , ๊ถํ๊ณผ ๊ฐ์ ํ์ผ/๋๋ ํ ๋ฆฌ ์์ฑ์ด ๋ฐ๋๋ฉด ๋ฐ์๋๊ณ , ๋ณ๊ฒฝ์ฌํญ๋ค๋ง ์ ์ก)
dest ํด๋ ๊ฐ์ test10 ์ญ์
$ rm test10
$ rsync -av(๋ ์์ธํ๊ฒ ์ถ๋ ฅ) src/ dest ์คํ -> dest์์ ์๋ test10 ๋ค์ ์๊น.
src ํด๋ ๊ฐ์ ์ถ๊ฐ ํ์ผ ์์ฑ ํ, rsync ํด๋ณด๋ฉด src์์ ๋ง๋ ํ์ผ ๋ง์ด dest ์์ ์์ฑ๋๋ค.
์ปดํจํฐ์ ์ปดํจํฐ ์ฌ์ด์ ์ ์ก
$ rsync -azP ~/rsync/src/ k8805@๋์์์ดํผ:~/rsync/dest
- az: ์์ถํ๋ค.
- P: ์ ์ก๋๋ ์ํฉ์ progress bar๋ก ๋ณด์ฌ์ค๋ค.
์ํธํ
๋์นญ์ ์ธ ๋ฐฉ์
์ด๋ค ์ ๋ณด๋ฅผ ์ํธํ/๋ณตํธํ ํ ๋ ํค๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ํธํ ํ์ ๋์ ๋ณตํธํ ํ์ ๋ ๊ฐ์ ํค๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋์นญ์ ์ธ๋ฐฉ์
๋น๋์นญ์ ์ธ ๋ฐฉ์
- ssh-keygen์ผ๋ก ๋ง๋ private key, public key๋ฅผ ์ฌ์ฉ
- ์ํธํ ํ ๋์๋ private key, ๋ณตํธํ ํ ๋์๋ public key๋ฅผ ์ฌ์ฉ
- private key, public key๋ ์ง๊ฟ์ด๋ค.
- ๋ํ ์ฃผ์: RSA
RSA ๋์๋ฐฉ์
- ssh client๋ก ssh server์ ์ ์ํ๋ฉด
- ssh server๋ ๋๋คํ ํค๋ฅผ ์์ฑํ์ฌ client ์ปดํจํฐ์๊ฒ ์ค๋ค.
- ssh client๋ id_rsa ํ์ผ(private key)์ด ์๋์ง ์ฐพ๋๋ค. ์์ผ๋ฉด ๊ทธ ํ์ผ์ ์ด์ฉํด์ ์ ๋ฌ ๋ฐ์ ๋๋คํค๋ฅผ ์ํธํ ์ํจ๋ค.
- ์ํธํ๋ ๊ฒฐ๊ณผ๋ฅผ ssh server์๊ฒ ์ ์ก
- ssh server๋ authorized_keys์ ์ ์ฅ๋ ๊ณต๊ฐํค๋ฅผ ์ด์ฉํด์ ์ ๋ฌ๋ฐ์ ์ํธํ๋ ํ์ผ์ ๋ณตํธํ ํ๋ค.
- ๋ณตํธํ๋ ๊ฒฐ๊ณผ๊ฐ ์ฒ์์ ์ ๋ฌํ ๋๋คํค์ ๊ฐ์ผ๋ฉด ์ธ์ฆ ์ฑ๊ณต
Reference