Home Knou: 유닉스 시스템 | 03. 셸 사용하기
Post
Cancel

Knou: 유닉스 시스템 | 03. 셸 사용하기

셀 사용하기

셀 개요

  • 명령어 해석기 또는 명령 행 인터페이스 (command line interface) -> 사용자와 커널 사이에서 명령어를 해석하여 처리 GUI 로는 하기 힘든 다양한 기능을 수행할 수 있다

  • 셀 명령을 프로그램으로 작성하여 처리할 수 있음 셀 스크립트는 텍스트 파일로 프로그래밍을 통한 셀 명령의 조합 반복 수행 작업을 셀 스크립트로 작성할 수 있다

  • 텍스트 모드로 로그인 하면 기본 셀이 주어진다
  • GNOME 데스크톱에서는 터미널 창을 실행시켜 셀을 사용한다 여러 터미널 창을 띄워 사용할 수 있음 터미널 창을 명령 프롬프트와 명령 행을 제공함

  • 기본적으로 한 개의 명령 입력 후 엔터를 눌러 명령을 수행함 결과가 출력되면 명령 프롬프트가 다시 등장 세미콜론을 사용하면 한 라인에 여러 명령을 입력할 수 있음

셀 종류

  • 많은 리눅스 배포판에서 Bash 셀을 기본으로 사용함 명령 프롬프트로 일반 사용자는 $, root 사용자는 # 을 사용함

셀 종류에 따라 alias 설정, 초기화 파일, 셀 스크립트 작성법, 명령 행 완성 기능, 명령 행 편집 기능 등 차이가 있음

Bash 셀

Bourn 셀의 개선 버전으로 많은 셀 스크립트 문법이 Bourn 셀 에 기반을 둔다 C 셀과 Korn 셀의 유용한 기능을 가져왔다

  • 실행 명령: /bin/bash /etc/passwd 파일에 기본 셀에 대한 라인이 지정되어 있다 (변경 가능)

셀 선택하기

  • 기본 셀 변경: chsh -s /bin/sh
  • 터미널 창을 대화형 셀이라고도 한다 셀을 종료하려면 exit 명령 터미널 창은 로그인 셀이 아니다

로그인 셀과 비 로그인 셀의 구분

  • logout 명령은 로그인 셀에서만 가능 (로그인 셀에서 exit 명령을 하면 logout 된다) 가상 콘솔 사용 가능 셀 프롬프트에서 셀 프고르맹을 실행하면 서브 셀이 실행됨

셀 명령

셀 명령의 형식

$ 명령어 옵션 인수 ex) usermod -L kdhong 옵션과 인수는 여럿일 수 있고 선택 or 필수가 따로 있다

대개 명령어는 프로그램의 이름 관리자 명령 또는 일반 사용자 명령이 있음 가장 간단한 형태의 실행은 명령의 이름만 사용하는 것 pwd, ls, date, who 등

chsh 명령

기본 셀을 바꾸는 명령 chsh [options] [username] 대괄호는 생략 가능, 다른 적당한 내용으로 대체되어야 함을 의미 복수는 여러 개를 넣을 수 있다는 의미

옵션과 인수

  • 짧은 옵션 (-) ls -l ls -lat

  • 긴 옵선 (–) ls --all

  • 인수는 명령의 수행 대상을 지정하는 것 cat -n /etc/passwd

  • 옵션도 인수를 가질 수 있다 chsh -s /bin/sh sw

명령어의 종류

  • alias: 별칭을 만드는 명령어
  • 셀 예약어: 예약어로 do, while, case 등이 있음
  • 함수: 셀에서 수행되는 함수의 정의
  • 내장 명령: 셀 내부 명령으로 cd, echo, pwd 등이 있다
  • 일반 명령: 실행 파일이 존재하는 명령

환경변수 PATH 에 설정된 경로 중에 실행 파일이 존재하면 명령의 이름으로 실행 가능 그게 아니라면 파일의 절대 경로를 사용해야 한다 현재 디렉터리 . 은 보통 PATH 에 포함되어있지 않다 echo $PATH 로 지정된 경로를 확인할 수 있다

alias

자주 사용되는 명령의 단축 명령을 만든다

alias la='is -A'

alias rm='rm -i'

alias 설정을 유지하기 위해서는 환경 설정 파일에 기록을 해두어야 한다

unalias 명령을 통해 단축 명령을 해제할 수 있다

type

명령이 어떻게 해석되는지 알려주는 명령 type cd

which

