[Linux]2023.08.18

๋ง๊ตฌ์”จยท2023๋…„ 8์›” 18์ผ
0

Linux

๋ชฉ๋ก ๋ณด๊ธฐ
3/4
post-thumbnail

ps ๋ช…๋ น์–ด

๐Ÿ’ก ํ˜„์žฌ ์‹œ์Šคํ…œ์—์„œ ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์„œ์˜ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ช…๋ น์–ด

<๋ฌธ๋ฒ•>
$ ps ์˜ต์…˜ ํ”„๋กœ์„ธ์„œ ๋ฒˆํ˜ธ
$ ps -p 4291 : 4291์— ๋Œ€ํ•œ ํ”„๋กœ์„ธ์„œ์˜ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
<์˜ต์…˜>
-p : ํ”„๋กœ์„ธ์„œ ๋ฒˆํ˜ธ
-e : ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์„œ
-f : ์‹ค์ œ ์œ ์ €๋ช…, ๊ฐœ์‹œ์‹œ๊ฐ„๋“ฑ์„ ํ‘œ์‹œ
-l : ํ”„๋กœ์„ธ์„œ์˜ ์ƒํƒœ, ์šฐ์„ ๋„ ๋“ฑ๊ณผ ๊ฐ™์€ ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œ

์‹ค์Šต1. ํ˜„์žฌ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ๋– ์žˆ๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์„œ๋“ค์„ ๋‹ค ์ถœ๋ ฅํ•˜๊ธฐ

$ ps -ef

์‹ค์Šต2. ํ˜„์žฌ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ์žˆ๋Š” ์˜ค๋ผํด ์œ ์ €์— ๋Œ€ํ•œ ํ”„๋กœ์„ธ์„œ๋“ค๋งŒ ์ถœ๋ ฅํ•˜๊ธฐ

$ ps -ef | grep oracle

์‹ค์Šต3. ์œ„ ๋– ์žˆ๋Š” ํ”„๋กœ์„ธ์„œ ๋ช‡๊ฐœ์ธ์ง€ ํ™•์ธ

$ ps -ef | grep oracle | wc -l

์‹ค์Šต4. pmon์ด๋ผ๋Š” ์˜ค๋ผํด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ž˜ ๋– ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ

[orcl:~]$ ps -ef | grep pmon
oracle 5469 1 0 03:57 ? 00:00:04 asmpmon+ASM
oracle 5587 1 0 03:58 ? 00:00:04 ora_pmon_orcl

oracle 12140 11795 0 09:55 pts/5 00:00:00 grep pmon : ์–˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๋‚˜ ์ž์‹  ํ”„๋กœ์„ธ์„œ์ด๋‹ค. ์ด๊ฒŒ ์•ˆ๋‚˜์˜ค๊ฒŒ ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด -v๋ฅผ ์จ์ค€๋‹ค.

[orcl:~]$ ps -ef | grep pmon | grep -v grep
oracle 5469 1 0 03:57 ? 00:00:04 asmpmon+ASM
oracle 5587 1 0 03:58 ? 00:00:04 ora_pmon_orcl

โœ… grep -v grep ์€ grep๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์„ธ์…˜์€ ๋‚˜์˜ค์ง€ ์•Š๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

sar ๋ช…๋ น์–ด

๐Ÿ’ก ํ˜„์žฌ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์˜ ๋””์Šคํฌ(disk)์˜ ์‚ฌ์šฉ ํ˜„ํ™ฉ์„ ์‹ค์‹œ๊ฐ„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด
โœ๐Ÿป dba์—๊ฒŒ ์œ ์šฉํ•œ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด 4๊ฐ€์ง€
1. top
2. kill
3. ps
4. sar

<๋ฌธ๋ฒ•>
$ sar 1 100

โœ… disk i/o๋ฅผ ํ™œ๋ฐœํžˆ ์ผ์œผํ‚ค๋ฉด(๋ฐ์ดํ„ฐ๋ฅผ ํ™œ๋ฐœํžˆ ์—‘์„ธ์Šค), ์ด ์‚ฌ์šฉ์œจ์ด ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.
โœ… 100์€ ๋ฐฑ๊ฐœ ๋‚˜์˜ค๋Š” ๊ฒƒ! 1000 ์“ฐ๋ฉด ์ฒœ๊ฐœ๊ฐ€ ๋‚˜์˜จ๋‹ค.
โœ… %user ๋ถ€๋ถ„์„ ์ง‘์ค‘์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๋ฉด ๋œ๋‹ค. ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„์— ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•œ ์ž‘์—…์„ ํ•˜๋ฉด %user๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์œจ์ด 100์— ๊ฐ€๊น๊ฒŒ ์˜ฌ๋ผ๊ฐ„๋‹ค.

