Search

Shell Script

Date
2024/12/03
Category
Devops
Tag
Linux
๋ชฉ์ฐจ

Shell Script

.sh ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ํŒŒ์ผ๋กœ, ๋‚ด๋ถ€์— ์…ธ์ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น๊ณผ ๊ธฐ๋Šฅ์„ ์ •์˜ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ
โ€ข
์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ์ฒซ ์ค„์— ์…”๋ฑ…(Shebang) #!/bin/bash๋ฅผ ์„ ์–ธํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ bash ์…ธ์—์„œ ์‹คํ–‰๋จ์„ ๋ช…์‹œ
โ€ข
์…ธ ์‹คํ–‰
โ—ฆ
bash bash.sh
โ–ช
์„œ๋ธŒ์…ธ์—์„œ ์‹คํ–‰
โ–ช
๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋Š” ์„œ๋ธŒ์…ธ์—์„œ๋งŒ ์œ ํšจ
โ—ฆ
. bash.sh
โ–ช
ํ˜„์žฌ ์…ธ์—์„œ ์‹คํ–‰
โ–ช
๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๊ฐ€ ํ˜„์žฌ ์…ธ์— ๋‚จ์•„ ์žˆ์Œ
โ—ฆ
./bash.sh
โ–ช
์‹คํ–‰ ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์„œ๋ธŒ์…ธ์—์„œ ์‹คํ–‰
โ–ช
์Šคํฌ๋ฆฝํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์— ๋”ฐ๋ผ ์‚ฌ์šฉ๋˜๋Š” ์…ธ๋กœ ์‹คํ–‰

๋ณ€์ˆ˜ ์‚ฌ์šฉ

#!/bin/bash name=var echo $name read data # ์ž…๋ ฅ์„ ๋ฐ›์Œ echo $data
Shell
๋ณต์‚ฌ

๋ช…๋ น ์‹คํ–‰

โ€ข
๋ช…๋ น์–ด ๋Œ€์ฒด: ๋ฐฑํ‹ฑ`` ๋˜๋Š” ๋‹ฌ๋Ÿฌ ์‚ฌ์ธ $() ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ์„ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ถœ๋ ฅ
#!/bin/bash data="data" echo `data` # ๋˜๋Š” echo $date
Shell
๋ณต์‚ฌ

ํŒŒ๋ผ๋ฏธํ„ฐ ์ „๋‹ฌ

โ€ข
์Šคํฌ๋ฆฝํŠธ ๋‚ด๋ถ€๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ ์ „๋‹ฌ
โ€ข
ํŒŒ๋ผ๋ฏธํ„ฐ
โ—ฆ
$0: ์Šคํฌ๋ฆฝํŠธ ์ด๋ฆ„
โ—ฆ
$1 ~ $n: ์ „๋‹ฌ๋œ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ
โ—ฆ
$@: ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ
โ—ฆ
$#: ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐœ์ˆ˜
#!/bin/bash echo "file name : $0" echo "1. param $1" echo "2. param $2" echo "all param $@" echo "params count $#" ## ์‹คํ–‰์€ bash pram.sh arg1 arg2 ๋กœ ์‚ฌ์šฉํ•จ. ์ „๋‹ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ๋งŽ์•„๋„ ์‹คํ–‰๋จ
Shell
๋ณต์‚ฌ

์‚ฐ์ˆ  ์—ฐ์‚ฐ

โ€ข
์ด์ค‘ ๊ด„ํ˜ธ (( ))๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฐ์ˆ  ์—ฐ์‚ฐ ์ˆ˜ํ–‰
โ€ข
expr ํ‚ค์›Œ๋“œ + ๋ฐฑํ‹ฑ ``์„ ํ†ตํ•ด ์‚ฐ์ˆ  ์—ฐ์‚ฐ ์ˆ˜ํ–‰
โ—ฆ
๊ณฑ์…ˆ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š” \ ๊ธฐํ˜ธ ์‚ฌ์šฉ \*
#!/bin/bash num1=10 num2=20 echo "result = $(($num1 + $num2))" echo "result = `expr $num1 + $num2`"
Shell
๋ณต์‚ฌ

์กฐ๊ฑด๋ฌธ

