์(shell)
์(shell)์ ๋ช ๋ น์ด ํด์๊ธฐ, ๋ช ๋ นํ ์ธํฐํ์ด์ค์ด์ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ค.
์ ๋์ค ๊ณ์ด์ ์ด์์ฒด์ ๋ ๋ณดํต ํ ์คํธ ๋ชจ๋์ ํฐ๋ฏธ๋ ํ๋ฉด์์ ๋ช ๋ นํ์ ๋ช ๋ น์ด๋ฅผ ํ์ดํ ํ์ฌ ์ฌ์ฉํ๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ํด์ํ๋ ํ๋ก๊ทธ๋จ์ด ์(shell)์ด๋ค. ์ฆ ์์ ๋ช ๋ น์ด ํด์๊ธฐ ๋๋ ๋ช ๋ นํ ์ธํฐํ์ด์ค๋ฅผ ์๋ฏธํ๋ค. ์์ ์ฌ์ฉํ๋ ๊ฒ์ ์๋์ฐ์ '๋ช ๋ น ํ๋กฌํํธ'์์ ๋ช ๋ น์ ์คํํ๋ ๊ฒ๊ณผ ์ ์ฌํ์ง๋ง ๋ฆฌ๋ ์ค์ ์์ ํจ์ฌ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ ๋ช ๋ น์ GUI ๋๊ตฌ๋ก๋ ์ํํ๊ธฐ ์ด๋ ค์ด ๋ค์ํ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๋ํ ์์ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๊ธฐ๋ ํ๋ค. ์ ๋ช ๋ น์ด๋ก ๊ตฌ์ฑ๋ ์ ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ฉด ์์ด ์คํฌ๋ฆฝํธ ํ์ผ์ ์ฝ์ด ์ผ๋ จ์ ๋ช ๋ น์ ์ํํ ์ ์๋ค.
์์ ์ด์์ฒด์ ์ ์ผ๋ถ์ด๋ฉฐ ์ปค๋๊ณผ๋ ๋ถ๋ฆฌ๋ ํ๋ก๊ทธ๋จ์ด๋ค. ์์ ์ข ๋ฅ์ ๋ฐ๋ผ alias ์ค์ , ์ด๊ธฐํ ํ์ผ, ์คํฌ๋ฆฝํธ ์์ฑ ๋ฑ์์ ๋ค๋ฅธ ํน์ฑ์ ๊ฐ์ง ์ ์๋ค. ๋ฆฌ๋ ์ค ์ฌ์ฉ์๋ ์์ ์ด ์ ํธํ๋ ์์ ๊ธฐ๋ณธ ์๋ก ์ค์ ํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
์์ ์ข ๋ฅ
๋ฆฌ๋ ์ค ๋ฐฐํฌํ ๋ง๋ค ์ฌ๋ฌ ์ข ๋ฅ์ ์์ด ์ ๊ณต๋๋๋ฐ CentOS๋ฅผ ๋น๋กฏํ ๋ง์ ๋ฆฌ๋ ์ค ๋ฐฐํฌํ์์ ๊ธฐ๋ณธ ์๋ก ์ฌ์ฉ๋๋ ๊ฒ์ด 'bash(Bourne Again Shell) ์'์ด๋ค. bash ์์ ์ด๊ธฐ ์ ๋์ค ์์ธ 'Bourne ์'๊ณผ ํธํ๋๋ฉฐ ์๋์ ํธ์์ฑ์ ๊ฐ์ ํ GNU ๋ฌด๋ฃ ๊ณต๊ฐ์ฉ ๋ฒ์ ์ด๋ค. ๋ช ๋ น์ ์ ๋ ฅํ ์ ์๋ ๋ผ์ธ์ '๋ช ๋ น ํ'์ด๋ผ ํ๋ฉฐ ์ปค์(_) ์ข์ธก ํ๋กฌํํธ๊ฐ '๋ช ๋ น ๋๊ธฐ์ค'์์ ํ์ํ๋ค. bash ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํ๋กฌํํธ๋ $์ด๋ฉฐ root ๋ #์ด๋ค.(์ด๋ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.)
์ ์ด๋ฆ | ์คํ ๋ช ๋ น | ์ค๋ช |
Bourne Shell | sh | ์ ๋์ค ์ด๊ธฐ๋ถํฐ ์ฌ์ฉ๋ ์๋ก ๋๋ถ๋ถ์ ์ ๋์ค ๊ณ์ด ์ด์์ฒด์ ์์ ์ง์ํ๋ค. ๋ง์ ์ ์คํฌ๋ฆฝํธ๊ฐ ์ด์ ๊ธฐ๋ฐ์ ๋๊ณ ์๋ค. |
C Shell | csh | ์คํฌ๋ฆฝํธ ์์ฑ ํ์์ด C์ธ์ด ๊ตฌ๋ฌธ๊ณผ ๋น์ทํ๋ฉฐ BSD ๊ณ์ด์ ์ ๋์ค ์ฌ์ฉ์๋ค์ด ๋ง์ด ์ฌ์ฉํ๋ค. Bourne ์์ ๊ธฐ๋ฅ์ ํ์ฅํ๋ค. |
TC Shell | tcsh | C ์์ ํ์ฅ ๊ฐ์ ํ ๋ฒ์ ์ผ๋ก '๋ช ๋ น ํ ์์ฑ'๊ณผ '๋ช ๋ น ํ ํธ์ง' ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๋ค. |
Korn Shell | ksh | ํธํ์ฑ์ ์ ์งํ๋ฉด์ Bourne ์์ ํ์ฅํ๊ณ C ์์ ๋ง์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค. System V ๊ณ์ด ์ ๋์ค ์ฌ์ฉ์๋ค์๊ฒ ์ธ๊ธฐ๊ฐ ๋ง์๋ค. |
Bourne Again Shell(bash) | bash | ๋ฆฌ๋ ์ค์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์์ด๋ค. Bourne ์์ ํ ๋๋ก ๊ฐ๋ฐ๋์ผ๋ฉฐ C ์๊ณผ Korn ์์ ์ ์ฉํ ๊ธฐ๋ฅ์ ๊ฐ์ ธ์๋ค. GPL ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๋ฅธ๋ค. |
ํ - ์ฃผ์ ์์ ํน์ง
์ดํ ๋ด์ฉ์ bash ์์ ๊ธฐ์ค์ผ๋ก ํ๋ค.
์์ ๊ตฌ๋ถ - ๋ก๊ทธ์ธ ์, ๋น ๋ก๊ทธ์ธ ์, ์๋ธ ์
๋ก๊ทธ์ธ ์
๋ก๊ทธ์ธ ์์ ๋ก๊ทธ์ธํ ๋ ์ํ๋๋ ๊ธฐ๋ณธ ์์ด๋ค. ๋ก๊ทธ์ธ ์์ logout ๋ช ๋ น์ผ๋ก ๋ก๊ทธ์์ํ์ฌ ์์ ์ข ๋ฃํ ์ ์๋ค.(๋น ๋ก๊ทธ์ธ ์์์๋ logout ๋ช ๋ น์ ์ฌ์ฉํ ์ ์๋ค.) ํ ์คํธ ๋ชจ๋์์ ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ ๋ ์ํ๋๋ ์์ด ๋ก๊ทธ์ธ ์์ด๋ค. ๋ํ ๋ค๋ฅธ ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ์ ํํ๋ su -l username ๋ช ๋ น์ผ๋ก ์ํ๋๋ ์๋ธ ์๋ ๋ก๊ทธ์ธ ์์ด๋ค. -l ์ต์ ์ ์ง์ ๋ ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์์ ์์ํ๋ ์ต์ ์ด๋ค.
[user1@localhost ~]$ whoami
user1
[user1@localhost ~]$ su -l user2
Password:
[user2@localhost ~]$ whoami
user2
[user2@localhost ~]$ logout
[user1@localhost ~]$
|
cs |
su -l user2 ๋ช ๋ น์ผ๋ก ์ฌ์ฉ์ user2์ ๋ก๊ทธ์ธ ์์ ์คํํ๋ฉฐ ์ฌ์ฉ์๋ฅผ ์ ํํ๋ค. logout ๋ช ๋ น์ผ๋ก user2์ ๋ก๊ทธ์ธ ์์ ์ข ๋ฃํ๊ณ user1์ ์๋ก ๋์๊ฐ๋ค.
๋น ๋ก๊ทธ์ธ ์
๋ง๊ทธ๋๋ก ๋ก๊ทธ์ธ ์์ด ์๋ ์์ด๋ค. logout ๋ช ๋ น์ด ์๋ exit ๋ช ๋ น์ผ๋ก ์์ ์ข ๋ฃํ๋ค. GUI ํ๊ฒฝ(๊ทธ๋ํฝ ๋ชจ๋)์์ ํฐ๋ฏธ๋์ ๋์ฐ๋ฉด ์ํ๋๋ ์์ด ๋น ๋ก๊ทธ์ธ ์์ด๋ค. ๋ํ ๋ค๋ฅธ ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ์ ํํ๋ su username ๋ช ๋ น์ผ๋ก ์ํ๋๋ ์๋ธ ์๋ ๋น ๋ก๊ทธ์ธ ์์ด๋ค.
[user1@localhost ~]$ whoami
user1
[user1@localhost ~]$ su user2
Password:
[user2@localhost ~]$ whoami
user2
[user2@localhost ~]$ logout
[user2@localhost ~]$ bash: logout: not login shell: use 'exit'
[user2@localhost ~]$ exit
[user1@localhost ~]$
|
cs |
su user2 ๋ช ๋ น์ผ๋ก ์ฌ์ฉ์ user2๋ก ๋จ์ ์ ํํ๋ค. ๋ก๊ทธ์ธ ์์ ์คํํ์ง ์์ผ๋ฏ๋ก ๊ด๋ จ๋ ์ด๊ธฐํ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋์ง ์๊ณ ๋จ์ง ์ฌ์ฉ์๋ง ์ ํ๋๋ค. ๋ก๊ทธ์ธ ์์ด ์๋๋ฏ๋ก logout์ผ๋ก ์์ ์ข ๋ฃํ ์ ์๊ณ exit ๋ช ๋ น์ผ๋ก ์์ ์ข ๋ฃํ๋ค.
์๋ธ ์
ํ์ฌ ์ ์์์ ์คํ๋๋ ์์ด๋ค. ํ์ฌ ์์ ์์ ํ๋ก์ธ์ค๋ก ์คํ๋๋ค. exit ๋ช ๋ น์ผ๋ก ์๋ธ ์์ ์ข ๋ฃํ๊ณ ๋ถ๋ชจ ์๋ก ๋์๊ฐ๋ค. ์๋ธ ์์ ๋ถ๋ชจ ์์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ ๋ฌ๋ฐ์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ํ์ฌ ์์์ sh ๋ช ๋ น์ผ๋ก bourne ์์ ์คํํ ์ ์๋๋ฐ, ์ด๋ ๊ฒ ์คํ๋ ์์ ์๋ธ ์์ด๋ผ๊ณ ํ๋ค.
[user1@localhost ~]$ export FOO=bar
[user1@localhost ~]$ sh
sh-4.1$ echo $FOO
bar
sh-4.1$ exit
exit
[user1@localhost ~]$ unset FOO
[user1@localhost ~]$ echo $FOO
[user1@localhost ~]$
|
cs |
์์ ๊ฐ์ด ๋ถ๋ชจ ์์์ ๋ง๋ ํ๊ฒฝ ๋ณ์ FOO๊ฐ ์๋ธ ์์์๋ ์ฌ์ฉํ ์ ์์์ ํ์ธํ ์ ์๋ค.
โป [์ฐธ๊ณ ] ๊ฐ ๋ช ๋ น์ด์ ์๋ฏธ
export FOO=bar : ๋ฌธ์์ด bar๋ฅผ ๊ฐ๋ ํ๊ฒฝ ๋ณ์ FOO ๋ง๋ฆ
sh : bourne ์์ ์๋ธ ์๋ก ์คํ
echo $FOO : ๋ณ์ FOO ๊ฐ ์ถ๋ ฅ
exit : ์๋ธ ์ ์ข ๋ฃ
unset FOO : ๋ณ์ ์ญ์
๋ฆฌ๋ ์ค ๊ธฐ๋ณธ(๋ก๊ทธ์ธ) ์ ํ์ธ
grep username /etc/password
|
cs |
[user1@localhost ~]$ grep user1 /etc/passwd
user1:x:502:502:General User:/home/user1/bin/bash
|
cs |
grep์ ์ด์ฉํ ๋ฆฌ๋ ์ค ๊ธฐ๋ณธ ์ ํ์ธ ๋ฐฉ๋ฒ
grep ๊ณ์ ๋ช /etc/passwd๋ฅผ ํตํด ํด๋น ์ฌ์ฉ์์ ๊ธฐ๋ณธ ์์ ํ์ธํ ์ ์๋ค. ๊ฒฐ๊ณผ์ ๋ง์ง๋ง ํญ๋ชฉ์ธ /bin/bash๊ฐ user1 ์ฌ์ฉ์์ ๊ธฐ๋ณธ ์์ด bash์์ ์๋ฏธํ๋ค.
๋ฆฌ๋ ์ค ๊ธฐ๋ณธ(๋ก๊ทธ์ธ) ์ ๋ณ๊ฒฝ - chsh
chsh -s /bin/tcsh # ํ์ฌ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ์์ tcsh๋ก ๋ณ๊ฒฝ
chsh -s /bin/tcsh user1 # user1์ ๊ธฐ๋ณธ ์์ tcsh๋ก ๋ณ๊ฒฝ
chsh -l # ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ถ๋ ฅ
|
cs |
๋์ username์ด ์๋ต๋๋ฉด ํ์ฌ ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ค. ๋ค๋ฅธ ์ฌ์ฉ์์ ์์ ๋ฐ๊พธ๋ ค๋ฉด ๊ถํ์ด ์์ด์ผ ํ๋ค.
[user1@localhost ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
|
cs |
์ฌ์ฉ ๊ฐ๋ฅํ ์ ํ์ธ
์ต์ | ๋ด์ฉ |
-l | ์ฌ์ฉ ๊ฐ๋ฅํ ์์ ๋์ด(/etc/shells ํ์ผ ๋ด์ฉ๊ณผ ๋์ผ) |
-s shell | ๋ก๊ทธ์ธ ์ ๋ณ๊ฒฝ ex: chsh -s /bin/tcsh |
-u | ๋์๋ง(usage) |
ํ - chsh ๋ช ๋ น์ด ์ต์
๊ด๋ จ ํฌ์คํธ
[OS/Unix·Linux] - ์ ๋์ค์ ๋ฆฌ๋ ์ค, GNU GPL ๊ทธ๋ฆฌ๊ณ ๋ฆฌ๋ ์ค ๋ฐฐํฌํ ์ข ๋ฅ
[OS/Unix·Linux] - ๋ฆฌ๋ ์ค ํ์ผ ์์คํ ๊ณ์ธต๊ตฌ์กฐ ํ์ค(FHS: Filesystem Hierarchy Standard)
[OS/Unix·Linux] - ๋ฆฌ๋ ์ค ์ ๋ช ๋ น์ด ๊ธฐ๋ณธ ์ฌํญ ์ ๋ฆฌ
๋๊ธ