%user : oracle ์œ ์ €์™€ ๊ฐ™์ด ์ผ๋ฐ˜ ์œ ์ €๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” disk i/o
%nice : cpu๋ฅผ ์–‘๋ณดํ•˜๋Š” ์นœ์ ˆ๋„ (๋‚ฎ์œผ๋ฉด ๋‚ฎ์„์ˆ˜๋ก ์ข‹๋‹ค. -> ์ž‘์—…์ด ๋นจ๋ฆฌ์ˆ˜ํ–‰๋จ)
%system : system์ด ์‚ฌ์šฉํ•˜๋Š” disk i/o (์‹œ์Šคํ…œ์ด ์ž์ฒด์ ์œผ๋กœ ๋ฆฌ๋ˆ…์Šค๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” )
%iowait : disk i/o๋ฅผ ์ผ์œผํ‚ค๋ฉด์„œ ์–ผ๋งˆ๋‚˜ ๋Œ€๊ธฐํ•˜๊ณ ์žˆ๋Š”์ง€ ์ˆ˜์น˜๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.
%idle : ์ž‘์—…์„ ์•ˆํ•˜๊ณ ์žˆ๋Š” idleํ•œ ์ƒํƒœ
%steal : ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ์˜ ์ž์›์„ ์–ผ๋งˆ๋‚˜ ๋บ๊ณ ์žˆ๋Š”์ง€

๋ฌธ์ œ 73. sar๋ช…๋ น์–ด ์‹คํ–‰ํ•˜๊ณ , ๋‹ค๋ฅธ์ชฝ์—์„œ ์•…์„ฑ sql ๋Œ๋ ค๋ณด๊ธฐ

โœ… ์•…์„ฑsql ๋Œ๋ ธ์„ ๋•Œ 45~50์ •๋„๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ”๋‹ค๊ฐ€ ๋„๋‹ˆ๊นŒ 0.5๋กœ ๋–จ์–ด์กŒ๋‹ค.
โญ ํ˜„์žฌ ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„๊ฐ€ ๋А๋ฆฌ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›์ธ ํŒŒ์•…์„ ํ•ด์•ผํ•œ๋‹ค.
1. who ๋ˆ„๊ฐ€ ๋А๋ฆฌ๊ฒŒ ํ•˜๊ณ  ์žˆ๋Š”์ง€? : top๋ช…๋ น์–ด + ์–ด์ œ ๋งˆ์ง€๋ง‰๋ฌธ์ œ ์ฝ”๋“œ๋กœ ํ™•์ธ๊ฐ€๋Šฅ
โžก๏ธsqldeveloper์—์„œ ๋„๊ตฌ>์„ธ์…˜ ๋ชจ๋‹ˆํ„ฐ์— ๋ณด๋ฉด machine ์ด๋ผ๋Š” ์ปฌ๋Ÿผ์— ๋‚˜์˜ค๋Š” ์ •๋ณด๊ฐ€ ํšŒ์‚ฌ์—์„œ๋Š” ์ž๊ธฐ ์ปดํ“จํ„ฐ ์ด๋ฆ„์ด๋‹ค.

  1. what ๋ฌด์—‡์ด ๋А๋ฆฌ๊ฒŒ ํ•˜๊ณ  ์žˆ๋Š”์ง€? ์–ด๋–ค sql์ธ์ง€! : top๋ช…๋ น์–ด + ์–ด์ œ ๋งˆ์ง€๋ง‰๋ฌธ์ œ ์ฝ”๋“œ๋กœ ํ™•์ธ๊ฐ€๋Šฅ
  2. when ์–ธ์ œ๋ถ€ํ„ฐ ๋А๋ ค์กŒ๋Š”์ง€? : sar ๋ช…๋ น์–ด

๋ฌธ์ œ 74. ๋‚ด๊ฐ€ ํ‡ด๊ทผํ•˜๊ฑฐ๋‚˜ ์ž๋ฆฌ๋ฅผ ๋น„์šฐ๋Š” ๋™์•ˆ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ disk i/o๊ฐ€ ์–ธ์ œ๋ถ€ํ„ฐ ์–ผ๋งˆ๋‚˜ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค ํ•œ๋‹ค๋ฉด ? โžก๏ธ text๋กœ !

$ sar 1 20 >> sar_20230818.txt

๐Ÿค” ๋ช…๋ น์–ด ๋์— &๋ฅผ ๋ถ™์ด๋ฉด?

๋ฌธ์ œ 75. ์œ„ ๋ช…๋ น์–ด๊ฐ€ ์„œ๋ฒ„์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ˆ˜ํ–‰๋˜๊ฒŒ ํ•˜๊ณ , ๋‚˜๋Š” ๋…ธํŠธ๋ถ์„ ๋„๊ณ  ํ‡ด๊ทผํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?
(& ๋ถ™์ด๊ธฐ)

$ sar 1 20 >> sar_20230819.txt &

โ—์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ !

โœ… ๋ช…๋ น์–ด ๋์— &๋ฅผ ๋ถ™์ด๋ฉด ๊ทธ ๋ช…๋ น์–ด๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๋Œ๊ฒŒ ํ•˜๋Š” ๊ฒƒ !

๋ฌธ์ œ 76. ์•„๋ž˜์˜ sar ๋ช…๋ น์–ด๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ  , ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ํ•˜๋‚˜ ์—ด์–ด์„œ ์•…์„ฑ sql์„ ์ˆ˜ํ–‰ํ•ด๋ณด๊ธฐ.

$ sar 1 100 >> sar_202308120.txt &

more sar_202308120.txt ํ•ด๋ณด๋‹ˆ 10:29๋ถ„๋ถ€ํ„ฐ