#!/bin/bash # ๋‹จ์ผ if [ ์กฐ๊ฑด ] ๋˜๋Š” test ์กฐ๊ฑด; then ์ฐธ์ธ ๊ฒฝ์šฐ ์‹คํ–‰ fi #๋‹ค์ค‘ if [ ์กฐ๊ฑด ] ๋˜๋Š” test ์กฐ๊ฑด; then ์ฐธ์ธ ๊ฒฝ์šฐ ์‹คํ–‰ elif [ ์กฐ๊ฑด ] ๋˜๋Š” test ์กฐ๊ฑด; then ์ฐธ์ธ ๊ฒฝ์šฐ ์‹คํ–‰ else ์กฐ๊ฑด์ด ๋ชจ๋‘ ๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ ์‹คํ–‰ fi
Shell
๋ณต์‚ฌ
โ€ข
์กฐ๊ฑด
๋ฌธ์ž์—ด ๋น„๊ต
์˜๋ฏธ
=
๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์œผ๋ฉด ์ฐธ
!=
๋‘ ๋ฌธ์ž์—ด์ด ๋‹ค๋ฅด๋ฉด ์ฐธ
-n โ€œ๋ฌธ์ž์—ดโ€
๋ฌธ์ž์—ด์ด NULL(๋นˆ ๋ฌธ์ž์—ด)์ด ์•„๋‹ˆ๋ฉด ์ฐธ
-z โ€œ๋ฌธ์ž์—ดโ€
๋ฌธ์ž์—ด์ด NULL(๋นˆ ๋ฌธ์ž์—ด)์ด๋ฉด ์ฐธ
์‚ฐ์ˆ  ๋น„๊ต
์˜๋ฏธ
์ˆ˜์‹1 -eq ์ˆ˜์‹2
๋‘ ์ˆ˜์‹์ด ๊ฐ™์œผ๋ฉด ์ฐธ
์ˆ˜์‹1 -ne ์ˆ˜์‹2
๋‘ ์ˆ˜์‹์ด ๋‹ค๋ฅด๋ฉด ์ฐธ
์ˆ˜์‹1 -gt ์ˆ˜์‹2
์ˆ˜์‹1์ด ํฌ๋ฉด ์ฐธ
์ˆ˜์‹1 -ge ์ˆ˜์‹2
์ˆ˜์‹1์ด ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ์ฐธ
์ˆ˜์‹1 -lt ์ˆ˜์‹2
์ˆ˜์‹ 1์ด ์ ์œผ๋ฉด ์ฐธ
์ˆ˜์‹1 -le ์ˆ˜์‹2
์ˆ˜์‹1์ด ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ์ฐธ
!์ˆ˜์‹
์ˆ˜์‹์ด ๊ฑฐ์ง“์ด๋ฉด ์ฐธ
ํŒŒ์ผ ๊ด€๋ จ
์˜๋ฏธ
-d ํŒŒ์ผ๋ช…
ํŒŒ์ผ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฉด ์ฐธ
-e ํŒŒ์ผ๋ช…
ํŒŒ์ผ์ด ์กด์žฌํ•˜๋ฉด ์ฐธ
-f ํŒŒ์ผ๋ช…
ํŒŒ์ผ์ด ์ผ๋ฐ˜ ํŒŒ์ผ์ด๋ฉด ์ฐธ
-r ํŒŒ์ผ๋ช…
ํŒŒ์ผ์ด ์ฝ๊ธฐ ๊ฐ€๋Šฅํ•˜๋ฉด ์ฐธ
-w ํŒŒ์ผ๋ช…
ํŒŒ์ผ์ด ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•˜๋ฉด ์ฐธ
-x ํŒŒ์ผ๋ช…
ํŒŒ์ผ์ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋ฉด ์ฐธ

๋ฐ˜๋ณต๋ฌธ

for loop

for ๋ณ€์ˆ˜ in [์กฐ๊ฑด] do # ๋ฐ˜๋ณตํ•  ๋ช…๋ น done
Shell
๋ณต์‚ฌ
โ€ข
์กฐ๊ฑด
โ—ฆ
1 2 3 4 5 : ์ž…๋ ฅํ•œ ์ˆœ์„œ๋Œ€๋กœ for๋ฌธ์˜ ๋ณ€์ˆ˜๋กœ ์‹คํ–‰
โ—ฆ
{1..10} : 1๋ถ€ํ„ฐ 10๊นŒ์ง€ ๋ฐ˜๋ณต
โ—ฆ
$(seq 1 10) : 1๋ถ€ํ„ฐ 10๊นŒ์ง€ ๋ฐ˜๋ณต

while loop

