[Linux] Chapter 5 : 쉘과 명령어 사용

Lern-Backup·2021년 10월 23일
0

Linux

목록 보기
3/9

📗 5.1 쉘 소개

  • 쉘(shell)은 사용자와 운영체제 사이에 창구 역할을 하는 소프트웨어로 위 그림과 같이 사용자로부터 명령어를 입력받아 이를 해석하여 실행시키는 명령어 처리기(command processor)역할을 수행함

쉘의 종류

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

로그인 쉘

  • 로그인 하면 자동으로 실행되는 쉘을 로그인 쉘(login shell)이라고 함

  • 일반 사용자는 현재 실행 중인 쉘을 임시로 바꾸어 다른 쉘을 사용할 수 있는데 원하는 쉘 이름을 입력하여 실행하면 되고 해당 쉘을 종료하면 원래의 쉘 되돌아옴
    $ chs : 쉘 변경
    $ chsh : 쉘 로그아웃


📗 5.2 쉘의 기능

  • 명령어 처리
  • 시작 파일
  • 스크립트

쉘의 실행 절차

쉘의 환경 변수

  • 쉘의 환경을 설정하기 위해 환경변수에 적절한 값을 설정
    $ 환경변수명=문자열 : 공백 X
  • $ TERM=xterm와 같이 환경변수 TERM을 이용하여 사용하는 터미널 타입 설정 가능
    $ echo $TERM을 통해 값 출력 가능
  • $ env : 현재 설정되어 있는 모든 환경변수의 값 확인

쉘의 시작 파일

  • 각 쉘마다 쉘이 시작될 때 자동으로 실행되는 고유의 시작 파일(start-up file)을 가지고 있음

📗 5.3 전면 처리와 후면 처리

  • 명령어를 후면(background)에서 처리
    $ 명령어 &
    $ (sleep 100; echo done) &

후면 작업 확인

  • 후면에서 실행 중인 작업들 확인
    $ jobs : 후면 실행 작업들 리스트
    $ jobs [%작업번호] : 해당 직업만 리스트

후면 작업을 전면 작업으로 전환

  • 후면에서 실행되는 작업 중 하나를 작업번호로 지정하여 전면 작업으로 전환
    $ fg %작업번호

📗 5.4 입출력 재지정

출력 재지정

  • 출력 재지정(output redirection)을 사용하면 위 그림과 같이 명령어의 표준출력 내용을 모니터에 출력하는 대신에 파일에 저장할 수 있음
  • 파일이 존재하지 않으면 자동으로 생성되고 기존 파일이 있으면 기존 파일에 덮어쓰기함
  • $ 명령어 > 파일 : 명령어의 표준출력을 모니터 대신 파일에 저장

출력 재지정을 이용한 간단한 파일 만들기

  • 출력 재지정의 파일 자동 생성 기능과 cat 명령어를 이용하면 손쉽게 간단한 파일 만들 수 있음
    $ cat > 파일 : 표준입력 내용을 모두 파일에 저장

  • 두 개의 파일 내용을 붙여서 새로운 파일을 만들 수 있음
    $ cat 파일1 파일2 > 파일3 : 파일1 + 파일2의 내용을 파일3에 저장

출력 추가

  • 기존 파일에 출력 재지정을 하면 덮어쓰기가 됨
  • 기존 내용을 보존하고 새로운 출력을 추가하려면 추가(append) 기호를 사용
    $ 명령어 >> 파일 : 명령어의 표준출력을 모니터 대신 파일에 추가

입력 재지정

  • 입력 재지정(input redirection)은 표준입력 대신에 파일에서 입력을 받는 것
    $ 명령어 < 파일

문서 내 입력

  • 명령어를 실행할 때 입력을 문서 내에서 받을 수 있는데 이러한 기능을 문서 내 입력(here document)라고 함
    $ 명령어 << 단어 : 명령어의 표준입력을 키보드 대신 단어와 단어 사이의 내용을 입력받는다

오류 재지정

  • 명령어의 출력 2가지 종류
  • 표준출력(standard output) : 정상적인 실행의 출력
  • 표준오류(standard error) : 오류 메시지 출력
  • 출력 재지정 ➡ 표준출력 내용을 파일에 재지정
  • 표준오류 재지정(standard error redirection) : 명령어의 표준오류 내용을 모니터에 출력하는 대신 파일에 저장
    $ 명령어 2> 파일

파이프

  • 한 명령어의 표준출력을 다른 명령어의 표준입력으로 바로 받을 수 있음
    $ 명령어1 | 명령어2

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


📗 5.5 여러 개 명령어 사용하기

명령어 열

  • 명령어 열(command sequence)은 나열된 명령어들을 순차적으로 실행
    $ 명령어 1; ... 명령어 n

명령어 그룹

  • 명령어 그룹(command group)은 나열된 명령어들을 하나의 그룹으로 묶어 순차적으로 실행
    $ (명령어1 ... ; 명령어n)

whrjs audfuddj duf

  • 조건 명령어 열(conditional command sequence) : 첫 번째 명령어 실행 결과에 따라 다음 명령어 실행을 결정
    $ 명령어1 && 명령어 2 : 명령어 1이 성공적으로 실행되면 명령어2가 실행
    $ 명령어1 || 명령어2 : 명령어 1이 실패하면 명령어2가 실행

여러 개 명령어 사용 요약


📗 5.6 파일 이름 대치와 명령어 대치

파일 이름 대치

  • 대표문자(wildcard character)을 이용하면 한 번에 여러 파일들을 나타낼 수 있음
대표문자의미
*빈 문자열을 포함하여 임의의 문자열을 나타냄
?임의의 한 문자를 나타냄
[..]대괄호 사이의 문자 중 하나를 나타내며 부분범위 사용 가능함

명령어 대치

  • 쉘이 제공하는 명령어 대치(command substitution) 기능을 이용하면 어떤 명령어를 실행할 때 다른 명령어의 실행 결과를 이용할 수 있음
  • 어떤 명령어를 실행할 때 역따옴표(`)로 에워싼 다른 명령어를 포함하면 그 부분은 그 명령어의 실행 결과로 대치된 후에 실행됨

따옴표 사용

  • 위 명령어를 실행하면 3 * 4 = 12를 실행하지 않고 디렉터리 내의 파일이름을 출력
  • *가 대표문자로 현재 디렉터리 내의 파일 이름들로 먼저 대치되기 때문
  • 따옴표를 사용하면 원하는 결과를 얻을 수 있음
  1. 작음따옴표(' ')는 대표문자 대치, 변수 대치, 명령어 대치를 모두 제한
  2. 큰따옴표(" ")는 대표문자 대치만 제한
  3. 따옴표가 중첩되면 바깥에 있는 따옴표가 효력을 가짐
profile
공부 백업용

0개의 댓글