2025-09-16 13:38:01
๋ฐ˜์‘ํ˜•

๐Ÿš ๋ฆฌ๋ˆ…์Šค ์…ธ ์‚ฌ์šฉํ•˜๊ธฐ ์ •๋ฆฌ

1๏ธโƒฃ ์…ธ ๊ธฐ๋ณธ

  • ์…ธ(Shell): ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ช…๋ น์„ ํ•ด์„ํ•ด์„œ ์šด์˜์ฒด์ œ(OS)์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋ฒˆ์—ญ๊ธฐ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ
  • ์ข…๋ฅ˜: sh, bash, csh, ksh ๋“ฑ
  • ๊ธฐ๋ณธ ํ”„๋กฌํ”„ํŠธ ๊ธฐํ˜ธ:
    • $ → ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž
    • # → ๊ด€๋ฆฌ์ž(root)
    • % → csh ๊ฐ™์€ ์…ธ

๐Ÿ‘‰ ๊ธฐ๋ณธ ์…ธ ๋ฐ”๊พธ๊ธฐ

 
chsh -s /bin/bash # ๊ธฐ๋ณธ ์…ธ์„ bash๋กœ ๋ณ€๊ฒฝ

2๏ธโƒฃ ์…ธ ์‚ฌ์šฉ๋ฒ•

๐Ÿ“Œ ์ถœ๋ ฅ ๋ช…๋ น

 
echo"Hello"# ํ™”๋ฉด์— ๊ธ€์ž ์ถœ๋ ฅprintf"Hi\n"# ์ค„๋ฐ”๊ฟˆ ํฌํ•จํ•ด์„œ ์ถœ๋ ฅ

๐Ÿ“Œ ํŠน์ˆ˜๋ฌธ์ž

  • * : ๋ชจ๋“  ํŒŒ์ผ
  • ? : ํ•œ ๊ธ€์ž ๋Œ€์ฒด
  • [] : ํŠน์ • ๋ฌธ์ž ์ง‘ํ•ฉ
  • ~ : ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ
  • ; : ์—ฌ๋Ÿฌ ๋ช…๋ น ์—ฐ์† ์‹คํ–‰
  • | : ์•ž ๊ฒฐ๊ณผ → ๋’ค ๋ช…๋ น ์ž…๋ ฅ

๐Ÿ“Œ ๋ฆฌ๋‹ค์ด๋ ‰์…˜

 
ls > file.txt # ๋ช…๋ น์–ด ๊ฒฐ๊ณผ๋ฅผ file.txt์— ์ €์žฅ (๋ฎ์–ด์“ฐ๊ธฐ)
ls >> file.txt # ๋ช…๋ น์–ด ๊ฒฐ๊ณผ๋ฅผ file.txt ๋์— ์ถ”๊ฐ€
cat < file.txt # file.txt ๋‚ด์šฉ์„ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ
ls not_exist 2> error.log # ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋งŒ error.log์— ์ €์žฅ
 

3๏ธโƒฃ ์…ธ ํ™˜๊ฒฝ

๐Ÿงฉ ํ™˜๊ฒฝ ๋ณ€์ˆ˜

SOME=testecho$SOME# ๋ณ€์ˆ˜ ๊ฐ’ ์ถœ๋ ฅ → test bash -c 'echo "child:$SOME"'# ์ „ํŒŒ ์•ˆ ๋จ
export SOME # ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ๋“ฑ๋ก bash -c 'echo "child:$SOME"'# ์ „ํŒŒ ๋จ

๐Ÿงน ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ•ด์ œ

 
export SOME1=hello env | grep SOME1 # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ™•์ธ export -n SOME1 # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์†์„ฑ๋งŒ ์ œ๊ฑฐ unset SOME1 # ๋ณ€์ˆ˜ ์™„์ „ํžˆ ์‚ญ์ œ

4๏ธโƒฃ alias (์ž์ฃผ ์“ฐ๋Š” ๋ช…๋ น์–ด ๋‹จ์ถ•ํ‚ค)

alias ll='ls -lF --color=auto'# ํŒŒ์ผ ๋ชฉ๋ก ์ž์„ธํžˆ ๋ณด๊ธฐ
alias la='ls -A'# ์ˆจ๊น€ ํŒŒ์ผ๊นŒ์ง€ ๋ณด๊ธฐ
alias ..='cd ..'# ์ƒ์œ„ ํด๋”๋กœ ์ด๋™
aliasrm='rm -i'# ์‚ญ์ œํ•  ๋•Œ ํ™•์ธ ์งˆ๋ฌธ
alias grep='grep --color=auto'# grep ๊ฒฐ๊ณผ ์ƒ‰์ƒ ๊ฐ•์กฐ
aliasdf='df -h'# ๋””์Šคํฌ ์šฉ๋Ÿ‰ ๋ณด๊ธฐ
alias myip='curl ifconfig.me'# ์™ธ๋ถ€ IP ํ™•์ธ

