리눅스 (5) - 쉘, 전면처리, 후면처리, 입출력 재지정, 여러 개 명령어 실행

2025. 5. 1. 16:20·리눅스
목차
  1. 1. 쉘 소개
  2. 1) 쉘(Shell)이란?
  3. 2) 쉘의 종류
  4. 3) 로그인 쉘(login shell): 로그인하면 자동으로 실행되는 쉘. 보통 시스템관리자가 계정을 만들 때 로그인 쉘 지정.
  5. 2. 쉘의 기능
  6. 1) 쉘의 주요 기능
  7. 2) 쉘의 실행 절차
  8. 3) 쉘의 환경 변수
  9. 3. 전면 처리와 후면 처리
  10. 1) 전면 처리 vs 후면 처리
  11. 4. 입출력 재지정
  12. 1) 출력 재지정(output redirection)
  13. 2) 출력 재지정 : 파일 만들기
  14. 3) 출력 추가
  15. 4) 입력 재지정(input redirection)
  16. 5) 문서 내 입력(here document)
  17. 6) 오류 재지정
  18. 7) 파이프
  19. 8) 입출력 재지정 관련 명령어 요약
  20. 5. 여러개 명령어 실행
  21. 1) 명령어 열(command sequence)
  22. 2) 명령어 그룹(command group)

1. 쉘 소개

1) 쉘(Shell)이란?

- 쉘의 역할

  • 쉘은 사용자와 운영체제 사이에 창구 역할을 하는 소프트웨어.
  • 명령어 처리기(command processor)
  • 사용자로부터 명령어를 입력받아 이를 처리한다.

2) 쉘의 종류

유닉스/리눅스에서 사용 가능한 쉘의 종류

쉘의 종류 쉘 실행 파일
본 쉘 /bin/sh
콘 쉘 /bin/ksh
C 쉘 /bin/bash
tcsh /bin/tcsh

 

  • 본 쉘(Bourne shell)
    : 벨 연구소의 스티븐 본에 의해 개발됨. 유닉스에서 기본 쉘로 사용됨.
  • 콘 쉘(Korn shell)
    : 벨 연구소에서 본 쉘을 확장해서 만듦.
  • Bash(Bourne again shell)
    : GNU에서 본 쉘을 확장하여 개발한 쉘. 리눅스 및 맥 OS X에서 기본 쉘로 사용되면서 널리 보급됨. Bash 명령어의 구문은 본 쉘 명령어 구문을 확장함.
  • C 쉘(C shell)
    : 쉘 핵심 기능 위에 C언어의 특징을 많이 포함함. BSD 계열의 유닉스에서 많이 사용됨. 최근에 이를 개선한 tch이 개발되어 사용됨

 

 

3) 로그인 쉘(login shell): 로그인하면 자동으로 실행되는 쉘. 보통 시스템관리자가 계정을 만들 때 로그인 쉘 지정.

- 쉘 변경

$ csh

- 로그인 쉘 변경

$ chch

 

 

 


2. 쉘의 기능

1) 쉘의 주요 기능

  • 명령어 처리
    : 사용자가 입력한 명령을 해석하고 적절한 프로그램을 실행
  • 시작 파일
    : 로그인할 때 실행되어 사용자별로 맞춤형 사용 환경 설정
  • 스크립트
    : 쉘 자체 내의 프로그래밍 가능

 

2) 쉘의 실행 절차

 

3) 쉘의 환경 변수

  • 환경 변수 설정법
$ 환경변수명=문자열
# 환경변수의 값을 문자열로 설정함
# 예시
$ TERM=xterm
$ scho $TERM
xterm
  • 환경변수 보기
$ env
TERM=xterm
SHELL=/bin/bash
USER=chang
HOME=/home/chang
PATH=/usr/local/bin:/usr/bin: ...
...
  • 사용자 정의 환경 변수
$ MESSAGE=hello
$ export MESSAGE

 

 

 


3. 전면 처리와 후면 처리

1) 전면 처리 vs 후면 처리

전면처리?

: 입력된 명령어를 전면에서 실행하고 쉘은 명령어 실행이 끝낼때까지 기다림.

후면처리?

: 명령어를 후면에서 실행하고 전면에서는 다른 작업을 실행해 동시 여러 작업 수행 가능

# 후면 처리 예시
$ (sleep 100; echo done) &
[1] 8320
$ find . -name test.c -print &
[2] 8325

 

 

 


4. 입출력 재지정

1) 출력 재지정(output redirection)

$ 명령어 > 파일

명령어의 표준출력을 모니터 대신에 파일에 저장함.

> 기호로 인해 화면에 출력되지 않고 ls.txt 파일에 저장됨. cat 명령을 통해 파일 내용 출력.

 

/는 루트 디렉터리. 루트에 있는 파일/디렉터리를 출력해, 출력 결과는 list.txt 파일에 저장.

 

 

2) 출력 재지정 : 파일 만들기

$ cat > 파일

