셸
# 개념 및 종류
◦개념
-셸은 커널과 응용 프로그램 사이에서 사용자가 입력한 명령어를 해석하여 커널에 전달하고 커널에서 수행한 것을 사용자에게 전달하는, 대화식 인터페이스를 제공하는 셈이다.
-로그인할 때 실행되어 사용자별로 사용 환경 설정을 가능하게 함. 즉, 사용자마다 사용하는 셸이 다를 수 있음!
-기능 : 강력한 스크립트언어(프로그래밍 기능) / 입출력 방향 재지정 & 파이프 기능 / 포그라운드&백그라운드 프로세스 실행.
◦종류 <본셸 vs C셸계열>
-사용자 프롬포트 : $(본셸) , %(C셸)
-대부분의 셸은 본셸 계열의 기능을 포함하여 확대발전한 형태!
(그래서, C셸은 본셸의 모든 기능+히스토리, 별명, 작업제어기능을 추가로 가지고 있음)
(1)본셸 계열
(2)C셸 계열
# 셸 확인 및 변경
◦ 로그인 셸 확인
1. 사용할 수 있는 셸들 확인: cat /etc/shells
2. 계정마다 할당된 셸 확인: vi /etc/passwd
3. 현재 로그인한 사용자가 사용하고 있는 셸 확인: echo $SHELL
◦셸 변경
-로그인 셸 변경은 반영구적인 셸 변경방법!(일시적x) 관리자가 셸 변경 후 다음 변경을 하기 전까진 지정된 셸 계속 사용함!
(1)명령어 chsh – 일반 사용자 환경에서 셸 변경 시
<형식> $ chsh [옵션] 계정명 셸
àchsh -s /bin/sh user1 : user1의 로그인 셸을 본셸로 바꿔라.
*셸 변경 후에 재부팅 해야 명령어 인식됨.
àchsh -l : 시스템에서 사용가능한 셸의 목록 확인하는 명령어. (명령어 ‘cat /etc/shells’ 도 가능)
(2)명령어 usermod – 관리자 환경에서 지정 계정의 정보를 변경할 때 사용하는 명령어
<형식> # usermod [옵션] 계정명
àusermod -s /bin/dash user1 : user1의 로그인 셸을 dash셸로 바꿔라.
환경설정
# 환경 변수와 셸 변수
◦변수: 시스템 환경 정보 저장소. 환경변수(전역)와 셸 변수(지역)로 구분.
◦주요 환경 변수 – 무조건 대문자
PATH HOME HOSTNAME USER DISPLAY PS1 PS2 PWD SHELL
TERM TMOUT LANG PRINT MAIL
◦ 환경 변수 설정 명령어
-export : 환경 변수 리스트 확인
-export 변수명 = 변수값 : 해당 변수명에 변수값 등록하면서 셸à환경변수로 변경
-echo $변수명 : 변수값 확인
-export 변수명=$변수명:변수값 : (기존 변수값에)변수값 추가.
-unset 변수명 : 변수 정의 해제
Ex) 환경변수 YJ를 새로 정의하여 확인 후 해제.
# 프롬프트 설정 형식
셸의 프롬프트 형식을 사용자 임의대로 변경할 수 있음!
현재 셸의 프롬프트 형식을 확인하기 위해서는 echo $PS1
(PS1는 셸 프롬프트를 선언 시 사용하는 환경 변수)
현재 프롬프트 형식이 user1@server:~$ 이런식. 즉 PS1='[\u@\h: \W]\$'
이 프롬프트 형식을 바꿔줄 수 있는데,
<설정 형식> PS1='[\○]\$'
ex) 현재 사용자 이름과 마지막 작업 디렉터리만 표시하려고 할때의 설정
: PS1='[\u@ \W]\$'
3번의 시도를 해본 결과, 사실 [] 이런것은 없어도 괜찮다! 정말 내가 '' 안에 쓰는대로 프롬프트 형식이 바뀌기 때문에 몇번의 수정 끝에 내가 제일 보기 좋은 형태로 바꿔주었다. (바꾸고 나니 첫모습과 거의 유사하지만..ㅎㅎ)
# 환경 설정 파일
-셸 시작 시 자동으로 실행되는 고유 시작 파일 à 사용자 운영환경을 설정하는 파일!
-bash 셸의 시작 파일: /etc/profile, /etc/bashrc, ~/.bash_profile, ~/.bashrc
-셸 파일
전역적 파일(사용자에게 공통으로 영향을 주는 내용) ; /etc 아래에 위치
지역적 파일(사용자 개개인을 위한 설정 내용) ; 사용자 홈 디렉터리아래 숨김파일 형태로 위치
(1)전역 설정 파일
(2)지역 설정 파일
# bash 셸의 주요 기능
(1)history 기능
!! : 마지막으로 실행했던 명령문 실행
!n : n번째 명령어 실행
!-n : 현재 명령행에서 n개수를 뺀 행의 명령어 실행
①가장 최근에 'grep'으로 시작하는 명령문 실행
②마지막 명령의argument
③마지막으로 실행된 명령에 사용된 모든 argument
④가장 최근에 'echo'를 포함한 단어(명령어를) 출력
⑤history 스택의 크기 지정 (명령어 개수)
⑥history 파일 위치(절대경로)
⑦물리적인 히스토리 파일 크기
⑧히스토리 명령어 수행시간 출력 형태 지정
⑨export명령어로 history 출력형태를 '년 월 일 시간' 으로 지정 후 history 출력.
: ignoreboth는 중복되는 명령어는 한번만 기록한다. 는 의미!!
(2) alias 기능 : 자주 사용하는 명령어를 특정 문자로 입력해두고 간편하게 사용o
- alias : 설정된 별명들 출력
- alias 별명='명령어' : 새로운 별명 정의
- unalias 별명 : 지정된 별명 해제
'유용한 모든 것' 카테고리의 다른 글
리눅스마스터 2급2차 [네트워크] (0) | 2020.08.25 |
---|---|
리눅스마스터 2급 2차 [프로세스] (0) | 2020.08.25 |
리눅스마스터 2급 2차 [파일 시스템] (0) | 2020.08.24 |
리눅스마스터 2급 2차 [다시 봐야 할 개념] (0) | 2020.08.24 |
리눅스마스터 2급 2차 [프로세스 유틸리티] (0) | 2020.08.11 |