Shell
- 명령어 해석기 또는 명령 행 인터페이스
- 사용자와 커널 사이에서 명령어를 해석하여 처리
- 셀 명령을 사용하면 GUI로 하기 힘든 다양한 기능을 수행 가능
- 셸 명령을 프로그램으로 작성하여 처리할 수 있음
- 셸 스크립트는 텍스트 파일로, 프로그래밍을 통한 셸 명령의 조합
- 반복적으로 수행되는 작업을 셸 스크립트로 작성할 수 있음
- 셸이 셸 스크립트 파일을 읽어 처리 가능
- 로그인을 하면 기본 셸이 주어짐
셸 사용하기
세미 콜론으로 구분을 지어 한 라인에 여러 명령 사용 가능
셸의 종류
- 많은 리눅스 배포판에서 bash를 기본 셸로 사용함
- 명령 프롬프트로 일반 사용자는 $, root 사용자는 #을 사용
- 셸의 종류에 따라 에일리어스 설정, 초기화 파일, 스크립트 작성, 명령 행 완성 기능, 명령 행 편집 기능 등에 차이가 있다
- bash
- Bourne Again Shell로 Bourne 셸의 개선 버전
- 많은 셸 스크립트의 문법이 Bourne 셸에 기반을 두었다
- C 셸과 Korn 셸의 유용한 기능을 가져옴
- 실행 명령은 /bin/bash
셸 선택
기본 셸 변경 가능
chsh -s /bub/tcsh
- 터미널 창은 대화형 셸
종료하려면 exit, Ctrl + d - 로그인 셸과 비 로그인 셸을 구별해야 함
logout 명령은 로그인 셸에서만 가능
Ctrl + Alt + F2~F6 으로 가상 콘솔을 사용 가능 (서버 컴퓨터에 직접 물려있는 콘솔) - 셸 프롬프트에서 셸 프로그램을 실행하면 서브 셸 실행
셸 명령
$ 명령어 옵션 인수
예 : usermod -L kdhong
옵션과 인수는 여럿일 수 있으며 선택적 또는 필수적
- 명령어는 프로그램의 이름
가장 간단한 형태의 실행은 명령의 이름만 사용
who, date, ls, pwd 등
옵션과 인수
짧은 옵션
ls -l, ls -lat
긴 옵션
ls --all (짧은 옵션으로는 ls -a
- 인수
인수는 명령의 수행 대상을 지정 - cat -n /etc/passwd 등
옵션도 인수를 가질 수 있음
chsh -s /bin/sh kdhong
명령어의 종류
alias : 별칭
셸 예약어 : do while case 등
함수 : 셸에서 수행되는 함수 정의
내장 명령 : 셸 내부에 존재하는 cd, echo, pwd 등
일반 명렁 : 실행 파일이 존재하는 명령
환경변수 PATH에 설정된 경로 중에 실행 파일이 존재하면 이름만으로 실행 가능
- 현재 디렉토리(.)은 보통 PATH에 포함되어있지 않음
- echo $PATH 로 저장된 경로 확인 가능
alias
계속 유지하려면 셸의 환경 설정 파일에 기록해 두어야 함
자주 사용되는 명령의 단축어를 만드는 것
type
명령이 어떻게 해석되는지 알려줌
type cd 등
which
실행 프로그램을 환경변수 PATH를 기초로 찾아 경로 출력
man
매뉴얼 페이지를 보여줌
-> 명령의 사용법이나 설정 파일 등에 관한 온라인 도움말 제공
history
이전 수행 명령 목록을 불러옴
history, history 10 등
명령 행 자동완성
일부 입력 후 tab 키를 누르면 자동 완성
정보가 충분치 않은 경우 tab 키를 한번 더 누르면 모든 가능한 경우를 보여줌
명령의 연결과 확장
특수 문자
백슬래시() : 특수문자의 기능을 제거, 긴 명령행을 분리할 때
틸드(~) : ~또는 ~ username은 홈 디렉토리를 의미
도트(.) : 현재 디렉토리를 의미
더블 도트(..) : 부모 디렉토리
파운드(#) : 문자 뒤에 나타나는 문자를 주석
달러($) : 변수의 값을 추출
앰퍼센트(&) : 명령을 백그라운드로 실행시킴 (명령이 종료되지 않아도 다음 명령 입력 가능)
애스터리스크(*) : 파일 이름에서 임의 문자열과 대응됨
물음표(?) : 파일 이름에서 1개 문자와 대응됨
파이프(|) : 앞 명령의 출력을 다음 명령의 입력으로 연결
< 또는 > : 파일로부터 입력 받을 때, 파일로 출력할 때 사용
>> : 표준 출력을 파일의 끝에 덧붙일 때 사용
느낌표(!) : 명령 히스토리 기능을 이용할 때 사용
명령 < 파일 : 표준 입력을 파일로 부터 얻는다
명령 > 파일 : 표준 출력을 파일에 기록
명령 >> 파일 : 명령 수행중 표준 오류 출력을 파일에 덧붙임
명령 치환
명령 수행 시 명령의 인수로 다른 명령의 결과를 사용
$(command)
ls -l $(which passwd) : 패스워드의 위치 결과를 ls명령의 인수로 사용
인용 부호
빈 칸을 포함하는 문자열을 1개의 인수로 사용할 때 인용 부호가 필요
작은따옴표 : 특수 문자의 의미를 제거
큰따옴표 : $, `` , , ! 의 의미를 해석함
수식과 변수의 확장
$(()) : 수식을 먼저 수행하여 명령에 전달
$변수 : 변수의 값을 추출하여 명령에 전달
셸 변수
셸 변수 : 지역변수 (현재 셸에서만 사용 가능)
환경 변수 : 전역변수 (대문자 사용)
set : 모든 변수와 값을 출력
printenv : 모든 환경 변수와 값을 출력
echo$변수 : 모든 종류의 변수 값 확인
변수 설정과 사용
변수 설정 : 변수 = 값
환경변수 설정 : export 변수
자주 사용되는 환경 변수
HISTSIZE : 명령 히스토리 목록 (최대 1000)
HOME : 홈 디렉토리
MAIL : 메일 박스 파일
PS1 : 셸 프롬프트 표시
SHELL : 사용중인 기본 셸
PWD : 현재 작업 디렉토리
USER : 현재 사용자 계정
bash셸의 로그인과 셸 환경 설정 파일
시스템 환경 설정 파일, 사용자 환경 설정 파일
'운영체제 > UNIX와 Linux' 카테고리의 다른 글
UNIX) 02. 리눅스 설치 - CentOS (0) | 2021.09.21 |
---|---|
UNIX) 1. 유닉스와 리눅스 (0) | 2021.09.02 |
댓글