์ค๋ ๊ณต๊ฐํ๋ ์๋ฃ๋ ๋ช ๋ น์ค ์ฌ์ฉ๋ฒ์ ์ตํ๊ณ ์ ํ๋ ๋ถ๋ค์ ์ํ ๊ฒ์ ๋๋ค. Linux์ด ๋๊ตฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋ฉด ์๊ฐ์ ํฌ๊ฒ ์ ์ฝํ ์ ์์ต๋๋ค. ํนํ ์ด ๊ธ์์๋ Bash ๋ช ๋ น ์ ธ๊ณผ ์ ์ฉํ ๋ช ๋ น์ด 21๊ฐ์ง๋ฅผ ๋ค๋ฃน๋๋ค. ๋ํ ๊ธด ๋ช ๋ น์ด๋ฅผ ๋น ๋ฅด๊ฒ ์ ๋ ฅํ ์ ์๋๋ก ๋ช ๋ น์ด ํ๋๊ทธ์ Bash ๋ณ์นญ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์ค๋ช ํฉ๋๋ค.
โ
์ฝ๊ด
๋ช ๋ น์ค ์ฌ์ฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๋์ Linux ์์ผ๋ก ๋์๊ฐ๋ฉด์ ์ ์ฉํ ๊ฐ๋ ๋ค์ ๋ง์ด ์ ํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, "Linux"Unix", "๋ช ๋ น ์ ธ", "ํฐ๋ฏธ๋"์ ์ข ์ข ํผ๋๋ฉ๋๋ค. ์ด๋ฌํ ์ฉ์ด๋ค์ ๋น๋กฏํ ์ค์ํ ์ฉ์ด๋ค์ ํจ๊ป ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1970๋ ๋์ Bell Labs์์ ๊ฐ๋ฐํ ๋์ค์ ์ธ ์ด์ ์ฒด์ ์ ๋๋ค. ๊ทธ๋ ์ ์ฝ๋๋ ๋ซํ์ต๋๋ค.
๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ Unix ๊ณ์ด ์ด์ ์ฒด์ ์ ๋๋ค. ์ด์ ๋ ์ปดํจํฐ๋ฅผ ํฌํจํ ๋ง์ ์ฅ์น์์ ์ฌ์ฉ๋ฉ๋๋ค.
(ํฐ๋ฏธ๋) ๋๋ ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ๋ ์ด์ ์ฒด์ ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค. ์ฌ๋ฌ ํฐ๋ฏธ๋ ์ฐฝ์ ๋์์ ์ด ์ ์์ต๋๋ค.
(shell)์ ํน์ ์ธ์ด๋ก ์์ฑ๋ ๋ช ๋ น์ ์ด์ ์ฒด์ ์ ๋ณด๋ผ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค.
Bash๋ Bourne Again SHell์ ์ฝ์์ ๋๋ค. ์ด์ ์ฒด์ ์ ์ํธ ์์ฉํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ช ๋ น ์ ธ ์ธ์ด์ ๋๋ค. ๋ํ Bash ์ ธ์ ๊ธฐ๋ณธ ์ ธ๋ก ์ฌ์ฉ๋ฉ๋๋ค. macOS.
(Command Line Interface, CLI)๋ ์ฌ์ฉ์๊ฐ ํค๋ณด๋์์ ๋ช ๋ น์ ์ ๋ ฅํ๊ณ ์ด๋ฌํ ๋ช ๋ น์ ์คํํ๋ ์ปดํจํฐ๊ฐ ์ฌ์ฉ์์๊ฒ ํ ์คํธ ํ์์ ๋ฉ์์ง๋ฅผ ํ์ํ๋ ์ฌ๋๊ณผ ์ปดํจํฐ ๊ฐ์ ์ํธ ์์ฉ ๋ฐฉ๋ฒ์ ๋๋ค. CLI์ ์ฃผ์ ์ฉ๋๋ ํ์ผ๊ณผ ๊ฐ์ ํน์ ์ํฐํฐ์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ์ป๊ณ ํ์ผ ์์ ์ ์ํํ๋ ๊ฒ์ ๋๋ค. ๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ ์ฃผ๋ก ๋ง์ฐ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(GUI)์ ๊ตฌ๋ณ๋์ด์ผ ํฉ๋๋ค. ๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ ์ข ์ข ๋จ์ํ ๋ช ๋ น์ค์ด๋ผ๊ณ ํฉ๋๋ค.
(์คํฌ๋ฆฝํธ)๋ ์ผ๋ จ์ ์ ๋ช ๋ น์ ํฌํจํ๋ ์์ ํ๋ก๊ทธ๋จ์ ๋๋ค. ์คํฌ๋ฆฝํธ๋ ํ์ผ์ ๊ธฐ๋ก๋๋ฉฐ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ๋ ๋ณ์, ์กฐ๊ฑด๋ฌธ, ๋ฃจํ, ํจ์ ๋ฐ ๊ธฐํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด์ ์ค์ํ ์ฉ์ด๋ฅผ ๋ค๋ฃจ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์์ "Bash", "shell" ๋ฐ "command line"์ด๋ผ๋ ์ฉ์ด์ "๋๋ ํ ๋ฆฌ" ๋ฐ "ํด๋"๋ผ๋ ์ฉ์ด๋ฅผ ๊ฐ์ ์๋ฏธ๋ก ์ฌ์ฉํ๋ค๋ ์ ์ ์ง์ ํ๊ณ ์ถ์ต๋๋ค.
ํ์ค ์ฌ๊ธฐ์ ์ฌ์ฉํ ํ์ค ์
๋ ฅ(ํ์ค ์
๋ ฅ, stdin), ํ์ค ์ถ๋ ฅ(ํ์ค ์ถ๋ ฅ, stdout) ๋ฐ ํ์ค ์ค๋ฅ ์ถ๋ ฅ(ํ์ค ์ค๋ฅ, stderr).
์๋์ ์ฃผ์ด์ง ์์ ๋ช
๋ น์์ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ฐพ์ ์ ์์ต๋๋ค. my_whatever - ์ด๊ฒ์ ์ด ์กฐ๊ฐ์ ๋น์ ์ ๊ฒ์ผ๋ก ๊ต์ฒดํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ์ผ ์ด๋ฆ์
๋๋ค.
์ด์ ์ด ์๋ฃ์ ์ ์ฉ ๋ช ๋ น ๋ถ์์ ์งํํ๊ธฐ ์ ์ ํด๋น ๋ชฉ๋ก๊ณผ ๊ฐ๋ตํ ์ค๋ช ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
21 ๋ฐฐ์ ๋ช ๋ น
โ์ ๋ณด ์ป๊ธฐ
man: ๋ช ๋ น์ ๋ํ ์ฌ์ฉ ์ค๋ช ์(๋์๋ง)๋ฅผ ํ์ํฉ๋๋ค.pwd: ์์ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค.ls: ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ ํ์ํฉ๋๋ค.ps: ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
โํ์ผ ์์คํ ์กฐ์
cd: ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.touch: ํ์ผ์ ์์ฑํฉ๋๋ค.mkdir: ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.cp: ํ์ผ์ ๋ณต์ฌํฉ๋๋ค.mv: ํ์ผ์ ์ด๋ํ๊ฑฐ๋ ์ญ์ ํฉ๋๋ค.ln: ๋งํฌ๋ฅผ ์์ฑํฉ๋๋ค.
โI/O ๋ฆฌ๋๋ ์ ๋ฐ ํ์ดํ๋ผ์ธ
<: ๋ฆฌ๋๋ ์ stdin.>: ๋ฆฌ๋๋ ์ stdout.|: ํ ๋ช ๋ น์ ์ถ๋ ฅ์ ๋ค๋ฅธ ๋ช ๋ น์ ์ ๋ ฅ์ผ๋ก ํ์ดํํ์ต๋๋ค.
โํ์ผ ์ฝ๊ธฐ
head: ํ์ผ์ ์์ ๋ถ๋ถ์ ์ฝ์ต๋๋ค.tail: ํ์ผ์ ๋์ ์ฝ์ต๋๋ค.cat: ํ์ผ์ ์ฝ๊ณ ๊ทธ ๋ด์ฉ์ ํ๋ฉด์ ์ถ๋ ฅํ๊ฑฐ๋ ํ์ผ์ ์ฐ๊ฒฐํฉ๋๋ค.
โํ์ผ ์ญ์ , ํ๋ก์ธ์ค ์ค์ง
rm: ํ์ผ์ ์ญ์ ํฉ๋๋ค.kill: ํ๋ก์ธ์ค๋ฅผ ์ค์งํฉ๋๋ค.
โ๊ฒ์
grep: ์ ๋ณด๋ฅผ ๊ฒ์ํฉ๋๋ค.ag: ๊ฒ์์ ์ํ ๊ณ ๊ธ ๋ช ๋ น์ ๋๋ค.
โ์์นด์ด๋น
tar: ์์นด์ด๋ธ ์์ฑ ๋ฐ ์์ .
์ด ๋ช ๋ น์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
ํ ์ธ๋ถ ์ ๋ณด
์ฐ์ , ๊ฒฐ๊ณผ๊ฐ ํ์์ผ๋ก ๋ฐํ๋๋ ๋ช
๋ น์ ๋ค๋ฃจ๊ฒ ์ต๋๋ค. stdout. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ๊ฒฐ๊ณผ๋ ํฐ๋ฏธ๋ ์ฐฝ์ ๋ํ๋ฉ๋๋ค.
โ์ ๋ณด ์ป๊ธฐ
man command_name: ๋ช
๋ น ๊ฐ์ด๋, ์ฆ ๋์๋ง ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค.
pwd: ํ์ฌ ์์
๋๋ ํ ๋ฆฌ์ ๊ฒฝ๋ก๋ฅผ ํ์ํฉ๋๋ค. ๋ช
๋ น์ค๋ก ์์
ํ๋ ๋์ ์ฌ์ฉ์๋ ์์คํ
์์ ์ ํํ ์์ ์ด ์๋ ์์น๋ฅผ ์ฐพ์์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
ls: ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ ํ์ํฉ๋๋ค. ์ด ๋ช
๋ น๋ ๊ฝค ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
ls -a: ์จ๊น ํ์ผ์ ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์ ์ ์ฉ๋ ํ๋๊ทธ -a ํ ls. ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ช
๋ น์ ๋์์ ์ฌ์ฉ์ ์ง์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ls -l: ํ์ผ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค.
ํ๋๊ทธ๋ฅผ ๊ฒฐํฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ls -al.
ps: ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ๋ด
๋๋ค.
ps -e: ํ์ฌ ์ฌ์ฉ์ ์
ธ๊ณผ ๊ด๋ จ๋ ํ๋ก์ธ์ค๋ฟ๋ง ์๋๋ผ ์คํ ์ค์ธ ๋ชจ๋ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค. ์ด ๋ช
๋ น์ ์ข
์ข
์ด ํ์์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
โํ์ผ ์์คํ ์กฐ์
cd my_directory: ์์
๋๋ ํ ๋ฆฌ๋ฅผ ๋ค์์ผ๋ก ๋ณ๊ฒฝ my_directory. ๋๋ ํ ๋ฆฌ ํธ๋ฆฌ์์ ํ ๋จ๊ณ ์๋ก ์ด๋ํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ์ญ์์ค. my_directory ์๋ ๊ฒฝ๋ก ../.
![[์ฑ
๊ฐํผ] ์ด๋ณด์๋ฅผ ์ํ Bash: 21๊ฐ์ง ์ ์ฉํ ๋ช
๋ น](/wp-content/uploads/2019/03/91815e5212c9dfec88a76bc2ab37955f.png)
CD ๋ช
๋ น
touch my_file: ํ์ผ ์์ฑ my_file ์ฃผ์ด์ง ๊ธธ์ ๋ฐ๋ผ.
mkdir my_directory: ํด๋ ์์ฑ my_directory ์ฃผ์ด์ง ๊ธธ์ ๋ฐ๋ผ.
mv my_file target_directory: ํ์ผ ์ด๋ my_file ํด๋๋ก target_directory. ๋์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ํ ๋ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค(๋ค์๊ณผ ๊ฐ์ ๊ตฌ์ฑ์ด ์๋). ../).
ํ mvํ์ผ์ด๋ ํด๋์ ์ด๋ฆ์ ๋ฐ๊พธ๋ ๋ฐ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ํ์๋ ์ ์์ต๋๋ค.
mv my_old_file_name.jpg my_new_file_name.jpg: ํ์ผ ์ฌ๋ณธ ์์ฑ
cp my_source_file target_directorymy_source_file ๊ทธ๋ฆฌ๊ณ ํด๋์ ๋ฃ์ด์ฃผ์ธ์ target_directory.
ln -s my_source_file my_target_file: ์ฌ๋ณผ๋ฆญ ๋งํฌ ์์ฑ my_target_file ํ์ผ๋น my_source_file. ๋งํฌ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์๋ณธ ํ์ผ๋ ๋ณ๊ฒฝ๋ฉ๋๋ค.
ํ์ผ์ด my_source_file ์ญ์ ๋ฉ๋๋ค. my_target_file ๋จ์ ๊ฒ์ด๋ค. ๊น๋ฐ -s ํ ln ๋๋ ํ ๋ฆฌ์ ๋ํ ๋งํฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ด์ I/O ๋ฆฌ๋๋ ์ ๋ฐ ํ์ดํ๋ผ์ธ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
โI/O ๋ฆฌ๋๋ ์ ๋ฐ ํ์ดํ๋ผ์ธ
my_command < my_file: ํ์ค ์
๋ ฅ ํ์ผ ์ค๋ช
์(stdin) ํ์ผ๋น my_file. ์ด๊ฒ์ ๋ช
๋ น์ด ํค๋ณด๋์ ์ผ๋ถ ์
๋ ฅ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๊ณ ์ด ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ํ์ผ์ ์ ์ฅ๋์ด ์๋ ๊ฒฝ์ฐ์ ์ ์ฉํ ์ ์์ต๋๋ค.
my_command > my_file: ๋ช
๋ น์ ๊ฒฐ๊ณผ, ์ฆ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ด๊ฐ ๋ด์ฉ์ ๋ฆฌ๋๋ ์
ํฉ๋๋ค. stdout ํ๋ฉด์ผ๋ก, ํ์ผ๋ก ์ถ๋ ฅ my_file. ํ์ผ์ด my_file ์กด์ฌํ์ง ์์ - ์์ฑ๋ฉ๋๋ค. ํ์ผ์ด ์์ผ๋ฉด ๋ฎ์ด์๋๋ค.
์๋ฅผ ๋ค์ด ๋ช
๋ น์ ์คํํ ํ ls > my_folder_contents.txt ํ์ฌ ์์
๋๋ ํ ๋ฆฌ์ ์๋ ํญ๋ชฉ์ ๋ชฉ๋ก์ ํฌํจํ๋ ํ
์คํธ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
๊ธฐํธ ๋์ ์ > ๊ณต์ฌ๋ฅผ ์ด์ฉํ๋ค >>๊ทธ๋ฐ ๋ค์ ๋ช
๋ น ์ถ๋ ฅ์ด ๋ฆฌ๋๋ ์
๋๋ ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ์ด ํ์ผ์ ๋ฎ์ด์ฐ์ง ์์ต๋๋ค. ๋ฐ์ดํฐ๋ ์ด ํ์ผ์ ๋์ ์ถ๊ฐ๋ฉ๋๋ค.
์ด์ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ์ฒ๋ฆฌ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
![[์ฑ
๊ฐํผ] ์ด๋ณด์๋ฅผ ์ํ Bash: 21๊ฐ์ง ์ ์ฉํ ๋ช
๋ น](/wp-content/uploads/2019/03/dcc4e500b247cb13adb4d64c36c24f88.png)
ํ ๋ช
๋ น์ ์ถ๋ ฅ์ ๋ค๋ฅธ ๋ช
๋ น์ ์
๋ ฅ์ผ๋ก ๊ณต๊ธ๋ฉ๋๋ค. ํ๋์ ํ์ดํ๋ฅผ ๋ค๋ฅธ ํ์ดํ์ ์ฐ๊ฒฐํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
first_command | second_command: ์ปจ๋ฒ ์ด์ด ๊ธฐํธ, |, ํ ๋ช
๋ น์ ์ถ๋ ฅ์ ๋ค๋ฅธ ๋ช
๋ น์ผ๋ก ๋ณด๋ด๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ค๋ช
๋ ๊ตฌ์กฐ์ ์ผ์ชฝ์ ์๋ ๋ช
๋ น์ด ๋ณด๋ด๋ ๋์ stdout, ๋น ์ง๋ค stdin ํ์ดํ๋ผ์ธ ๊ธฐํธ ์ค๋ฅธ์ชฝ์ ์๋ ๋ช
๋ น์
๋๋ค.
ะ Linux ํ์ดํ๋ผ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ ์ ๋๋ก ์์ฑ๋ ๊ฑฐ์ ๋ชจ๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ํํ ๋ชจ๋ ๊ฒ์ด ํ์ดํ๋ผ์ธ ์์ ์๋ค๊ณ ๋งํฉ๋๋ค. Linux - ์ด๊ฒ์ ์ปจ๋ฒ ์ด์ด ๋ฒจํธ์ ๋๋ค.
ํ์ดํ๋ผ์ธ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ช ๋ น์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
first_command | second_command | third_command ![[์ฑ
๊ฐํผ] ์ด๋ณด์๋ฅผ ์ํ Bash: 21๊ฐ์ง ์ ์ฉํ ๋ช
๋ น](/wp-content/uploads/2019/03/1d94b3f04846ef40c072299877c55b1f.png)
์ฌ๋ฌ ๋ช
๋ น์ ํ์ดํ๋ผ์ธ์ ํ์ดํ๋ผ์ธ๊ณผ ๋น๊ตํ ์ ์์ต๋๋ค.
๊ธฐํธ ์ผ์ชฝ์ ์๋ ๋ช
๋ น์ด |, ๋ฌด์ธ๊ฐ๋ฅผ ์ถ๋ ฅ stdout, ๊ทธ๋
๊ฐ ์ถ๋ ฅํ๋ ๊ฒ์ ์ฆ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค. stdin ๋ ๋ฒ์งธ ํ. ์ฆ, ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ์ฌ ๋ช
๋ น์ ๋ณ๋ ฌ ์คํ์ ์ฒ๋ฆฌํ๊ณ ์์์ด ๋ฐํ์ก์ต๋๋ค. ๋๋ก๋ ์ด๋ก ์ธํด ์๊ธฐ์น ์์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฝ์ ์ ์์ต๋๋ค. .
์ด์ ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ํ๋ฉด์ ํ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
โํ์ผ ์ฝ๊ธฐ
head my_file: ํ์ผ์ ์ฒ์๋ถํฐ ์ค์ ์ฝ์ด์ ํ๋ฉด์ ์ถ๋ ฅํฉ๋๋ค. ํ์ผ์ ๋ด์ฉ๋ฟ๋ง ์๋๋ผ ๋ช
๋ น์ด ์ถ๋ ฅํ๋ ๋ด์ฉ๋ ์ฝ์ ์ ์์ต๋๋ค. stdin์ด ๋ช
๋ น์ ํ์ดํ๋ผ์ธ์ ์ผ๋ถ๋ก ์ฌ์ฉํฉ๋๋ค.
tail my_file: ํ์ผ ๋์์ ์ค์ ์ฝ์ต๋๋ค. ์ด ๋ช
๋ น์ ํ์ดํ๋ผ์ธ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
![[์ฑ
๊ฐํผ] ์ด๋ณด์๋ฅผ ์ํ Bash: 21๊ฐ์ง ์ ์ฉํ ๋ช
๋ น](/wp-content/uploads/2019/03/0dd6e0353a1b5995d4a1228ae2550ad9.png)
ํค๋(head)๊ฐ ์์ ์๊ณ ํ
์ผ(tail)์ด ๋ค์ ์์ต๋๋ค.
pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ก ์์
ํ๋ ๊ฒฝ์ฐ ๋ช
๋ น head ะธ tail ๋น์ ์๊ฒ ์น์ํด์ผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ฝ๊ฒ ๊ธฐ์ตํ ์ ์์ต๋๋ค.
ํ์ผ์ ์ฝ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํ๊ณ ๋ช
๋ น์ ๋ํด ์ด์ผ๊ธฐํด ๋ด
์๋ค. cat.
ํ cat ํ์ผ์ ๋ด์ฉ์ ํ๋ฉด์ ์ธ์ํ๊ฑฐ๋ ์ฌ๋ฌ ํ์ผ์ ์ฐ๊ฒฐํฉ๋๋ค. ํธ์ถ ์ ์ด ๋ช
๋ น์ ์ ๋ฌ๋๋ ํ์ผ ์์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค.
![[์ฑ
๊ฐํผ] ์ด๋ณด์๋ฅผ ์ํ Bash: 21๊ฐ์ง ์ ์ฉํ ๋ช
๋ น](/wp-content/uploads/2019/03/708bea2f5d31e1623e9fd80ff5b576af.png)
๊ณ ์์ด ๋ช
๋ น
cat my_one_file.txt: ์ด ๋ช
๋ น์ ๋จ์ผ ํ์ผ์ด ์ ๋ฌ๋๋ฉด ๋ค์์ผ๋ก ์ถ๋ ฅํฉ๋๋ค. stdout.
๋ ๊ฐ ์ด์์ ํ์ผ์ ์ ๊ณตํ๋ฉด ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค.
cat my_file1.txt my_file2.txt: ์ฌ๋ฌ ํ์ผ์ ์
๋ ฅ์ผ๋ก ์์ ํ ํ ์ด ๋ช
๋ น์ ํด๋น ๋ด์ฉ์ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ํ ๋ด์ฉ์ ํ์ํฉ๋๋ค. stdout.
ํ์ผ ์ฐ๊ฒฐ ๊ฒฐ๊ณผ๋ฅผ ์ ํ์ผ๋ก ์ ์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. >:
cat my_file1.txt my_file2.txt > my_new_file.txt์ด์ ํ์ผ์ ์ญ์ ํ๊ณ ํ๋ก์ธ์ค๋ฅผ ์ค์งํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
โํ์ผ ์ญ์ , ํ๋ก์ธ์ค ์ค์ง
rm my_file: ํ์ผ ์ญ์ my_file.
rm -r my_folder: ํด๋ ์ญ์ my_folder ํฌํจ๋ ๋ชจ๋ ํ์ผ๊ณผ ํด๋. ๊น๋ฐ -r ๋ช
๋ น์ด ์ฌ๊ท ๋ชจ๋์์ ์คํ๋จ์ ๋ํ๋
๋๋ค.
ํ์ผ์ด๋ ํด๋๊ฐ ์ญ์ ๋ ๋๋ง๋ค ์์คํ
์์ ํ์ธ์ ์์ฒญํ์ง ์๋๋ก ํ๋ ค๋ฉด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ญ์์ค. -f.
kill 012345: ์ง์ ๋ ์คํ ํ๋ก์ธ์ค๋ฅผ ์ค์งํ์ฌ ์ ์์ ์ผ๋ก ์ข
๋ฃํ ์๊ฐ์ ์ค๋๋ค.
kill -9 012345: ์ง์ ๋ ์คํ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ๋ก ์ข
๋ฃํฉ๋๋ค. ํ๋๊ทธ ๋ณด๊ธฐ -s SIGKILL ํ๋๊ทธ์ ๊ฐ์ ์๋ฏธ -9.
โ๊ฒ์
๋ค์ํ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค. ํนํ - grep, ag ะธ ack. ์ด ๋ช
๋ น์ ๋ํด ์์ ๋ด
์๋ค. grep. ์ด๊ฒ์ ์ค๋ ์๊ฐ ๋์ ํ
์คํธ๋ฅผ ๊ฑฐ์น ์์ ์ ์ธ ๋ช
๋ น์ด์ง๋ง ๋ค๋ฅธ ๋ช
๋ น๋ณด๋ค ๋๋ฆฌ๊ณ ์ฌ์ฉํ๊ธฐ ํธ๋ฆฌํ์ง ์์ต๋๋ค.
![[์ฑ
๊ฐํผ] ์ด๋ณด์๋ฅผ ์ํ Bash: 21๊ฐ์ง ์ ์ฉํ ๋ช
๋ น](/wp-content/uploads/2019/03/bc02403dbbd0109f0dfd595eccf239c7.png)
grep ๋ช
๋ น
grep my_regex my_file: ๊ฒ์ my_regex ะฒ my_file. ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ผ๋ฉด ๊ฐ ์ผ์น ํญ๋ชฉ์ ๋ํด ์ ์ฒด ๋ฌธ์์ด์ด ๋ฐํ๋ฉ๋๋ค. ๊ธฐ๋ณธ my_regex ์ ๊ท ํํ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
grep -i my_regex my_file: ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ๊ฒ์ํฉ๋๋ค.
grep -v my_regex my_file: ๋ค์์ ํฌํจํ์ง ์๋ ๋ชจ๋ ํ์ ๋ฐํํฉ๋๋ค. my_regex. ๊น๋ฐ -v ๋ฐ์ ์ ์๋ฏธํ๋ฉฐ ์ฐ์ฐ์์ ์ ์ฌํฉ๋๋ค. NOT, ๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฐ๊ฒฌ๋ฉ๋๋ค.
grep -c my_regex my_file: ํ์ผ์์ ์ฐพ์ ๊ฒ์ ํจํด์ ๋ํ ์ผ์น ์์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐํํฉ๋๋ค.
grep -R my_regex my_folder: ์ง์ ๋ ํด๋์ ๊ทธ ์์ ์ค์ฒฉ๋ ํด๋์ ์๋ ๋ชจ๋ ํ์ผ์์ ์ฌ๊ท ๊ฒ์์ ์ํํฉ๋๋ค.
์ด์ ํ์ ๋ํด ์ด์ผ๊ธฐํฉ์๋ค ag. ๊ทธ๋
๋ ๋์ค์ ์๋ค grep, ๋ ๋น ๋ฅด๊ณ ์์
ํ๋ ๊ฒ์ด ๋ ํธ๋ฆฌํฉ๋๋ค.
![[์ฑ
๊ฐํผ] ์ด๋ณด์๋ฅผ ์ํ Bash: 21๊ฐ์ง ์ ์ฉํ ๋ช
๋ น](/wp-content/uploads/2019/03/f0eeb1d38a1e9c22a8463858753dedb5.png)
ag ๋ช
๋ น
ag my_regex my_file: ํ ๋ฒํธ์ ๋ํ ์ ๋ณด์ ์ผ์น ํญ๋ชฉ์ด ๋ฐ๊ฒฌ๋ ํ ์์ฒด๋ฅผ ๋ฐํํฉ๋๋ค. my_regex.
ag -i my_regex my_file: ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ๊ฒ์ํฉ๋๋ค.
ํ ag ํ์ผ์ ์๋์ผ๋ก ์ฒ๋ฆฌ .gitignore ํด๋น ํ์ผ์ ๋์ด๋ ํด๋ ๋๋ ํ์ผ์์ ๋ฐ๊ฒฌ๋ ๋ด์ฉ์ ์ถ๋ ฅ์์ โโ์ ์ธํฉ๋๋ค. ๋งค์ฐ ํธ์ํฉ๋๋ค.
ag my_regex my_file -- skip-vcs-ignores: ์๋ ๋ฒ์ ์ ์ด ํ์ผ์ ๋ด์ฉ(์: .gitignore)๋ ๊ฒ์์์ ๊ณ ๋ ค๋์ง ์์ต๋๋ค.
๋ํ ํ์๊ฒ ์๋ฆฌ๊ธฐ ์ํด ag ๊ฒ์์์ ์ ์ธํ๋ ค๋ ํ์ผ ๊ฒฝ๋ก์์ ํ์ผ์ ๋ง๋ค ์ ์์ต๋๋ค. .agignore.
์ด ์น์
์ ์์ ๋ถ๋ถ์์ ๋ช
๋ น์ ์ธ๊ธํ์ต๋๋ค. ack. ํ ack ะธ ag ๋งค์ฐ ์ ์ฌํ์ฌ 99% ์ํธ ๊ตํ ๊ฐ๋ฅํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋, ํ ag ๋ ๋นจ๋ฆฌ ์๋ํ๋ฏ๋ก ์ค๋ช
ํ์ต๋๋ค.
์ด์ ์์นด์ด๋ธ ์์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
โ์์นด์ด๋น
tar my_source_directory: ํด๋์์ ํ์ผ์ ์ฐ๊ฒฐํฉ๋๋ค. my_source_directory ํ๋์ tarball ํ์ผ๋ก. ์ด๋ฌํ ํ์ผ์ ๋์ฉ๋ ํ์ผ ์ธํธ๋ฅผ ๋๊ตฐ๊ฐ์๊ฒ ์ ์กํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
![[์ฑ
๊ฐํผ] ์ด๋ณด์๋ฅผ ์ํ Bash: 21๊ฐ์ง ์ ์ฉํ ๋ช
๋ น](/wp-content/uploads/2019/03/4531ef1d4084af608fcbe91964a6710b.png)
ํ๋ฅด ๋ช
๋ น
์ด ๋ช
๋ น์ผ๋ก ์์ฑ๋ tarball ํ์ผ์ ํ์ฅ์๊ฐ .tar (ํ
์ดํ ์์นด์ด๋ธ). "tape"(ํ
์ดํ)๋ผ๋ ๋จ์ด๊ฐ ๋ช
๋ น ์ด๋ฆ๊ณผ ๋ช
๋ น์ด ์์ฑํ๋ ํ์ผ ์ด๋ฆ์ ํ์ฅ์์ ์จ๊ฒจ์ ธ ์๋ค๋ ์ฌ์ค์ ์ด ๋ช
๋ น์ด ์กด์ฌํ ๊ธฐ๊ฐ์ ๋ํ๋
๋๋ค.
tar -cf my_file.tar my_source_directory:๋ผ๋ ์ด๋ฆ์ tarball ํ์ผ์ ์์ฑํฉ๋๋ค. my_file.tar ํด๋ ๋ด์ฉ ํฌํจ my_source_directory. ๊น๋ฐ -c "create"(๋ง๋ค๊ธฐ)๋ฅผ ์๋ฏธํ๋ฉฐ ํ๋๊ทธ๋ -f "ํ์ผ"(ํ์ผ)๋ก.
ํ์ผ์ ์ถ์ถํ๋ ค๋ฉด .tar-ํ์ผ, ๋ช
๋ น ์ฌ์ฉ tar ํ๋๊ทธ์ ํจ๊ป -x ("์ถ์ถ", ์ถ์ถ) ๋ฐ -f ("ํ์ผ", ํ์ผ).
tar -xf my_file.tar:์์ ํ์ผ์ ์ถ์ถํฉ๋๋ค. my_file.tar ํ์ฌ ์์
๋๋ ํ ๋ฆฌ๋ก.
์ด์ ์์ถ ๋ฐ ์์ถ ํด์ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. .tar-ํ์ผ.
tar -cfz my_file.tar.gz my_source_directory: ์ฌ๊ธฐ์ ํ๋๊ทธ ์ฌ์ฉ -z ("zip", ์์ถ ์๊ณ ๋ฆฌ์ฆ) ํ์ผ์ ์์ถํ๋ ๋ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ผ ํจ์ ๋ํ๋
๋๋ค. gzip (๊ทธ๋์ง). ํ์ผ ์์ถ์ ์ด๋ฌํ ํ์ผ์ ์ ์ฅํ ๋ ๋์คํฌ ๊ณต๊ฐ์ ์ ์ฝํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ์ผ์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ์ ์กํ ๊ณํ์ธ ๊ฒฝ์ฐ ํด๋น ํ์ผ์ ๋ ๋น ๋ฅด๊ฒ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
ํ์ผ ์์ถ ํด์ .tar.gz ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. -z ์ฝํ
์ธ ์ถ์ถ ๋ช
๋ น์ผ๋ก .tar-์์์ ๋
ผ์ํ ํ์ผ. ๋ค์๊ณผ ๊ฐ์ด ๋ณด์
๋๋ค.
tar -xfz my_file.tar.gz
์ฃผ๋ชฉํด์ผ ํ ์ ์ ํ tar ๋ ๋ง์ ์ ์ฉํ ํ๋๊ทธ๊ฐ ์์ต๋๋ค.
Bash ๋ณ์นญ
Bash ๋ณ์นญ(๋ณ์นญ ๋๋ ์ฝ์ด๋ผ๊ณ ๋ ํจ)์ ๋ช
๋ น์ ์ถ์ฝ๋ ์ด๋ฆ ๋๋ ํด๋น ์ํ์ค๋ฅผ ์์ฑํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ ์ผ๋ฐ ๋ช
๋ น ๋์ ์ฌ์ฉํ๋ฉด ์์
์๋๊ฐ ๋นจ๋ผ์ง๋๋ค. ๋ณ์นญ์ด ์๋ ๊ฒฝ์ฐ bu, ๋ช
๋ น์ ์จ๊น๋๋ค. python setup.py sdist bdist_wheel๊ทธ๋ฐ ๋ค์ ์ด ๋ช
๋ น์ ํธ์ถํ๋ ค๋ฉด ์ด ๋ณ์นญ์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
์ด๋ฌํ ๋ณ์นญ์ ๋ง๋ค๋ ค๋ฉด ํ์ผ์ ๋ค์ ๋ช
๋ น์ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ~/.bash_profile:
alias bu="python setup.py sdist bdist_wheel" ์์คํ
์ ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ~/.bash_profile๊ทธ๋ฐ ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ง์ ๋ง๋ค ์ ์์ต๋๋ค. touch. ๋ณ์นญ์ ๋ง๋ ํ ํฐ๋ฏธ๋์ ๋ค์ ์์ํ๋ฉด ์ด ๋ณ์นญ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ ๋ฌธ์์ ์
๋ ฅ์ ๋ช
๋ น์ XNUMX์ ์ด์์ ๋ฌธ์ ์
๋ ฅ์ ๋์ฒดํฉ๋๋ค. ํ์ด์ฌ ํจํค์ง.
ะ ~/.bash_profile ์์ฃผ ์ฌ์ฉํ๋ ๋ช
๋ น์ ๋ณ์นญ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
โ๊ฒฐ๊ณผ
์ด ๊ฒ์๋ฌผ์์๋ 21๊ฐ์ ์ธ๊ธฐ ์๋ Bash ๋ช ๋ น์ ๋ค๋ฃจ๊ณ ๋ช ๋ น ๋ณ์นญ ์์ฑ์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค. ์ด ์ฃผ์ ์ ๊ด์ฌ์ด ์๋ค๋ฉด - Bash ์ ์ฉ ์ถํ๋ฌผ ์๋ฆฌ์ฆ. ์ด ๊ฐํ๋ฌผ์ PDF ๋ฒ์ ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ํ Bash๋ฅผ ๋ฐฐ์ฐ๊ณ ์ถ๋ค๋ฉด ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์์คํ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ์ต์ด ์ค์ํ๋ค๋ ์ ์ ๊ธฐ์ตํ์ญ์์ค.
๋ ์ ์ฌ๋ฌ๋ถ! ์ด ๊ธฐ์ฌ์์ ๋ ผ์๋ ๋ช ๋ น์ ์ด๋ณด์์๊ฒ ์ ์ฉํ ๋ช ๋ น์ ์ถ๊ฐํ์๊ฒ ์ต๋๊น?
โ
์ถ์ฒ : habr.com
