리눅스 명령어 2

merci·2023년 3월 29일
0

리눅스는 shell을 사용한다.

파일을 하나 만든다 fisrt.sh

echo의 기능 1 - 출력

echo "안녕"을 파일안에 넣어도 되고 bash 창에 바로 입력해도 된다.
파일에 넣었다면 콘솔에 ./first.sh 입력하면 실행된다.

echo의 기능 2 - 파일 변경

아래처럼 txt파일 설정하고

echo "둘째줄" >> log.txt 를 입력하면 텍스트가 추가된다

echo "둘째줄" > log.txt 를 입력하면 내용이 덮어씌워진다.

변수 바인딩

${} - 변수 사용할때 사용

item="홍길동"
echo $item
echo ${item}
echo "${item}" 입니다.

리눅스 명령어 바인딩

$() - 리눅스 명령어를 사용할때

result=$(cat log.txt)
echo $result

한번에 사용해보면

item_length=$(expr length ${item})
echo $item_length  # 3 출력

조건문

if [[ $item_length == 3 ]];
then 맞으면
else 틀리면
fi 조건문 종료

파일이 있는지 확인

if [[ -e log.txt ]];
then 
    echo "존재합니다."
else 
    echo "존재하지 않습니다."
fi 			# 결과는 -> 존재합니다.

폴더가 있는지 확인

폴더 추가

if [[ ! -d ./temp ]];
then 
    echo "존재합니다."
else 
    echo "경로가 존재하지 않습니다."
fi   		# 폴더를 추가헸을때 결과는 -> 존재합니다.

exit

아래와 같이 적는다면 echo문이 실행되지 않는다

exit 0 은 정상종료, 1이나 -1은 문제를 뜻함

if [[ ! -d ./temp ]];

then 
    echo "경로가 없습니다."
else 
    echo "경로가 있습니다."
    exit 0
fi

echo "조건문 종료하고 넘어옴"

폴더가 없다면

폴더가 있다면 echo는 실행되지 않음

출력 성공 조건문

if echo 123 > log.txt; # 변경시도
then 
    echo "출력에 성공했습니다."
fi

파일 데이터도 변경된다.

반복문

while[[ 조건 ]]
do
    echo "내용"
done
for ((i=0; i<5; i++))
do  
    echo "내용"
done

for in 도 가능하다

temp="가 나 다"
for item in $temp
do
    echo $item
done
# 출력
# 가
# 나
# 다 

권한 변경

전체 권한 변경

chmod 777 log.txt

유저의 읽기 권한을 추가하고 싶다면

chmod u+r log.txt

그룹의 실행 권한을 제거하고 싶다면

chmod g-x log.txt
profile
작은것부터

0개의 댓글