while [์กฐ๊ฑด] do # ๋ฐ˜๋ณตํ•  ๋ช…๋ น done
Shell
๋ณต์‚ฌ
โ€ข
์˜ˆ์ œ (1~10 ์ถœ๋ ฅ)
#!/bin/bash for i in $(seq 1 10) do echo "ํ˜„์žฌ ์ˆซ์ž: $i" done count=1 while [ $count -le 10 ] do echo "ํ˜„์žฌ ์นด์šดํŠธ: $count" ((count++)) # ์นด์šดํŠธ๋ฅผ 1 ์ฆ๊ฐ€ done
Shell
๋ณต์‚ฌ

์ œ์–ด

โ€ข
break
โ€ข
continue

๋ฐฐ์—ด

# ์„ ์–ธ arr=("val1" "val2" ... "valn") # ํ• ๋‹น, ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ arr[n]="valn" arr+=("valn") # ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ์ถ”๊ฐ€ unset arr[n] # n๋ฒˆ์งธ ์š”์†Œ ์‚ญ์ œ # ์ถœ๋ ฅ echo ${arr[@]} # ๋ชจ๋“  ์š”์†Œ ์ถœ๋ ฅ echo ${arr[*]} # ๋ชจ๋“  ์š”์†Œ ์ถœ๋ ฅ echo ${arr[n]} # n๋ฒˆ์จฐ ์š”์†Œ ์ถœ๋ ฅ # ๋ฐฐ์—ด ๊ธธ์ด ์ถœ๋ ฅ echo ${#arr[@]}
Shell
๋ณต์‚ฌ

ํ•จ์ˆ˜

โ€ข
์ „์—ญ๋ณ€์ˆ˜ (Global Variable)
โ—ฆ
์Šคํฌ๋ฆฝํŠธ ์ „์ฒด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โ—ฆ
ํ•จ์ˆ˜ ์™ธ๋ถ€์— ์ •์˜
โ€ข
์ง€์—ญ๋ณ€์ˆ˜ (Local Variable)
โ—ฆ
ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โ—ฆ
ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์ •์˜
โ€ข
ํ•จ์ˆ˜ ์„ ์–ธ ์‹œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์„ ์–ธํ•˜์ง€ ์•Š์Œ (function func(param1, param2)์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ–์ง€ ์•Š์Œ)
#!/bin/bash # ์ „์—ญ ๋ณ€์ˆ˜ global_var="I am a global variable" function my_function() { # ๋กœ์ปฌ ๋ณ€์ˆ˜ local local_var="I am a local variable" echo "$global_var" echo "$local_var" } my_function # ๋กœ์ปฌ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๋ถˆ๊ฐ€ echo "$local_var" # ์ถœ๋ ฅ๋˜์ง€ ์•Š์Œ
Shell
๋ณต์‚ฌ
#!/bin/bash greet() { local name=$1 # ์ฒซ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ name ๋ณ€์ˆ˜์— ํ• ๋‹น echo "์•ˆ๋…•ํ•˜์„ธ์š”, $name!" # ์ธ์‚ฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ } # ํ•จ์ˆ˜ ํ˜ธ์ถœ greet "ํ™๊ธธ๋™" # "ํ™๊ธธ๋™"์ด๋ผ๋Š” ์ธ์ž(argument)๋ฅผ ์ „๋‹ฌ # ์—ฌ๋Ÿฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ add_numbers() { local sum=0 # ํ•ฉ๊ณ„๋ฅผ ์ €์žฅํ•  ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™” for number in "$@"; do # ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•ด ๋ฐ˜๋ณต sum=$((sum + number)) # ๊ฐ ์ˆซ์ž๋ฅผ ๋”ํ•จ done echo "ํ•ฉ๊ณ„: $sum" # ์ตœ์ข… ํ•ฉ๊ณ„ ์ถœ๋ ฅ } # ํ•จ์ˆ˜ ํ˜ธ์ถœ add_numbers 1 2 3 4 5 # ์—ฌ๋Ÿฌ ์ˆซ์ž๋ฅผ ์ „๋‹ฌ
Shell
๋ณต์‚ฌ

๋”•์…”๋„ˆ๋ฆฌ

