ex00
์ ์ถ ๋๋ ํ ๋ฆฌ : ex00/
์ ์ถ ํ์ผ : lion
cat ๋ช ๋ น์ด ์คํ์ ํตํด “Hello World!"๋ฅผ ๋ฐํ ํ ๊ฐํ์ ๋ฐํํ๋ ํ์ผ์ ๋ง๋์ธ์. ํ์ผ์ ์ด๋ฆ์ lion ์ ๋๋ค.
์์)
$ cat lion
Hello World!
๐ก ํ์ํ ๋ฆฌ๋ ์ค(Linux) BASH ์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ
โก๏ธ ํด๋ ์์ฑ
mkdir [ํด๋๋ช
]
โก๏ธ ํด๋ ๋ค์ด๊ฐ๊ธฐ
cd [ํด๋๋ช
]
โก๏ธ ํ์ผ ์์ฑ
cat > [ํ์ผ๋ช
]
โก๏ธ ํ์ผ ์ถ๋ ฅ
cat [ํ์ผ๋ช
]
ํ์ด๊ณผ์
1. ํด๋ ์์ฑ ๋ฐ ํด๋ ๋ค์ด๊ฐ๊ธฐ
mkdir ex00 #ex00 ํด๋ ์์ฑ
cd ex00 #ex00 ํด๋ ๋ค์ด๊ฐ๊ธฐ
2. ํ์ผ ์์ฑ
cat > lion
Hello World!
^C
3. ๊ฒฐ๊ณผ
cat lion
# Hello World!
ex01
์ ์ถ ๋๋ ํ ๋ฆฌ : ex01/
์ ์ถ ํ์ผ : env.sh
CUK1, CUK2 ํ๊ฒฝ๋ณ์๋ฅผ ์ ์ญ์ผ๋ก ์ถ๊ฐํด๋ด ์๋ค. ๋ค์๊ณผ ๊ฐ์ ์ถ๋ ฅ์ด ๋์ค๊ฒ ํ์ธ์.
์ถ๋ ฅ)
$ ./env.sh
$CUK1 $CUK2
LIKE lion
$ echo $CUK1 $CUK2
LIKE lion
โ ๏ธ ํ๊ฒฝ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ง์ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ฉด ์๋ฉ๋๋ค.
๐ก ํ์ํ ๋ฆฌ๋ ์ค(Linux) BASH ์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ
โก๏ธ์ ์ญ๋ณ์ ์์ฑ
export ๋ณ์๋ช
=๋ด์ฉ
โก๏ธ ํ ์คํธ ๋ฐ ๋ฌธ์์ด ์ถ๋ ฅ
echo [๋ณ์๋ช
or ๋ฌธ์์ด]
โก๏ธ chmod ๊ถํ ์ค์
chmod +x [ํ์ผ๋ช
]
ํ์ด๊ณผ์
1. ํ๊ฒฝ๋ณ์ ์ ์ญ์ผ๋ก ์์ฑํ๊ธฐ
export CUK1=LIKE
export CUK2=lion
echo $CUK1 $CUK2
# LIKE lion
2. ํ์ผ ์์์ ๋ณ์ ์ถ๋ ฅํ๊ธฐ
echo "\$CUK1 \$CUK2"
echo $CUK1 $CUK2
3. ๊ฒฐ๊ณผ
./env.sh
ex02
์ ์ถ ๋๋ ํ ๋ฆฌ : ex02/
์ ์ถ ํ์ผ : lion_to_catholic.sh
์์์ ์ถ๊ฐํ ํ๊ฒฝ๋ณ์ CUK1, CUK2๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํด์ Catholic ์ ์ถ๋ ฅํด๋ด ์๋ค.
$ ./lion_to_catholic.sh
Catholic
โ ๏ธ ํ๊ฒฝ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ง์ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ฉด ์๋ฉ๋๋ค.
๐ก ํ์ํ ๋ฆฌ๋ ์ค(Linux) BASH ์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ
โก๏ธ๋ฌธ์์ด ์นํํ๊ธฐ
echo [๋ฐ๊พธ๊ณ ์ถ์ ๋ณ์๋ช
] | tr [๊ธฐ์กด ๋ฌธ์์ด] [๊ต์ฒดํ ๋ฌธ์์ด]
ํ์ด๊ณผ์
1. ํ์ผ์์ฑ
vi lion_to_catholic.sh
2. sh ํ์ผ
1) ํ๊ฒฝ๋ณ์ 'CUK1'์ 'LIKE' ๋ฌธ์์ด์ 'Cath'์ผ๋ก ์นํ
2) ํ๊ฒฝ๋ณ์ 'CUK2'์ 'lion' ๋ฌธ์์ด์ 'olic'์ผ๋ก ์นํ
echo $CUK1$CUK2 | tr LIKE Cath | tr lion olic
3. ๊ฒฐ๊ณผ
ex03
์ ์ถ ๋๋ ํ ๋ฆฌ : ex03/
์ ์ถ ํ์ผ : how_many.sh
ํ์ฌ ๋๋ ํ ๋ฆฌ์ ๋ช๊ฐ์ ํ์ผ์ด ์๋์ง ์ถ๋ ฅํ๋ ํ์ผ์ ์์ฑํ์ธ์
์์)
$ ./how_many.sh
12
๐ก ํ์ํ ๋ฆฌ๋ ์ค(Linux) BASH ์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ
โก๏ธ ํ์ฌ์์น์์ ํ์ผ ๊ฐ์ ์ธ๊ธฐ
ls -l | grep ^- | wc -l
ํ์ด๊ณผ์
1. ์ ์คํฌ๋ฆฝํธ ํ์ผ ์์ฑ
vi how_many.sh
2. how_many.sh ํ์ผ ์์ฑ
1) ๋ณ์ cnt์ ํ์ฌ์์น์ ํ์ผ ๊ฐ์ ์ ์ฅ
cnt=($(ls -l | grep ^- | wc -l))
echo $cnt
3. ํ์ผ ๊ถํ ๋ถ์ฌ
#chmod +x [ํ์ผ๋ช
]
chmod +x how_many.sh
4. ์ ์คํฌ๋ฆฝํธ ์คํ
#./[ํ์ผ๋ช
]
./how_many.sh
5. ๊ฒฐ๊ณผ
https://lee-mandu.tistory.com/420
ex04
์ ์ถ ๋๋ ํ ๋ฆฌ: ex04/
์ ์ถ ํ์ผ : test_touch.txt
touch ๋ช ๋ น์ด๋, ํ์ผ์ ์์ฑ๊ณผ ํ์ผ์ ๋ ์ง, ์๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด ์ ๋๋ค ์ต์ ์์ด ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋ฒ์ ํ์ฌ ์๊ฐ์ผ๋ก ๋ณ๊ฒฝ ๋ฉ๋๋ค.
$ touch [์ต์
] [ํ์ผ๋ช
]
ํด๋น ๋ช ๋ น์ด๋ฅผ ํ์ฉํ์ฌ ๊ฐ๋จํ txt ํ์ผ์ ๋ง๋ค๊ณ , ๋ด์ฉ์ ์์ฑํ์ฌ ์ถ๋ ฅ ๋๊ฒ ํด๋ด ์๋ค.
์์)
#ํ์ผ ์์ฑ
$ touch test_touch.txt
#๋ฌธ๊ตฌ ์ถ๋ ฅ
$ cat test_touch.txt
ํ
์คํธ ๋ฌธ๊ตฌ์
๋๋ค.
ํ์ด๊ณผ์
1. test_touch.txt ํ์ผ ์์ฑ
touch test_touch.txt
2. test_touch.txt ํ์ผ ์์
cat > test_touch.txt
์๊ธฐ์ฌ์ ํฌ์์
^C
3. ๊ฒฐ๊ณผ
cat test_touch.txt
# ์๊ธฐ์ฌ์ ํฌ์์
ex05
์ ์ถ ๋๋ ํ ๋ฆฌ: ex05/
์ ์ถ ํ์ผ: test_cp.txt
cp๋ ์๋ฒ ๊ธฐ๋ณธ ๋ช ๋ น์ด์ค ํ๋์ด๋ฉฐ, ํ์ผ/ ๋๋ ํ ๋ฆฌ ๋ฑ ๋ณต์ฌ๊ธฐ๋ฅ์ ์ด์ฉํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ ๋๋ค.
๋ค์ํ ์ต์ ์ ์ด์ฉํ์ฌ ๋ฎ์ด์ฐ๊ธฐ, ๋ค์ค ๋ณต์ฌ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค.
์์ ์ ์ํ ํ ์คํธ ํ์ผ์ ๋ณต์ฌํด๋ด ์๋ค.
์์)
$ cp test_touch.txt test_cp.txt
์คํ๊ฒฐ๊ณผ)
$cat test_cp.txt
ํ
์คํธ ๋ฌธ๊ตฌ์
๋๋ค.
๐ก ํ์ํ ๋ฆฌ๋ ์ค(Linux) BASH ์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ
โก๏ธ ํ์ผ ๋ณต์ฌํ๊ธฐ
$ cp [์๋ณธํ์ผ] [๋ณต์ฌํ์ผ]
ํ์ด๊ณผ์
1. ํ์ผ ๋ณต์ฌ
$ cp test_touch.txt test_cp.txt
2. ๊ฒฐ๊ณผ
cat test_cp.txt
# "test"
cat test_touch.txt
# "test"
ex06
์ ์ถ ๋๋ ํ ๋ฆฌ: ex06/
์ ์ถ ํ์ผ: move_dir.sh
mv ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ๋ก ํ์ผ์ ์ฎ๊ธฐ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด๋ด ์๋ค.
์คํ๊ฒฐ๊ณผ) newdir ๋ผ๋ ๋๋ ํ ๋ฆฌ๋ก ํ์ผ์ ์ฎ๊ธด ๊ฒฝ์ฐ (์)
~/newdir# ls
test.txt
๐ก ํ์ํ ๋ฆฌ๋ ์ค(Linux) BASH ์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ
โก๏ธ mv ๋ช ๋ น์ด : ํ์ผ ์ฎ๊ธฐ๊ธฐ
mv [์ด๋ํ ํ์ผ][์ด๋๋ ์์น]
ํ์ด๊ณผ์
1. ์ด๋์ํฌ ํ์ผ ์์ฑ
cat test.txt
# ์ด๋์ํฌ ํ์ผ
2. ํ์ฌ ์์น์ ์๋ ํ์ผ ํ์ธ
ls
# move_dir.sh newdir test.txt
3. ํ์ฌ ํ์ผ ๊ฒฝ๋ก ํ์ธํ๊ธฐ
pwd
# /home/hyunjin/LikeLion-Common-Subject/ex06
4. move_dir.sh ํ์ผ ์์ฑ
1) ๋ค๋ฅธ ํด๋๋ก ํ์ผ ์ฎ๊ธฐ๊ธฐ
/home/hyunjin/LikeLion-Common-Subject/ex06 ๊ฒฝ๋ก์ ์๋ 'test.txt'๋ฅผ
/home/hyunjin/LikeLion-Common-Subject/ex06/newdir ๊ฒฝ๋ก๋ก ์ฎ๊น
mv test.txt /home/hyunjin/LikeLion-Common-Subject/ex06/newdir
5. ๊ฒฐ๊ณผ
ex07
์ ์ถ ๋๋ ํ ๋ฆฌ: ex07/
์ ์ถ ํ์ผ: find_file.sh
find ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ํ์ฅ์๊ฐ .sh ๋ก ๋ ํ์ผ์ ์ฐพ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด๋ด ์๋ค.
์คํ๊ฒฐ๊ณผ)
$ find_file.sh
/๊ฒฝ๋ก/ํ์ผ์ด๋ฆ.sh
/๊ฒฝ๋ก/ํ์ผ์ด๋ฆ2.sh
...
ํ์ด๊ณผ์
1. find_file.sh ํ์ผ ์์ฑ
vi find_file.sh
2. find_file.sh ํ์ผ ์์
1) ์ด๋ฆ์ ".sh"๊ฐ ๋ค์ด๊ฐ ํ์ผ ์ฐพ๊ธฐ
find . -name "*.sh"
3. ๊ฒฐ๊ณผ
ex08
์ ์ถ ๋๋ ํ ๋ฆฌ: ex08/
์ ์ถ ํ์ผ: remove_file.sh
rm ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ์ ์ญ์ ํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด ๋ด ์๋ค.
๐ก ํ์ํ ๋ฆฌ๋ ์ค(Linux) BASH ์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ
โก๏ธ rm ๋ช ๋ น์ด : ํ์ผ ์ญ์ ๋ช ๋ น์ด
rm [ํ์ผ๋ช
]
ํ์ด๊ณผ์
1. ์ญ์ ํ ํ์ผ ์์ฑ
cat > file_.sh
2. remove_file.sh ํ์ผ ์์ฑ
vi remove_file.sh
ls
# check_remove.sh file_.sh remove_file.sh
3. remove_file.sh ํ์ผ ์์
1) ํ์ผ์ด ์กด์ฌํ๋์ง ๊ฒ์ฌํ ํ ์กด์ฌํ๋ ๊ฒฝ์ฐ ํ์ผ์ ์ญ์ ํ๋ ์คํฌ๋ฆฝํธ ์์ฑ
rm file_.sh
4. ๊ฒฐ๊ณผ
๐ฅ (์ ํ์ฌํญ) ํ์ผ์ด ์กด์ฌํ๋์ง ๊ฒ์ฌํ ํ, ์กด์ฌํ ๊ฒฝ์ฐ ํ์ผ์ ์ญ์ ํ๋ ์คํฌ๋ฆฝํธ๋ ์์ฑํด๋ณด์ธ์!
๐ก ๋ฆฌ๋ ์ค ํ์ผ ์กด์ฌ ์ฌ๋ถ ํ์ธํ๋ ๋ฐฉ๋ฒ
test ๋ช ๋ น์ด
test๋ ํ์ผ ๋ฐ ๋๋ ํ ๋ฆฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ true / false๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํจ.
๋ง์ฝ ์ด๋ค ํ์ผ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ "file exist"๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํ๋ ค๋ฉด?
@ ํ์ผ์ด๋ฆ : './test_file.sh'
if test -f './test_file.sh'
then
echo "file exist !!!";
fi
ํ์ด๊ณผ์
๋ง์ฝ์ file_.sh ํ์ผ์ด ์๋ค๋ฉด?
'remove File'์ ์ถ๋ ฅํ๊ณ file_.sh๋ฅผ ์ญ์ ํด๋ผ
๋ง์ฝ์ file_.sh ํ์ผ์ด ์๋ค๋ฉด?
'already removed'๋ฅผ ์ถ๋ ฅํด๋ผ
if test -f './file_.sh'
then
echo 'remove File';
rm file_.sh;
else
echo 'already removed'
fi
ex09
์ ์ถ ๋๋ ํ ๋ฆฌ: ex09/
์ ์ถ ํ์ผ : myscript.sh
์คํฌ๋ฆฝํธ ํ์ผ์ด ์กด์ฌํ๋ ์ ๋/์๋ ๊ฒฝ๋ก๋ฅผ pwd๋ฅผ ์ด์ฉํ์ฌ ์ป๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด๋ด ์๋ค.
์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ๋, ๋ช ๋ น์ด๋ฅผ ์ธ์๋ก ๋ฐ๋๋ฐ์. ๊ทธ ์ธ์์ ๊ฒฝ๋ก๋ฅผ ํด์ํด์ ํ์ผ์ ์์น๋ฅผ ๊ตฌํ๋ ๊ฒ์ ๋๋ค.
๐ก ํฐ๋ฏธ๋์์ ๋ฐ์ ์ธ์ $0์ dirnameํ์ฌ ๋๋ ํ ๋ฆฌ ๋ช ์ ์ป๊ณ ,
cd ๋ฅผ ํตํด ์ด๋ํ ๋๋ ํ ๋ฆฌ(dirname์ ํตํด ์ป์ ๋๋ ํ ๋ฆฌ)์์ ,
pwd๋ก ์ ๋ ๊ฒฝ๋ก ๊ฐ์ ๋ณ์์ ์ ์ฅํ๋ ๋ฐฉ์์ ์ด์ฉํ๋ฉด๋ฉ๋๋ค.
์คํ ๊ฒฐ๊ณผ )
$ bash myscript.sh
scriptName: myscript.sh
relative Path: .
Absolute Path: /mnt/d/home
ํ์๋ ๊ฒฝ๋ก๋ ์์์ด๋ฏ๋ก ๋ณธ์ธ์ ๊ฒฝ๋ก์ ๋ง๊ฒ ์ถ๋ ฅ ๋๋ ๊ฒ์ ํ์ธํ๋ฉด ๋ฉ๋๋ค.
๐ก ์์คํฌ๋ฆฝํธ ํ์ผ์ ์ ๋๊ฒฝ๋ก ์ป๊ธฐ
1) $0 : ๋ช ๋ น์ด์ ์ฒซ๋ฒ์งธ ์ธ์
ex) sh ./myscript.sh abc๋ผ๋ ๋ช
๋ น์ด๊ฐ ์๋ค๋ฉด?
$0์ ./myscript.sh
$1์ abc
2) dirname : ๋ฌธ์์ด์์ ๋๋ ํ ๋ฆฌ๋ง ์ถ์ถํด์ฃผ๋ ๋ช ๋ น์ด
dirname ./myscript.sh์ ./๋ฅผ ๋ฆฌํด
โก๏ธ ํ์ผ์ ์๋๊ฒฝ๋ก๋ฅผ ์ป๊ณ ๊ทธ ์์น๋ก ์ด๋ํ ํ, pwd๋ก ์ ๋๊ฒฝ๋ก๋ฅผ ์ป์ผ๋ฉด ์คํฌ๋ฆฝํธ ํ์ผ์ ์ ๋๊ฒฝ๋ก๋ฅผ ์ป์ ์ ์์.
ํ์ด๊ณผ์
1. myscript.sh ํ์ผ ์์ฑ
vi myscript.sh
2. myscript.sh ํ์ผ ์์
relative=$(dirname ./myscript.sh)
absolute=$(cd $(dirname -- "${BASH_SOURCE[0]}") && pwd)
echo sriptName: $(basename $0)
echo relative Path: $relative
echo Absoulte PAth: $absolute
2. ๊ฒฐ๊ณผ
bash myscript.sh
https://codechacha.com/ko/how-to-get-path-of-bash-script/
ex10
์ ์ถ ๋๋ ํ ๋ฆฌ : ex10/
์ ์ถ ํ์ผ : create_dir.sh
mkdir์ปค๋งจ๋๋ฅผ ํ์ฉํ์ฌ ํด๋๋ฅผ ์์ฑํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด๋ด ์๋ค.
new_directory๋ผ๋ ์๋ก์ด ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๊ณ , ์์ฑ์ ์ฑ๊ณตํ์๋์ง ๊ฒ์ฌํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ธ์.
mkdir ๋ช ๋ น์ด ์คํ ํ, $?๋ฅผ ํตํด ๋ช ๋ น์ด์ ์ฑ๊ณต ์ ๋ฌด๋ฅผ ํ์ธํฉ๋๋ค.
์กฐ๊ฑด)
์ข ๋ฃ ์ํ๊ฐ 0์ผ ๊ฒฝ์ฐ, ์ฆ ๋ช ๋ น์ด๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ํ๋ ๊ฒฝ์ฐ์๋ "Directory created successfully." ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ ,
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ "Failed to create directory." ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์คํ๊ฒฐ๊ณผ)
$ bash create_dir.sh
Directory created successfully.
๐ก ํ์ํ ๋ฆฌ๋ ์ค(Linux) BASH ์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ
โก๏ธ $?
bash ์์์ ์ต๊ทผ ์คํํ ๋ช ๋ น์ด์ ์ข ๋ฃ ์คํ ์ดํฐ์ค๋ฅผ ๊ฐ์ง ๋ณ์์ต๊ทผ ์คํํ ํจ์์ return ๊ฐ์ ๊ฐ์ง ๋ณ์
→ ์ต๊ทผ ๋ช ๋ น์ด์ ์ข ๋ฃ ์ํ๊ฐ ์ ์(0)
→ ์ต๊ทผ ๋ช ๋ น์ด์ ์ข ๋ฃ ์ํ๊ฐ ๋น์ ์(127)
ํ์ด๊ณผ์
1. create_dir.sh ํ์ผ ์์ฑ
vi create_dir.sh
2. create_dir.sh ํ์ผ ์์
mkdir dir1
if [ $? -eq 0 ]
then
echo "Directory created successfully"
else
echo "Failed to create directory"
fi
3. ๊ฒฐ๊ณผ
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/ex10$ vi create_dir.sh
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/ex10$ bash create_dir.sh
Directory created successfully
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/ex10$ ls
create_dir.sh dir1
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/ex10$ bash create_dir.sh
mkdir: cannot create directory ‘dir1’: File exists
Failed to create directory
https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_$%3F
https://blackinkgj.github.io/shell-program/
Bonus00
์ ์ถ ๋๋ ํ ๋ฆฌ : bonus00/
์ ์ถ ํ์ผ : ls.tar
๋ค์๊ณผ ๊ฐ์ ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค. ๋๋ ํฐ๋ฆฌ์์ ls -l ๋ช ๋ น์ ์ฌ์ฉํ ๋ ์ถ๋ ฅ์ด ๋ค์ ์ผ์นํ๋๋ก ํ์ํ ์์ ์ ์ํํ์ธ์
์์ ์ด ์๋ฃ๋๋ฉด tar -cf ls.tar * ๋ช ๋ น์ ์คํํ์ฌ ์ ์ถ ํ์ผ์ ์์ฑํฉ๋๋ค.
๊ฒฐ๊ณผ)
$ ls -l
total XX
drwx--xr-x 2 XX XX XX Jan 1 20:47 test0
-rwx--xr-- 1 XX XX 4 Jan 1 21:46 test1
dr-x---r-- 2 XX XX XX Jan 1 22:45 test2
-r-----r-- 2 XX XX 1 Jan 1 23:44 test3
-rw-r----x 1 XX XX 2 Jan 1 23:43 test4
-r-----r-- 2 XX XX 1 Jan 1 23:44 test5
lrwxrwxrwx 1 XX XX 5 Jan 1 22:20 test6 -> test0
๐ก ์์์์์ "XX"๋ ์ฌ๋๋ง๋ค ๋ค๋ฅด๊ฒ ๋ํ๋ฉ๋๋ค. ์ ๊ฒฝ์ฐ์ง ๋ง์ธ์.
๐ก ํ์์คํฌํ์ ์๊ฐ ๋์ ์ฌํด ์ฐ๋๊ฐ ๋์๋ ๊ด์ฐฎ์ต๋๋ค.
โ ๏ธ ๋ฆฌ๋ ์ค ํ์ผ ๊ฒฝ๋ก๊ฐ ์๋ ์๋์ฐ ํ์ผ ๊ฒฝ๋ก์ธ ๊ฒฝ์ฐ ๊ถํ ์์ ์ด ์๋ ์ ์์ต๋๋ค!
๐ฅ RTFM!!!
๐ก ํ์ํ ๋ฆฌ๋ ์ค(Linux) BASH ์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ
โก๏ธ chmod ๊ถํ ์ค์
ํ์ผ์์ ํ ์ ์๋ ์์ ์ ํฌ๊ฒ 3๊ฐ์ง
1. R : ํ์ผ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ (read)
2. W : ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ธฐ (write)
3. E : ํ์ผ ์คํํ๊ธฐ (execute)
๊ทธ๋ฆฌ๊ณ ์ด ์ธ ๊ฐ์ง ๊ถํ์ ์๋ ์ธ ๋ถ์ผ์ ์ฌ์ฉ์์๊ฒ ๊ฐ๊ฐ ์ง์ ํ ์ ์์
1. ํ์ผ์ ์์ ํ ์ฌ์ฉ์(user)
2. ํน์ ๊ทธ๋ฃน(group)์ ์์๋ ์ฌ์ฉ์
3. ๊ทธ ์ธ ์ฌ์ฉ์(others)
user | group | others | ||||||
r | w | e | r | w | e | r | w | e |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
๋ง์ฝ drwx--xr-x ์ ํํํ๋ ค๋ฉด?
1. d - directory : ํด๋๋ผ๋ ๋ป
2. ๊ถํ ์ค์ rwx rwx rwx์์ rwx --x r-x๋ง ํ์ฉ๋์๋ค๋ ๋ป
1) user์ ๊ฒฝ์ฐ : rwx ๋ชจ๋ ํ์ฉ๋์์ โก๏ธ 4 + 2 + 1 = 7
2) group์ ๊ฒฝ์ฐ : x ๋ง ํ์ฉ๋์์ โก๏ธ 0 + 0 + 1 = 1
1) others์ ๊ฒฝ์ฐ : r, x ๋ง ํ์ฉ๋์์ โก๏ธ 4 + 0 + 1 = 5
3. ๊ฒฐ๋ก
1) ํด๋๋ฅผ ์์ฑํ ํ
2) ํด๋์ ๊ถํ์ 715๋ก ์ฃผ๋ฉด ๋จ.
mkdir test0
chmod 715 test0
ls -l
# total 4
# drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
https://recipes4dev.tistory.com/175
ํ์ด๊ณผ์
1. test0
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ mkdir test0
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ chmod 715 test0
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls -l
total 4
drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
2. test1
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ cat > test1
^C
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ chmod 714 test1
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls -l
total 4
drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
-rwx--xr-- 1 hyunjin hyunjin 0 Mar 19 16:24 test1
3. test2
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ mkdir test2
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ chmod 504 test2
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls -l
total 8
drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
-rwx--xr-- 1 hyunjin hyunjin 0 Mar 19 16:24 test1
dr-x---r-- 2 hyunjin hyunjin 4096 Mar 19 16:25 test2
3. test3
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ cat > test3
^C
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ chmod 404 test3
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls -l
total 8
drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
-rwx--xr-- 1 hyunjin hyunjin 0 Mar 19 16:24 test1
dr-x---r-- 2 hyunjin hyunjin 4096 Mar 19 16:25 test2
-r-----r-- 1 hyunjin hyunjin 0 Mar 19 16:25 test3
4. test4
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ cat > test4
^C
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ chmod 641 test4
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls -l
total 8
drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
-rwx--xr-- 1 hyunjin hyunjin 0 Mar 19 16:24 test1
dr-x---r-- 2 hyunjin hyunjin 4096 Mar 19 16:25 test2
-r-----r-- 1 hyunjin hyunjin 0 Mar 19 16:25 test3
-rw-r----x 1 hyunjin hyunjin 0 Mar 19 16:28 test4
5. test5
๐กํ๋ ๋งํฌ ํ์ผ ์์ฑ
ln "์๋ณธ ํ์ผ๋ช
" "ํ๋ ๋งํฌ ํ์ผ๋ช
"
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ln test3 test5
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls -l
total 8
drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
-rwx--xr-- 1 hyunjin hyunjin 0 Mar 19 16:24 test1
dr-x---r-- 2 hyunjin hyunjin 4096 Mar 19 16:25 test2
-r-----r-- 2 hyunjin hyunjin 0 Mar 19 16:25 test3
-rw-r----x 1 hyunjin hyunjin 0 Mar 19 16:28 test4
-r-----r-- 2 hyunjin hyunjin 0 Mar 19 16:25 test5
6. test6
๐ก์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ผ ์์ฑ
ln -s "์๋ณธ ํ์ผ๋ช
" "์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ผ๋ช
"
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ln -s test0 test6
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls -l
total 8
drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
-rwx--xr-- 1 hyunjin hyunjin 0 Mar 19 16:24 test1
dr-x---r-- 2 hyunjin hyunjin 4096 Mar 19 16:25 test2
-r-----r-- 2 hyunjin hyunjin 0 Mar 19 16:25 test3
-rw-r----x 1 hyunjin hyunjin 0 Mar 19 16:28 test4
-r-----r-- 2 hyunjin hyunjin 0 Mar 19 16:25 test5
lrwxrwxrwx 1 hyunjin hyunjin 5 Mar 19 16:50 test6 -> test0
7. ํ์ผ ํฌ๊ธฐ ๋ง์ถ๊ธฐ
๐ก๋ฆฌ๋ ์ค ํ์ผ ํฌ๊ธฐ ์ค์ ํ๊ธฐ
fallocate -l "ํ์ผํฌ๊ธฐ" "ํ์ผ๋ช
"
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ fallocate -l 4 test1
#ํฌ๊ธฐ ์์ ์ ์ํด test3์ ๊ถํ์ ๋ชจ๋ ํ์ฉ์ผ๋ก ๋ณ๊ฒฝ
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ chmod 777 test3
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ fallocate -l 1 test3
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ fallocate -l 2 test4
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ fallocate -l 1 test5
#ํฌ๊ธฐ ์์ ์ ์๋ฃํ์ผ๋ฏ๋ก test3์ ๊ถํ ์ฌ์ค์
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ chmod 404 test3
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls -l
total 24
drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
-rwx--xr-- 1 hyunjin hyunjin 4 Mar 19 17:00 test1
dr-x---r-- 2 hyunjin hyunjin 4096 Mar 19 16:25 test2
-r-----r-- 2 hyunjin hyunjin 1 Mar 19 17:02 test3
-rw-r----x 1 hyunjin hyunjin 2 Mar 19 17:01 test4
-r-----r-- 2 hyunjin hyunjin 1 Mar 19 17:02 test5
lrwxrwxrwx 1 hyunjin hyunjin 5 Mar 19 16:50 test6 -> test0
8. ๊ฒฐ๊ณผ
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ tar -cf ls.tar *
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls
ls.tar test0 test1 test2 test3 test4 test5 test6
hyunjin@DESKTOP-1RAUJUA:~/LikeLion-Common-Subject/bonus00$ ls -l
total 36
-rw-r--r-- 1 hyunjin hyunjin 10240 Mar 19 17:02 ls.tar
drwx--xr-x 2 hyunjin hyunjin 4096 Mar 19 16:23 test0
-rwx--xr-- 1 hyunjin hyunjin 4 Mar 19 17:00 test1
dr-x---r-- 2 hyunjin hyunjin 4096 Mar 19 16:25 test2
-r-----r-- 2 hyunjin hyunjin 1 Mar 19 17:02 test3
-rw-r----x 1 hyunjin hyunjin 2 Mar 19 17:01 test4
-r-----r-- 2 hyunjin hyunjin 1 Mar 19 17:02 test5
lrwxrwxrwx 1 hyunjin hyunjin 5 Mar 19 16:50 test6 -> test0
https://m.blog.naver.com/dufwjdrkdgur/221489384249
https://info-lab.tistory.com/302
'๐ป Extracurricular > ๋ฉ์์ด์ฌ์์ฒ๋ผ11๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์์ฃผ์ ์ธ๋ฏธ๋ 1์ฐจ] ๋ธ๋กํน-๋ ผ๋ธ๋กํน / ๋๊ธฐ - ๋น๋๊ธฐ (0) | 2023.04.05 |
---|---|
[3์ฃผ์ฐจ] Java ๊ณผ์ (1) (0) | 2023.04.05 |
[2์ฃผ์ฐจ] HTML && CSS && JavaScript (0) | 2023.04.05 |
[0์ฃผ์ฐจ] WSL2 ์ค์น / ๋ฆฌ๋ ์ค(์ฐ๋ถํฌ) ์ฌ์ฉ (0) | 2023.03.11 |
[0์ฃผ์ฐจ] ๋ฆฌ๋ ์ค(์ฐ๋ถํฌ) ์ค์น (0) | 2023.03.10 |