Bibi's DevLog ๐ค๐
[TIL - Codesquad] ๋ฆฌ๋ ์ค ๊ธฐ๋ณธ ๋ช ๋ น์ด์ ์ ์คํฌ๋ฆฝํธ ๋ณธ๋ฌธ
์ค๋ ํ ์ผ
- ์ค๋์ ์ ์คํฌ๋ฆฝํธ ๋ช
๋ น์ด๋ฅผ ๋๋ฆ๋๋ก ๊ณต๋ถ, ์ค์ตํ๋ค.
- ๊ทธ๋ฌ๋ ๋งค์ผ ์๋ฐ๋ง ๊ณต๋ถํ๋ค๊ฐ ์ฐ๋ ค๋ ๋ฌธ๋ฒ์ด ๋๋ฌด ์์ํ๊ณ (ํนํ ๋ณ์..)
- ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ์ง์ผ ์กฐ๊ฑด์ ๋ง๋ ๋์์ ํ๋์ง ๊ฐ์ด ์ ์ค๊ณ , ๊ณ์ ์๋ฌ๋ ๋จ๋๋ฐ, ๋ฏธ์
์ ์ถ ์๊ฐ์ด ๋ค๊ฐ์์
- ๊ฒฐ๊ตญ ์ฐ๋ฆฌ ๊ทธ๋ฃน์ ์ง์in์ธ ํ๋ ๋๊ฐ ์ ์ถํ ์ฝ๋๋ฅผ ๋ฐ๋ผ์ ์ ์ด ์ ์ถํ๋ค..๐ญ๐ญ๐ญ
- ์ด์ฌํ ๋ณต์ตํด์ ๋ด๊ฐ ์ ์ ์ฝ๋๊ฐ ๋ญ์๋์ง๋ผ๋ ์ดํดํด์ผ๊ฒ ๋ค. (ํ๋ ๋์ gist๋งํฌ ์ค๋ช
๋ณด๋ฉฐ ๊ณต๋ถํ๊ธฐ)
TIL
๋ฆฌ๋ ์ค ๊ธฐ๋ณธ ๋ช ๋ น์ด
= bash์์ด ์ ๊ณตํ๋ ๊ธฐ๋ณธ ๋ช ๋ น์ด
itholic.github.io/linux-basic-command/ ๋ฅผ ๋ณด๊ณ ๊ณต๋ถ ๋ฐ ์ ๋ฆฌ.
$ pwd
: print working directory
ํ์ฌ ์์ ์ค์ธ ๋๋ ํ ๋ฆฌ ์ ๋ณด ์ถ๋ ฅ
$ cd
: change directory
๋๋ ํ ๋ฆฌ ๋ณ๊ฒฝ(๊ฒฝ๋ก ์ด๋) ์ ๋ ๊ฒฝ๋ก๋ ์๋ ๊ฒฝ๋ก๋ก ์ด๋ ๊ฐ๋ฅ.
$ ls
: list
๋๋ ํ ๋ฆฌ ๋ชฉ๋ก ํ์ธ.
-l, -a, -al ๋ฑ ๋ค์ํ ์ต์ ์ ์ค ์ ์๋ค.
$ cp ์๋ณธํ์ผ ๋์ํ์ผ
: copy
ํ์ผ์ ๋ณต์ฌ (์๋ณธํ์ผ์์ ๋์ํ์ผ๋ก)
$ cp -r
: ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณต์ฌ
$ mv
: move
ํ์ผ/๋๋ ํ ๋ฆฌ ์ด๋
$ rm
: remove
ํ์ผ ์ญ์
$ rm -r
: ๋๋ ํ ๋ฆฌ ์ญ์ (ํ์ ๋๋ ํ ๋ฆฌ๊น์ง ๋ชจ๋ ์ญ์ )
-f ์ต์ ์ ์ฃผ๋ฉด ์ญ์ ์ฌ๋ถ๋ฅผ ๋ฌป์ง ์๊ณ ์ฆ์ ์ญ์ .
$ mkdir
: make directory
๋๋ ํ ๋ฆฌ ์์ฑ
$ touch
: 0๋ฐ์ดํธ์ ํ์ผ ์์ฑ
$ cat ํ์ผ์ด๋ฆ
: ํ์ผ ๋ด์ฉ ํ์
$ cat (๋ฆฌ๋ค์ด๋ ์ ๊ณผ ํจ๊ป ์ฌ์ฉ)
: concatenate(์ฌ์ฌ๊ฐ์ด ์๋ค)
์ฌ๋ฌ ํ์ผ์ ํฉ์ณ ํ๋์ ํ์ผ๋ก ๋ง๋ฆ
$ history
: ๋ช ๋ น์ด ์ด๋ ฅ ํ์
$ find ๋๋ ํ ๋ฆฌ(๊ฒฝ๋ก) -name "ํ์ผ์ด๋ฆ"
: ํด๋น ๋๋ ํ ๋ฆฌ ๋ฐ ํ์ ๋๋ ํ ๋ฆฌ์์ ํด๋น ํ์ผ์ด๋ฆ์ ๊ฒ์.
$ head -n ํ์ผ์ด๋ฆ
: ํด๋น ํ์ผ์ ์๋ถ๋ถ n์ค์ ๋ณด์ฌ์ค๋ค
-n์ ์ง์ ํ์ง ์์ผ๋ฉด 10์ค์ ๋ณด์ฌ์ค๋ค
$ tail -n ํ์ผ์ด๋ฆ
: ํด๋น ํ์ผ์ ๋ท๋ถ๋ถ n์ค์ ๋ณด์ฌ์ค๋ค
-n์ ์ง์ ํ์ง ์์ผ๋ฉด 10์ค์ ๋ณด์ฌ์ค๋ค
$ tail -F ํ์ผ์ด๋ฆ
: ํด๋น ํ์ผ์ ๋ท๋ถ๋ถ ๋ด์ฉ์ ์ค์๊ฐ์ผ๋ก ๊ณ์ ๋ณด์ฌ์ค๋ค. (๋ก๊ทธํ์ผ ๋ชจ๋ํฐ๋ง์ ์ฌ์ฉ)
๋ฆฌ๋ ์ค ๊ถํ์ค์ = ํผ๋ฏธ์ permission
securityspecialist.tistory.com/40
withcoding.com/103
www.fwantastic.com/2019/12/linux-permission.html
์ธ ๋งํฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ค. ๊ฐ์ฌํฉ๋๋ค!
๋ฆฌ๋ ์ค์ ์ญ์ฌ
www.fun-coding.org/linux_basic1.html
๋ฆฌ๋ ์ค์ ์ ๋์ค์ ์ฐจ์ด
์ฌ๋ฌ๊ฐ์ง ์ ์ข ๋ฅ ์ ๋ฆฌ
www.fun-coding.org/linux_basic2.html
-> ์ ๋ด์ฉ๋ค์ ์ค๋ ํธ๋ ์ค ์์ ์ ๋ฃ๊ณ ๋ฐ๋ก ํฌ์คํ ํจ.
์ ์คํฌ๋ฆฝํธ ๊ฐ๋ , ๋ฌธ๋ฒ
www.fun-coding.org/linux_basic3.html ์ ๋ณด๋ฉฐ ์ ๋ฆฌ. ๊ฐ์ฌํฉ๋๋ค.
์ ธ ์คํฌ๋ฆฝํธ Shell Script ๋?
: ์
ธ์ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ ํ์ฉํด ๋ง๋ ์
ธ ํ๋ก๊ทธ๋จ.
- ์ฃผ๋ก ํ๋ก๊ทธ๋จ ์คํ / ํ์ผ ์ด์ฉ / ๋ฌธ์์ด ์ถ๋ ฅ ์ ์ํด ์ฌ์ฉํจ.
- ์๋ฒ ์์
์๋ํ๋ฅผ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก ์ตํ๋์ด์ผ ํจ.
- ์
ธ ๊ธฐ๋ณธ ๋ช
๋ น์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ช ๊ฐ์ง ๋ฌธ๋ฒ์ด ์ถ๊ฐ๋๋ ํํ๋ก, ์ผ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ธ์ด๋ณด๋ค ๊ฐ๋จํจ.
๊ธฐ๋ณธ ๋ฌธ๋ฒ
- ์
ธ ์คํฌ๋ฆฝํธ๋ 'ํ์ผ์ด๋ฆ.sh'์ ๊ฐ์ ํ์ผ๋ก ์์ฑ ํ ๊ทธ ํ์ผ์ ์คํํ๋ค.
(๋ฐ๋ผ์ ์
ธ์คํฌ๋ฆฝํธ ํ์ผ์ ์คํ ๊ถํ์ ๋ถ์ฌํด์ผ ํจ)
- ํ์ผ ๋งจ ์์ค์ ๋ฐ๋์ #! /bin/bash ์ฌ์ผ ํ๋ค.
echo
: ์ถ๋ ฅ๋ฌธ. print()์ ๊ฐ๋ค.
#
: ์ฃผ์์ฒ๋ฆฌ
๋ณ์
๋ณ์๋ช =๋ฐ์ดํฐ
: ๋ณ์ ์ ์ธ
(๋์ด์ฐ๊ธฐ๋ ํ์ฉ๋์ง ์์)
$๋ณ์๋ช
: ๋ณ์ ์ง์
๋ฐฐ์ด (๋ฆฌ์คํธ ๋ณ์)
๋ฐฐ์ด์ด๋ฆ=(๋ฐ์ดํฐ1 ๋ฐ์ดํฐ2 ..)
: ๋ฐฐ์ด(๋ฆฌ์คํธ ๋ณ์) ์ ์ธ.
${๋ฐฐ์ด์ด๋ฆ[์ธ๋ฑ์ค]}
: ๋ฐฐ์ด ์ฌ์ฉ
์ฐ์ฐ์
`expr ์์`
: ์ซ์ ๊ณ์ฐ
expr๋ฌธ์ฅ์ ๋ฐฑํฑ` ์ผ๋ก ๊ฐ์ธ์ผ ํจ
์์ ๋ด์์ ์ฐ์ฐ์ +-*/์ ๊ดํธ() ์์๋ \(์ญ์ฌ๋์) ๋ฅผ ๋ฃ์ด์ผ ํจ
์์์์ ์ฐ์ฐ์, ์ซ์, ๋ณ์, ๊ธฐํธ ์ฌ์ด์๋ space๋ฅผ ๋ฃ์ด์ผ ํจ
์กฐ๊ฑด๋ฌธ
-if ๋ฌธ
if [ ์กฐ๊ฑด ]
then
์คํ๊ตฌ๋ฌธ
fi
- if else ๋ฌธ
if [ ์กฐ๊ฑด ]
then
์คํ๊ตฌ๋ฌธ
else
์คํ๊ตฌ๋ฌธ
fi
if [ ์กฐ๊ฑด ]; then ์คํ๊ตฌ๋ฌธ; fi # ํ ์ค๋ก ์์ฑํ๋ ๊ฒฝ์ฐ.
* if ์กฐ๊ฑด๋ฌธ [ ] ์์ &&, ||, <, > ์ฐ์ฐ์๊ฐ ์๋ฌ๊ฐ ๋๋ ๊ฒฝ์ฐ
: [ ] ๋์ [[ ]] ๋ฅผ ์ฌ์ฉ.
๋ฐ๋ณต๋ฌธ
- for ๊ตฌ๋ฌธ
for ์์๋ณ์๋ช in ๋ณ์๊ฐ1 ๋ณ์๊ฐ2 .. (๋๋ $๋ฐฐ์ด๋ช )
do
์คํ๊ตฌ๋ฌธ
done
for ์์๋ณ์๋ช in ๋ณ์๊ฐ๋ค; do ์คํ๊ตฌ๋ฌธ; done # ํ ์ค๋ก ์์ฑํ๋ ๊ฒฝ์ฐ.
- while ๊ตฌ๋ฌธ
while [ ์กฐ๊ฑด๋ฌธ ]
do
์คํ๊ตฌ๋ฌธ
done
๋ฆฌ๋ ์ค ํ์ผ ์์ถ(zip)
araikuma.tistory.com/120 ๊ฐ์ฌํฉ๋๋ค.
zip ์์ถํ์ผ๋ช .zip ์์ถํ ํ์ผ1 ์์ถํ ํ์ผ2 ..
: ํ์ผ ์์ถํ๊ธฐ.
์์ถํ ํ์ผ1 2 .. ๋ฅผ ์์ถํ์ผ๋ช ์ผ๋ก ์์ถ. (zip๋ฐฉ์)
zip ์์ถํ์ผ๋ช .zip ./*
: ํน์ ๋๋ ํ ๋ฆฌ์ ๋ชจ๋ ํ์ผ ์์ถ
๋ฆฌ๋ ์ค ํ์ผ ์ ์ก(scp)
jink1982.tistory.com/58 ๊ฐ์ฌํฉ๋๋ค.
scp ์ ์กํ ํ์ผ๋ช ๊ณ์ ์ด๋ฆ@์ ์กํ ์๋ฒip๋๋ํธ์คํธ๋ช :๋ฐ์ํ์ผ์์น
๊ทธ ์ธ ์ค๋ ์ฌ์ฉํ ๋ช ๋ น์ด, ์กฐ์๋ฒ ์ ๋ฆฌ
ssh ์ ์ name@127.0.0.1
: ํฐ๋ฏธ๋์์ ssh๋ก ๋ด ๊ฐ์ํ๊ฒฝ์ ์ ์
ํฐ๋ฏธ๋์์ ์ฒซ ๊ธ์๋ง ์ ๊ณ Tabํค - ๊ทธ ๊ธ์๋ก ์์ํ๊ฑฐ๋ ๊ทธ ๊ธ์์ ๊ฐ๊น์ด ๋ช ๋ น์ด ์๋์์ฑ ํด ์ฃผ๋ ๊ธฐ๋ฅ.
$ dpkg-reconfigure tzdata
: ์๊ฐ๋ ์ค์ ํ๋ ๋ช ๋ น์ด