TIL 009 Shell ์…ธ

์กฐ์„ฑํ˜„ยท2021๋…„ 1์›” 11์ผ
0

์ •๊ธ€

๋ชฉ๋ก ๋ณด๊ธฐ
10/21

https://missing-semester-kr.github.io/?s=04

๊ฐ•์˜๋ฅผ ๋ณด๋ฉด์„œ ๋ฐฐ์šด ์…ธ ํˆด์„ ๋‹ค๋ฃจ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ •๋ฆฌํ•œ๋‹ค.

๐Ÿ“• ์…ธ Shell

์…ธ ํˆด์€ ์ปดํ“จํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ œํ•œ์ด ๊ฑฐ์˜ ์—†๋Š” ๊ฐ•๋ ฅํ•œ ํˆด์ด๋‹ค.

๐Ÿ‘‰ ๊ธฐ์ดˆ

ํŠน์ง•

์…ธ์—์„œ ์ŠคํŽ˜์ด์Šค(space)๋Š” argument์ด๋‹ค. ์ฆ‰, ์ŠคํŽ˜์ด์Šค๋ฅผ ๋ฌธ์ž๋กœ ๋ฐ›์•„๋“œ๋ฆฐ๋‹ค.
'/'๋กœ ์‹œ์ž‘๋˜๋Š” ๊ฒฝ๋กœ๋Š” ์ ˆ๋Œ€๊ฒฝ๋กœ
๊ทธ๋ ‡์ง€ ์•Š์€๊ฒฝ์šฐ๋Š” ์ง€๊ธˆ ์œ„์น˜์™€์˜ ์ƒ๋Œ€๊ฒฝ๋กœ

๊ธฐ๋ณธ์ ์ธ ๋ช…๋ น์–ด

ctrl+l : clear all
date : ํ˜„์žฌ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜
echo : ์ž…๋ ฅ์„ ๋ฐ˜ํ™˜
pwd : print working directory, ํ˜„์žฌ ์ž‘์—… ๊ฒฝ๋กœ ๋ฐ˜ํ™˜
man :๋ฉ”๋‰ด์–ผ,์„ค๋ช…
--help : ๋„์›€๋ง
tldr : ๋„์›€๋ง

๐Ÿ‘‰ ํŒŒ์ผ ๊ด€๋ฆฌ ๋ช…๋ น์–ด

๊ฒฝ๋กœ์ด๋™

cd : ์ด๋™
. : ํ˜„์žฌ๊ฒฝ๋กœ
.. : ์ด์ „๊ฒฝ๋กœ
cd ~ : home directory ๋กœ ์ด๋™
rmdir : ๊ฒฝ๋กœ ์‚ญ์ œ

ํŒŒ์ผ๊ด€๋ฆฌ

ls : list of file (-l # long list format, r: read, w:write, x:excute)
ls .. : ์ด์ „๊ฒฝ๋กœ์˜ list of file
mv : ์ด๋ฆ„๋ณ€๊ฒฝ, ํŒŒ์ผ์ด๋™(pastPath newPath)
cp : ๋ณต์‚ฌ (pastPath newPath)
rm : ์‚ญ์ œ
touch : ์ƒ์„ฑ
chmod : ํŒŒ์ผ ํ˜•์‹ ๋ฐ”๊พธ๊ธฐ
convert : ํŒŒ์ผ ํ˜•์‹ ๋ฐ”๊พธ๊ธฐ
{} : ๋ฅผ ํ†ตํ•ด ๋‹ค์ˆ˜์˜ ๋ช…๋ น์„ ํ•œ๋ฒˆ์— ํ•  ์ˆ˜ ์žˆ๋‹ค.
ex) touch foo{1,2,3} = foo1, foo2, foo3

ํŒŒ์ผ์‹คํ–‰

