목록으로

권한 변경하기

시리즈, 입문
2024. 4. 10. PM 9:12:18

chmod 명령어

실습 환경 준비

여기까지 Shell을 학습한 내용을 복습해볼까요? 다음 내용에 맞춰 실습 환경을 Shell에서 직접 만들어보세요.
  1. 홈 디렉터리에 temp라는 이름으로 디렉터리를 만드세요.
  2. temp 디렉터리 안에 myfolder 디렉터리와 yourfolder 디렉터리를 만드세요.
  3. 다음 내용을 담은 텍스트 파일을 만든 뒤, myfolder 디렉터리 안에 cp 명령어로 복사해 넣으세요.
  4. 복사한 파일의 이름을 Shell에서 hello.sh로 변경하세요.
  5. myfolder 디렉터리 안에 있는 hello.sh파일을 yourfolder 디렉터리 안에 복사해 넣으세요.
  6. yourfolder 디렉터리에 있는 hello.sh 파일 이름을 lorem.sh 로 변경하세요.
거칠 것 없이 실습 환경을 구축하셨나요? 옵션 없이 명령어를 기본 형식으로 사용했기 때문에 아마 능숙하게 명령어를 사용하셨을 거예요. 아직 손에 익지 않아 더듬거리셨다면 조금 더 실습을 하며 손에 익히시길 권해드려요.
각 권한 코드에 대해 실습을 먼저 해볼게요.
홈 디렉터리에 있는 myfolder 디렉터리로 이동한 후 다음 명령어를 실행하세요. 권한을 조정하는 거예요.
맨 앞에 있는 $ 문자는 프롬프트 기호를 뜻하는 거라서 명령 줄에 입력하면 안 되는 거, 기억하시죠?
같은 방식으로 myfolder 디렉터리의 권한도 755로 지정해보세요.
ls 명령어의 옵션 중 파일이나 디렉터리를 한 줄에 하나씩 나열하는 옵션으로 ls 명령어를 실행해보세요. hello.sh의 정보 중 맨 앞에 있는 권한 부분이 .rwxr-xr-x라고 표시됩니다. 같은 방식으로 myfolder의 권한을 출력하면 drwxr-xr-x로 권한이 표시돼요.

셔뱅(shebang)

./myfolder/hello.sh 명령어를 실행해보세요. 바로 다음 줄에 World 라는 문자열이 출력됩니다. Shell 스크립트가 실행된 것이죠. 맥OS와 리눅스는 실행 파일이 아니더라도 실행 권한이 있으면 실행을 시도합니다. 그런데 이상하죠? 실행 권한이 있다고 해서 이 텍스트 파일을 어떻게 해석하고 처리할 것인지를 아는 건 아니잖아요?
첫 줄을 보면 #!로 시작하는데, 이 표식을 셔뱅이라고 해요. Shell은, 정확히는 프로그램 로더(loader)는 텍스트 파일 첫 줄에 셔뱅이 있으면 셔뱅 뒤에 있는 텍스트를 스크립트 해석기(인터프리터)의 경로 지시자로 간주해요. 프로그램 로더는 원래 실행하려던 대상 파일 대신 인터프리터를 실행하고, 인터프리터의 인자로 대상 파일을 전달하는 거지요. hello.sh의 파일 내용으로 보면 다음과 동일한 동작입니다.
푸딩캠프 뉴스레터를 구독하면 학습과 성장, 기술에 관해 요약된 컨텐츠를 매주 편하게 받아보실 수 있습니다.
목차