# ์„ ์–ธ declare -A ๋”•์…”๋„ˆ๋ฆฌ๋ช… # ํ• ๋‹น dict['key'] = value # ๊ฐ’ ์กฐํšŒ ${#dict[@]} # ๋”•์…”๋„ˆ๋ฆฌ ์š”์ˆ˜ ๊ฐœ์ˆ˜ ${dict['key']} # ๋”•์…”๋„ˆ๋ฆฌ keyํ•ด๋‹น ๊ฐ’ ${!dict[@]} # ๋”•์…”๋„ˆ๋ฆฌ keys ${dict[@]} # ๋”•์…”๋„ˆ๋ฆฌ values
Shell
๋ณต์‚ฌ
โ€ข
์˜ˆ์ œ
#!/bin/bash # ๋”•์…”๋„ˆ๋ฆฌ ์„ ์–ธ declare -A colors # ๊ฐ’ ํ• ๋‹น colors['red']="๋นจ๊ฐ•" colors['green']="์ดˆ๋ก" colors['blue']="ํŒŒ๋ž‘" # ๋”•์…”๋„ˆ๋ฆฌ์˜ ์š”์†Œ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ echo "๋”•์…”๋„ˆ๋ฆฌ ์š”์†Œ ๊ฐœ์ˆ˜: ${#colors[@]}" # ๋ชจ๋“  ํ‚ค์™€ ๊ฐ’ ์ถœ๋ ฅ echo "๋ชจ๋“  ํ‚ค์™€ ๊ฐ’:" for key in "${!colors[@]}"; do echo "$key: ${colors[$key]}" done # ํŠน์ • ํ‚ค์˜ ๊ฐ’ ์ถœ๋ ฅ echo "red์˜ ๊ฐ’: ${colors['red']}"
Shell
๋ณต์‚ฌ

awk

โ€ข
ํ…์ŠคํŠธ ํŒŒ์ผ์˜ ๊ตฌ์กฐํ™” ๋ฐ ์ฒ˜๋ฆฌ
โ€ข
๋ฐ์ดํ„ฐ ํ•„๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ  ํŒจํ„ด์— ๋งž๊ฒŒ ์ž‘์—… ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ
awk [options] '[pattern] {action}' filename # ์˜ต์…˜ -F fs ํ•„๋“œ ๊ตฌ๋ถ„์ž ์ง€์ • -v var=value ๋ณ€์ˆ˜ var๋ฅผ ๊ฐ’ value๋กœ ์ดˆ๊ธฐํ™” # ํŒจํ„ด ~ ์ผ์น˜ !~ ์ผ์น˜ ํ•˜์ง€ ์•Š๋Š” BEGIN ์ฒซ๋ฒˆ์งธ ๋ ˆ์ฝ”๋“œ ์ฒ˜๋ฆฌ ์ „ BEGIN ์ฒซ๋ฒˆ์งธ ๋ ˆ์ฝ”๋“œ ์ฒ˜๋ฆฌ ํ›„
Shell
๋ณต์‚ฌ
โ€ข
๋‚ด์žฅ ๋ณ€์ˆ˜
FILENAME
์ž…๋ ฅ ํŒŒ์ผ ์ด๋ฆ„
$0
์ž…๋ ฅ ๋ ˆ์ฝ”๋“œ
$n
n๋ฒˆ์งธ ํ•„๋“œ
NR
๋ผ์ธ ์ˆ˜ (์ž๋™์œผ๋กœ 1์”ฉ ์ฆ๊ฐ€)
NF
ํ•„๋“œ ์ˆ˜
FS
ํ•„๋“œ ๊ตฌ๋ถ„์ž (๊ธฐ๋ณธ๊ฐ’ = ๊ณต๋ฐฑ)
RS
๋ ˆ์ฝ”๋“œ ๊ตฌ๋ถ„์ž (๊ธฐ๋ณธ๊ฐ’ = \n)
โ€ข
๋‚ด์žฅ ํ•จ์ˆ˜
length(string)
๋ฌธ์ž์—ด ๊ธธ์ด ๋ฐ˜ํ™˜
substr(string, start, [length])
๋ฌธ์ž์—ด string์˜ start๋ถ€ํ„ฐ length๋งŒํผ ์ถ”์ถœ
index(string, search)
string์˜ search ๋ฌธ์ž์—ด ์‹œ์ž‘์œ„์น˜ ๋ฐ˜ํ™˜
sub(r, s, [t])
์ผ์น˜ํ•˜๋Š” ์ฒซ ๋ฌธ์ž์—ด r์„ ๋ฌธ์ž์—ด s๋กœ ๋Œ€์ฒด
gsub(r, s, [t])
๋ฌธ์ž์—ด r๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ถ€๋ถ„ s๋กœ ๋Œ€์ฒด
int(x)
x์˜ ์ •์ˆ˜ ๋ถ€๋ถ„ ๋ฐ˜ํ™˜
rand()
0๊ณผ 1 ์‚ฌ์ด์˜ ๋‚œ์ˆ˜ ๋ฐ˜ํ™˜
โ€ข
์˜ˆ์ œ
1 coke 1200 DRINK 2 dr.pepper 950 DRINK 3 fanta 1000 DRINK 4 apple 1500 FRUIT
Shell
๋ณต์‚ฌ
# ์ƒํ’ˆ๋ช… ๊ธ€์ž์ˆ˜ ์ถœ๋ ฅ awk '{ print $2, length($2) }' products # APPLE -> BANANA ๋ณ€๊ฒฝ awk '{ gsub(/apple/, "banana", $0); print }' products # ์ƒํ’ˆ๋ช…, ์นดํ…Œ๊ณ ๋ฆฌ๋งŒ ์ถœ๋ ฅ awk '{ print $2, $4 }' products # ์ƒํ’ˆ ์ด ํ•ฉ๊ณ„ ๊ธˆ์•ก ์ถœ๋ ฅ awk '{ sum += $3 } END { print "์ด ๊ธˆ์•ก:", sum }' products # ์ƒํ’ˆ ํ‰๊ท  ๊ธˆ์•ก ์ถœ๋ ฅ awk '{ sum += $3; count++ } END { print "ํ‰๊ท  ๊ธˆ์•ก:", sum/count }' products
Shell
๋ณต์‚ฌ

