DrawingProcess
๋“œํ”„ DrawingProcess
DrawingProcess
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
ยซ   2025/06   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (968) N
    • Profile & Branding (25)
      • Career (18)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (98) N
      • Book (67) N
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • ์ธ์ƒ์„ ์‚ด๋ฉด์„œ (64)
      • ๋‚˜์˜ ์ทจ๋ฏธ๋“ค (7)
      • ๋‚˜์˜ ์ƒ๊ฐ๋“ค (42)
      • ์—ฌํ–‰์„ ๋– ๋‚˜์ž~ (10)
      • ๋ถ„๊ธฐ๋ณ„ ํšŒ๊ณ  (5)

๊ฐœ๋ฐœ์ž ๋ช…์–ธ

โ€œ ๋งค์ฃผ ๋ชฉ์š”์ผ๋งˆ๋‹ค ๋‹น์‹ ์ด ํ•ญ์ƒ ํ•˜๋˜๋Œ€๋กœ ์‹ ๋ฐœ๋ˆ์„ ๋ฌถ์œผ๋ฉด ์‹ ๋ฐœ์ด ํญ๋ฐœํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ผ.
์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ด๋Ÿฐ ์ผ์ด ํ•ญ์ƒ ์ผ์–ด๋‚˜๋Š”๋ฐ๋„ ์•„๋ฌด๋„ ๋ถˆํ‰ํ•  ์ƒ๊ฐ์„ ์•ˆ ํ•œ๋‹ค. โ€

- Jef Raskin

๋งฅ์˜ ์•„๋ฒ„์ง€ - ์• ํ”Œ์ปดํ“จํ„ฐ์˜ ๋งคํ‚จํ† ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฃผ๋„

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
DrawingProcess

๋“œํ”„ DrawingProcess

[OS] ์‰˜(Shell) ๊ธฐ๋ณธ ๋ฌธ๋ฒ•: bash shell
Study: ComputerScience(CS)/CS: OperatingSystem

[OS] ์‰˜(Shell) ๊ธฐ๋ณธ ๋ฌธ๋ฒ•: bash shell

2023. 1. 22. 17:44
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” '์‰˜(Shell) ๊ธฐ๋ณธ ๋ฌธ๋ฒ•: bash shell'์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
์‰ด ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ์‹œ ํ•„์š”ํ•œ shell ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ๋ฐ ์‰ด ์„ค์ • ํŒ๊นŒ์ง€ ์ •๋ฆฌํ•˜์˜€์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1. ์‰˜(Shell) ๊ธฐ๋ณธ ๋ฌธ๋ฒ•: bash shell

Shell์€ ์ธํ„ฐ๋ ‰ํ‹ฐ๋ธŒํ•˜๊ฒŒ ๋Œ€ํ™”์‹์œผ๋กœ CMD์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜์—ฌ *.sh ์‹คํ–‰ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ๋…ผ ์ธํ„ฐ๋ ‰ํ‹ฐ๋ธŒํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

1. ์ตœ์ƒ๋‹จ์— #!/bin/bash ์ถ”๊ฐ€

- shํŒŒ์ผ์„ ์ž‘์„ฑํ• ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์ตœ์ƒ๋‹จ์—  #!/bin/bash ๊ธฐ๋กํ•ด์ค˜์•ผ ํ•ด๋‹น Shell์„ ํ†ตํ•ด ์‹คํ–‰ํ•œ๋‹ค.

2. Shell ํŒŒ์ผ ์‹คํ–‰ ๋ฐฉ๋ฒ• ( ./ )

- sh / source / . ๋“ฑ์„ ์ด์šฉํ•ด์„œ ์‹คํ–‰ํ•˜๋ฉด ๊ถŒํ•œ์ด ์—†์–ด๋„ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ./ ๋กœ๋Š” ๊ถŒํ•œ์—†์ด ์ˆ˜ํ–‰์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค

sh ํŒŒ์ผ๋ช….sh 

. ํŒŒ์ผ๋ช….sh   

source ํŒŒ์ผ๋ช….sh    

./ํŒŒ์ผ๋ช….sh  # ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ถŒํ•œ์ด ์—†๋Š” ํŒŒ์ผ์€ ์ˆ˜ํ–‰์‹œํ‚ฌ์ˆ˜ ์—†๋‹ค.

3. ์ฃผ์„์€ #์„ ์ด์šฉํ•œ๋‹ค.

4. ์ถœ๋ ฅ์€ echo,  printf, read(C์—์„œ Scanf์™€ ๊ฐ™์Œ, ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆผ) ๋“ฑ์„ ์ด์šฉํ•œ๋‹ค 

#!/bin/bash
a=10
echo "hi echo ์ž๋™๊ฐœํ–‰์ด๋˜๋Š”๊ตฌ๋‚˜$a"
printf "hi printf ๊ฐœํ–‰์„ ํ•ด์ค˜์•ผํ•˜๋Š”๊ตฌ๋‚˜ %d\n" $a

5. if ๋ธ”๋ก์€ fi๋กœ ๋๋‚œ๋‹ค.

