글로브, 글로브 패턴, 와일드카드 문자, 특수기호들
명령어에서 사용하면, 파일 이름을 구성하거나 경로명을 지정할 때,
쉘이 이와 맞는 리스트로 확장합니다.
* 아스테리스크
별표 * 는 파일 이름에서 0개 혹은 그 이상의 모든 문자를 의미합니다.
예컨대, .txt로 끝나는 파일을 찾으려면 ls *.txt를 실행할 수 있습니다.
cat head*를 사용하면, head로 시작하는 모든 파일을 병합하여 출력합니다.
echo와 *을 사용했을 때, 만약 일치하는 패턴이 없다면 문자 그대로 출력합니다.
*c*을 사용하여 c가 들어가는 파일을 확인할 수도 있습니다.
? 물음표
*이 하나 이상의 문자를 매치했다면,
?는 하나의 문자만 표현합니다.
확장자를 검색하는 데에도 사용할 수 있습니다.
[] 대괄호
[] 대괄호를 통해 문자의 범위를 지정할 수 있습니다.
[0-9]는 숫자를, [a-z]는 알파벳 소문자를 지정합니다.
^ 캐럿 [^]
대괄호 속에 사용하며, 대조할 제외할 문자를 지정할 수 있습니다.
~ 틸드, 물결표
~를 통해 홈 디렉토리로 확장할 수 있습니다.
~를 사용해서 파일을 사용자의 홈 디렉토리로 옮기거나,
다른 사용자의 디렉토리로 확장할 수 있습니다.
{} 중괄호
중괄호로 임의의 문자를 생성할 수 있습니다.
중괄호에 있는 몇 개의 패턴에 기반하여 여러 문자열을 만들 수 있습니다.
중괄호 내부의 요소는 , 로 구분합니다.
중괄호를 여러 개 사용할 수도 있습니다.
중괄호에서 .. 으로 범위를 설정할 수 있습니다.
echo {2..10..2}
..을 사용하여 2부터 10까지 2씩 증가시켜 출력할 수 있습니다.
(간격에 대한 입력은 생략할 수 있습니다)
중괄호 내부에 줄괄호를 사용할 수도 있습니다.
echo {x,y{1..3},z}
x y1 y2 y3 z 순으로 실행됩니다.
산술
$((계산식)) 형태로 사용합니다.
쉘이 계산식을 확인하고, 식에 사용한 기호에 따라 +, - *, / ** % 등을 수행합니다.
정수형만 계산합니다.
인용
쉘에서 공백문자는 대개 매개변수를 구분할 때 사용합니다.
만약 echo를 사용해서 hi hello를 출력한다고 생각해보겠습니다.
hi 다음에 띄어쓰기 후 hello를 입력하는 것은 아무런 문제가 없습니다.
그러나 두 번 이상의 띄어쓰기를 사용하여 hi 와 hello 사이의 간격을 늘려도 출력되는 것은 동일합니다.
입력한 공백을(혹은 특수문자를) 전부 출력하고자 한다면, 인용문자인 따옴표를 사용할 수 있습니다.
"
따옴표 중 큰 따옴표는"
$, \, ` 이 세 문자를 제외한 나머지 특수문자를 출력할 수 있습니다.
'
작은 따옴표는 특수문자의 기능을 무시하고 전부 출력합니다.
명령어 치환 $(command), `command` 백틱(작은 따옴표 아님)
$(command) 혹은 `command`를 통해 명령어를 치환할 수 있습니다.
터미널이나 프롬프트에서 직접 쓰는 것보다,
쉘 스크립트를 작성할 때 유용합니다.
유저명이나 날짜, 변수 이름, 메시지 등을 $()에 넣어서 동적으로 변하는 메시지를 출력하도록 할 수 있습니다.
'OS' 카테고리의 다른 글
[Linux Command Line] grep (1) | 2024.01.05 |
---|---|
[Linux Command Line] Timestamps 와 찾기(locate find) (1) | 2024.01.04 |
[Linux Command Line] Pipe, 파이프, 파이프라인 (0) | 2024.01.02 |
[Linux Command Line] Standrd Stream(표준 스트림), Redirection (리다이렉션) (1) | 2024.01.01 |
[Linux Command Line] 파일로 작업하기 (1) | 2023.12.31 |