sed

โ€ข
๋น„๋Œ€ํ™”ํ˜• ์ŠคํŠธ๋ฆฌ๋ฐ ํŽธ์ง‘๊ธฐ (Stream Editor)
โ€ข
ํ…์ŠคํŠธ ๋˜๋Š” ํŒŒ์ผ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐ ๋ณ€ํ™˜ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ
sed [options] '๋ช…๋ น์–ด' filename # ์˜ต์…˜ -i ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ • -n ํŒจํ„ด์ด ์ผ์น˜ํ•˜๋Š” ๋ผ์ธ๋งŒ ์ถœ๋ ฅ -e ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด ์‚ฌ์šฉ ์‹œ ๋ช…๋ น์–ด ๊ตฌ๋ถ„ -r ํ™•์žฅ ์ •๊ทœ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•œ ์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ
Shell
๋ณต์‚ฌ
โ€ข
๋‚ด์žฅ ํ•จ์ˆ˜
s
substitute, ๋Œ€์ฒด
d
delete, ์‚ญ์ œ
p
print, ์ถœ๋ ฅ
a
append, ์ถ”๊ฐ€
i
insert, ์‚ฝ์ž…
c
change, ๋ณ€๊ฒฝ
y
transliterate, ๋ฌธ์ž ๋ณ€ํ™˜
q
quit, ์ข…๋ฃŒ
โ€ข
์˜ˆ์ œ
# APPLE -> BANANA ๋ณ€๊ฒฝ sed 's/apple/banana/' products # DRINK -> DRINKS, FRUIT -> FRUITS๋กœ ๋ณ€๊ฒฝ sed 's/DRINK/DRINKS/g; s/FRUIT/FRUITS/g' products sed -e 's/DRINK/DRINKS/g' -e 's/FRUIT/FRUITS/g' products # g๋Š” ๋ชจ๋“  ์ผ์น˜ ํ•ญ๋ชฉ์„ ๋œปํ•จ. g๋ฅผ ์“ฐ์ง€ ์•Š์œผ๋ฉด ๊ฐ ์ค„์— ์ฒ˜์Œ ๋ฐœ๊ฒฌ๋œ ํŒจํ„ด๋งŒ ๋ณ€๊ฒฝ๋จ
Shell
๋ณต์‚ฌ
# ๋งˆ์ง€๋ง‰ 10์ค„ ์ค‘ 1 ~ 5 ๋ผ์ธ๋งŒ ์ถœ๋ ฅ tail /etc/passwd | sed -n '1,5p' # ๋งˆ์ง€๋ง‰ 10์ค„ ์ค‘ Daemon ํฌํ•จ ๋ผ์ธ๋งŒ ์ถœ๋ ฅ cat /etc/passwd | sed -n '/Daemon/p' # ๋งˆ์ง€๋ง‰ 10์ค„ ์ถœ๋ ฅ์‹œ :๋ฅผ =๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์ถœ๋ ฅ tail /etc/passwd | sed 's/:/=/g'
Shell
๋ณต์‚ฌ