리눅스 쉘 기본 개념
리눅스의 구조
커널(kernel) | 하드웨어를 제어하는 코드를 통해 시스템의 모든 자원을 통제/관리 |
쉘(shell) | 사용자가 입력한 명령어를 커널에게 전달 |
응용 프로그램 | 리눅스에 있는 각종 프로그램 |
* 하드웨어 1) CPU 2) Mem 3) I/O장치
쉘의 기능
1. 명령어 해석기
- 사용자와 커널 사이에서 명령 해석
2. 프로그래밍
- Shell Programming : 반복적으로 수행하는 작업을 하나의 프로그램으로 제작 가능
- 이러한 프로그램을 Shell Script -> Interptreter
* Interpreter(Interpret 방식) : txt file(script)을 한 줄씩 번역 <-> Compiler(Compile방식) 한 번에 번역, 실행시간 빠름
3. 사용자 환경 설정
초기화 파일 기능을 이용해 사용자의 환경 설정 가능
ex 로그인할 때 .bash_profile와 같은 초기화 파일이 실행돼 초기 환경이 설정
로그인 쉘
로그인 쉘 | 사용자가 로그인했을 때 적용되는 기본 쉘 -> bash shell |
서브 쉘 | 로그인 쉘에서 실행시킨 다른 쉘 |
* 로그인 쉘 // 비로그인 쉘
쉘의 종류
1. 본 쉘
2. C 쉘 : 에일리어스, 히스토리 등 사용자 편의 기능 제공
3. 콘 쉘 : C쉘과 달리 본쉘과 호환성 유지하며 (에일리어스, 히스토리 등 사용자 편의 기능 제공)
4. 배시 쉘 : 리눅스의 기본 쉘
5. 대시 쉘 : 본 쉘 대신 사용, POSIX 표준 준수
6. 티시 쉘 7. Z 쉘
쉘 기본 명령어
1. chsh
- change login shell
- 사용자의 로그인 쉘 변경
chsh [옵션] [사용자명]
-s <쉘의 절대경로> : 지정하는 쉘을 앞으로 사용할 로그인 쉘로 변경
2. echo
- 화면에 한 줄의 txt 출력
echo [옵션] 문자열
-n : 마지막 줄 바꿈X
쉘 특수 문자
1. * 특수 문자
- 임의의 문자열을 나타냄 (모든 것)
- *은 0개 이상의 문자로 대체
2. ? 특수 문자
- 길이가 1인 임의의 한 문자
3. [ ] 특수 문자
괄호 안에 포함된 한 문자, 범위 지정할 때
4. ~ 특수 문자
홈 디렉터리
5. - 특수 문자
이전 작업 디렉터리
6. | (파이프) 특수 문자
★왼쪽 명령의 실행 결과를 오른쪽 명령의 입력으로 전달
7. ; 특수 문자
연결된 명령을 왼쪽부터 차례로 실행
8. ' ' 특수 문자
감싸진 문자열에서 모든 특수 문자의 기능 제거
9. " " 특수 문자
$, ``, | 제외 모든 특수 문자 기능 제거
10. ` ` 특수 문자
명령으로 해석할 때 사용
11. \ 특수 문자
특수 문자 앞의 \은 일반 문자처럼 취급
12. redirection (방향을 바꿈)
> | 명령 > 파일명 | 명령 수행 결과를 파일에 저장, 출력 리다이렉션 |
>> | 명령 >> 파일명 | 명령 수행 결과를 파일 끝에 추가 |
< | 명령 < 파일명 | 파일로부터 입력 값을 받음, 입력 리다이렉션 |
환경 변수
변수 : 시스템/사용자에 의해 사용되는 정보를 저장하기 위한 저장소
쉘 변수 | 현재의 쉘에서만 확인 가능한 변수 | set |
환경 변수 | 모든 쉘에서 공통으로 사용하는 변수 | env |
주요 환경 변수
HISTSIZE | 히스토리 저장 크기 |
HOME | 사용자 홈 디렉토리의 절대 경로 |
LANG | 사용 언어 |
LONGNAME | 사용자 계정 이름 |
PATH | 명령을 탐색할 경로 |
PWD | 작업 디렉토리의 절대 경로 |
SHELL | 로그인 쉘 |
> 특정 변수 출력하기
echo $변수명
> 변수 설정하기
쉘 변수 : 변수명=값
공백 안됨, 공백하면 변수명을 명령어라 생각함
환경 변수 : 쉘 변수 정의 후 export 변수명
> 쉘/환경변수 있는지 확인
set | grep 변수명
export | grep 변수명
> 변수 해제
unset 변수명
에일리어스(alias)
- 기존 명령에 별명을 붙여 사용할 수 있는 기능
alias | 현재 설정된 alias 목록 출력 |
alias 이름='명령' | alias 생성 |
alias 이름='명령1;명령2' | 2개 이상의 명령을 하나의 이름으로 사용할 경우 |
unalias 이름 | alias 해제 |
히스토리
- 명령 입력 기록 출력
history
- 명령 재실행
!! | 마지막에 실행한 명령 재실행 |
!번호 | 히스토리에 해당 번호의 명령 재실행 |
!문자열 | 히스토리에서 해당 문자열로 시작하는 마지막 명령 실행 |
설정 파일
(배시 쉘) 환경 설정 파일
- 사용자가 로그인할 때마다 자동 실행되는 명령을 저장
- 시스템 환경 설정 파일
/etc/profile | |
/etc/bash_bashrc | |
/etc/profile.d/*sh |
- 사용자 환경 설정 파일
~/.profile | 로그인 시 |
~/.bashrc | |
~/.bash_logout | 로그아웃 시 |
방향키, tab 자주 사용
'전공 > 리눅스' 카테고리의 다른 글
리눅스 명령어 (0) | 2023.01.11 |
---|---|
리눅스 파일 속성 (0) | 2023.01.10 |
리눅스 개요 (0) | 2023.01.09 |
리눅스 프로그래밍 개발 환경 (0) | 2023.01.09 |
CentOS + Linux Services (0) | 2023.01.06 |