표준입력 내용을 모두 파일에 저장함. 파일이 없으면 새로 만듦.

 

$ cat 파일1 파일2 > 파일3

파일1과 파일2의 내용을 붙여서 새로운 파일3을 만듦.

 

 

3) 출력 추가

$ 명령어 >> 파일

명령어의 표준출력을 모니터 대신에 파일에 추가함.

 

 

4) 입력 재지정(input redirection)

$ 명령어 < 파일

명령어의 표준입력을 키보드 대신에 파일에서 받음.

 

wc는 단어 개수를 세는 명령어

 

 

5) 문서 내 입력(here document)

$ 명령어 << 단어

명령어의 표준입력을 키보드 대신에 단어와 단어 사이의 입력 내용으로 받는다.

 

 

6) 오류 재지정

$ 명령어 2> 파일

명령어의 표준오류를 모니터 대신에 파일에 저장함.

 

명령어의 실행결과

  • 표준출력(standard output) : 정상적인 실행의 출력
  • 표준오류(standard error) : 오류 메세지 출력

2>는 표준오류 스트림을 지정한 파일로 보낸다는 의미. 즉 오류 메세지를 모니터에 출력하지 않고 err.txt 파일에 저장하고 있음. 

 

 

7) 파이프

파일 목록 내림차순 정렬해서 보여주기

방법1 - 중간 파일 사용

ls 결과를 ls.txt에 저장하고 그걸 sort -r로 읽어서 정렬함.

 

방법2 - 파이프 사용.

더 효율적이고 간단함.

 

 

파이프 사용 예시)

로그인된 사용자 수 출력

 

특정 디렉터리 내의 파일의 개수 출력

 

 

 

8) 입출력 재지정 관련 명령어 요약

명령어 사용법 의미
명령어 > 파일 명령어의 표준출력을 모니터 대신에 파일에 추가함.
명령어 >> 파일 명령어의 표준출력을 모니터 대신에 파일에 추가함.
명렁어 < 파일 명령어의 표준입력을 키보드 대신에 파일에서 받음.
명령어 << 단어
...
단어
표준입력을 키보드 대신에 단어와 단어 사이의 입력 내용으로 받음.
명령어 2> 파일 명령어의 표준오류를 모니터 대신에 파일에 저장함.
명렁어1 | 명령어2 명령어1의 표준출력이 파이프를 통해 명령어2의 표준입력이 됨.
cat 파일1 파일2 > 파일3 파일1과 파일2의 내용을 붙여서 새로운 파일3을 만들어줌.

 

 

 

 


5. 여러개 명령어 실행

1) 명령어 열(command sequence)

나열된 명령어들을 순차적으로 실행함.

 

 

2) 명령어 그룹(command group)

나열된 명령어들을 하나의 그룹으로 묶어 순차적으로 실행함.

 

 

 

 


 

  1. 1. 쉘 소개
  2. 1) 쉘(Shell)이란?
  3. 2) 쉘의 종류
  4. 3) 로그인 쉘(login shell): 로그인하면 자동으로 실행되는 쉘. 보통 시스템관리자가 계정을 만들 때 로그인 쉘 지정.
  5. 2. 쉘의 기능
  6. 1) 쉘의 주요 기능
  7. 2) 쉘의 실행 절차
  8. 3) 쉘의 환경 변수
  9. 3. 전면 처리와 후면 처리
  10. 1) 전면 처리 vs 후면 처리
  11. 4. 입출력 재지정
  12. 1) 출력 재지정(output redirection)
  13. 2) 출력 재지정 : 파일 만들기
  14. 3) 출력 추가
  15. 4) 입력 재지정(input redirection)
  16. 5) 문서 내 입력(here document)
  17. 6) 오류 재지정
  18. 7) 파이프
  19. 8) 입출력 재지정 관련 명령어 요약
  20. 5. 여러개 명령어 실행
  21. 1) 명령어 열(command sequence)
  22. 2) 명령어 그룹(command group)
'리눅스' 카테고리의 다른 글
  • 리눅스 (6) - 원격 접속, 파일 필터링, 아카이브, 파일 압축, 파일 정렬
  • 리눅스 (4) - 파일 속성, 접근 권한
  • 리눅스 (3) - 디렉터리 리스트, 파일 내용 출력, 파일 복사, 파일 이동, 파일 삭제
  • 리눅스 (2) - 파일과 디렉터리, 디렉터리 명령어
seo_young
seo_young
  • seo_young
    86400개의 발자국
    seo_young
  • 전체
    오늘
    어제
    • 분류 전체보기 (31)
      • 리눅스 (10)
      • 웹 기초 (4)
      • C (4)
      • 회로이론1 (1)
      • 자료구조 (10)
      • 백준 - 파이썬 (2)
      • 크롤링 스터디 (0)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
seo_young
리눅스 (5) - 쉘, 전면처리, 후면처리, 입출력 재지정, 여러 개 명령어 실행

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.