Bibi's DevLog ๐Ÿค“๐ŸŽ

[TIL - Codesquad] ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ณธ ๋ช…๋ น์–ด์™€ ์‰˜ ์Šคํฌ๋ฆฝํŠธ ๋ณธ๋ฌธ

TIL

[TIL - Codesquad] ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ณธ ๋ช…๋ น์–ด์™€ ์‰˜ ์Šคํฌ๋ฆฝํŠธ

๋น„๋น„ bibi 2021. 1. 8. 22:57

์˜ค๋Š˜ ํ•œ ์ผ

- ์˜ค๋Š˜์€ ์‰˜ ์Šคํฌ๋ฆฝํŠธ ๋ช…๋ น์–ด๋ฅผ ๋‚˜๋ฆ„๋Œ€๋กœ ๊ณต๋ถ€, ์‹ค์Šตํ–ˆ๋‹ค.
- ๊ทธ๋Ÿฌ๋‚˜ ๋งค์ผ ์ž๋ฐ”๋งŒ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ์“ฐ๋ ค๋‹ˆ ๋ฌธ๋ฒ•์ด ๋„ˆ๋ฌด ์ƒ์†Œํ•˜๊ณ (ํŠนํžˆ ๋ณ€์ˆ˜..)
- ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งœ์•ผ ์กฐ๊ฑด์— ๋งž๋Š” ๋™์ž‘์„ ํ•˜๋Š”์ง€ ๊ฐ์ด ์•ˆ ์˜ค๊ณ , ๊ณ„์† ์—๋Ÿฌ๋Š” ๋œจ๋Š”๋ฐ, ๋ฏธ์…˜ ์ œ์ถœ ์‹œ๊ฐ„์ด ๋‹ค๊ฐ€์™€์„œ
- ๊ฒฐ๊ตญ ์šฐ๋ฆฌ ๊ทธ๋ฃน์˜ ์ง€์‹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

๋ฆฌ๋ˆ…์Šค์™€ ์œ ๋‹‰์Šค์˜ ์ฐจ์ด

pante.blog/481

์—ฌ๋Ÿฌ๊ฐ€์ง€ ์‰˜ ์ข…๋ฅ˜ ์ •๋ฆฌ

www.fun-coding.org/linux_basic2.html

jhnyang.tistory.com/57

-> ์œ„ ๋‚ด์šฉ๋“ค์€ ์˜ค๋Š˜ ํ˜ธ๋ˆ…์Šค ์ˆ˜์—…์„ ๋“ฃ๊ณ  ๋”ฐ๋กœ ํฌ์ŠคํŒ…ํ•จ. 


์‰˜ ์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋…, ๋ฌธ๋ฒ•

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 
: ์‹œ๊ฐ„๋Œ€ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด