Day05 - jeremy0405/Codesquad_CS GitHub Wiki
์์
ํธ๋ ์ค์ ์์ ์ ๋ค์ผ๋ฉด์ ๊ธฐ์ต์ ๋จ๋ ํค์๋๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
์ฝ์ฝ์ ๋ ํ๋ฒ ๋ง์์ ํด์ฃผ์ ๋ด์ฉ์ด ๋ง์๋๋ฐ ๊น๋จน์ ๋ด์ฉ์ด ๋ง์๋ค. ๋ง์คํฐ์ฆ ์์ ์ ์ ์ฝ์ฝ์ ์ํค๋ฅผ ํ๋ฒ ๋ณด๊ณ ๋ณต์ต์ ํ์๊ณ ๋ง์๋ง ๋จน๊ณ ์ ํ ๊ฒ์ ๋ฐ์ฑํ๊ฒ ๋๋ค.
ํค์๋ : ํ๋ก์ธ์ค. ์ด์์ฒด์ , ์ปค๋๊ณผ ์, vim
ํ๋ก์ธ์ค
ํ๋ก์ธ์ค๋ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ค. ํ๋ก์ธ์ค ๋ด๋ถ์๋ ์ต์ ํ๋์ ์ฐ๋ ๋(๋ฉ์ธ์ฐ๋ ๋)๊ฐ ์กด์ฌํ๋ค.
ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๊ตฌ์กฐ
- code ์์ญ : ์์ค์ฝ๋๊ฐ ์ฌ๋ผ๊ฐ๋ ๊ณณ
- data ์์ญ : static ๋ฉ์๋, static ๋ณ์๊ฐ ์ฌ๋ผ๊ฐ๋ ๊ณณ
- heap ์์ญ : ๋์ ํ ๋น์ ์ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ (์๋ฐ์ ๊ฐ์ฒด, c์ธ์ด์ malloc)
- stack ์์ญ : ๋ฉ์๋, ์ง์ญ๋ณ์๋ฅผ ์ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ
์ด์์ฒด์ ์ ์ญํ
์ด์์ฒด์ ๋ Mac OS, Linux, Window์ ๊ฐ์ ๊ฒ์ด ์๋ค.
์ด์์ฒด์ ์ ์ญํ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ฌ์ฉ์์ ์ปดํจํฐ ๊ฐ์ ์ธํฐํ์ด์ค ์ญํ
์ด์์ฒด์ ๊ฐ ์๋ค๋ฉด ์ฌ์ฉ์๋ 0๊ณผ 1๋ก ํ๋์จ์ด๋ฅผ ์ง์ ์ ์ดํด์ผ ํ๋ค. ์ด๋ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์๋ค์ ํ ์ ์๋ ์์ ์ด๋ค. ์ด์์ฒด์ ๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ์ปดํจํฐ์ ํธ๋ฆฌํ๊ฒ ๋ช ๋ น์ ๋ด๋ฆด ์ ์๋ค. ๋ํ ํ๋์จ์ด ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํด์ฃผ์ด ๋ง์ฐ์ค, ํค๋ณด๋, ๋ชจ๋ํฐ ๋ฑ์ ํ๋์จ์ด๋ฅผ ์ ์กฐ์ฌ์ ์๊ด์์ด ์ฌ์ฉํ ์ ์๋๋ก ํธํ์ฑ์ ๋ณด์ฅํด์ค๋ค.
- ํ๋์จ์ด ๋ณดํธ
์ด์์ฒด์ ์์ด ์ฌ์ฉ์๊ฐ ํ๋์จ์ด๋ฅผ 0๊ณผ 1๋ก ์ ์ด๋ฅผ ํ ์ ์๋ค. ์ค์ ๋ก ๊ณผ๊ฑฐ์๋ ์ด์์ฒด์ ์์ด ์ด๋ ๊ฒ ์ ์ด๋ฅผ ํ๋ค. ์๋ฌด๋ฆฌ ๋๋ํ ์ฌ๋์ด๋ผ๋ ์ค์๋ฅผ ํ๊ฒ๋๋๋ฐ ํ๋์จ์ด๋ฅผ ์กฐ์ํ๋ ๊ณผ์ ์์ ์ค์๋ฅผ ํ๊ฒ ๋๋ฉด ํ๋์จ์ด๊ฐ ๊ณ ์ฅ๋๊ฒ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฐ๋ก ํ๋์จ์ด ์กฐ์์ ํ์ง ์๊ณ ์ด์์ฒด์ ๋ฅผ ํตํด ์กฐ์์ ํด์ ํ๋์จ์ด๋ฅผ ๋ณดํธํ ์ ์๋ค.
- ์์ฉ ํ๋ก๊ทธ๋จ ๊ด๋ฆฌ
์์ฉ ํ๋ก๊ทธ๋จ์ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํด์ค๋ค. ํ์ฌ ์ฐ๋ฆฌ๋ ์๋ง์ ์์ฉํ๋ก๊ทธ๋จ์ ๋์์ ์์ ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ด ๋ ์ด์์ฒด์ ๊ฐ ํ์ ๋ ์์์ ์ต๋ํ ํ์ฉํด์ ์์์ ์๋ง์ ์์๋ก ์์ฉํ๋ก๊ทธ๋จ์ ๋ถ๋ฐฐํ๊ณ ๋ค์ ํ์ํ๋ ์์ ์ ํด์ค๋ค.
์ปค๋๊ณผ ์
์
์์ ์ฌ์ฉ์์ ์์ฉํ๋ก๊ทธ๋จ๊ณผ ์ปค๋ ์ฌ์ด์ ์์นํ๊ณ ์๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ ์ปค๋์ ์ ๋ฌํด์ฃผ๋ ์ญํ ์ ํ๋ค.
์ปค๋
์ค์ cpu์ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ํ๋์จ์ด๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค. ํ๋ก์ธ์ค, ๋ฉ๋ชจ๋ฆฌ, I/O, ํ์ผ, ๋คํธ์ํฌ. ๋ณด์ ๋ฑ์ ๊ด๋ฆฌํ๋ค.
vim
h l k j
์ข ์ฐ ์ ํ
e // ์ค๋ฅธ์ชฝ ํ ๋จ์ด์ ์ ๋ถ๋ถ์ผ๋ก ์ปค์ ์ด๋
b // ์ผ์ชฝ ํ ๋จ์ด์ ์ ๋ถ๋ถ์ผ๋ก ์ปค์ ์ด๋
^ // ์ค ์์ผ๋ก
$ // ์ค ๋์ผ๋ก
H // ํ๋ฉด ์ ์ผ ์๋จ
M // ํ๋ฉด ์ค๋จ
L // ํ๋ฉด ์ ์ผ ํ๋จ
gg // ์ต์๋จ
G // ์ตํ๋จ
[lineNum] G // ์ง์ ํ ๋ผ์ธ์ผ๋ก ์ด๋
ctrl+d // ๋ฐ ํ๋ฉด ์๋๋ก
ctrl+u // ๋ฐ ํ๋ฉด ์๋ก
i // insert๋ชจ๋
o // ์ปค์ ์๋์ ํ ์ฝ์
ํ insert๋ชจ๋
r // ์ปค์ ์์น ํ ๊ธ์๋ง ์์
R // ์ปค์ ์์น๋ถํฐ Replace๋ชจ๋
ESC // ์ข
๋ฃ
dd // ๋ผ์ธ ์ญ์
de // d ์ญ์ + e ์ค๋ฅธ์ชฝ ํ ๋จ์ด๊น์ง ์ด๋ -> ์ค๋ฅธ์ชฝ ํ ๋จ์ด ์ญ์
u // ๋๋๋ฆฌ๊ธฐ
yy // ์ปค์ ๋ผ์ธ ๋ณต์ฌ
p // ๋ถ์ฌ๋ฃ๊ธฐ -> ์ต๊ทผ์ d๋ช
๋ น or y๋ช
๋ น์ ๋ถ์
/[๊ฒ์] -> n ์ผ๋ก ๋๊น
์ ์คํฌ๋ฆฝํธ
find ๋ช ๋ น์ด
find . -name "*.cs"
find . -type f -name "*.cs"
FINDRESULT=$(find . -name "*.cs")
echo ${FINDRESULT[@]} // ํ์ผ์ ์ด๋ฆ์ด ๋ฐฐ์ด๋ก ๋ด๊น
ํ์ดํ
// command1์ ํ์ค ์ถ๋ ฅ์ command2์ ํ์ค ์
๋ ฅ์ผ๋ก ์ ๋ฌ
command1 | command2
// file.txt ๋ด์ฉ์ grep a์ ์
๋ ฅ์ผ๋ก ์ ๋ฌ
cat file.txt | grep a
๋ฆฌ๋ค์ด๋ ์
๋ฆฌ๋ค์ด๋ ์ | ๋ด์ฉ |
---|---|
< | ํ์ผ ์ฝ๊ธฐ |
> | ํ์ผ ์ฐ๊ธฐ(overwrite) |
>> | ํ์ผ ์ฐ๊ธฐ(insert) |
๊ตฌ๋ถ | ํ์ผ ๋์คํฌ๋ฆฝํฐ |
---|---|
ํ์ค ์ ๋ ฅ | 0 |
ํ์ค ์ถ๋ ฅ | 1 |
ํ์ค ์๋ฌ | 2 |
command > outfile
command >> outfile
command >& outfile
command >>& outfile
// ์ถ๋ ฅ ๋ฌธ๊ตฌ๋ฅผ ๋ฆฌ๋ค์ด๋ ์
ํด์ ์๋์
sample.sh > /dev/null
๋๋ ์ง์ ์ ์ฒดํ์ํ๋ฉฐ csํ์ผ์ ์ฎ๊ฒผ๋๋ฐ ์ฟ ํด์ ๊ฐ๋จํ ๋ฆฌ๋ค์ด๋ ์ ์ ํตํด zip ์ ์ํํ๋ค. ์ด๊ฑธ ๋ณด๊ณ ๊น์ง ๋๋๋ค!! ๐ฑ
find . -name "*.cs" | zip -@ "$FILENAME"".zip" > /dev/null
์ฐธ๊ณ -์ฟ ํดgist
zip -@ ์ต์ ์ด ๋ฌด์์ธ์ง ๊ถ๊ธํด์ ์ฐพ์๋ณด๋๊น ์๋์ ๊ฐ์ ๊ฒ์ ์ ์ ์์๋ค.