01. ๋ฆฌ๋ ์ค ๊ธฐ์ด
01. ๋ฆฌ๋ ์ค ๊ธฐ์ด ๊ด๋ จ
๋ฆฌ๋ ์ค์ ๋ํด์ ์์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๊ฐ ์์๋์ด์ผํ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
CentOS 6.9 ๋ฒ์ ์ ์ด์ฉํ์ฌ ์์ฑ๋์์ต๋๋ค.1. ์ด์์ฒด์ , ์ ๋์ค, ๋ฆฌ๋ ์ค
์ด์์ฒด์ ์ ์ ๋์ค, ๋ฆฌ๋ ์ค์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
์ด์์ฒด์
์ด์์ฒด์ ๋ ์ปดํจํฐ ํ๋์จ์ด์ ์ํํธ์จ์ด ์ฌ์ด์์ ์ํต์ ๋์์ฃผ๋ ์ธํฐํ์ด์ค์ ๋๋ค. ์ด์์ฒด์ ์๋ ์ ๋์ค, ๋ฆฌ๋ ์ค, MS์๋์ฐ, OS X, ์๋๋ก์ด๋ ๋ฑ์ด ์์ต๋๋ค.
์ ๋์ค
์ ๋์ค๋ AT&T ๋ฒจ ์คํ์ค์์ ๊ฐ๋ฐ๋ ์ด์์ฒด์ ์ ๋๋ค. ๊ฐ๊ฒฐํ๋ฉด์๋ ์ ์ฐํ ๋ช ๋ น์ด ๊ตฌ์ฑ์ผ๋ก ์ด๋ฃจ์ด์ก์ผ๋ฉฐ, ์ด์์ฑ์ด ๊ฐํ ๊ฐ๋ฐฉํ ์์คํ ์ ๋๋ค. ์๋ถํ ์์คํ ์ผ๋ก ๋ฉํฐ์ ์ ์ ์ ๊ทผ์ ํ์ฉํ๋ฉฐ, ๋ฉํฐ ํ์คํน ์์คํ ์ผ๋ก ๋์์ ์ฌ๋ฌํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ฆฌ๋ ์ค
๋ฆฌ๋ ์ค๋ ์ ๋์ค๊ณ์ด์ ์ด์์ฒด์ ์ ๋๋ค. ํ๋๋ ํฌ์ฑํค ๋ํ์ ๋ฆฌ๋์ค ํ ๋ฐ์ฆ๊ฐ ๋ํ ์ปดํจํฐ์์ ์ฌ์ฉํ๋ ์ ๋์ค ์์ค ์ฝ๋๋ฅผ ์์ ํ์ฌ ๊ฐ์ธ PC ์์๋ ์ฌ์ฉํ ์ ์๋ ์คํ ์์ค๋ก ๊ฐ๋ฐํ๊ณ ์์ ์ ์ด๋ฆ์ ๋ฐ์ ๋ฆฌ๋ ์ค๋ก ์ ํ์ต๋๋ค. ์ฆ, ์ ๋์ค๋ฅผ ๊ฐ์ธ ์ปดํจํฐ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ ๊ฒ์ด ๋ฆฌ๋ ์ค์ ๋๋ค.
๋ฆฌ๋ ์ค๋ ๊ฐ์ข ํ์ฌ, ์ปค๋ฎค๋ํฐ์์ ๋ง๋ ๋ฐฐํฌํ์ด ์ฌ๋ฌ๊ฐ์ง ์กด์ฌํฉ๋๋ค. ์ด ๋ฐฐํฌํ์ ๋ฆฌ๋ ์ค ์ปค๋, ์, ์คํ์์ค ์ํํธ์จ์ด๋ฅผ ํตํฉํ์ฌ ์ ๊ณตํฉ๋๋ค. ๋ํ์ ์ผ๋ก ์ฐ๋ถํฌ, ๋ ๋ํ, CentOS, ํ๋๋ผ, ๋ฐ๋น์ ๋ฑ์ด ์กด์ฌํฉ๋๋ค.
2. ์ปค๋, ์
์ปค๋(Kernel)๊ณผ ์(Shell)์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
์ปค๋
์ปค๋์ ํ๋์จ์ด์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ์ํธ ์์ฉ์ ๋์์ฃผ๋ OS์ ํต์ฌ ๊ตฌ์ฑ์์์ ๋๋ค. ์์ ์ด ์ฌ์ฉํ๋ ๋ฆฌ๋ ์ค์์ ์ปค๋์ ๋ฒ์ ์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
uname -r
#
# 2.6.32-573.22.1.el6.x86_64
์
์ ๋์ค ๊ณ์ด์ ์์คํ ์์ ์ฌ์ฉํ๋ ๋ํํ ์ธํฐํ์ด์ค์ ๋๋ค. ์ฌ์ฉ์์ ์ปค๋ ์ฌ์ด์์ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์์ ๋ช ๋ น์ ํด์ํ์ฌ ์ปค๋์ ์ ๋ฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ฐํํฉ๋๋ค.
์ฌ๋ฌ๊ฐ์ง ์ ์ค์์ ๊ฐ์ฅ ์ธ๊ธฐ์๋ 5๊ฐ์ง ์์ Bash(๋ฐฐ์ฌ), Tcsh(C์), Ksh(์ฝ์), Zsh(Z์), Fish(Friendly Interactive SHell) ์ ๋๋ค. ์ด ์์ค์์ ์์ ์๊ฒ ๋ง๋ ์์ ์ ํํ๋ฉด ๋ฉ๋๋ค.
# ํ์ฌ ์ฌ์ฉ์ค์ธ ์ ํ์ธ
echo $SHELL
#
# /bin/bash
# ์ฌ์ฉ๊ฐ๋ฅํ ์ ํ์ธ
cat /etc/shells
#
# /bin/sh
# /bin/bash
# /sbin/nologin
# /bin/dash
3. ํ๋ก์ธ์ค
์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ค(Process)๋ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋งํฉ๋๋ค. ์ฌ๋ฌ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋์์ ์คํํ๋ ๊ฒ์ ๋ฉํฐํ์คํน์ด๋ผ๊ณ ํ๊ณ , ์ด ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ์ด์์ฒด์ ์ ์ฃผ์ ์ญํ ์ค ํ๋์ ๋๋ค.
ํ๋ก์ธ์ค ์คํ ๋ฐฉ์
๋ฆฌ๋ ์ค์ ํ๋ก์ธ์ค๋ ํฌ๊ทธ๋ผ์ด๋(foreground)์ ๋ฐฑ๊ทธ๋ผ์ด๋(background)๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค. ํฌ๊ทธ๋ผ์ด๋ ๋ฐฉ์์ ํค๋ณด๋ ์ ๋ ฅ์ ๋ฐ์์ ๋์ํ๋ ๋ฐฉ์์ผ๋ก ์คํ๋๋ฉด ๋ค๋ฅธ ์์ ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐฉ์์ ์ฌ์ฉ์์์ ๋ํ ์์ด ์คํ๋๋ ์์ ๋ฐฉ์์ ๋๋ค.
๋ฆฌ๋
์ค์์ ํฌ๊ทธ๋ผ์ด๋ ๋ฐฉ์์ผ๋ก ์์
์ ์คํํ๋ฉด ๋ค๋ฅธ ์์
์ ์คํํ ์ ์๊ณ , ์์
์ด ๋๋ ๋๊น์ง ๋๊ธฐํฉ๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐฉ์์ ๋ช
๋ น์ด ๋ค์ &
๋ฅผ ๋ถ์ฌ์ ์คํํ๊ณ , ๋ค๋ฅธ ๋ช
๋ น์ด๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ์
๋ ฅํ ์ ์์ต๋๋ค.
๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐฉ์์ผ๋ก ์คํํด๋ ์ฌ์ฉ์์ ํฐ๋ฏธ๋ ์ธ์ ์ด ์ข ๋ฃ๋๋ฉด ์คํ์ค์ธ ํ๋ก์ธ์ค๋ ์ข ๋ฃ๋ฉ๋๋ค. ์์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ธ ๊ฒฝ์ฐ
nohup
๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํํ๋ฉด ์ฌ์ฉ์์ ํฐ๋ฏธ๋ ์ธ์ ์ด ์ข ๋ฃ๋์ด๋ ์์ ์ด ์ข ๋ฃ๋ ๋๊น์ง ํ๋ก์ธ์ค๋ฅผ ์คํํฉ๋๋ค.
# ํฌ๊ทธ๋ผ์ด๋ ๋ฐฉ์
sample.sh
# ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐฉ์ -- &์ถ๊ฐ
sample.sh &
# nohup ์ปค๋งจ๋(no hang up)
nohup sample.sh &
4. ๋ฆฌ๋ ์ค
๋ฆฌ๋ ์ค ๊ด๋ จ ๊ธฐ๋ณธ ์ ๋ณด๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค.
ํจํค์ง ์ค์น
๋ฆฌ๋ ์ค์ ์ฃผ์ ๋ชจ๋์ ํจํค์ง ๋งค๋์ ๋ฅผ ์ด์ฉํด์ ์ค์นํ ์ ์์ต๋๋ค.
yum
์ ๋ ๋ํ ๊ณ์ด, apt-get
์ ๋ฐ๋น์ ๊ณ์ด์์ ์ฌ์ฉํ๋ ํจํค์ง ์ค์น ๋ช
๋ น์
๋๋ค. ์ด ๋ช
๋ น์ ํจํค์ง๊ฐ์ ์์กด์ฑ์ ํ์ธํด์ ์๋์ผ๋ก ์ค์นํด ์ฃผ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ด ํธ๋ฆฌํฉ๋๋ค.
- ํจํค์ง ๋งค๋์
yum
- ๋ ๋ํ ๊ณ์ด
- CentOS
apt-get
- ๋ฐ๋น์ ๊ณ์ด
- ์ฐ๋ถํฌ
yum
yum
์ CentOS ๊ณ์ด์์ ์ฌ์ฉํฉ๋๋ค.
yum
๋ช
๋ น
yum
์ ์ค์ ๋ ๊ธฐ๋ณธ ๋ฆฌํ์งํ ๋ฆฌ์ ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ํ์ผ์ ์ค์น ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ฆฌํ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
yum -h # ์ค๋ช
์ ์ถ๋ ฅ
yum list <PACKAGE_NAME> # ์ค์นํ ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋ฒ์ ์ ์ถ๋ ฅ
yum install <PACKAGE_NAME> # ํ๋ก๊ทธ๋จ์ ์ค์น
yum search <PACKAGE_NAME> # ํ๋ก๊ทธ๋จ ๊ฒ์
yum update # ์ค์น๋ ํ๋ก๊ทธ๋จ์ ์
๋ฐ์ดํธ
yum update <PACKAGE_NAME> # ํ๋ก๊ทธ๋จ์ ์
๋ฐ์ดํธ
yum upgrade # ์ค์น๋ ํ๋ก๊ทธ๋จ์ ์
๊ทธ๋ ์ด๋.
# update๋ ์ฌ์ฉํ์ง ์๋ ํจํค์ง๋ฅผ ์ ์งํ๊ณ ,
# upgrade๋ ์ญ์
yum remove <PACKAGE_NAME> # ํ๋ก๊ทธ๋จ ์ญ์
yum
์ฃผ์ ์ต์
์ต์ | ์ค๋ช |
---|---|
-y | ๋ชจ๋ ์ต์ ์ yes๋ฅผ ์ ๋ ฅ |
# ์ค์น ์ฌ๋ถ๋ฅผ ๋ฌผ์ด๋ณด๋ y/n ์ ํ ํ๋ฉด์์ด ์ค์น
yum install -y mysql
apt
apt
์ Ubuntu ๊ณ์ด์์ ์ฌ์ฉํฉ๋๋ค.
apt
๋ช
๋ น
apt
์ ์ค์ ๋ ๊ธฐ๋ณธ ๋ฆฌํ์งํ ๋ฆฌ์ ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ํ์ผ์ ์ค์น ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ฆฌํ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
apt -h # ์ค๋ช
์ ์ถ๋ ฅ
apt list <PACKAGE_NAME> # ์ค์นํ ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋ฒ์ ์ ์ถ๋ ฅ
apt install <PACKAGE_NAME> # ํ๋ก๊ทธ๋จ์ ์ค์น
apt search <PACKAGE_NAME> # ํ๋ก๊ทธ๋จ ๊ฒ์
apt update # ์ค์น๋ ํ๋ก๊ทธ๋จ์ ์
๋ฐ์ดํธ
apt update <PACKAGE_NAME> # ํ๋ก๊ทธ๋จ์ ์
๋ฐ์ดํธ
apt upgrade # ์ค์น๋ ํ๋ก๊ทธ๋จ์ ์
๊ทธ๋ ์ด๋.
# update๋ ์ฌ์ฉํ์ง ์๋ ํจํค์ง๋ฅผ ์ ์งํ๊ณ ,
# upgrade๋ ์ญ์
apt remove <PACKAGE_NAME> # ํ๋ก๊ทธ๋จ ์ญ์
apt
์ฃผ์ ์ต์
์ต์ | ์ค๋ช |
---|---|
-y | ๋ชจ๋ ์ต์ ์ yes๋ฅผ ์ ๋ ฅ |
# ์ค์น ์ฌ๋ถ๋ฅผ ๋ฌผ์ด๋ณด๋ y/n ์ ํ ํ๋ฉด์์ด ์ค์น
apt install -y mysql-server
์ฐธ๊ณ
apt
๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด lock์ด ๊ฑธ๋ ค์ ์ค์น๊ฐ ์๋๋ ๊ฒฝ์ฐ ๊ฐ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด lock ํ์ผ์ ์ญ์ ํ์ฌ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
# lock ์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ
# Reading package lists... Done
# E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
# E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
# lock ํ์ผ ์ญ์
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
conflict ์ค๋ฅ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์์ ์ค์น ํ ๋ ์ฌ๋ฌ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์น ํ๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด conflict ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์์ ์ค์น ํ์ง ๋ง๊ณ , ํ๋์ฉ ์ค์น ํ๋ฉด ์ค๋ฅ ์์ด ์ค์น ํ ์ ์์ต๋๋ค.
#
# The following packages have unmet dependencies:
# libsasl2-modules-gssapi-heimdal : Conflicts: libsasl2-modules-gssapi-mit but 2.1.27~101-g0780600+dfsg-3ubuntu2.3 is to be installed
# libsasl2-modules-gssapi-mit : Conflicts: libsasl2-modules-gssapi-heimdal but 2.1.27~101-g0780600+dfsg-3ubuntu2.3 is to be installed
# E: Unable to correct problems, you have held broken packages.
dpkg
dpkg
๋ Ubuntu ๊ณ์ด์์ ์ฌ์ฉํฉ๋๋ค.
dpkg
๋ช
๋ น
dpkg
๋ ํ์ผ๋ก ํจํค์ง๋ฅผ ์ค์นํ ๋ ์ฌ์ฉํฉ๋๋ค.
dpkg -i <FILE_NAME> # ํ์ผ์ ์ค์น
dpkg -r <PACKAGE_NAME> # ํจํค์ง๋ฅผ ์ญ์
dpkg -l # ์ค์น๋ ํจํค์ง๋ฅผ ํ์ธ
dpkg
์ฃผ์ ์ต์
์ต์ | ์ค๋ช |
---|---|
-i | ํจํค์ง ์ค์น |
-l | ์ค์น๋ ํจํค์ง ํ์ธ |
์ฃผ์ ๋๋ ํ ๋ฆฌ
๋ฆฌ๋ ์ค์ ์ฃผ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค.
๋๋ ํ ๋ฆฌ
/๐bin # ๊ธฐ๋ณธ ๋ช
๋ น์ด ๋ฐ์ด๋๋ฆฌ ์ ์ฅ
/๐dev # ์ฅ์น ํ์ผ ์ ์ฅ
/๐etc # ์ค์ ํ์ผ
/๐home # ์ฌ์ฉ์์ ํ ๋๋ ํ ๋ฆฌ
/๐lib # ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ํ ๋ฆฌ
/๐lib64 # 64bit์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ํ ๋ฆฌ
/๐mnt # ๋์คํฌ ๋ง์ดํธ ๋๋ ํ ๋ฆฌ
/๐opt # ์ฌ์ฉ์ ์์ฉ ํ๋ก๊ทธ๋จ ์ค์น ๋๋ ํ ๋ฆฌ
/๐proc # CPU, ๋ฉ๋ชจ๋ฆฌ ๋ฑ ์์คํ
์ ๋ณด ํน์ ํ์ผ ์ ์ฅ
/๐sbin # ํ์ ์์คํ
๋ฐ์ด๋๋ฆฌ ํ์ผ ์ ์ฅ
/๐tmp # ์์ ํ์ผ ์ ์ฅ
# ์ฃผ๊ธฐ์ ์ผ๋ก ์ง์์ง๊ธฐ ๋๋ฌธ์ ์ค๋ ์ ์ฅํ ํ์ผ์ ๋ณด๊ดํ๋ฉด ์๋จ
5. ๊ธฐํ
๋ฆฌ๋ ์ค ์์คํ ์ ์ด์ํ๋ฉด์ ์์๋๋ฉด ์ข์ ๋ด์ฉ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
ํ๊ธ ์ค์
๋ฆฌ๋
์ค ์์คํ
์์ ํ๊ธ์ด ๊นจ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ธํฐ๋ท์์ ๋ค์ด๋ก๋ ๋ฐ์ ํ์ผ์ cat
์ผ๋ก ์ด์ด๋ณด๋ฉด ํ๊ธ์ด ์ ์์ ์ผ๋ก ๋ณด์ด์ง๋ง vi
๋ก ์ด๊ฑฐ๋, python
๋ฑ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ผ๋ก ์ด์ด๋ณด๋ฉด ํ๊ธ์ด ๊นจ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ๋ OS์ ์ธ์ด ์ค์ ์ด UTF-8๋ก ๋์ด ์์ง ์์ ๋ ๋ฐ์ํฉ๋๋ค. OS์ ์ค์ ์ ๋ณ๊ฒฝํ๊ฑฐ๋, vi์ ์ค์ ์ ๋ณ๊ฒฝํ๋ฉด ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ธ์ด ์ค์
locale
๋ช
๋ น์ผ๋ก ํ์ฌ ์ธ์ด ์ค์ ์ ํ์ธํฉ๋๋ค. LANG ๊ฐ eu_US
๋ก ๋์ด ์์ผ๋ฉด ์์ด ์ค์ ์
๋๋ค. ์ด ๋ถ๋ถ์ en_US..UTF-8
๋ก ์์ ํ๋ฉด ๋ฉ๋๋ค. /etc/default/locale
ํ์ผ์ vi
๋ก ์์ ํ๋ฉด ๋ฉ๋๋ค.
locale
#
# LANG=en_US
# LANGUAGE=en_US:
# LC_CTYPE="en_US"
# LC_NUMERIC="en_US"
# LC_TIME="en_US"
# LC_COLLATE="en_US"
# LC_MONETARY="en_US"
# LC_MESSAGES="en_US"
# LC_PAPER="en_US"
# LC_NAME="en_US"
# LC_ADDRESS="en_US"
# LC_TELEPHONE="en_US"
# LC_MEASUREMENT="en_US"
# LC_IDENTIFICATION="en_US"
# LC_ALL=
vi
์ค์
vi
์์๋ง ํ๊ธ์ด ๊นจ์ง๋ค๋ฉด encoding ์ค์ ์ ์ด์ฉํด์ ์์ ํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
- EX ๋ชจ๋(
:
์ผ๋ก ๋ค์ด๊ฐ)์์set encoding=utf-8
์ ์ ๋ ฅ - ๊ธฐ๋ณธ ์ค์ ๋ณ๊ฒฝ
- .
~/.vimrc
ํ์ผ์set encoding=utf-8
์ ์ ๋ ฅ - .
/etc/vim/vimrc
ํ์ผ์set encoding=utf-8
์ ์ ๋ ฅ
- .