실행 프로그램을 환경변수 PATH를 기초로 찾아 경로를 출력한다 which rm

man 명령

매뉴얼 페이지를 보여주는 명령 명령 사용법이나 설정 파일 등에 관한 온라인 도움말 제공

명령어의 간단한 도움말을 위해서는 --help 옵션을 사용할 수 있다

history 명령

이전 수행한 명령 목록을 볼 수 있다

history // 최근 1000개 보기

history 100 // 100 개만 보기

  • 직전 명령 실행: !!
  • 목록 내 해당 번호 명령 실행: !숫자
  • 지정된 문자열로 시작하는 가장 최근 명령 실행: !a
  • 방향키 위, 아래: 직전 또는 직후에 실행한 명령 불러옴

명령 행 완성 기능

일부 입력 후 나머지 자동 완성 탭 키로 가능하다 명령어, 변수, 파일 , 디렉토리 등을 구분하여 결정한다 정보가 충분하지 않은 경우 탭 키를 한번 더 눌러 모든 경우를 볼 수 있다

명령의 연결과 확장

특수 문자

  • 백슬래시 (/): 특수 문자의 기능을 제거하는 이스케이프 문자 또는 명령 행 분리에 사용
  • 틸드 (~): 홈 디렉터리를 의미
  • 도트 (.): 현재 작업 디렉토리 표시 또는 명령 행의 맨 앞에서 셀 스크립트를 실행하는 source 명령
  • 더블도트 (..): 부모 디렉토리
  • 파운드 (#): 주석
  • 달러 ($): $변수는 변수의 값을 추출한다
  • 앰퍼샌드 (&): 명령& 는 명령을 백그라운드로 실행
  • 애스터리스크 (*): 파일 이름에서 0개 이상의 임의 문자열과 대응됨
  • 물음표 (?): 파일 이름에서 1개 문자와 대응됨
  • 파이브 (): 앞 명령의 출력을 다음 명령으로 연결시킴
  • < 또는 >: 파일로부터 입력 받거나 파일로 출력할 때 사용
  • >>: 표준 출력을 파일 끝에 덧붙일 때 사용
  • 느낌표 (!): 명령 히스토리 기능을 이용할 때 사용

파이프

명령1 | 명령2 앞 출력 결과를 다음 명령의 입력으로 연결

입출력 리다이렉션

명령 0< 파일 명령 수행에 필요한 입력을 파일로 부터 얻는다

명령 1> 파일 명령 수행 결과를 파일에 기록한다

위 입출력 리다이렉션들에서 숫자는 생략 가능

명령 2>> 파일 명령 수행 중 표준 오류 출력을 파일에 덧붙임

입출력 리다이렉션 앞에 2를 붙이면 오류 출력을 의미한다

명령 치환

명령을 수행할 때 명령 인수로 다른 명령의 결과를 사용

$(command) 또는 \`command`\ -> 역 따옴표

«««< Updated upstream

인용 부호

빈칸을 포함하는 문자열을 1개의 인수로 사용할 때 인용 부호가 필요하다

  • 작은따옴표: 특수문자의 의미를 제거 (내부의 모든 특수 문자의 의미를 제거)
  • 큰따옴표: $, ‘’, \, ! 를 해석하여 확장 (내부에 띄어쓰기 등이 있어도 내부를 해석함)
  • 백슬래시: #, `, “, ‘, \ 앞에서 특수 문자의 의미를 제거한다 (바로 뒤 문자만 의미 제거)

수식과 변수의 확장

명령 수행 전 수식의 결과를 계산하여 전달 $[수식] 또는 $(())

명령 수행 전 변수의 값을 추출하여 전달 $변수

echo 명령은 그 다음에 나오는 문자열이나 변수, 수식등을 바로 출력하는 것

셸 변수

변수는 특정 데이터 또는 환경 설정을 위한 값을 저장 기본적으로 셸은 문자열 정보를 저장한다

셸 변수 (지역변수)

변수가 정의 된 셸에서만 사용하고 서브 셸로 전달되지 않는다

환경 변수 (전역 변수)

현재 셸 뿐아니라 서브 셸로도 전달 보통 변수 이름으로 대문자를 사요어 기본적으로 많은 환경 변수가 설정되어 있음 시스템의 모든 환경 변수를 출력하려면 printenv 명령 사용 export -p 는 현재 셸의 모든 환경 변수를 출력

This post is licensed under CC BY 4.0 by the author.

Knou: 유닉스 시스템 | 02. 리눅스 설치

Javascript: fetchapi | formdata 전송