728x90
쉘(Shell) 기본 사용법
문자열의 출력
- 유닉스 명령은 유닉스 시스템이 제공하는 유틸리티 명령과 쉘이 제공하는 명령으로 나눔
- 쉘 명령은 쉘이 자체적으로 제공하는 명령
- 디렉토리 변경에 사용되는 cd가 대표적
- 문자열 출력 명령 : echo
- echo는 쉘 명령과 유틸리티 명령 모두에서 제공됨
- /bin/echo와 같이 경로를 지정하여 실행하면 유틸리티 명령 실행
- 경로 없이 실행하면 쉘 내장 명령 실행
$ echo test
test
$ /bin/echo test
test
$
쉘 특수 문자
- 쉘은 사용자가 명령을 더 편리하게 입력하고 실행할 수 있도록 특수 문자를 제공, 사용법은 모든 쉘에서 거의 비슷함
- 특수 문자(Metacharacter)는 쉘에서 특수한 의미를 가진 문자들로 특수 기능을 수행
- 사용자가 입력한 명령을 실행하기 전에 쉘이 특수 문자를 먼저 해독해 적절한 형태로 변경
-
주요 특수 문자 : *, ?, , ; 등
* 특수 문자
- 가장 많이 사용되는 특수 문자 중의 하나
- 임의의 문자열을 나타내는 데 사용
- 여러 파일의 이름을 나열할 때 파일 이름을 간단히 표시하기 위해 사용
?와 [ ] 특수 문자
- ?(물음표)와 [] (대괄호)는 모두 하나의 문자를 나타내는 데 사용
- ?는 임의의 한 문자를, [ ]는 괄호 안에 포함된 문자 중 하나를 나타냄
- [ ]는 사용할 여러 문자를 나열하거나 범위를 지정할 수 있으며 다른 특수 문자와도 혼합 사용 가능
~와 - 특수 문자
- ~(틸드)와 -(대시)는 디렉토리를 나타내는 특수 문자
- ~가 단독으로 사용되면 현재 작업 중인 사용자의 홈 디렉토리를 나타냄.
- 다른 사용자의 로그인 ID와 함께 사용되면 해당 사용자의 홈 디렉토리를 나타냄.
- -는 cd 명령으로 디렉토리를 이전하기 직전의 작업 디렉토리를 나타냄
;과 | 특수 문자
-
;(세미콜론)과 (파이프)는 명령과 명령을 연결하는 데 사용 - ;은 연결된 명령을 왼쪽부터 차례로 실행
-
는 왼쪽 명령의 실행 결과를 오른쪽 명령의 입력으로 전달 - 파이프를 이용하면 여러 명령을 연결해 사용할 수 있음
‘ ’와 “ ” 특수 문자
- ‘ ’(작은 따옴표)와 “ ”(큰 따옴표)는 문자열을 감싸며 문자열 안에 사용된 특수 문자의 의미를 없애는 기능
- *나 ?, ; 등 파일 이름에 사용하거나 화면에 메시지로 출력할 때는 따옴표를 사용
- ‘ ’는 모든 특수 문자를 일반 문자로 간주해 처리
- “ ”는 $, `, \를 제외한 모든 특수 문자를 일반 문자로 간주해 처리
- $를 문자 그대로 사용하려면 작은 따옴표를, 쉘 환경 변수의 값을 포함한 문자열을 처리하려면 큰 따옴표를 사용
` 특수 문자
- `(백쿼터)는 키보드 왼쪽 상단의 Esc 키 아래에 있는 문자를 사용
- 명령 실행 결과를 문자열로 받고 싶을 때 사용
\ 특수 문자
- (역슬래시)는 특수 문자를 일반 문자처럼 사용하도록 함
- 특수 문자 바로 앞에 사용되며 해당 특수 문자의 효과를 없앰
>,»,< 특수 문자
- 입출력의 방향을 바꾸는 특수 문자
쉘의 환경 변수
변수
- 특정한 쉘(Shell)에서만 적용되는 변수
- 쉘 변수
- 서브 쉘로 그 값이 전달되지 않기 때문에 임시로 사용할 값을 저장하는 데 사용
- 환경 변수
- 유닉스 시스템이 쉘에 전달하는 사용자 정보, 각 사용자의 프롬프트 모양, 이전 작업 디렉토리 등의 정보가 저장되어 사용자의 작업 환경을 보다 편리하게 설정할 수 있게 해줌
변수 출력
- 현재 설정된 변수 목록과 그 값을 보는 명령 : set, env
- set은 쉘 변수와 환경 변수 모두를 보여줌
$ set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:......
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
......
$
- env는 환경 변수만 보여줌
- 환경 변수 이름은 관습적으로 모두 대문자 사용
$ env
......
SHELL=/bin/bash
TERM=linux
USER=ksshin
......
MAIL=/var/mail/ksshin
PATH=/usr/local/sbin:/usr/loca/bin:......
......
$
주요 환경 변수
- 사용자의 현재 위치를 알아보는 방법으로 PWD 변수의 값을 출력해 볼 수 있음
- 환경 변수의 값을 출력할 때는 변수 이름 앞에 특수 문자 $를 사용
$ echo $PWD
/home/ksshin
$
변수 정의
- 쉘 변수에 값을 설정하는 방법
- 형식 : 쉘 변수명=문자열
- 사용 예 : ATEST=test
$ ATEST=test
$ set
ATEST=test
......
$
- 여러 변수 중 방금 생성한 변수의 값만 출력
$ echo $ATEST
test
$
쉘 변수를 환경 변수로 변경
export 명령 : 지정한 쉘 변수를 환경 변수로 바꿔주고, 그 값을 현재 쉘과 서브 쉘에 적용시키는 쉘의 내부 명령
- 형식 : export [-n][변수]
- 옵션
- -n : 환경 변수를 쉘 변수로 변경
- 사용 예
- export
- export ATEST
- 쉘 변수 설정 후, export 명령을 이용하여 환경 변수로 변경
$ BTEST=test
$ export BTEST
$ env
......
BTEST=test
......
$
- 변수를 선언하면서 동시에 export하여 환경 변수를 설정
$ export CTEST=test
$ echo $CTEST
test
$
변수를 이용하여 편리한 작업 환경 만들기
- CDPATH 환경 변수
- cd 명령을 실행할 때 인자로 주어진 디렉토리를 찾을 경로를 미리 지정
- cd 명령을 실행하면 CDPATH 변수에 :(콜론)으로 구분하여 지정된 경로 아래에 해당 디렉토리가 있는지 찾아보고, 없으면 현재 디렉토리에서 찾음
- 자주 이동하는 경로를 CDPATH 변수에 지정하면 손쉽게 현재 위치를 변경할 수 있음
$ cd
$ echo $CDPATH
$ CDPATH=~/Unix
$ cd ch4
$ pwd
/home/ksshin/Unix/ch4
$ cd ch3
$ pwd
/home/ksshin/Unix/ch3
$
변수 해제
- 정의된 변수를 해제할 때는 unset 명령 사용
- 형식 : unset 변수
- 사용 예
- unset ATEST
$ unset CTEST
$ echo $CTEST
$
728x90
'프로그래밍 > Unix' 카테고리의 다른 글
유닉스/unix 쉘 스크립트(Shell Script) (0) | 2020.05.06 |
---|---|
[유닉스/unix] 쉘(Shell) 환경 설정 (0) | 2020.04.30 |
[유닉스/unix] 쉘(Shell)의 기능 및 종류 (0) | 2020.04.30 |
[유닉스] 파일 덤프 [ dd (data duplicate) ] (0) | 2020.04.21 |
[유닉스] 파일 연결하기 ( paste ) (0) | 2020.04.21 |