#!/bin/bash
num=7
if (( ${num} == 7 )); then
        echo "equal!"
else
        echo "non equal"
fi
๋น„๊ต ์—ฐ์‚ฐ์ž ์˜๋ฏธ
-eq ๊ฐ™์Œ
-ne ๊ฐ™์ง€ ์•Š์Œ
-gt ๋” ํผ
-ge ํฌ๊ฑฐ๋‚˜ ๊ฐ™์Œ
-lt ๋” ์ž‘์Œ
-le ๋” ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ
-z ๋ฌธ์ž์—ด์ด null์ธ๊ฐ€?
-n ๋ฌธ์ž์—ด์ด null์ด ์•„๋‹˜
-a ๋…ผ๋ฆฌ and
-o ๋…ผ๋ฆฌ or

6. for๋ฌธ์€ do ๋ฐ˜๋ณต์ˆ˜ํ–‰๋ฌธ, done์œผ๋กœ ๋๋‚œ๋‹ค

arr=("a" "b" "c" "ddd") # ๋ฐฐ์—ด๋ณ€์ˆ˜ ์„ ์–ธ , ๋„์–ด์“ฐ๊ธฐ ์ฃผ์˜

for x in ${arr[@]}; do 	# arr์— @๋Š” ๋ชจ๋“  ์›์†Œ๋ฅผ ์˜๋ฏธ, i๋กœ ๋ฐ›์•„์˜ด
	echo $x
done

7. ๋ณ€์ˆ˜์— ํƒ€์ž…์€ ์—†์œผ๋ฉฐ, ์„ ์–ธ์„ ์ œ์™ธํ•˜๊ณ  ์‚ฌ์šฉ์‹œ $๋ฅผ ๋ถ™์ธ๋‹ค.

8. ๊ธฐ๋ณธ๋ณ€์ˆ˜๋Š” $$ (ํ”„๋กœ์„ธ์ŠคID),$0 (์‹คํ–‰ ํŒŒ์ผ๋ช…), $# (ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐฏ์ˆ˜)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

#!/bin/bash
echo "๊ธฐ๋ณธ๋ณ€์ˆ˜ "
echo "\$$ : " $$
echo "\$0 : " $0
echo "\$# : " $#

9. ์‹คํ–‰์‹œ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ $1 ~ $999 ๊นŒ์ง€ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋ฉฐ, $* , $@์„ ํ†ตํ•ด ํ•œ๋ฒˆ์— ๋ฐ›์„์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

10. ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž๋Š” expr ๋’ค์— ํ‘œํ˜„ํ•˜๋ฉฐ, `๋กœ ๊ฐ์‹ธ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

#!/bin/bash
a=$1
b=$2
c=$3
echo $1
echo b + c = `expr $b + $c` # `์ด๊ฑฐ๋กœ ๊ฐ์‹ธ์ค˜์•ผ ์—ฐ์‚ฐ์ด ๋จ
echo "\$@ :"$@
echo "\$* :"$*

2. ์‰˜(Shell) ํ”„๋กฌํ”„ํŠธ ์„ค์ •: bash shell

ํ”„๋กฌํ”„ํŠธ๋Š” ์ปค๋ฉ˜๋“œ์ƒ์—์„œ ์ž…๋ ฅ์ค„์— ํ‘œ์‹œ๋˜๋Š” ๊ธฐ๋ณธ์ •๋ณด ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

https://bangu4.tistory.com/242

  • ์„ค์ •์€ ์‚ฌ์šฉ์ž๋ณ„๋กœ ~/.bashrc์—์„œ $PS1 , $PS2() ๋ณ€์ˆ˜์— ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋“ ๊ณ„์ •์— ๋Œ€ํ•œ ์„ค์ •์€ /etc/bashrc ๋˜๋Š” /etc/profile.d/prompt.sh ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กฌํ”„ํŠธ์— ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

2.1 ํ”„๋กฌํ”„ํŠธ ์˜ต์…˜