'>' : output stream set ex) echo hello > hello.txt
'<' : input stream set ์ธํ’‹์„ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ ์ธ์ง€ cat < hello.txt
'>>' : append
cat : concat, ์•ˆ์— ๋‚ด์šฉ์„ ํ„ฐ๋ฏธ๋„์— ๋„์šฐ๊ธฐ
| : pipe ex) ์—ฌ๊ธฐ์•„์›ƒํ’‹์„ | ์—ฌ๊ธฐ์ธํ’‹์œผ๋กœ
tail : ๋งˆ์ง€๋ง‰ ์ค„
sudo : super user do
root user : ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ($:์ผ๋ฐ˜ ์‚ฌ์šฉ์ž, #: ๊ด€๋ฆฌ์ž)
tee : input file to (file) and show in terminal

๐Ÿ‘‰ ์…ธ ํˆด ๋ช…๋ น์–ด

์‰˜ ์‹คํ–‰

sh : shell interpreter
#! : shebangm sh script ์œ„์— interpreter๋ฅผ ์ ์–ด๋‘๋ฉด ์ž๋™ ์‹คํ–‰๊ฐ€๋Šฅ

๋ณ€์ˆ˜์„ ์–ธ

๋ณ€์ˆ˜์„ ์–ธ : foo=bar
string์„ ์–ธ " " : ๋ณ€์ˆ˜๋ฅผ ํ‘œ์‹œ
string์„ ์–ธ ' ' : ๋ฌธ์ž์—ด ๊ทธ๋Œ€๋กœ ํ‘œ์‹œ

ํ•จ์ˆ˜์„ ์–ธ

ํ•จ์ˆ˜์„ ์–ธ : mcd(){ ... }

๋ฐ˜๋ณต๋ฌธ

๋ฐ˜๋ณต : if, case, while, for ...
for ... done
if ... fi

๋น„๊ต์—ฐ์‚ฐ์ž

_ne : not equal
(๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ๋ช…๋ น์–ด์— ์“ธ ์ˆ˜ ์žˆ๋‹ค.)
False || A => A ์‹คํ–‰
True || A -> x
False && A -> A ์‹คํ–‰
True && A -> x

$

$0 : script name /// $1~9 : script argument /// $@ : all argument /// $# : number of argument /// $? : ์ด์ „ ๋ช…๋ น์„ ๋ฐ˜ํ™˜ 9True: 0, False: 1) /// $_ : ๋งˆ์ง€๋ง‰ ๋ช…๋ น์˜ ๋งˆ์ง€๋ง‰ ์ธ์ˆ˜
!! : ์ธ์ˆ˜๋ฅผ ํฌํ•จํ•œ ๋งˆ์ง€๋ง‰ ๋ช…๋ น

$( ) : ๋ช…๋ น์˜ ์ถœ๋ ฅ์„ ๋ณ€์ˆ˜๋กœ
<( ) : ๋ช…๋ น์˜ ์ถœ๋ ฅ์„ ์ž„์‹œํŒŒ์ผ์— ์ €์žฅ, <( )๋ฅผ ํŒŒ์ผ์˜ ์ด๋ฆ„์œผ๋กœ ๋Œ€์ฒด

๐Ÿ‘‰ ํŒŒ์ผ ๊ฒ€์ƒ‰

๊ฒ€์ƒ‰

ls *.sh : .sh ํ™•์žฅ์ž์ธ ํŒŒ์ผ ๊ฒ€์ƒ‰
ls A? : A๊ฐ€๋“ค์–ด๊ฐ€๊ณ  ๋‹ค์Œ ํ•œ ๊ธ€์ž๋ฅผ ๋ชจ๋ฅผ ๊ฒฝ์šฐ
find : ์ฐพ๊ธฐ
-name, -type, -path, -mtime(์ˆ˜์ •๋‚ ์งœ(-1=์ตœ๊ทผ)), -size, -exec
fd : ๊ฐ„ํŽธํ•œ ๋Œ€์•ˆ
locate : db์—์„œ ๋น ๋ฅด๊ฒŒ location์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•

๐Ÿ‘‰ ์ฝ”๋“œ ๊ฒ€์ƒ‰

์ฝ”๋“œ ๊ฒ€์ƒ‰

grep : ์ฝ”๋“ค๋ฅผ ์ฐพ๋Š”๋‹ค.
-c : ํฌํ•จ๋œ์ค„, -v : ์—†๋Š” ์ค„, -R : exclusive
rg, ripgrep : ๋” ๋น ๋ฅธ ๋Œ€์•ˆ library

๐Ÿ‘‰ ์…ธ ๋ช…๋ น์–ด ๊ฒ€์ƒ‰

์…ธ ์ฝ”๋ฉ˜๋“œ ๊ฒ€์ƒ‰

history : ์นœ๋ช…๋ น์–ด
ex) history || grep A
ctrl + r : ์—ญ๋ฐฉํ–ฅ์ •๋ ฌ
fzf : ์œ ์šฉํ•œ ๋Œ€์•ˆ library
tree : ๋ณด๊ธฐ์ข‹๊ฒŒ ์ •๋ ฌ

profile
Jazzing๐Ÿ‘จโ€๐Ÿ’ป

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