본문 바로가기
운영체제/UNIX와 Linux

Linux) 03. 셸 사용하기

by nomfang 2021. 10. 25.
728x90
반응형

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

댓글