๐Ÿ‘‰ ํ˜„์—…์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ์“ฐ๋Š” ๊ฒƒ

  • ll, la → ํŒŒ์ผ ํ™•์ธ
  • .., ... → ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™
  • rm -i, cp -i, mv -i → ์‹ค์ˆ˜ ๋ฐฉ์ง€ (์ค‘์š” ํŒŒ์ผ ๋‚ ๋ฆฌ์ง€ ์•Š๋„๋ก)
  • grep --color → ๋กœ๊ทธ ๋ถ„์„ํ•  ๋•Œ ํ•„์ˆ˜
  • df -h, du -h → ์„œ๋ฒ„ ๋””์Šคํฌ ์šฉ๋Ÿ‰ ํ™•์ธ
  • myip → ์„œ๋ฒ„ ์™ธ๋ถ€ IP ํ™•์ธ

5๏ธโƒฃ ํ•จ์ˆ˜(Function)

 
function cdpwd { if [ -z "$1" ]; then# ์ธ์ž๊ฐ€ ์—†์œผ๋ฉดecho"Usage: cdpwd <dir>"# ์‚ฌ์šฉ๋ฒ• ์ถœ๋ ฅreturn 1 # ์—๋Ÿฌ ์ฝ”๋“œ ๋ฐ˜ํ™˜ficd"$1" && pwd# ํ•ด๋‹น ํด๋”๋กœ ์ด๋™ํ•˜๊ณ  ํ˜„์žฌ ๊ฒฝ๋กœ ์ถœ๋ ฅ }

๐Ÿ‘‰ cdpwd /tmp → /tmp๋กœ ์ด๋™ํ•˜๋ฉด์„œ ๊ฒฝ๋กœ๊นŒ์ง€ ํ™•์ธ


6๏ธโƒฃ ํžˆ์Šคํ† ๋ฆฌ ํ™œ์šฉ

 
history | tail# ์ตœ๊ทผ ์‚ฌ์šฉํ•œ ๋ช…๋ น์–ด ๋ณด๊ธฐ !! # ๋งˆ์ง€๋ง‰ ๋ช…๋ น์–ด ๋‹ค์‹œ ์‹คํ–‰ !5 # ํžˆ์Šคํ† ๋ฆฌ์—์„œ 5๋ฒˆ ๋ช…๋ น์–ด ์‹คํ–‰

๐Ÿ‘‰ ํ˜„์—…์—์„œ๋Š” history | grep ssh ๊ฐ™์€ ์‹์œผ๋กœ, ๊ณผ๊ฑฐ์— ์“ด ๋ช…๋ น์–ด ์ฐพ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ


7๏ธโƒฃ ํ”„๋กฌํ”„ํŠธ (PS1) ๊พธ๋ฏธ๊ธฐ

 
echo"$PS1" # ํ˜„์žฌ ํ”„๋กฌํ”„ํŠธ ํ™•์ธ
PS1=
'[${USER} ${PWD}] $ '# ์‚ฌ์šฉ์ž + ๊ฒฝ๋กœ ํ‘œ์‹œ
PS1=
'\u@\h \w\$ '# ์‚ฌ์šฉ์ž@ํ˜ธ์ŠคํŠธ ๊ฒฝ๋กœ $
PS1=
"\e[34;1m\u@\h \w \$ \e[0m"# ํŒŒ๋ž€์ƒ‰, ๋ณผ๋“œ์ฒด

๐Ÿ‘‰ ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๋•Œ ํ”„๋กฌํ”„ํŠธ ์ƒ‰์ƒ ๋‹ค๋ฅด๊ฒŒ ํ•ด๋‘๋ฉด ์‹ค์ˆ˜ ์ค„์ผ ์ˆ˜ ์žˆ์Œ (์˜ˆ: ์šด์˜์„œ๋ฒ„ ๋นจ๊ฐ„์ƒ‰, ํ…Œ์ŠคํŠธ์„œ๋ฒ„ ์ดˆ๋ก์ƒ‰)


๐Ÿ“Š ์ „์ฒด ํ๋ฆ„ (Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ)

 

 


๐ŸŽฏ ์ •๋ฆฌ

  • ์…ธ = "์ปดํ“จํ„ฐ์—๊ฒŒ ๋ช…๋ น ๋‚ด๋ฆฌ๋Š” ๋ฒˆ์—ญ๊ธฐ"
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ = "์ปดํ“จํ„ฐ์— ๋ฉ”๋ชจํ•ด๋‘” ๊ฐ’"
  • alias = "๋ช…๋ น์–ด ๋‹จ์ถ•ํ‚ค"
  • ๋ฆฌ๋‹ค์ด๋ ‰์…˜/ํŒŒ์ดํ”„ = "๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ๋ช…๋ น์–ด์— ์ „๋‹ฌ"
  • PS1 = "ํ”„๋กฌํ”„ํŠธ ๊พธ๋ฏธ๊ธฐ"
  • ํ˜„์—…์—์„œ ํ•„์ˆ˜ = alias rm='rm -i', grep --color, df -h, myip
๋ฐ˜์‘ํ˜•