본문 바로가기

블록체인 기반 핀테크 및 응용 SW개발자 양성과정 일기

[116일차 복습] 리눅스/셸Shell script if문, for문, 반복문, break, continue

반응형

  조건문 if  

1. 꼭 숫자 연산이 아니라 명령어도 가능! 

cd ~ 
mkdir new         // "new" 라는 폴더 새로 생성 
cd new             // new 폴더에 입장
vi practice1.sh    // 파일 생성       
아래 코드 작성   
sh practice1.sh   // 파일 실행   -> ls -l 의 결과물이 있으면 출력됨            

 

 

 

2. 숫자 연산 < , > 꺽쇠 대신 아래와 같이 쓴다

 

연산 6가지
== -eq
!= -ne
< -lt
<= -le
> -gt
>= -ge

 

위의 6가지 다 사용해보기 

 

 

 

 

3. if 문으로 폴더를 찾아보기 ! -> 없으면 만들기 

 * home / new 폴더 안에 log 폴더 현재 없는 상태 

현재 경로 : ~/new 
vi practice3.sh 
아래 코드 작성  
sh practice3.sh 

=> new / log 가 새로 생김 

 

 

 

 

 

  if 파일 / 폴더 존재 여부 조건문 -> 없으면 만들기  

 

방금 만든 log 폴더에 test.sh 라는 파일 없는 상태 

 

vi practice4.sh 
아래 코드 작성 
파일이 없습니다 => 직접 해당 위치에 파일을 생성하기 
cd log
vi test.sh   
echo "hello"    <- 코드  작성
cd ..
sh practice4.sh    ->  '파일이있습니다'

vi practice5.sh  
파일이 없습니다. => practice5.sh 파일 안에서 해당 파일 생성하기  / 아래 코드 입력 
sh practice5.sh   => ~/new/log 위치에 log.txt 파일 (내용 : hello) 가 생김 

 

 

 

 

 

  매개변수  

vi practice6.sh
sh practice6.sh -> 아무것도 안나옴 => 매개 변수를 입력해야해 ! 
매개변수 (띄어쓰기) 입력! => 띄어쓰기 때문에 앞에 하나의 string만 나옴 => 다시 vi 편집
vi practice6.sh

 

 

 

 

 

 

 

  For문 / 반복문  

vi practice7.sh

Shell Script for문에서 do or done 둘 중 하나라도 빠지면 안된다 ! 

sh practice7.sh

vi practice8.sh

요 기본적인 for문은 sh 명령어가 아닌 bash / zsh 로 해야함 ! (이번엔 bash만 됨) 
bash practice8.sh 

 

 

 

 

 

  FIND  

1. find 찾아라 / 모든 곳에서 -name 이름이 node 가 들어간 것을 

find / -name node

2. 위와 동일한 조건에서 폴더 or 파일만 찾고 싶다면?

find / -type d -name node 
find / -type f -name node

3. 확장자를 찾고 싶다면? 

find / -type f -name "*".js    // 너무 많이 나옴! 위치를 home 으로 설정해보면
find ~/ type f -name "*".js   // 적당히 나온다! 

 

 

 

 

 

  MV MOVE MOVE !  

파일 move = mv 이동시키기 

// 현재 위치에 있는 node.txt를 현재 위치에 있는 log 폴더 안의 node.txt라는 파일로 이동 시키기 
mv ./node.txt ./log/node.txt   

 

 

 

 

  User 계정 만들기  

Linux가 윈도우보다 강점을 가진 부분 ! - 계정별로 환경설정이 가능하고 잘 되어 있음 / 다중 계정 기능 강력 

 

 

user 만들기 

cd ~ 
sudo useradd -m utan3     // -> 비밀번호 입력은 기존에 로그인되어 있는 계정의 비번 
cd /home
ls           // 방금 만든 utan3가 생김 

 

password 설정 

cd ~ 
sudo passwd utan3    //  -> 이 후에 비밀번호 두 번 입력 => 설정 완료  

 

계정생성 확인

vi /etc/passwd        // 맨 아래 보면 계정들이 있음 

 

 

 

 

계정 변경하기 

su utan3
cd ~ 
pwd      // home/utan3로 나옴 => 이 때 새로만든 요 계정에는 zsh를 설정 안했기 때문에 리눅스 기본 화면으로 나옴  => 계정별 환경 구축 가능 

 

 

다른 계정의 글을 수정할 수 있을까? 

utan3계정으로 utan계정의 파일 수정 해보기 

cd /home/utan/scripts
vi log.txt       // -> edit 후 저장 -> ERROR ! 

sudo vi log.txt     // /-> utan3 is not in the sudoer file. ERROR 

sudo 최고 관리자로 수정해도 에러 ! => utan3에게 utan 글 접근 권한 주기 

 

 

 

 

  다른 계정에게 접근 권한 주기  

다시 utan 계정으로 가서 sudo최고관리자 명령으로 /etc/sudoers 파일에 utan3 계정에 권한 주기 

su utan
sudo vi /etc/sudoers 

utan3 위와 같이 작성하고 저장

 

su utan3
cd /home/utan/script
sudo vi node.txt  -> 수정 가능 
=> 그냥 vi node.txt 는 수정 X 안됨 ! 

wxr 바꾸는 명령어 

aws할 때 .... 배웠씀 

찾아보기 : chmod 

 

반응형