오픈소스소프트웨어 정리 #03 명령인자, 작업 다루기, 쉘 변수, 명령 히스토리, 파일명 패턴 다루기

yuju9·2022년 10월 4일
0

쉘 확장

쉘 확장?

  • 사용자가 입력한 명령행을 Linux의 쉘이 해석하는 과정
  • 사용자가 입력한 명령행은 쉘 확장 과정을 거쳐서 쉘에 의해 실행

bash

  • 리눅스에서 가장 널리 사용되는 쉘

명령 인자

$ echo Hello World
  • echo 명령: 인자로 전달되는 텍스트를 화면에 출력
  • 인자들의 공백문자들은 모두 제거
  • ''(따옴표) or ""(쌍따옴표)로 묶인 문자열은 단일한 인자로 처리. 내부의 공백문자도 그대로 유지

명령의 종류

빌트인 명령

  • 쉘이 자체적으로 해석

외부 명령

  • /bin 또는 /sbin과 같은 파일 시스템에 존재하는 바이너리 파일에 해당하는 명령

type 명령

  • 명령의 종류 확인 가능
  • $ type cd

이름이 동일할 경우,

  • 내부 명령이 외부 명령에 우선하여 실행

which 명령

  • 입력된 외부 명령에 해당하는 바이너리 파일의 위치 알려줌
  • $ which cp ls cd mkdir pwd

엘리아스(alias)

  • 기존의 명령을 다른 이름으로 사용할 수 있게 함
  • $ alias show=cat
  • alias를 사용하면 기존 명령 및 옵션을 간단한 이름으로 사용할 수 있음

쉘 확장 과정 보기

  • 쉘 확장 과정을 표시하려면 ‘set -x’ 를 입력
  • 쉘 확장 표시를 끄려면(default) +x 를 사용

작업 제어 연산자

  • 다수의 명령으로 이루어진 작업을 제어하는 연산자

;

왼편->오른편의 순서로 명령을 차례로 수행
ex. $echo Hello; echo World

&

쉘은 주어진 명령을 background 로 실행, 종료할 때까지 기다리지 않음. 대신 쉘은 다음 명령의 입력을 대기.
ex. $sleep 20 &

$?

이전 명령의 종료 코드 (exit)를 반환. 성공적으로 종료할 시 0을 반환하고, 그렇지 않으면 0이 아닌 값을 반환.

&&

  • 논리곱(AND)으로 해석
  • 왼쪽 명령이 성공적으로 종료하면 오른쪽 명령을 계속해서 실행
    ex. $echo first && echo second

||

  • 논리합(OR)으로 해석
  • 왼쪽 명령이 실패할 때만 오른쪽 명령 실행
    ex. $echo first || echo second

#

  • 쉘 주석(쉘이 해석하지 않음)

\

  • escape 문자
    ex. $echo first \; world (;를 일반 문자로 사용하고 싶을 때)

명령행 끝의 back slash()

  • 명령행이 다음 행으로 계속 이어짐

쉘 변수

  • 쉘에서 사용하는 변수
  • $문자를 이용하여 그 값을 사용
  • 쌍따옴표를 사용하면 그 안의 쉘 변수를 해석하지만, 따옴표는 내부 해석 X
  • 쉘변수는 대소문자 구분함
  • 모든 변수들의 값을 확인하려면 set 명령 사용
  • 변수를 삭제하려면 unset 명령 사용


주요 변수

HOSTNAME

  • 호스트 컴퓨터의 이름

USER

  • 현재 사용자의 이름

UID

  • 현재 사용자의 사용자 식별번호

SHELL

  • 현재 사용중인 쉘

HOME

  • 현재 사용자의 홈 디렉토리

PS1

  • 쉘 프롬프트 형태를 지정

PATH

  • 쉘 명령에 해당하는 프로그램을 찾는 디렉토리 순서
  • ex. $echo $PATH


변수 사용

export

  • 주어진 변수를 자식 쉘에 전달되도록 설정
  • export 전
  • export 후

env

  • 인자가 없으면 export된 변수들을 보여준다
  • env -i는 export된 것들을 모두 취소

변수의 사용

  • 변수를 명확하게 구분해서 나타내려면, ${변수명}형식으로 나타냄


쉘 임베딩

  • 명령행에서 새로운 쉘 실행 가능
    - $()를 사용하는 방법 (새로운 쉘에서 실행하였기에 현재 쉘에서는 출력 x)
    ex.


이전 쉘 명령

!!

  • 직전 명령 다시 실행

!echo

  • echo에 매칭되는 이전 명령 다시 실행

history

  • 현재까지 사용한 명령을 표시

!번호

  • 이전 명령들 중에서 번호에 해당하는 명령 다시 실행

파일 이름 확장

*

글자가 없거나 하나 이상의 임의의 글자
ex. $ ls File*
File이라는 글자로 시작하는 파일

*

임의의 한 글자
ex. $ ls File?
File이라는 글자로 시작하고 아무 글자로 한 글자로 끝나는 파일

문자 패턴

[]

  • 대괄호 사이에 있는 임의의 문자에 해당하는 것
    ex. ls File[A5]
    File5 혹은 FileA 둘중 하나

[a-z], [A-Z], [0-9]

여러 개의 문자 또는 숫자를 간략히 표시

[!문자]

  • 문자가 들어가있지 않음
    ex.ls file[a5][!Z]
    Z가 들어가있지 않은..

0개의 댓글