\t 24์‹œ๊ฐ„์˜ ๋‹จ์œ„๋กœ ํ˜„์žฌ์‹œ๊ฐ์„ HH:MM:SS ๋กœ ํ‘œ์‹œ
\T 12์‹œ๊ฐ„์˜ ๋‹จ์œ„๋กœ ํ˜„์žฌ์‹œ๊ฐ์„ HH:MM:SS ๋กœ ํ‘œ์‹œ
\@ 12์‹œ๊ฐ„์˜ ๋‹จ์œ„๋กœ ํ˜„์žฌ์‹œ๊ฐ์„ ์˜ค์ „/์˜คํ›„ ๋กœ ํ‘œ์‹œ
\d ํ˜„์žฌ ๋‚ ์งœ๋ฅผ ๋‚˜ํƒ€๋ƒ„. ์š”์ผ, ์›”, ์ผ ํ˜•์‹์œผ๋กœ
\s ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ ์‰˜์˜ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋ƒ„ (C์‰˜์ด๋ฉด /bin/csh, bash์‰˜์ด๋ฉด /bin/bash)
\w ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ „์ฒด ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ํ‘œ์‹œํ•จ
\W ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ „์ฒด ์ ˆ๋Œ€๊ฒฝ๋กœ๋ช… ์ค‘ ๋งˆ์ง€๋ง‰ ๋””๋ ‰ํ† ๋ฆฌ๋ช…๋งŒ์„ ํ‘œ์‹œํ•จ. ์ฆ‰ ํ˜„์žฌ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ํ‘œ์‹œํ•จ
\u ์‚ฌ์šฉ์ž๋ช…์„ ํ‘œ์‹œํ•จ
\h ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ๋ช…์„ ํ‘œ์‹œํ•จ (www.uzuro.com์—์„œ www ๋ถ€๋ถ„)
\H ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ๋ช…์„ ํ‘œ์‹œํ•จ (www.uzuro.com์—์„œ uzuro.com ๋ถ€๋ถ„)
\# ์ ‘์†ํ•œ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์‚ฌ์šฉํ•œ ๋ช…๋ น์–ด์˜ ๋ฒˆํ˜ธ๋ฅผ 1๋ฒˆ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ํ‘œ์‹œํ•จ
\! ์‚ฌ์šฉํ•œ ๋ช…๋ น์–ด์˜ history ๋ฒˆํ˜ธ๋ฅผ ํ‘œ์‹œํ•จ
\\$ ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ root(uid ๊ฐ€ 0 )์ด๋ฉด # ์„ ํ‘œ์‹œํ•˜๊ณ  ์•„๋‹ˆ๋ฉด $ ๋ฅผ ํ‘œ์‹œํ•จ
\\ '\' ๋ฌธ์ž ์ž์ฒด๋ฅผ ํ‘œ์‹œํ•จ
\a ASCII ์ข…์†Œ๋ฆฌ ๋ฌธ์ž (07)
\e ASCII ์˜ escape ๋ฌธ์ž (033)
\n ๊ฐœํ–‰๋ฌธ์ž (์ค„๋ฐ”๊ฟˆ)
\v ์‚ฌ์šฉ์ค‘์ธ bash ์˜ ๋ฒ„์ „
\V ์‚ฌ์šฉ์ค‘์ธ bash ์˜ ๋ฐฐํฌ, ๋ฒ„์ „+ํŒจ์น˜์ˆ˜์ค€์œผ๋กœ ๋ฒ„์ „์„ ์ƒ์„ธํžˆ ํ‘œ์‹œํ•จ
\r Carrage retrun
\nnn 8์ง„์ˆ˜ nnn ์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž

์‚ฌ์šฉ์ž์ด๋ฆ„(\u), @ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ(\W) ๋งŒ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

export PS1="\u@\h@\W $ "
<์‚ฌ์šฉ์ž๋ช…>@<์„œ๋ฒ„ํ˜ธ์ŠคํŠธ๋ช…>@<ํ˜„์žฌ๋””๋ ‰ํ† ๋ฆฌ> $

2.2 ํ”„๋กฌํ”„ํŠธ ์ƒ‰์ƒ ์„ค์ •

2.2.1 ํ”„๋กฌํ”„ํŠธ ์ƒ‰์ƒ ์ฝ”๋“œ

2.2.2 ํ”„๋กฌํ”„ํŠธ ๋ณ€์ˆ˜ ์„ค์ • ์˜ˆ์‹œ

// Cyan, Green, Yellow ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ƒฅ ํ™”๋ฉด์—์„œ๋Š” ํฐ์ƒ‰์„ ์œ„ํ•ด 0์œผ๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.
export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\h@\[\e[33;1m\]\W >\[\e[0m\]"

์ฐธ๊ณ 

  • [Linux] Bash Shell ์„ค์ •๊ณผ ๋ฌธ๋ฒ•์ •๋ฆฌ: https://bangu4.tistory.com/242  
๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Study: ComputerScience(CS) > CS: OperatingSystem' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[OS] ๋ฆฌ๋ˆ…์Šค ๊ตฌ์กฐ: ์ปค๋„(Kernel), ์‰˜(Shell), ํ”„๋กœ์„ธ์Šค(Process), ์‰˜ ์„ธ์…˜(Shell Session)  (0) 2022.07.25
[OS] ๋ฆฌ๋ˆ…์Šค์˜ ์‰˜(Shell)๊ณผ ์„ค์ • ํŒŒ์ผ ์ ์šฉ ์ˆœ์„œ(feat. bash, zsh, ...)  (0) 2022.07.23
    'Study: ComputerScience(CS)/CS: OperatingSystem' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [OS] ๋ฆฌ๋ˆ…์Šค ๊ตฌ์กฐ: ์ปค๋„(Kernel), ์‰˜(Shell), ํ”„๋กœ์„ธ์Šค(Process), ์‰˜ ์„ธ์…˜(Shell Session)
    • [OS] ๋ฆฌ๋ˆ…์Šค์˜ ์‰˜(Shell)๊ณผ ์„ค์ • ํŒŒ์ผ ์ ์šฉ ์ˆœ์„œ(feat. bash, zsh, ...)
    DrawingProcess
    DrawingProcess
    ๊ณผ์ •์„ ๊ทธ๋ฆฌ์ž!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”