df ๋ช…๋ น์–ด

๐Ÿ’ก ํ˜„์žฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ด ์‚ฌ์šฉ์œจ์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด

<๋ฌธ๋ฒ•>
$ df -h

โœ… df -h ๋ช…๋ น์–ด๋กœ๋Š” ์ง€๊ธˆ ํ˜„์žฌ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ์–ผ๋งˆ๋‚˜ ์—ฌ์œ ๊ณต๊ฐ„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž (ta)์—๊ฒŒ ๋””์Šคํฌ ์—ฌ์œ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋‹ˆ ๋Œ€๋น„ํ•ด! ๋ผ๊ณ  ์ด์•ผ๊ธฐํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โ€ป dba๊ฐ€ ํ‰์ƒ์‹œ ํ™•์ธํ•ด์•ผํ•  ๊ณต๊ฐ„ ๊ด€๋ฆฌ ๋ช…๋ น์–ด?
1. ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” df -h๋ช…๋ น์–ด
2. ์˜ค๋ผํด์—์„œ๋Š” tablespace ์‚ฌ์šฉ๋Ÿ‰ - ์Šคํฌ๋ฆฝํŠธ ์žˆ์Œ
3. ๋ฐฑ์—… ๋ฐ์ดํ„ฐ ๊ด€๋ จํ•œ ๊ณต๊ฐ„ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ชจ๋‹ˆํ„ฐ๋ง(archive log file์ด full๋‚˜์ง€ ์•Š๋„๋ก ๊ด€๋ฆฌํ•ด์•ผํ•œ๋‹ค. ) โžก๏ธ ์˜ค๋ผํด์— ์ค‘์š”ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๊ทธ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋”•์…”๋„ˆ๋ฆฌ์— ์œ„ ์ด์Šˆ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฏ€๋กœ ๊ทธ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์กฐํšŒํ•˜๋ฉด ๋œ๋‹ค.

select * from dba_outstanding_alerts;


โœ… ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๊ฐ€ ๊ฝ‰ ์ฐจ์ง€๊ธฐ ์ „์— ๋ฏธ๋ฆฌ ์•Œ๋ฆผ์ด ์œ„ ๋”•์…”๋„ˆ๋ฆฌ์— ๋‚˜์˜ค๊ฒŒ๋” ์„ค์ •ํ•ด์•ผํ•œ๋‹ค.

du ๋ช…๋ น์–ด

๐Ÿ’ก ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ txt ํŒŒ์ผ๋“ค์˜ ์ด ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด??

$ du *.txt
$ du -h *.txt : ํ‚ค๋กœ๋ฐ”์ดํŠธ ๋‚˜์˜จ๋‹ค.
$ du -c *.txt : ํ† ํƒˆ ๋‚˜์˜จ๋‹ค.
$ du -ch *.txt :ํ‚ค๋กœ๋ฐ”์ดํŠธ์™€ ํ† ํƒˆ์ด ๋‚˜์˜จ๋‹ค.

๋ฐ์ดํ„ฐ ๋‹จ์œ„ !

uname -an ๋ช…๋ น์–ด

๐Ÿ’ก ํ˜„์žฌ ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„์˜ os๊ฐ€ ์–ด๋А os ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด

i386 GNU/Linux

โœ… ์™œ uname -an ์„ ํ™•์ธํ•ด์•ผํ•˜๋ƒ๋ฉด ์˜ค๋ผํด์„ ์„ค์น˜ํ•  ๋•Œ os๋งˆ๋‹ค ์„ค์น˜ํŒŒ์ผ์ด ๋‹ค ๋‹ค๋ฅด๋ฏ€๋กœ ๊ด€๋ จ๋œ ์„ค์น˜ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์„ค์น˜๋ฅผ ํ•ด์•ผํ•ด์„œ ๋ฆฌ๋ˆ…์Šคos๊ฐ€ ๋ญ”์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค. ์˜ค๋ผํด์€ ์˜ค๋ผํด ์„ค์น˜ ์ „๋ฌธ๊ฐ€๊ฐ€ ํšŒ์‚ฌ์— ์™€์„œ ์ฃผ๋กœ ์„ค์น˜ํ•œ๋‹ค.

๋ฌธ์ œ 77. ๊ตฌ๊ธ€ ์ฝ”๋ ™์˜ ๋ฆฌ๋ˆ…์Šค๋Š” ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

!lsb_release -a

โœ”๏ธ ์ฐจ์ด์  ํ™•์ธ

tar ๋ช…๋ น์–ด

๐Ÿ’ก ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๋ช…๋ น์–ด

<๋ฌธ๋ฒ•>
1. ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์„ ๋•Œ

$ tar cvf ๋ฌถ์„ ํŒŒ์ผ๋ช… ๋ฌถ์„ ํŒŒ์ผ ๋Œ€์ƒ๋“ค
  1. ๋ฌถ์„ ํŒŒ์ผ์„ ํ’€์–ด๋‚ผ ๋•Œ
$ tar tvf ๋ฌถ์€ ํŒŒ์ผ๋ช… ํ’€์–ด๋‚ผ ์œ„์น˜

