We are Architect

5. 쉘(Shell) 본문

운영체제/Linux

5. 쉘(Shell)

the best infra 2024. 11. 23. 23:28

 

* 쉘의 기능과 종류

- 쉘이란? 사용자와 커널을 이어주는 프로그램이다. 

- 쉘의 기능은 명령어 해석기능, 프로그래밍 기능, 사용자 환경 설정 기능이 존재한다.

- 쉘의 종류는 다음과 같다. 

  - 본 쉘: 스티븐 본이 만들고 초기에 만들어진 쉘이라 단순하고 처리 속도가 빠르다.

  - C 쉘: 빌 조이가 만들고 본 쉘에 없는 history, alias 기능 등이 추가되어 있다. 

  - 콘 쉘: 데이비드 콘 쉘이 만들었다.

  - bash 쉘: 본 쉘을 기반으로 업그레이드를 해서 만들어졌다. 

[ 기본 쉘을 바꾸는 명령어 ]

- chsh: 새로운 쉘 생성 

- chsh -l : 쉘 조회

- chsh -s /bin/sh user1 : 사용자의 쉘을 로그인 쉘을 바꿀 때.

 

 

* 쉘의 기본 사용법

- 특수문자 사용하기: 사용자가 더욱 편리하게 명령을 입력하고 실행할 수 있도록 다양한 특수문자 사용.

- * : 임의의 문자열을 나열하는 특수문자로 0개 이상의 문자로 대체. 

- ls * : 현재 모든 디렉터리의 모든 파일과 서브 디렉터리를 나열. 

- cp * /tmp: 현재 디렉터리로부터 /tmp 밑에 모든 파일을 복사. 

- ls -F t*: t로 시작하는 모든 파일을 찾아준다. 

- cp *.txt ../ch3: 확장자가 txt인 모든 파일을 상위 디렉터리 아래의 ch3 디렉터리에 복사한다. 

- ls -l l*s: 파일명이 l로 시작하고 s로 끝나는 모든 파일을 찾아준다.  

- 특수 문자 ; 와 | : 명령어와 명령을 연결. 

- ;은 연결된 명령을 왼쪽부터 차례로 실행. 

- |(파이프) 은 왼쪽 명령의 실행 결과를 오른쪽으로 전달. 

- date; ls; pwd: data로 날짜 출력하고 현재 디렉터리 파일 리스트 출력하고 현재 경로까지 출력.

- ls -al / | more: 루트 디렉터리의 세부 파일리스트가 페이지 단위로 출력되는 명령어. 

 

 

* 쉘 변수와 환경변수

- 쉘의 환경을 설정하기 위한 값을 저장할 수 있도록 쉘 변수와 환경 변수를 제공. 

- 쉘 변수: 쉘에서만 사용되는 변수. 해당 쉘 세션에서만 작동. 

my_var="Hello World"
echo $my_var

 

- 환경 변수: 현재 세션의 쉘뿐만 아니라 모든 쉘에 적용되는 변수

MY_VAR="Hello"
export MY_VAR

- set: 전체 변수 출력.

- env: 환경 변수 출력. 

- alias: 별칭이라는 뜻. 명령어를 축약할 때 사용. 현재 세션에서만 유효.

alias kubectl=k

 

- 환경 설정 파일: 사용자가 로그인할 때 자동으로 실행되는 명령을 저장한 것이 환경 파일. 

   - 시스템 환경 설정 파일과 사용자 환경 설정 파일이 있음. 

   - /etc/ 에 있는 쉘보다 ~/.bashrc, ~/.bash_profile 이 우선순위로 적용. 

- 접근 권한 명령어

  - chmod: 기능 파일이나 디렉터리의 접근권한을 설정하는 명령어.

  - 옵션 -R: 하위 디렉터리까지 모두 변경할 수 있다. 

[ 기호 모드를 사용한 접근 권한 설정 예 ]

권한 표기 의미
u+w 소유자(u)에게 쓰기(w) 권한 부여(+)
u-x 소유자(u)의 실행(x) 권한 제거(-)
g+w 그룹에 쓰기 권한 부여.
o-r 다른 사용자에게 읽기 권한 제거.
g+wx 그룹에 읽기, 실행 권한 부여.
a+rwx 모든 사용자에게 읽기, 쓰기, 실행 권한 부여.
u=rwx 소유자에게 읽기, 쓰기, 실행 권한 부여. 
go+rw 그룹사용자와 다른 사용자에게 읽기, 쓰기 권한 부여. 
u+x,g+rw 소유자에게 실행권한 부여, 그룹사용자에게 읽기,쓰기 권한 부여. 

'운영체제 > Linux' 카테고리의 다른 글

7. 프로세스 관리(2)  (0) 2024.11.25
6. 프로세스 관리  (0) 2024.11.24
4. 문서 편집기  (0) 2024.11.21
3. 디렉터리와 파일 그리고 명령어까지..(2)  (0) 2024.11.21
2. 디렉터리와 파일 그리고 명령어까지..  (10) 2024.11.13