OS

[Linux Command Line] 확장

ride-dev 2024. 1. 3. 18:08

글로브, 글로브 패턴, 와일드카드 문자, 특수기호들

명령어에서 사용하면, 파일 이름을 구성하거나 경로명을 지정할 때,

쉘이 이와 맞는 리스트로 확장합니다.

* 아스테리스크

별표 * 는 파일 이름에서 0개 혹은 그 이상의 모든 문자를 의미합니다.

예컨대, .txt로 끝나는 파일을 찾으려면 ls *.txt를 실행할 수 있습니다.

cat head*를 사용하면, head로 시작하는 모든 파일을 병합하여 출력합니다.

echo와 *을 사용했을 때, 만약 일치하는 패턴이 없다면 문자 그대로 출력합니다.

*c*을 사용하여 c가 들어가는 파일을 확인할 수도 있습니다.

? 물음표

*이 하나 이상의 문자를 매치했다면,

?는 하나의 문자만 표현합니다.

확장자를 검색하는 데에도 사용할 수 있습니다.

파일 확장자가 두 글자인 파일 보기

[] 대괄호

[] 대괄호를 통해 문자의 범위를 지정할 수 있습니다.

[0-9]는 숫자를, [a-z]는 알파벳 소문자를 지정합니다.

알파벳으로 시작하면서 문자 3개로 이루어진 파일
qa로 시작하면서 그 뒤에 1이나 2 또는 3으로 구성된 파일

^ 캐럿 [^]

대괄호 속에 사용하며, 대조할  제외할 문자를 지정할 수 있습니다.

확장자가 t로 시작하지 않는 파일 보기
문자로 끝나지 않는 파일 보기

~ 틸드, 물결표

~를 통해 홈 디렉토리로 확장할 수 있습니다.

~를 사용해서 파일을 사용자의 홈 디렉토리로 옮기거나,

다른 사용자의 디렉토리로 확장할 수 있습니다.

{} 중괄호

중괄호로 임의의 문자를 생성할 수 있습니다.

중괄호에 있는 몇 개의 패턴에 기반하여 여러 문자열을 만들 수 있습니다.

중괄호 내부의 요소는 , 로 구분합니다.

중괄호를 여러 개 사용할 수도 있습니다.

중괄호에서 .. 으로 범위를 설정할 수 있습니다.

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`를 통해 명령어를 치환할 수 있습니다.

터미널이나 프롬프트에서 직접 쓰는 것보다,

쉘 스크립트를 작성할 때 유용합니다.

유저명이나 날짜, 변수 이름, 메시지 등을 $()에 넣어서 동적으로 변하는 메시지를 출력하도록 할 수 있습니다.

 

728x90