반응형
# 셸에서 사용되는 특수 문자
셸에서 특별한 의미를 가지고 있는 특수 문자들이 있는데 이를 메타 문자라 한다.
# ~ : 홈 디렉터리를 나타낸다.
cd ~
# root 의 홈 디렉토리를 나타낸다.
cd ~root
# . : 현재 디렉터리를 나타내거나, 명령행 맨 앞에서 source 라는 의미로 셸 스크립트를 실행 시킬 때도 사용한다.
cd .
# .. : 부모 디렉터리를 뜻한다.
cd ..
# '' : 내부를 모두 일반 문자 취급한다.
echo 'hello world'
# "" : `, ₩, ! 를 제외한 모든 문자들을 일반 문자 취급한다.
echo "hello world"
# # : 주석을 의미한다.
# $ : Shell 변수 기호로 뒤에 오는 문자열을 변수로 취급한다.
$foo='bar'
# & : 특정 명령을 백그라운드에서 실행하도록 할때 사용한다.
# * : 아무 것도 없는 경우를 포함한 모든 문자를 뜻한다.
# ? : 보통 한 문자를 대체할때 사용한다.
# () : 부속 shell 을 뜻하는 기호로 하나의 셸 단위로 묶어준다.
# ₩ : 탈출 문자로 바로 다음에 오는 특수문자의 기능을 없엔다. alias 앞에서 사용되는 경우에도 alias의 기능을 없에준다.
# 추가로 셸에서 긴 명령행 입력시 행을 연장할 때도 사용한다.
# [] : 사이에 선택할수 있는 문자를 나열하여 '~중의 하나'라고 표현한다. 범위를 지정할 때는 ~를 사용한다.
# a,b 또는 c
[abc]
# dash 또는 underscore(_)
[-_]
# * 또는 ?
[*?]
# a,b,c 중 하나
[a-c]
# 알파벳 소문자
[a-z]
# 숫자가 아닌 문자
[!0-9]
# c,h,a,r 가 아닌 것
[^chars]
# 모든 알파벳
[a-zA-Z]
# ; : shell 명령 분리자이다. 명령어를 순차적으로 실행
# {} : 제시된 문자열 중 하나로 대치시킨다.
b{ed, olt, ar}s : beds, bolts, bars
# / : 디렉터리 경로 분리자이다.
# *는 모든 문자를 뜻한다. 즉 a로 시자하는 모든 파일을 보여준다.
$ ls a*
# ? 는 한 문자를 대체한다.
$ ls a.?
# [a-c]는 a,b 또는 c 한 문자를 가리킨다.
$ ls [a-c].*
# a나 b가 들어가지 않는 파일만을 찾아 출력한다.
$ ls [!ab].*
# 인용 부호
인용 부호 는 메타 문자가 가지고 있는 특수한 기능을 제거할때 사용하는 부호다.
$ 는 shell 변수를 나타낼 때 사용한다. 변수에 특정한 값을 부여할 때는 = 을 사용한다.
$name = posein
echo $name
posein
echo $PATH
# ''(작은따옴표)
''(작은따옴표) 는 모든 특수 문자의 의미를 제거한다.
$ echo '$PATH'
$PATH
# ""(큰따옴표)
""(큰따옴표) 는 $, ₩, `, ! 를 제외한 모든 문자들의 특별한 의미를 없앤다.
echo "$PATH"
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# ₩(역슬래시)
₩(역슬래시) 는 기호 다음에 나오는 문자의 특별한 의미를 제거하거나, 명령행이 긴 경우 다음 라인까지 명령행을 연장할 때 사용한다. 특정 명령어에 옵션 기본 장착과 같은 alias가 설정되어있을 경우 앞부분에 ₩ 를 붙여 실행하면 옵션없이 기본명령어로 실행한다.
// $의 특수한 기능을 없애고, 단순한 문자열로 만들어 출력한다.
echo \$PATH
$PATH
// 바로 뒤의 $의 특수한 기능을 없애고, 환경변수 $PATH를 출력한다.
echo \$$PATH
/usr/bin/sbin...
// 명령 입력 중에 \ 를 입력하면 줄 이 바뀌고 2차 프롬프트 > 가 나타나 계속 입력할 수 있다.
./config --with-apxs2=/usr/local/apache/bin/apxs \
> --with-mysql=/usr/local/mysql \
> -- with-config-file-path=/usr/local/apache/conf
// ls 명령어에 커스텀 alias가 적용되어 있을경우 \를 붙이면 무시하고 원래대로 동작한다.
\ls
# 백쿼츠(``)
백쿼츠(``) 는 명령어 대체 역할을 하는 문자로 백쿼츠로 묶여진 문자열은 명령어로 인식된다.
// `` 안의 pwd를 명령어로 인식하여 그 결과값을 출력한다.
echo "Current directory `pwd`"
Current directory /home/root
반응형