[์ด์์ฒด์ ] ๋ฆฌ๋ ์ค ๋ช ๋ น์ด ์์๋ณด๊ธฐ (2)
Redirection
Redirection์ stdin/stdout/stderr๊ฐ ์ ๋ฌ๋๋ ๋ชฉ์ ์ง๋ฅผ ์ฌ์ ์ํ๋ค.
์ด๋ ํ์ค ์ ๋ ฅ, ์ถ๋ ฅ, ์๋ฌ์ ๋ํ ๋ฉ์์ง๋ฅผ ์๋ฏธํ๋ค. ์ปค๋งจ๋์ ์ํ ์ ๋ ฅ์ ํ์ค ์ ๋ ฅ(stdin ํ์ผ)์ ์์ฑ๋๊ณ ํ๋ฉด์ ์ถ๋ ฅ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ปค๋งจ๋์ ์ํ ์ถ๋ ฅ์ ํ์ค ์ถ๋ ฅ ๋๋ ํ์ค ์๋ฌ์ ์์ฑ๋๋ค. ์ด๋ ๋ ๋ค ํ๋ฉด์ผ๋ก ์ฐ๊ฒฐ๋์ง๋ง ์ค์ง์ ์ผ๋ก ์์ฑ๋๋ ํ์ผ์ ์๋ก ๋ค๋ฅด๋ค.(stdout/stderr)
๊ธฐ๋ณธ์ ์ผ๋ก ๋์คํฌ์๋ ์ ์ฅ๋์ง ์๋๋ค. ํ๋ก์ธ์ค์์ ํ์ผ์ ์ฐธ์กฐํ๊ธฐ ์ํ ํ์ผ ๋ฒํธ๋ฅผ file descriptor(fd)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํ์ค ์ ๋ ฅ/์ถ๋ ฅ/์๋ฌ์ fd๋ ์์๋๋ก 0,1,2์ด๋ค.
pts๋ ๊ฐ์ ํฐ๋ฏธ๋์ ๋ฌถ์ฌ์๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
ํ์ค ์ถ๋ ฅ ๋ฆฌ๋๋ ์
ํ๋ฉด์ ์ถ๋ ฅ๋ ๊ฒฐ๊ณผ๋ฌผ์ด ํ์ผ์ ์ฐ์ด๋๋ก ํ๋ค.
// ํ์ค ์ถ๋ ฅ ๋ฆฌ๋๋ ์
์ํ, ๋ฎ์ด์ฐ๊ธฐ
ls -l /usr/bin > ls-output.txt
// ํ์ค ์ถ๋ ฅ ๋ฆฌ๋ค์ด๋ ์
์ํ, ๋ฎ์ด์ฐ๊ธฐ
ls -l/ babo > ls-output.txt
// /babo๊ฐ ์์ผ๋ฏ๋ก ์๋ฌ ๋ฉ์ธ์ง๋ ์ถ๋ ฅ๋์ง๋ง, stdout๊ณผ ๋ณ๊ฐ์ด๋ค.
// ํ์ค ์ถ๋ ฅ์ ์์ผ๋ฏ๋ก ๋ฎ์ด์ฐ๊ธฐ ๋์ด์ ๋ด์ฉ๋ฌผ์ด ์ฌ๋ผ์ง๋ค.
echo "something" > ls-output.txt
// ์ด ๊ฒฝ์ฐ ์ถ๋ ฅ์ด ์์ผ๋ฏ๋ก ์๋ฌด๊ฒ๋ ์ฐ์ฌ์ง์ง ์๋๋ค. ํ์ง๋ง ์๋ฌ ๋ฉ์ธ์ง๋ ์ถ๋ ฅ๋์ง ์๋๋ค.
> ls-output.txt(ํ์ค ์ถ๋ ฅ ๋ฆฌ๋๋ ์
์ํ)
// ํ์ค ์ถ๋ ฅ ๋ฆฌ๋๋ ์
์ํ, ์ด์ด์ฐ๊ธฐ ๊ธฐ๋ฅ
ls -l /bin >> ls-output.txt
ํ์ค ์๋ฌ ๋ฆฌ๋๋ ์
// ํ์ค ์๋ฌ ๋ฆฌ๋๋ ์
์ํ, ๋ฎ์ด์ฐ๊ธฐ
ls -l /babo 2 > ls-error.txt
์ด๋ฐ ์์ผ๋ก 2๋ฅผ ๋ฃ๊ฒ ๋๋ฉด ์๋ฌ ๋ฉ์ธ์ง๊ฐ ํด๋น ํ์ผ ๋ด์ ์ฐ์ธ๋ค.
ํ์ค ์ ๋ ฅ ๋ฆฌ๋๋ ์
ํค๋ณด๋ ๋์ ์ ํ์ผ์ ๋ด์ฉ์ ํตํด์ ์ ๋ ฅ์ ์ฃผ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค. ํ์ฉ์ ์ ํ์ ์ด๋ค.
_cat [file...]_ : ํ์ผ(์์ผ๋ฉด ํ์ค์ ๋ ฅ)์ ์ฝ์ด์ ํ์ค ์ถ๋ ฅ์ผ๋ก ์ถ๋ ฅํ๋ค.
cat ls-output.txt
cat text01.txt text02.txt text03.txt
cat text0*.txt > text1.txt
// ํ๋๋ก ๊ฒฐํฉํ๋ ๊ฒ
cat < babo.txt
// ํค๋ณด๋ ์
๋ ฅ ๋์ ํ์ผ์ ์ ์ฉํ์ฌ ํ์ค ์ถ๋ ฅ, ๊ฒฐ๊ณผ์ ์ผ๋ก cat babo.txt์ ๊ฐ๋ค.
Pipelines
ํ ๋ช ๋ น์ด์ ํ์ค ์ถ๋ ฅ์ ๋ค๋ฅธ ๋ช ๋ น์ด์ ํ์ค์ ๋ ฅ/ํ์ผ์ ๋ ฅ์ผ๋ก ์ฐ๊ฒฐํ๋ค.
_command1 | command2_์ ๊ฐ์ด ์ฌ์ฉํ๋ค.
- Filters
- wc : word count, ์ค ์์ด๋ค.
- sort : ์ ๋ ฌ
- uniq : ์ค๋ณต์ ๊ฑฐ, ์ ๋ ฌ ํ์ ์ฌ์ฉํด์ผ ํ๋ค.(-d๋ ์ค๋ณต์ ์ถ๋ ฅํ๋ค.)
- grep pattern [file...] : ํจํด๊ณผ ์ผ์นํ๋ ์ค์ ์ถ๋ ฅใทํ๋ค.
- head/tail : ํ์ผ ์ฒ์ ํน์ ๋๋ถํฐ n ์ค์ ์ถ๋ ฅํ๋ค.
- tee : ํ์ค ์
๋ ฅ์ ์ฝ๊ณ , ํ์ค ์ถ๋ ฅ๊ณผ ํ์ผ๋ก ๋์์ ์ถ๋ ฅํ๋ค.
- ls /bin | tee ls-bin.txt | grep zip
cut
cut์ ์ค์์ ํ ์คํธ ์ผ๋ถ๋ฅผ ์ถ์ถํ๋ ๋ช ๋ น์ด์ด๋ค.
_cut OPTION... [file]_
์ฌ๊ธฐ์ ์ฌ์ฉํ ์ ์๋ ์ต์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- -c list : ์ง์ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค. (-c, -f ์ต์ )
- -f list : ์ง์ ํ๋ ์ถ๋ ฅ
- comma(,)๋ก ์ฌ๋ฌ ๊ฐ๊ฐ ๊ฐ๋ฅํ๋ค.
- range(-)๋ก ๋ฒ์๊ฐ ๊ฐ๋ฅํ๋ค.
- -d delim : ํ๋ ๊ตฌ๋ถ ๊ธฐ์ค(๋จ์ผ ๋ฌธ์)
- default๋ tabl๋ฌธ์์ด๋ค.
tr(tanslate)
tr ๋ช ๋ น์ด๋ ์ผ๋ถ ๋ฌธ์์ด์ ๋ฐ๊ฟ์น๊ธฐํ๋ ๋ช ๋ น์ด์ด๋ค.
echo "many sapce string" | tr -s ' '
// many spaces string
echo "delete all c and l characters" | tr -d 'cl'
// deete a and haracters
cat ls-bin.txt | tr -d 'z' > zx.txt
find
find๋ ๊ฒฝ๋ก, ํ์ผ ํ์ , ํ์ผ ํฌ๊ธฐ, ํ์ผ ๋ช , ๊ทธ ๋ฐ์๋ ๋ง์ ์ต์ ์ผ๋ก ํ์ผ์ ๊ฒ์ํ ์ ์๋ค.
find ~ | wc -l
// ์จ๊น ํ์ผ๊น์ง ํ์๋๋ค.
find -type d | wc -l
// ํ ๋๋ ํ ๋ฆฌ ์ดํ์์ ๋๋ ํ ๋ฆฌ ํ์
์ ํ์ผ์ ๊ฐฏ์
find -type f | wc -l
// ํ ๋๋ ํ ๋ฆฌ ์ดํ์์ ์ผ๋ฐ ํ์
์ ํ์ผ์ ๊ฐฏ์
find ~ -size 0 | wc -l
// ํ ๋๋ ํ ๋ฆฌ ์ดํ์์ ํฌ๊ธฐ๊ฐ 0์ธ ํ์ผ์ ๊ฐฏ์
find ~ -size +1M | wc -l
// ํ ๋๋ ํ ๋ฆฌ ์ดํ์์ ํฌ๊ธฐ๊ฐ 1MB๋ณด๋ค ํฐ ํ์ผ์ ๊ฐฏ์
find ~ -type f -name "*.txt" -size +1k | wc -l
// ํ ๋๋ ํ ๋ฆฌ ์ดํ์ ์ผ๋ฐ ํ์
์ด๊ณ , ์ด๋ฆ์ด .txt๋ก ๋๋๊ณ 1KB๋ฅผ ์ด๊ณผํ๋ ํ์ผ์ ๊ฐฏ์
touch empty
// ํ์ผ์ด ์์ผ๋ฉด ์์ฑํ๊ณ , ์์ผ๋ฉด ์ ๊ทผ๋ ์ง๋ฅผ ์ต์ ํํ๋ค.
mkdir -p playground/dir-{001..100}
touch playground/dir-{001..100}file-{A..Z}
find playground/ -type f -name 'file-[AB]' | wc -l
history
๋ช ๋ น์ด ์ ๋ ฅ์ ๊ธฐ๋กํ๋ ๋ช ๋ น์ด์ด๋ค.
history
// history | grep PATTERN ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
// ctrl + r๊ณผ ctrl + j๋ก ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์๋ค.
ps
ํ์ฌ ํ๋ก์ธ์ค๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด์ด๋ค.
jobs๋ job๋ค์ ์ํ๋ฅผ ํ์ธํ๋ ๊ฒ์ด๋ฉฐ _&_๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ์ด๋ค.
_kill_์ ์๊ทธ๋์ ๋ณด๋ด๋ ๊ฒ์ด๋ค.
du
du๋ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด์ด๋ค.
df๋ ํ์ผ ์์คํ ์ ํฌ๊ธฐ๋ฅผ ํ์ธํ๋ค.
Link (In)
- ์ธ๋ณผ๋ฆญ ๋งํฌ
- ํน์ ํ ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ์ ๋ํ text pointer
- ํ์ผ ์์ฒด์ ๊ตฌ๋ถ ๋ถ๊ฐ
- ํ๋ ๋งํฌ
- ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๋ ์ด๋ฆ๋ง ๋ค๋ฅธ ํ์ผ
- ํ์ผ ์์ฒด์ ๊ตฌ๋ถ ๋ถ๊ฐ
_ln_ ์ ๋งํฌ๋ฅผ ์์ฑํ ์ ์๋ค.
- ln File Link : hard Link๋ฅผ ์์ฑํ๋ค.
- ln -s ITEM LINK : symbolic link ์์ฑ(item = file or directory)