โœ”๏ธ ์˜ต์…˜ :
c : compress , ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒ์ผ์„ ํ•˜๋‚˜๋กœ ๋งŒ๋“ค์–ด๋ผ
v : view , ๋ฌถ๋Š” ๊ณผ์ •์„ ๋ณด์—ฌ๋‹ฌ๋ผ!
f : file , ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ๋ช…์„ ์ง€์ •
x : extract , ๋ฌถ์–ด์žˆ๋Š” ํŒŒ์ผ์„ ํ’€์–ด์ค˜๋ผ
-C : ํŒŒ์ผ๋“ค์„ ํ’€์–ด๋‚ผ ์œ„์น˜๋ฅผ ์ง€์ •

์‹ค์Šต1. ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํ™•์žฅ์ž.txtํŒŒ์ผ๋“ค์ด ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ๊ฒ€์ƒ‰ํ•˜๊ธฐ

ls -l *.txt

์–˜๋„ค๋ฅผ ๋ฌถ์–ด์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์‹ค์Šต2. ์œ„์—์„œ ๋ณด์ด๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ textํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์œผ์‹œ์˜ค

$ tar cvf sar_text.tar ./*.txt
./๋Š” ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๋ผ๋Š” ๋œป. ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ‘์— ์žˆ๋Š” ํ™•์žฅ์ž *.txt ํŒŒ์ผ๋“ค์„ sar_text.tar ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
$ ls -l sar_text.tar

์‹ค์Šต3. sar_text.tar ์˜ ๋ฌถ์Œ์„ /home/oracle/test9๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฌถ์Œ์„ ํ’€๊ธฐ

  1. test9๋งŒ๋“ค๊ธฐ
    mkdir test9 (๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ)
  2. ์••์ถ•ํ’€๊ธฐ
    tar xvf sar_text.tar -C /home/oracle/test9

vi ํŽธ์ง‘๊ธฐ ๋ช…๋ น์–ด

๐Ÿ’ก vi ํŽธ์ง‘๊ธฐ๋Š” ์œˆ๋„์šฐ๋กœ ์น˜๋ฉด ๋ฉ”๋ชจ์žฅ ๊ฐ™์€ ๊ฒƒ.
๋ฆฌ๋ˆ…์Šค ๋ฉ”๋ชจ์žฅ ๊ธฐ๋Šฅ์ธ ์ด๊ฒƒ์€ ๋ช…๋ น์–ด๋ฅผ ์•Œ๊ณ ์žˆ์–ด์•ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์‹ค์Šต1. ์ œ๋ชฉ์ด a100.tx์ธ ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ

$ vi a100.txt

์ด๋Ÿฐ ์ฐฝ์ด ์—ด๋ฆฐ๋‹ค.

์‹ค์Šต2. ์œ„ ๋ฉ”๋ชจ์žฅ์— ์•„๋ž˜์˜ ๋ฌธ์žฅ์„ ํƒ€์ดํ•‘ํ•˜๊ธฐ

select ename, sal
  from emp
  where empno = 7788;

โญ ์ž…๋ ฅ๋ชจ๋“œ๋กœ ๋ณ€ํ™˜ -> i ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ž…๋ ฅ๋ชจ๋“œ๊ฐ€ ๋œ๋‹ค!

โญ ์ž…๋ ฅ๋ชจ๋“œ์—์„œ ์›๋ž˜์˜ command ๋ชจ๋“œ๋กœ ๋Œ์•„์˜ค๋ ค๋ฉด escํ‚ค๋ฅผ ๋ˆ„๋ฅด์ž. (๋ฐฉํ–ฅํ‚ค๋กœ ์˜ฌ๋ผ๊ฐ”๋‹ค ๋‚ด๋ ค๊ฐ”๋‹ค ๊ฐ€๋Šฅ)

โœ”๏ธ vi ํŽธ์ง‘๊ธฐ ๋ช…๋ น๋ชจ๋“œ 3๊ฐ€์ง€
1. command๋ชจ๋“œ : vi ํŽธ์ง‘๊ธฐ์˜ ๊ธฐ๋ณธ๋ชจ๋“œ์ด๋‹ค. ์‹คํ–‰ํ•˜๋ฉด ๋ฐ”๋กœ ๋ณด์ด๋Š” ํ™”๋ฉด์„ ๋งํ•œ๋‹ค. ์ด ์ƒํƒœ์—์„œ๋Š” ๋ฐฉํ–ฅํ‚ค๋กœ ์™”๋‹ค๊ฐ”๋‹ค ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜น์€ h(์™ผ์ชฝ) / l(์˜ค๋ฅธ์ชฝ) / j(์•„๋ž˜) / k(์œ„) ๋ฅผ ํ†ตํ•ด ์ด๋™ ํ•  ์ˆ˜ ์žˆ๋‹ค.
2. edit ๋ชจ๋“œ : a,i,o,x ๋“ฑ์„ ๋ˆ„๋ฅด๋ฉด์„œ ๋‚ด์šฉ์„ ์ž…๋ ฅ ๋˜๋Š” ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น๋ชจ๋“œ
i : ์ž…๋ ฅ๋ชจ๋“œ
a : ์ž…๋ ฅ๋ชจ๋“œ์ธ๋ฐ ๊ณ„์† ์˜†์— ๋ง๋ถ™์—ฌ์„œ ์“ฐ๊ฒ ๋‹ค
o :์ž…๋ ฅ๋ชจ๋“œ์ธ๋ฐ ๋‹ค์Œ๋ผ์ธ์— ์“ฐ๊ฒ ๋‹ค.
x : ์ฒ ์ž ํ•˜๋‚˜ ์‚ญ์ œ
3. last line ๋ชจ๋“œ : ์ž…๋ ฅ๋ชจ๋“œ์—์„œ ์ €์žฅ, ์ข…๋ฃŒ, ๊ฐ•์ œ์ข…๋ฃŒ ๋“ฑ์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋ชจ๋“œ
:wq! : ์ €์žฅํ•˜๊ณ  ์ข…๋ฃŒ (๋‹จ์ถ•ํ‚ค : ZZ)
:q! : ์ €์žฅ ์•ˆํ•˜๊ณ  ์ข…๋ฃŒ (๋‹จ์ถ•ํ‚ค : ZQ)

โญ ํŽธ์ง‘๊ธฐ์—์„œ ๋น ์ ธ๋‚˜์˜ค๋Š” ๋ฐฉ๋ฒ• (:wq!)

โœ… jobs.txt ํŒŒ์ผ์„ viํŽธ์ง‘๊ธฐ์—์„œ ์—ด์–ด์„œ h,l,j,k๋กœ ์›€์ง์—ฌ๋ณด๊ธฐ

vi jobs.txt
:set nu : ๋ฌธ์žฅ ์•ž์— ๋ฒˆํ˜ธ ์ƒ์„ฑ

:set nonu : ๋ฒˆํ˜ธ ๋‹ค์‹œ ์—†์• ๊ธฐ

์ •๋ฆฌ ! (viํŽธ์ง‘๊ธฐ ๋‚ด์—์„œ ์ปค์„œ ์ด๋™)

  1. h : ์™ผ์ชฝ์œผ๋กœ ์ด๋™
  2. l : ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™
  3. j : ์•„๋ž˜๋กœ ์ด๋™
  4. k : ์œ„๋กœ ์ด๋™
  5. 1G : ๋งจ์œ„๋กœ ์ด๋™
  6. G : ๋งจ ์•„๋ž˜๋กœ ์ด๋™
  7. :set nu : ํŒŒ์ผ๋‚ด์˜ ํ…์ŠคํŠธ์— ๋ฒˆํ˜ธ๋ฅผ ํ‘œ์‹œ
  8. :set nonu : ๋‹ค์‹œ ์•ˆ๋ณด์ด๊ฒŒ ํ•˜๋Š” ๋ช…๋ น์–ด
  9. gg : ๋งจ์œ„๋กœ ์ด๋™ํ•˜๋Š” ๋‹จ์ถ•ํ‚ค (์†Œ๋ฌธ์ž)

vi ํŽธ์ง‘๊ธฐ์˜ ์‚ญ์ œ ๋ช…๋ น์–ด

  1. x : ์ฒ ์ž ํ•˜๋‚˜๋งŒ ์‚ญ์ œ
  2. dd : ํ•œ ํ–‰ ์‚ญ์ œ
  3. dw : ๋งˆ์šฐ์Šค ์ปค์„œ๊ฐ€ ์žˆ๋Š” ๋‹จ์–ด ์‚ญ์ œ
  4. :5,10 d : 5~10๋ฒˆ์งธ ํ–‰ ์‚ญ์ œ
  5. D : ์ปค์„œ ์˜ค๋ฅธ์ชฝ ํ–‰ ์‚ญ์ œ
  6. dG : ๋งˆ์šฐ์Šค ์ปค์„œ๊ฐ€ ์žˆ๋Š” ํ–‰๋ถ€ํ„ฐ ์•„๋ž˜ ๊นŒ์ง€์˜ ๋ชจ๋“  ํ–‰ ์ง€์šด๋‹ค.
    โ€ป ์ทจ์†Œํ•˜๊ธฐ๋Š” u

๋ฌธ์ œ 78. jobs.txt๋ฅผ jobs2.txt๋กœ ๋ฐฑ์—…

$ cp jobs.txt jobs2.txt

๋ฌธ์ œ 79. jobs2.txt์„ ์—ด์–ด์„œ 5๋ฒˆ์งธ ํ–‰ ์ง€์šฐ๊ธฐ

ddํ•˜๊ธฐ. u๋Š” ์ทจ์†Œ

๋ฌธ์ œ 80. jobs2.txt์—์„œ ์œ„ 3์ค„ ๋‚จ๊ธฐ๊ณ  ๋‹ค ์ง€์šฐ๊ธฐ

dG

vi ํŽธ์ง‘๊ธฐ์˜ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ๋ช…๋ น์–ด

  1. yy : ํ•˜๋‚˜์˜ ํ–‰์„ ๋ณต์‚ฌ
  2. p : ๋ถ™์—ฌ๋„ฃ๊ธฐ
  3. yG : ํ˜„์žฌ ํ–‰๋ถ€ํ„ฐ ํŒŒ์ผ ๋๊นŒ์ง€ ๋ณต์‚ฌ
  4. :1,2 co 3 : 1-2ํ–‰์„ 3ํ–‰ ๋‹ค์Œ์œผ๋กœ ๋ณต์‚ฌ
  5. :1,2 m 3 : 1-2ํ–‰์„ 3ํ–‰ ๋‹ค์Œ์œผ๋กœ ์ด๋™

๋ฌธ์ œ 81. jobs.txt๋ฅผ jobs3.txt๋กœ ๋ฐฑ์—…

$ cp jobs.txt jobs3.txt

๋ฌธ์ œ 82. jobs3.txt๋ฅผ ์—ด๊ณ  ๋งจ์œ„ ํ•œ์ค„์„ ๋ณต์‚ฌํ•œ ํ›„ ๋‹ค์Œ๋ผ์ธ์— ๋ถ™์—ฌ๋„ฃ๊ธฐ

yy -> p

vi ํŽธ์ง‘๊ธฐ์—์„œ ํŠน์ • ๋ฌธ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

  1. /๊ฒ€์ƒ‰์–ด : ๊ฒ€์ƒ‰์–ด๋ฅผ ์ฐพ์•„์ค€๋‹ค (/์™€ ๊ฒ€์ƒ‰์–ด์‚ฌ์ด์— ๊ณต๋ฐฑ์žˆ์œผ๋ฉด ์•ˆ๋จ)
    โœ… n์„ ๋ˆ„๋ฅด๋ฉด์„œ ์ „์ง„ํ•˜๋ฉด์„œ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. shiht + n ์„ ๋ˆ„๋ฅด๋ฉด ํ›„์ง„ํ•˜๋ฉด์„œ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ์ œ 83. enp.csv๋ฅผ ์—ด์–ด์„œ SCOTT์ด๋ผ๋Š” ๋ฌธ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์ƒ‰

/SCOTT

๋ฌธ์ œ 84. jobs.txt๋ฅผ ์—ด์–ด์„œ about ์ด๋ผ๋Š” ๋‹จ์–ด ๊ฒ€์ƒ‰

/about

vi ํŽธ์ง‘๊ธฐ ๋ช…๋ น์–ด๋กœ ๋ฌธ์ž๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•

<๋ฌธ๋ฒ•>
:%s/๊ธฐ์กด๋ฌธ์ž/๋ณ€๊ฒฝํ• ๋ฌธ์ž/g

๋ฌธ์ œ 85. emp.csv์—์„œ KING์„ aaa๋กœ ๋ณ€๊ฒฝ

:%s/KING/aaa/g

๋ฌธ์ œ 86. jobs.txt๋ฅผ ์—ด์–ด์„œ about ์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋ชจ๋‘ kkkkk๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

:%s/about/kkkkk/g

๋ฌธ์ œ 87. emp.csv๋ฅผ emp1.csv ~ emp20.csv๋กœ ๋ณต์‚ฌํ•˜๊ธฐ

์ฐธ๊ณ 

๋ฌธ์ œ 88. ํŒŒ์ด์ฌ์œผ๋กœ emp21.csv ~ emp.40csv๊นŒ์ง€ ์ƒ์„ฑ๋˜๊ฒŒ ํ•˜๊ธฐ

$ vi p.py

์ €์žฅํ›„์— python p.py์‹คํ–‰ ํ›„์— ls -l emp*.csv ํ•ด๋ณธ๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ ์ƒ์„ฑ๋œ๊ฒŒ ๋ณด์ž„!

๋‚ด์šฉ ์ผ๊ด„์ˆ˜์ •ํ•ด์ฃผ๊ธฐ

๋ฌธ์ œ 89. emp1.csv ~ emp.40csv ์˜ ๋‚ด์šฉ์ค‘์—์„œ SALESMAN์„ jjj๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ
-> ๋ฌธ์ œ์ ์€ ํ•˜๋‚˜์”ฉ ์—ด์–ด์„œ ์ˆ˜์ •ํ•ด์ค˜์•ผํ•œ๋‹ค.. ?

$ vi emp*.csv
:argdo %s/SALESMAN/jjj/g | update

๋ฌธ์ œ 90. emp1.csv ~ emp.40csv ์˜ ๋‚ด์šฉ์ค‘์—์„œ jjj๋ฅผ ๋‹ค์‹œ SALESMAN์œผ๋กœ ์›์ƒ๋ณต๊ท€ ํ•˜๊ธฐ

$ vi emp*.csv
:argdo %s/jjj/SALESMAN/g | update

์‰˜(shell) ์Šคํฌ๋ฆฝํŠธ

โœ”๏ธ ์‰˜(shell) ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
shell์ด๋ž€ ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

โœ”๏ธ ์‰˜(shell) ์Šคํฌ๋ฆฝํŠธ๋ž€?
์ธํ„ฐํ”„๋ฆฌํ„ฐ(ํ†ต์—ญ์‚ฌ) ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์Šคํ…œ์—์„œ ์ง€์›ํ•˜๋Š” ๋ช…๋ น์–ด๋“ค์˜ ์ง‘ํ•ฉ์„ ๋ฌถ์–ด์„œ ํ”„๋กœ๊ทธ๋žจํ™” ํ•œ ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

โœ”๏ธ ์‰˜(shell) ์˜ ์ข…๋ฅ˜ 4๊ฐ€์ง€
1. Boune Shell
2. C Shell
3. Korn Shell
4. bash Shell : ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์‰˜.

์‰˜ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ์‹œ, ๋งจ ์œ„์—๋‹ค๊ฐ€ ์ง€๊ธˆ๋ถ€ํ„ฐ ์ž‘์„ฑํ•˜๋Š” shell ์Šคํฌ๋ฆฝํŠธ์˜ ๋ฌธ๋ฒ•์€ bash shell ์ž…๋‹ˆ๋‹ค. ๋ผ๊ณ  ๋ช…์‹œํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

#!/bin/bash ------------> ์‰˜ ์ค‘์—์„œ bash์‰˜์„ ์“ฐ๊ฒ ๋‹ค.

โœ๐Ÿป ์‰˜ ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€?
1. c ์–ธ์–ด์™€ ์œ ์‚ฌํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
2. ๋ณ€์ˆ˜, ๋ฐ˜๋ณต๋ฌธ(loop๋ฌธ), ์ œ์–ด๋ฌธ(if๋ฌธ)์ด ์‚ฌ์šฉ๊ฐ€๋Šฅ
3. ๋ณ„๋„๋กœ ์ปดํŒŒ์ผ ํ•˜์ง€ ์•Š๊ณ  ํ…์ŠคํŠธ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋ฐ”๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
4. ๋ฆฌ๋ˆ…์Šค์˜ ๋งŽ์€ ๋ถ€๋ถ„์ด ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑ๋˜์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ๐Ÿป์‰˜์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

$ vi a100.sh
#!/bin/bash
echo "yaho ~~"
$ sh. a100.sh

โœ๐Ÿป ๋ณ€์ˆ˜ ์‚ฌ์šฉ๋ฒ•
1. ๋ชจ๋“  ๋ณ€์ˆ˜๋Š” ๋ฌธ์ž์—ด(string)๋กœ ์ทจ๊ธ‰๋ฉ๋‹ˆ๋‹ค.
2. ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
3. ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋Œ€์ž…ํ•˜ ๋•Œ๋Š” '=' ์ขŒ์šฐ์— ๊ณต๋ฐฑ์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ex) a=1
  1. ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐ„ ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋ณ€์ˆ˜ ์•ž์— $๋ฅผ ๋ถ™์ด๊ณ  echo ๋ช…๋ น์–ด๋กœ ์ถœ๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
ex)
$ a="hi~~~"
echo $a

โœ๐Ÿป ๋ณ€์ˆ˜์˜ ์ˆซ์ž ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•
1. ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•œ ๊ฐ’์€ ๋ชจ๋‘ ๋ฌธ์ž์—ด๋กœ ์ทจ๊ธ‰์ด ๋ฉ๋‹ˆ๋‹ค.
2. ๋ณ€์ˆ˜์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์„ ์ˆซ์ž๋กœ ํ•ด์„œ ์‚ฌ์น™์—ฐ์‚ฐ์„ ํ•˜๋ ค๋ฉด, expr์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
3. ์ˆ˜์‹์— ๊ด„ํ˜ธ ๋˜๋Š” ๊ณฑํ•˜๊ธฐ(*)๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ๊ทธ ์•ž์— ๋ฐ˜๋“œ์‹œ ์—ญ์Šฌ๋ž˜์‰ฌ(\)๋ฅผ ๋ถ™์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

$ num1=100
$ num2=200
$ echo $num1
$ echo $num2
$ echo $num1 + $num2
$ expr $num1 + $num2 


โœ… expr ์„ ์จ์•ผ 300์ด ๋‚˜์˜จ๋‹ค.

๋ฌธ์ œ 91. ์œ„์˜ num1, num2 ์˜ ๊ณฑ์„ ๊ตฌํ•˜์‹œ์˜ค

[orcl:~]$ expr $num1 \* $num2
20000

โœ… ๊ณฑํ•˜๊ธฐ์™€ ๊ด„ํ˜ธ ์•ž์—๋Š”, \๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

๋ฌธ์ œ 92. ์•„๋ž˜์˜ ๊ณ„์‚ฐ์‹์„ ๊ตฌํ˜„ํ•˜์„ธ์š”.

($num2 + 200) * $num1
\($num2 + 200\) \* $num1

ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์ˆ˜
1. ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์ˆ˜๋Š” $0, $1, $2, ...์˜ ํ˜•ใ…Œํƒœ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
2. ์ „์ฒด ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” $*๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ
$ vi add.sh ์—ด๊ณ , ์•ˆ์— ๋ณ€์ˆ˜ํ• ๋‹นํ•˜๊ณ  echo ์จ์ค€๋‹ค.

[orcl:~]$ sh add.sh 24 18 ๋ผ๊ณ  ์“ฐ๋ฉด ( 24, 18์€ ๋”ํ•  ๊ฐ’์„ ์ผ๋‹ค. )
24 + 18 = 42


โœ… ๋ฐฑํ‹ฑ์„ ์จ์•ผ ๊ทธ ์•ˆ์— ์‹คํ–‰๋ฌธ์ด ์‹คํ–‰๋˜์–ด์„œ num3๋ณ€์ˆ˜์— ํ• ๋‹น์ด ๋œ๋‹ค.

๋ณ€์ˆ˜ = `๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด`

๋ฌธ์ œ 93. ์•„๋ž˜์˜ ๋‘ ์ˆ˜๋ฅผ ๊ณฑํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑํ•˜๊ธฐ

$ sh two_nnumber.sh 12 54


๋ฆฌ๋ˆ…์Šค์—์„œ if๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ

  • ๋ฌธ์ž์—ด ๋น„๊ต
  1. "๋ฌธ์ž์—ด1"=="๋ฌธ์ž์—ด2" : ๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์œผ๋ฉด true
  2. "๋ฌธ์ž์—ด2"!="๋ฌธ์ž์—ด2" : ๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด true
  • ์ˆซ์ž์—ด ๋น„๊ต
  1. ์ˆซ์ž1 -eq ์ˆซ์ž2 : ๋‘ ์ˆซ์ž๊ฐ€ ๊ฐ™์œผ๋ฉด true(=)
  2. ์ˆซ์ž1 -ne ์ˆซ์ž2 : ๋‘ ์ˆซ์ž๊ฐ€ ๊ฐ™์ง€ ์•Š์œผ๋ฉด true(!=)
  3. ์ˆซ์ž1 -gt ์ˆซ์ž2 : ์ˆซ์ž1์ด ์ˆซ์ž2๋ณด๋‹ค ํฌ๋‹ค๋ฉด true(>)
  4. ์ˆซ์ž1 -ge ์ˆซ์ž2 : ์ˆซ์ž1์ด ์ˆซ์ž2๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด true(>=)
  5. ์ˆซ์ž1 -lt ์ˆซ์ž2 : ์ˆซ์ž1์ด ์ˆซ์ž2๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด true(<=)
  6. ์ˆซ์ž1 -le ์ˆซ์ž2 : ์ˆซ์ž1์ด ์ˆซ์ž2๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด true(<=)
  7. !์ˆซ์ž1 : ์ˆซ์ž1์ด ์•„๋‹ˆ๋ผ๋ฉด true(not)

์˜ˆ์ œ
$ vi if1.sh

if [100 -eq 200 ]; then
  echo "100๊ณผ 200์€ ๊ฐ™์Šต๋‹ˆ๋‹ค."
else 
  echo "100๊ณผ 200์€ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค."
fi   

fi๋Š” if๋ฌธ ์ข…๋ฃŒ

๋ฌธ์ œ 94. ์œ„ ์Šคํฌ๋ฆฝํŠธ์— ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์‹œ์˜ค.
$ sh if1.sh 100 200
-> 100๊ณผ 200์€ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
$ sh if1.sh 100 100
-> 100๊ณผ 100์€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

IF ~ ELIF ~ ELSE ๋ฌธ

์˜ˆ์ œ
$ vi if2.sh

if [100 -lt 200 ]; then
  echo "100์€ 200๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค."
elif [100 -gt 200 ]; then
  echo "100์€ 200๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค."
else 
  echo "100๊ณผ 200์€ ๊ฐ™์Šต๋‹ˆ๋‹ค."  
fi   

์ถœ๋ ฅ์ด ๋‹ค ์ด์ƒํ•˜๊ฒŒ ๋จ ๋ณ€์ˆ˜๋„ฃ์–ด์„œ ํ•˜๋Š”๊ฑฐ

-> ๋Œ€๊ด„ํ˜ธ ์•ˆ ๊ณต๋ฐฑ ์ œ๋Œ€๋กœ ์•ˆ์คฌ์—ˆ์Œ.

๋ฆฌ๋ˆ…์Šค์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

  1. and -> && ๋˜๋Š” -a
  2. or -> || ๋˜๋Š” -o
  3. not -> !

์˜ˆ์ œ
if [ $sal -lt 2000 ] && [ $job=="SALESMAN" ]; then // ๋Œ€๊ด„ํ˜ธ ๋”ฐ๋กœ์ผ์„ ๋•Œ
๋˜๋Š”
if [ $sal -lt 2000 -a $job=="SALESMAN" ]; then // ๋Œ€๊ด„ํ˜ธ ํ•œ๋ฒˆ์— ์“ธ ๋•Œ

๋ฌธ์ œ 96. emp.csv์—์„œ SCOTT์˜ ์›”๊ธ‰์„ ์ถœ๋ ฅํ•˜์„ธ์š”.

[orcl:~]$ awk -F ',' '$2=="SCOTT" {print $6}' emp.csv
3000

๋ฌธ์ œ 97. ์œ„ ์Šคํฌ๋ฆฝํŠธ์— ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰๋˜๊ฒŒ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.
sh find_sal.sh SCOTT

awk -F ',' -v name=$1 '$2==toupper(name) {print $6}' emp.csv


๋ฌธ์ œ 98. (์˜ค๋Š˜์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ) ์œ„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆ˜์ •ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์‹คํ–‰๋˜๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑํ•˜์„ธ์š”

$ sh find_job.sh scott
ANALYST

awk -F ',' -v name=$1 '$2==toupper(name) {print $3}' emp.csv
profile
Slow and steady wins the race.

0๊ฐœ์˜ ๋Œ“๊ธ€