[한화시스템 BEYOND SW캠프 7기] #02. Shell 프로그램

아로롱·2024년 5월 15일

BEYOND SW CAMP 7

목록 보기
2/30
post-thumbnail

🖥️ Linux_사용자 및 그룹

# 사용자 추가
useradd 사용자명
# 패스워드 지정
passwd 사용자명
# 사용자 목록 조회
cat /etc/passwd

# 사용자 전환 - 비밀번호는 전환하고자하는 사용자 비밀번호
sudo su - 사용자명 #sudo는 이전에 했다면 생략 가능


# 파일 권한 관리 - chmod 는 리눅스에서 가장 많이 쓰이는 명령어.
# 권한은 세 파트로 구성되어 있고(user:group:others), 각 권한은 r(4)w(2)x(1)로 이루어져있음. 그룹 >> 만든 사람
chmod 777 test.sh #모든 권한을 부여하겠다! 유저, 그룹, others 전부에게!
chmod u+x test.sh #유저한테 x 권한을 주겠다!
chmod g-w test.sh #그룹에서 w 권한을 빼겠다!

# 파일 소유자 / 그룹 관리
# 소유자와 그룹 변경
chown 소유자:그룹 파일명

✏️ chmod

r 읽기 / w 쓰기 / x 실행하기 권한을 부여하는 명령어.
user:group:others 각각의 파트에 권한을 부여할 때 쓰인다.
+ / - 를 활용할 수도 있으며, 보통 각각 4 / 2 / 1 로 계산된다.
-rw-rw-r--
-rw : read / write 가능
drwxrwr-x
-x : 실행할 수 있는 파일.

666을 부여하자 -rw-rw-rw- 로 바뀐 것을 알 수 있다!


🛠️ Shell 프로그램

  • 사용자와 운영체제 간의 인터페이스 프로그램. 쉘은 사용자의 명령을 해석하여 운영체제 커널에 전달.

  • 대표적인 쉘 프로그램으로는 bash(기본), zsh 등 // 내가 이용 중인 mac os => zsh !

  • echo $0 명령어로 현재 사용중인 쉘 프로그램 확인 가능.

  • 쉘 프로그래밍 : 쉘 명령어의 집합.

  • 쉘 명령어 스크립트 작성

    • 쉘 명령어를 파일형태로 스크립트로 작성하고 실행하는 것이 가능
    • 파일 확장자 .sh
    • if, else 등 프로그래밍 언어 사용 가능
    • 실행방법
      • 현재 폴더에서 ./my_script.sh
      • 스크립트나 컴파일된 프로그램을 실행할 때는 일반 쉘명령어와 구분을 짓고 현재폴더의 대상파일임을 명확히 하기 위해 ./ 사용함에 유의 (./가 없다면 명령어로 인식!)

⌨️ 실습_1

  1. test2.sh 생성
  2. “script start” 출력
  3. my_dir4 디렉토리 생성
  4. file1.txt / file2.txt 생성
  5. file1.txt ⇒ “hello file1” 작성 / file2.txt ⇒ “hello file2” 작성
  6. file1.txt 백업 파일 file1_backup.txt 생성
  7. file2.txt 이름을 file2_rename.txt 로 변경
  8. “script end” 출력

    실습 결과



    touch file2.tx 로 오타를 만들어 file2_tx 가 만들어지는 상황이 있었다 ㅎㅎ
    수정 후 완벽하게 실습 구현 완료 !

✏️ if문 / for문

  • if문(조건문)
    #조건이 참일 때 실행할 명령 :
    if [ 조건 ]; then

    #첫 번째 조건이 거짓이고 다른 조건이 참일 때 실행할 명령 :
    **elif [ 다른 조건 ]; then

    #모든 조건이 거짓일 때 실행할 명령 :
    else

    fi

  • for문(반복문)
    #반복할 명령 :
    for 변수 in 항목들; do
    done

⌨️ 실습_2

  1. if문 실습 : test4.sh
    1. echo로 start 출력
    2. 만약 test_dir이 현재 폴더에 있으면 해당 폴더로 이동
    3. 없으면 해당 폴더 생성 후 이동
    4. echo로 end 출력

    실습 결과

    💡 if 문을 통해 나의 현재 위치를 변경하는 건 어려울 수 있다! 최종 경로가 my_dir3으로 그대로 유지되는 이유.
  1. if문 / for문 실습 : test4.sh
    1. test_dir 안에 test4.txt 파일이 없으면 생성
    2. 해당 파일에 hello world1 …. hello world100 까지 입력

    실습 결과

    💡if문을 닫아준 뒤 for문을 돌려도 OK !
    1. for문 실습 : test5.sh
      1. 특정 디렉토리 안의 directory의 개수와 그 외(else) 파일의 개수 세기

      실습 결과



📌 today

우분투로 진행되는 수업을 맥OS로 따라가려다 보니 useradd에서 애를 먹었다.
구글링 해보니 맥에서 터미널로 사용자를 추가하려면 root를 사용해야하는 복잡한 방법이 나오고, 강사님께서도 root를 사용하는 방법은 복잡하니 따로 인지할 필요는 없다고 하셔서 우분투로 넘어가서 실습했다.

알고리즘 문제 풀이를 통해 자주 접했던 덕에 if문과 for문은 비교적 쉽게 수업을 따라가고, 실습할 수 있었다.
터미널에서 if문과 for문을 사용할 때 주의해야 할 점과, -d -f 와 같은 변수 활용과 $ 로 앞서 언급된 파일을 끌어와 사용하는 등 여러 문법을 활용해볼 수 있어 좋았다 !

profile
Dilige, et fac quod vis

1개의 댓글

comment-user-thumbnail
2024년 5월 20일

덕분에 복습이 되고있습니다 감사합니다!

답글 달기